diff --git a/demo/symfony/config/packages/flasher.yaml b/demo/symfony/config/packages/flasher.yaml index e070ba81..52611f59 100644 --- a/demo/symfony/config/packages/flasher.yaml +++ b/demo/symfony/config/packages/flasher.yaml @@ -19,7 +19,7 @@ flasher: # Global options options: # timeout in milliseconds - timeout: 10000 + timeout: 600000 position: 'top-right' # Map Symfony session keys to PHPFlasher notification types @@ -35,8 +35,98 @@ flasher: # limit: 5 plugins: + theme.amazon: + scripts: ['/vendor/flasher/themes/amazon/amazon.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/amazon/amazon.min.css' + + theme.amber: + scripts: ['/vendor/flasher/themes/amber/amber.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/amber/amber.min.css' + theme.jade: scripts: ['/vendor/flasher/themes/jade/jade.min.js'] styles: - # - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/flasher.min.css' - '/vendor/flasher/themes/jade/jade.min.css' + + theme.crystal: + scripts: ['/vendor/flasher/themes/crystal/crystal.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/crystal/crystal.min.css' + + theme.emerald: + scripts: ['/vendor/flasher/themes/emerald/emerald.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/emerald/emerald.min.css' + + theme.sapphire: + scripts: ['/vendor/flasher/themes/sapphire/sapphire.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/sapphire/sapphire.min.css' + + theme.ruby: + scripts: ['/vendor/flasher/themes/ruby/ruby.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/ruby/ruby.min.css' + + theme.onyx: + scripts: ['/vendor/flasher/themes/onyx/onyx.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/onyx/onyx.min.css' + + theme.neon: + scripts: ['/vendor/flasher/themes/neon/neon.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/neon/neon.min.css' + + theme.aurora: + scripts: ['/vendor/flasher/themes/aurora/aurora.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/aurora/aurora.min.css' + + theme.minimal: + scripts: ['/vendor/flasher/themes/minimal/minimal.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/minimal/minimal.min.css' + + theme.material: + scripts: ['/vendor/flasher/themes/material/material.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/material/material.min.css' + + theme.google: + scripts: ['/vendor/flasher/themes/google/google.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/google/google.min.css' + + theme.ios: + scripts: ['/vendor/flasher/themes/ios/ios.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/ios/ios.min.css' + + theme.slack: + scripts: ['/vendor/flasher/themes/slack/slack.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/slack/slack.min.css' + + theme.facebook: + scripts: ['/vendor/flasher/themes/facebook/facebook.min.js'] + styles: + - '/vendor/flasher/flasher.min.css' + - '/vendor/flasher/themes/facebook/facebook.min.css' diff --git a/demo/symfony/src/Controller/HomeController.php b/demo/symfony/src/Controller/HomeController.php index 62712877..a057696b 100644 --- a/demo/symfony/src/Controller/HomeController.php +++ b/demo/symfony/src/Controller/HomeController.php @@ -14,7 +14,7 @@ class HomeController extends AbstractController public function index(): Response { $themes = [ - 'flasher', + // 'flasher', // 'amber', // 'sapphire', // 'crystal', @@ -23,7 +23,7 @@ class HomeController extends AbstractController // 'ruby', // 'onyx', - 'jade', + // 'jade', // 'aurora', // 'neon', // 'minimal', @@ -34,33 +34,33 @@ class HomeController extends AbstractController // 'ios', // 'slack', // 'facebook', - // 'amazon', + 'amazon', ]; $positions = [ - 'top-left', + // 'top-left', 'top-right', - 'bottom-left', - 'bottom-right', - 'top-center', - 'bottom-center', - 'center-left', - 'center-right', - 'center-center', + // 'bottom-left', + // 'bottom-right', + // 'top-center', + // 'bottom-center', + // 'center-left', + // 'center-right', + // 'center-center', ]; $messages = [ - 'success' => 'Your profile has been updated successfully', - 'info' => 'New: You can now export your reports in PDF format', - 'warning' => 'Your premium subscription will expire in 3 days', - 'error' => 'Payment failed: Your card has been declined', + 'info' => 'Welcome back!', + 'warning' => 'Are you sure you want to proceed?', + 'error' => 'Oops! Something went wrong!', + 'success' => 'Data has been saved successfully!', ]; foreach ($themes as $index => $theme) { foreach ($messages as $type => $message) { $position = $positions[$index % \count($positions)]; - $message = \sprintf('%s: %s', $theme, $message); + // $message = \sprintf('%s: %s', $theme, $message); flash() ->use("theme.$theme") diff --git a/docs/_data/manifest.json b/docs/_data/manifest.json index 1275b9c4..fa550372 100644 --- a/docs/_data/manifest.json +++ b/docs/_data/manifest.json @@ -1,6 +1,6 @@ { - "dist/main.css": "/dist/main.047f18a1.css", - "dist/main.js": "/dist/main.855339d4.js", + "dist/main.css": "/dist/main.f204747f.css", + "dist/main.js": "/dist/main.c89a204f.js", "dist/455.3a7b4474.css": "/dist/455.3a7b4474.css", "dist/455.17bc016b.js": "/dist/455.17bc016b.js", "dist/411.29cd993e.css": "/dist/411.29cd993e.css", diff --git a/docs/_includes/theme-notification.html b/docs/_includes/theme-notification.html deleted file mode 100644 index 20e32ae5..00000000 --- a/docs/_includes/theme-notification.html +++ /dev/null @@ -1,13 +0,0 @@ -
-
-
-
- {{ include.title }} - {{ include.message }} -
- -
- - - -
diff --git a/docs/_includes/themes/amazon.html b/docs/_includes/themes/amazon.html index e69de29b..88174327 100644 --- a/docs/_includes/themes/amazon.html +++ b/docs/_includes/themes/amazon.html @@ -0,0 +1,98 @@ + +
+ +
+
+
+
+ + + +
+
+
Success!
+
Data has been saved successfully!
+
+
+
+ +
+
+
+ + + + + + + + +
+
+
+
+ + + +
+
+
Information
+
Welcome back!
+
+
+
+ +
+
+
+
diff --git a/docs/_includes/themes/amber.html b/docs/_includes/themes/amber.html new file mode 100644 index 00000000..5c42d642 --- /dev/null +++ b/docs/_includes/themes/amber.html @@ -0,0 +1,58 @@ + +
+ +
+
+
+
+
Data has been saved successfully!
+
+ +
+
+
+
+
+ + + + + + + + +
+
+
+
+
Welcome back!
+
+ +
+
+
+
+
+
diff --git a/docs/_includes/themes/aurora.html b/docs/_includes/themes/aurora.html new file mode 100644 index 00000000..5a3b2ecd --- /dev/null +++ b/docs/_includes/themes/aurora.html @@ -0,0 +1,46 @@ + +
+ +
+
+
Data has been saved successfully!
+ +
+
+
+
+
+ + + + + + + + +
+
+
Welcome back!
+ +
+
+
+
+
+
diff --git a/docs/_includes/themes/crystal.html b/docs/_includes/themes/crystal.html new file mode 100644 index 00000000..c901ca5d --- /dev/null +++ b/docs/_includes/themes/crystal.html @@ -0,0 +1,54 @@ + +
+ +
+
+
+

Data has been saved successfully!

+
+ +
+
+
+
+
+ + + + + + + + +
+
+
+

Welcome back!

+
+ +
+
+
+
+
+
diff --git a/docs/_includes/themes/emerald.html b/docs/_includes/themes/emerald.html new file mode 100644 index 00000000..341312e3 --- /dev/null +++ b/docs/_includes/themes/emerald.html @@ -0,0 +1,34 @@ + +
+ +
+
+
Data has been saved successfully!
+ +
+
+ + + + + + + + +
+
+
Welcome back!
+ +
+
+
diff --git a/docs/_includes/themes/facebook.html b/docs/_includes/themes/facebook.html new file mode 100644 index 00000000..bf40c487 --- /dev/null +++ b/docs/_includes/themes/facebook.html @@ -0,0 +1,122 @@ + +
+ +
+
+
+
+ + + +
+
+
+
+ Data has been saved successfully! +
+
+ 06:49 +
+
+
+ +
+
+
+ + + + + + + + +
+
+
+
+ + + +
+
+
+
+ Welcome back! +
+
+ 06:49 +
+
+
+ +
+
+
+
diff --git a/docs/_includes/themes/flasher.html b/docs/_includes/themes/flasher.html index 97c825d1..292fa63b 100644 --- a/docs/_includes/themes/flasher.html +++ b/docs/_includes/themes/flasher.html @@ -26,7 +26,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -56,7 +56,7 @@ - + diff --git a/docs/_includes/themes/google.html b/docs/_includes/themes/google.html new file mode 100644 index 00000000..3e21d79b --- /dev/null +++ b/docs/_includes/themes/google.html @@ -0,0 +1,102 @@ + +
+ +
+
+
+
+ + + +
+
+
Success
+
Data has been saved successfully!
+
+
+
+ +
+
+
+
+
+
+ + + + + + + + +
+
+
+
+ + + +
+
+
Info
+
Welcome back!
+
+
+
+ +
+
+
+
+
+
+
diff --git a/docs/_includes/themes/ios.html b/docs/_includes/themes/ios.html new file mode 100644 index 00000000..96d262a1 --- /dev/null +++ b/docs/_includes/themes/ios.html @@ -0,0 +1,94 @@ + +
+ +
+
+
+
+ + + +
+
+
Success
+
4:32 AM
+
+
+
+
Data has been saved successfully!
+
+ +
+
+ + + + + + + + +
+
+
+
+ + + +
+
+
Info
+
4:32 AM
+
+
+
+
Welcome back!
+
+ +
+
+
diff --git a/docs/_includes/themes/jade.html b/docs/_includes/themes/jade.html new file mode 100644 index 00000000..5bf88b51 --- /dev/null +++ b/docs/_includes/themes/jade.html @@ -0,0 +1,46 @@ + +
+ +
+
+
Data has been saved successfully!
+ +
+
+
+
+
+ + + + + + + + +
+
+
Welcome back!
+ +
+
+
+
+
+
diff --git a/docs/_includes/themes/material.html b/docs/_includes/themes/material.html new file mode 100644 index 00000000..392a55cd --- /dev/null +++ b/docs/_includes/themes/material.html @@ -0,0 +1,78 @@ + +
+ +
+
+
+
+
Data has been saved successfully!
+
+
+
+ +
+
+
+
+
+
+ + + + + + + + +
+
+
+
+
Welcome back!
+
+
+
+ +
+
+
+
+
+
+
diff --git a/docs/_includes/themes/minimal.html b/docs/_includes/themes/minimal.html new file mode 100644 index 00000000..1f5faf92 --- /dev/null +++ b/docs/_includes/themes/minimal.html @@ -0,0 +1,46 @@ + +
+ +
+
+
Data has been saved successfully!
+ +
+
+
+
+
+ + + + + + + + +
+
+
Welcome back!
+ +
+
+
+
+
+
diff --git a/docs/_includes/themes/neon.html b/docs/_includes/themes/neon.html new file mode 100644 index 00000000..3cd05996 --- /dev/null +++ b/docs/_includes/themes/neon.html @@ -0,0 +1,46 @@ + +
+ +
+
+
Data has been saved successfully!
+ +
+
+
+
+
+ + + + + + + + +
+
+
Welcome back!
+ +
+
+
+
+
+
diff --git a/docs/_includes/themes/onyx.html b/docs/_includes/themes/onyx.html new file mode 100644 index 00000000..8fc7e035 --- /dev/null +++ b/docs/_includes/themes/onyx.html @@ -0,0 +1,54 @@ + +
+ +
+
+
+
Data has been saved successfully!
+
+ +
+
+
+
+
+ + + + + + + + +
+
+
+
Welcome back!
+
+ +
+
+
+
+
+
diff --git a/docs/_includes/themes/ruby.html b/docs/_includes/themes/ruby.html new file mode 100644 index 00000000..51c54055 --- /dev/null +++ b/docs/_includes/themes/ruby.html @@ -0,0 +1,70 @@ + +
+ +
+
+
+
+
+
+
+
Data has been saved successfully!
+
+ +
+
+
+
+
+ + + + + + + + +
+
+
+
+
+
+
+
Welcome back!
+
+ +
+
+
+
+
+
diff --git a/docs/_includes/themes/sapphire.html b/docs/_includes/themes/sapphire.html new file mode 100644 index 00000000..ab460442 --- /dev/null +++ b/docs/_includes/themes/sapphire.html @@ -0,0 +1,42 @@ + +
+ +
+
+ Data has been saved successfully! +
+
+
+
+
+ + + + + + + + +
+
+ Welcome back! +
+
+
+
+
+
diff --git a/docs/_includes/themes/slack.html b/docs/_includes/themes/slack.html new file mode 100644 index 00000000..401fec50 --- /dev/null +++ b/docs/_includes/themes/slack.html @@ -0,0 +1,78 @@ + +
+ +
+
+
+
+
+
+
Data has been saved successfully!
+
+
+ +
+
+
+ + + + + + + + +
+
+
+
i
+
+
+
Welcome back!
+
+
+ +
+
+
+
diff --git a/docs/_layouts/theme.html b/docs/_layouts/theme.html index 1e3c5331..4994fb20 100644 --- a/docs/_layouts/theme.html +++ b/docs/_layouts/theme.html @@ -52,7 +52,7 @@ layout: default
- {% include themes/{{ page.theme_name }}.html %} + {% include themes/{{ page.theme_name_short }}.html %}
diff --git a/docs/assets/js/controllers/anchor_controller.js b/docs/assets/js/controllers/anchor_controller.js index c1005fe1..550a96aa 100644 --- a/docs/assets/js/controllers/anchor_controller.js +++ b/docs/assets/js/controllers/anchor_controller.js @@ -72,7 +72,7 @@ export default class extends Controller { const stickies = document.querySelectorAll('.sticky') stickies.forEach((sticky) => { - if (sticky.offsetHeight > window.innerHeight && article.clientHeight > sticky.offsetHeight) { + if (sticky.offsetHeight > window.innerHeight && article && article.clientHeight > sticky.offsetHeight) { const div = document.createElement('div') div.className = 'h-screen overflow-y-auto' div.innerHTML = sticky.innerHTML diff --git a/docs/dist/entrypoints.json b/docs/dist/entrypoints.json index 312790ec..e2182d7a 100644 --- a/docs/dist/entrypoints.json +++ b/docs/dist/entrypoints.json @@ -2,10 +2,10 @@ "entrypoints": { "main": { "css": [ - "/dist/main.047f18a1.css" + "/dist/main.f204747f.css" ], "js": [ - "/dist/main.855339d4.js" + "/dist/main.c89a204f.js" ] } } diff --git a/docs/dist/main.047f18a1.css b/docs/dist/main.047f18a1.css deleted file mode 100644 index fed66c47..00000000 --- a/docs/dist/main.047f18a1.css +++ /dev/null @@ -1 +0,0 @@ -pre.copyable{position:relative}pre.copyable .copy{//display:none;position:absolute;right:1.5rem;top:.85rem}pre.copyable:hover .copy{display:block}pre.copyable .copy i{font-size:1.5rem}pre.copyable .copy:active{transform:translateY(3px)}@media (max-width:768px){pre.copyable:hover .copy{display:none}}:root{--fl-success:#10b981;--fl-info:#3b82f6;--fl-warning:#f59e0b;--fl-error:#ef4444;--fl-success-light:color-mix(in srgb,var(--fl-success) 10%,transparent);--fl-info-light:color-mix(in srgb,var(--fl-info) 10%,transparent);--fl-warning-light:color-mix(in srgb,var(--fl-warning) 10%,transparent);--fl-error-light:color-mix(in srgb,var(--fl-error) 10%,transparent);--fl-white:#fff;--fl-black:#000;--fl-bg-light:var(--fl-white);--fl-bg-dark:#0f172a;--fl-text-light:#4b5563;--fl-text-dark:var(--fl-white);--fl-font:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--fl-border-radius:4px;--fl-shadow:0 4px 12px rgba(0,0,0,.15);--fl-shadow-dark:0 4px 12px rgba(0,0,0,.35);--fl-transition:0.4s cubic-bezier(0.23,1,0.32,1);--background-color:var(--fl-bg-light);--text-color:var(--fl-text-light);--dark-background-color:var(--fl-bg-dark);--dark-text-color:var(--fl-text-dark);--success-color:var(--fl-success);--info-color:var(--fl-info);--warning-color:var(--fl-warning);--error-color:var(--fl-error);--success-color-light:var(--fl-success-light);--info-color-light:var(--fl-info-light);--warning-color-light:var(--fl-warning-light);--error-color-light:var(--fl-error-light)}.fl-wrapper{pointer-events:none;position:fixed;transition:all .4s cubic-bezier(.23,1,.32,1);width:24em;z-index:1000}.fl-wrapper .fl-container{border-radius:var(--fl-border-radius,4px);opacity:0;pointer-events:auto;transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .4s cubic-bezier(.23,1,.32,1)}.fl-wrapper .fl-container.fl-show{opacity:1;transform:translate(0) scale(1)!important}.fl-wrapper.fl-stacked .fl-container:not(:last-child){margin-bottom:.5em}.fl-wrapper[data-position^=top-]{top:.75em}.fl-wrapper[data-position^=bottom-]{bottom:.75em}.fl-wrapper[data-position^=center-]{top:50%}.fl-wrapper[data-position$=-right]{right:.75em}.fl-wrapper[data-position$=-left]{left:.75em}.fl-wrapper[data-position$=-center]{left:50%}.fl-wrapper[data-position=center-left]{transform:translateY(-50%)}.fl-wrapper[data-position=center-left] .fl-container{transform:translateX(-110%)}.fl-wrapper[data-position=center-right]{transform:translateY(-50%)}.fl-wrapper[data-position=center-right] .fl-container{transform:translateX(110%)}.fl-wrapper[data-position=center-center]{transform:translate(-50%,-50%)}.fl-wrapper[data-position=center-center] .fl-container{opacity:0;transform:translate(0) scale(.5);transition:transform .5s cubic-bezier(.23,1,.32,1),opacity .5s cubic-bezier(.23,1,.32,1)}.fl-wrapper[data-position=bottom-center],.fl-wrapper[data-position=top-center]{transform:translateX(-50%)}.fl-wrapper[data-position=top-center] .fl-container{transform:translateY(-150%)}.fl-wrapper[data-position=bottom-center] .fl-container{transform:translateY(150%)}.fl-wrapper[data-position=bottom-right] .fl-container,.fl-wrapper[data-position=top-right] .fl-container{transform:translateX(110%)}.fl-wrapper[data-position=bottom-left] .fl-container,.fl-wrapper[data-position=top-left] .fl-container{transform:translateX(-110%)}@media screen and (max-width:768px){.fl-wrapper{left:7.5%;right:7.5%;width:85%}.fl-wrapper[data-position$=-center],.fl-wrapper[data-position$=-left],.fl-wrapper[data-position$=-right]{left:50%;right:auto}.fl-wrapper[data-position^=top-]{top:.75em;transform:translateX(-50%)}.fl-wrapper[data-position^=bottom-]{bottom:.75em;transform:translateX(-50%)}.fl-wrapper[data-position^=center-]{top:50%;transform:translate(-50%,-50%)}}@media screen and (max-width:480px){.fl-wrapper{left:5%;right:5%;width:90%}}@media (prefers-color-scheme:dark){.fl-wrapper.fl-auto-dark .fl-container{box-shadow:var(--fl-shadow-dark,0 4px 12px rgba(0,0,0,.35))}}.fl-wrapper .fl-container.fl-dismissing{opacity:0;transition:all .3s ease-out}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-right],.fl-wrapper .fl-container.fl-dismissing[data-position=top-right]{transform:translateX(110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-left],.fl-wrapper .fl-container.fl-dismissing[data-position=top-left]{transform:translateX(-110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=top-center]{transform:translateY(-150%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-center]{transform:scale(.5);transition:opacity .4s ease-out,transform .4s ease-out}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-center]{transform:translateY(150%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-left]{transform:translateX(-110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-right]{transform:translateX(110%)}@media (prefers-reduced-motion:reduce){.fl-wrapper,.fl-wrapper .fl-container{transition:none!important}}.fl-container{color:var(--text-color,var(--fl-text-light));opacity:0;transform:translateY(-20px);transition:all .4s cubic-bezier(.23,1,.32,1);will-change:opacity,transform}.fl-container.fl-show{opacity:1;transform:translate(0)!important}.fl-container.fl-rtl{direction:rtl;text-align:right}.fl-progress-bar{bottom:0;display:flex;height:.125em;left:0;overflow:hidden;position:absolute;right:0}.fl-success .fl-progress-bar{background-color:var(--success-color-light,var(--fl-success-light))}.fl-success .fl-progress-bar .fl-progress{background-color:var(--success-color,var(--fl-success));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-info .fl-progress-bar{background-color:var(--info-color-light,var(--fl-info-light))}.fl-info .fl-progress-bar .fl-progress{background-color:var(--info-color,var(--fl-info));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-warning .fl-progress-bar{background-color:var(--warning-color-light,var(--fl-warning-light))}.fl-warning .fl-progress-bar .fl-progress{background-color:var(--warning-color,var(--fl-warning));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-error .fl-progress-bar{background-color:var(--error-color-light,var(--fl-error-light))}.fl-error .fl-progress-bar .fl-progress{background-color:var(--error-color,var(--fl-error));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-rtl .fl-progress .fl-progress{transform-origin:right center}.fl-icon{border-radius:50%;box-sizing:border-box;color:#fff;display:inline-block;height:1em;margin:0;min-height:1em;min-width:1em;position:relative;transition:transform .2s ease;width:1em}.fl-icon:after,.fl-icon:before{border-width:0;box-sizing:border-box;content:"";position:absolute;transition:inherit}.fl-success .fl-icon:after,.fl-success .fl-icon:before{background-color:currentcolor;border-radius:.1em;height:.6em;left:.35em;top:.6em;transform:rotate(-135deg);transform-origin:.08em .08em;width:.16em}.fl-success .fl-icon:after{height:.16em;width:.4em}.fl-info .fl-icon:after,.fl-info .fl-icon:before{background-color:currentcolor;border-radius:.03em;left:50%;transform:translateX(-50%);width:.15em}.fl-info .fl-icon:before{height:.38em;top:.4em}.fl-info .fl-icon:after{box-shadow:-.06em .19em,-.06em .44em,.06em .44em;height:.13em;top:.21em}.fl-warning .fl-icon:after,.fl-warning .fl-icon:before{background-color:currentcolor;border-radius:.03em;left:50%;transform:translateX(-50%);width:.15em}.fl-warning .fl-icon:before{height:.38em;top:.21em}.fl-warning .fl-icon:after{height:.13em;top:.65em}.fl-error .fl-icon:after,.fl-error .fl-icon:before{background-color:currentcolor;border-radius:.1em;height:.7em;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-135deg);width:.16em}.fl-error .fl-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}.fl-success .fl-icon{background-color:var(--success-color,var(--fl-success))}.fl-info .fl-icon{background-color:var(--info-color,var(--fl-info))}.fl-warning .fl-icon{background-color:var(--warning-color,var(--fl-warning))}.fl-error .fl-icon{background-color:var(--error-color,var(--fl-error))}.menu-closed\:shown{display:none}.menu-closed .menu-closed\:shown{display:inline}.menu-closed .menu-closed\:hidden{display:none}#main-navigation li a.text-white i{color:#fff}#noty_layout__bottom,#noty_layout__bottomCenter,#noty_layout__bottomLeft,#noty_layout__bottomRight,#noty_layout__center,#noty_layout__centerLeft,#noty_layout__centerRight,#noty_layout__top,#noty_layout__topCenter,#noty_layout__topLeft,#noty_layout__topRight,.noty_layout_mixin{backface-visibility:hidden;margin:0;padding:0;position:fixed;transform:translateZ(0) scale(1);z-index:9999999;-webkit-font-smoothing:subpixel-antialiased;filter:blur(0);-webkit-filter:blur(0);max-width:90%}#noty_layout__top{left:5%;top:0;width:90%}#noty_layout__topLeft{left:20px;top:20px;width:325px}#noty_layout__topCenter{left:50%;top:5%;transform:translate(calc(-50% - .5px)) translateZ(0) scale(1);width:325px}#noty_layout__topRight{right:20px;top:20px;width:325px}#noty_layout__bottom{bottom:0;left:5%;width:90%}#noty_layout__bottomLeft{bottom:20px;left:20px;width:325px}#noty_layout__bottomCenter{bottom:5%;left:50%;transform:translate(calc(-50% - .5px)) translateZ(0) scale(1);width:325px}#noty_layout__bottomRight{bottom:20px;right:20px;width:325px}#noty_layout__center{left:50%;top:50%;transform:translate(calc(-50% - .5px),calc(-50% - .5px)) translateZ(0) scale(1);width:325px}#noty_layout__centerLeft{left:20px}#noty_layout__centerLeft,#noty_layout__centerRight{top:50%;transform:translateY(calc(-50% - .5px)) translateZ(0) scale(1);width:325px}#noty_layout__centerRight{right:20px}.noty_progressbar{display:none}.noty_has_timeout.noty_has_progressbar .noty_progressbar{background-color:#646464;bottom:0;display:block;filter:alpha(opacity=10);height:3px;left:0;opacity:.2;position:absolute;width:100%}.noty_bar{-webkit-backface-visibility:hidden;transform:translate(0) scale(1);-webkit-font-smoothing:subpixel-antialiased;overflow:hidden}.noty_effects_open{animation:noty_anim_in .5s cubic-bezier(.68,-.55,.265,1.55);animation-fill-mode:forwards;opacity:0;transform:translate(50%)}.noty_effects_close{animation:noty_anim_out .5s cubic-bezier(.68,-.55,.265,1.55);animation-fill-mode:forwards}.noty_fix_effects_height{animation:noty_anim_height 75ms ease-out}.noty_close_with_click{cursor:pointer}.noty_close_button{background-color:rgba(0,0,0,.05);border-radius:2px;cursor:pointer;font-weight:700;height:20px;line-height:20px;position:absolute;right:2px;text-align:center;top:2px;transition:all .2s ease-out;width:20px}.noty_close_button:hover{background-color:rgba(0,0,0,.1)}.noty_modal{background-color:#000;height:100%;left:0;opacity:.3;position:fixed;top:0;width:100%;z-index:10000}.noty_modal.noty_modal_open{animation:noty_modal_in .3s ease-out;opacity:0}.noty_modal.noty_modal_close{animation:noty_modal_out .3s ease-out;animation-fill-mode:forwards}@keyframes noty_modal_in{to{opacity:.3}}@keyframes noty_modal_out{to{opacity:0}}@keyframes noty_anim_in{to{opacity:1;transform:translate(0)}}@keyframes noty_anim_out{to{opacity:0;transform:translate(50%)}}@keyframes noty_anim_height{to{height:0}}.noty_theme__mint.noty_bar{border-radius:2px;margin:4px 0;overflow:hidden;position:relative}.noty_theme__mint.noty_bar .noty_body{font-size:14px;padding:10px}.noty_theme__mint.noty_bar .noty_buttons{padding:10px}.noty_theme__mint.noty_type__alert,.noty_theme__mint.noty_type__notification{background-color:#fff;border-bottom:1px solid #d1d1d1;color:#2f2f2f}.noty_theme__mint.noty_type__warning{background-color:#ffae42;border-bottom:1px solid #e89f3c;color:#fff}.noty_theme__mint.noty_type__error{background-color:#de636f;border-bottom:1px solid #ca5a65;color:#fff}.noty_theme__mint.noty_type__info,.noty_theme__mint.noty_type__information{background-color:#7f7eff;border-bottom:1px solid #7473e8;color:#fff}.noty_theme__mint.noty_type__success{background-color:#afc765;border-bottom:1px solid #a0b55c;color:#fff}.notyf__icon--info,.notyf__icon--warning{background:#fff;border-radius:50%;box-sizing:border-box;display:block;height:1em;margin:0 auto;position:relative;width:1em}.notyf__icon--info:after,.notyf__icon--info:before,.notyf__icon--warning:after,.notyf__icon--warning:before{border-width:0;box-sizing:border-box;content:"";position:absolute;transition:all 1s}.notyf__icon--info:after,.notyf__icon--info:before{background-color:currentcolor;border-radius:.03em;left:50%;transform:translateX(-50%);width:.15em}.notyf__icon--info:before{height:.38em;top:.4em}.notyf__icon--info:after{box-shadow:-.06em .19em,-.06em .44em,.06em .44em;height:.13em;top:.21em}.notyf__icon--warning:after,.notyf__icon--warning:before{background-color:currentcolor;border-radius:.03em;left:50%;transform:translateX(-50%);width:.15em}.notyf__icon--warning:before{height:.38em;top:.21em}.notyf__icon--warning:after{height:.13em;top:.65em}@keyframes notyf-fadeinup{0%{opacity:0;transform:translateY(25%)}to{opacity:1;transform:translateY(0)}}@keyframes notyf-fadeinleft{0%{opacity:0;transform:translateX(25%)}to{opacity:1;transform:translateX(0)}}@keyframes notyf-fadeoutright{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(25%)}}@keyframes notyf-fadeoutdown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(25%)}}@keyframes ripple{0%{transform:scale(0) translateY(-45%) translateX(13%)}to{transform:scale(1) translateY(-45%) translateX(13%)}}.notyf{align-items:flex-end;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;height:100%;justify-content:flex-end;left:0;padding:20px;pointer-events:none;position:fixed;top:0;width:100%;z-index:9999}.notyf__icon--error,.notyf__icon--success{background:#fff;border-radius:50%;display:block;height:21px;margin:0 auto;position:relative;width:21px}.notyf__icon--error:after,.notyf__icon--error:before{background:currentColor;border-radius:3px;content:"";display:block;height:12px;left:9px;position:absolute;top:5px;width:3px}.notyf__icon--error:after{transform:rotate(-45deg)}.notyf__icon--error:before{transform:rotate(45deg)}.notyf__icon--success:after,.notyf__icon--success:before{background:currentColor;border-radius:3px;content:"";display:block;position:absolute;width:3px}.notyf__icon--success:after{height:6px;left:6px;top:9px;transform:rotate(-45deg)}.notyf__icon--success:before{height:11px;left:10px;top:5px;transform:rotate(45deg)}.notyf__toast{animation:notyf-fadeinup .3s ease-in forwards;border-radius:2px;box-shadow:0 3px 7px 0 rgba(0,0,0,.25);box-sizing:border-box;display:block;flex-shrink:0;max-width:300px;overflow:hidden;padding:0 15px;pointer-events:auto;position:relative;transform:translateY(25%)}.notyf__toast--disappear{animation:notyf-fadeoutdown .3s forwards;animation-delay:.25s;transform:translateY(0)}.notyf__toast--disappear .notyf__icon,.notyf__toast--disappear .notyf__message{animation:notyf-fadeoutdown .3s forwards;opacity:1;transform:translateY(0)}.notyf__toast--disappear .notyf__dismiss{animation:notyf-fadeoutright .3s forwards;opacity:1;transform:translateX(0)}.notyf__toast--disappear .notyf__message{animation-delay:.05s}.notyf__toast--upper{margin-bottom:20px}.notyf__toast--lower{margin-top:20px}.notyf__toast--dismissible .notyf__wrapper{padding-right:30px}.notyf__ripple{animation:ripple .4s ease-out forwards;border-radius:50%;height:400px;position:absolute;right:0;top:0;transform:scale(0) translateY(-51%) translateX(13%);transform-origin:bottom right;width:400px;z-index:5}.notyf__wrapper{align-items:center;border-radius:3px;display:flex;padding-bottom:17px;padding-right:15px;padding-top:17px;position:relative;z-index:10}.notyf__icon{animation:notyf-fadeinup .3s forwards;animation-delay:.3s;font-size:1.3em;margin-right:13px;opacity:0;text-align:center;width:22px}.notyf__dismiss{animation:notyf-fadeinleft .3s forwards;animation-delay:.35s;height:100%;margin-right:-15px;opacity:0;position:absolute;right:0;top:0;width:26px}.notyf__dismiss-btn{background-color:rgba(0,0,0,.25);border:none;cursor:pointer;height:100%;opacity:.35;outline:none;transition:opacity .2s ease,background-color .2s ease;width:100%}.notyf__dismiss-btn:after,.notyf__dismiss-btn:before{background:#fff;border-radius:3px;content:"";height:12px;left:calc(50% - 1px);position:absolute;top:calc(50% - 5px);width:2px}.notyf__dismiss-btn:after{transform:rotate(-45deg)}.notyf__dismiss-btn:before{transform:rotate(45deg)}.notyf__dismiss-btn:hover{background-color:rgba(0,0,0,.15);opacity:.7}.notyf__dismiss-btn:active{opacity:.8}.notyf__message{animation:notyf-fadeinup .3s forwards;animation-delay:.25s;line-height:1.5em;opacity:0;position:relative;vertical-align:middle}@media only screen and (max-width:480px){.notyf{padding:0}.notyf__ripple{animation-duration:.5s;height:600px;width:600px}.notyf__toast{border-radius:0;box-shadow:0 -2px 7px 0 rgba(0,0,0,.13);max-width:none;width:100%}.notyf__dismiss{width:56px}}:root{--swal2-container-padding:0.625em;--swal2-backdrop:rgba(0,0,0,.4);--swal2-width:32em;--swal2-padding:0 0 1.25em;--swal2-border:none;--swal2-border-radius:0.3125rem;--swal2-background:#fff;--swal2-color:#545454;--swal2-footer-border-color:#eee;--swal2-show-animation:swal2-show 0.3s;--swal2-hide-animation:swal2-hide 0.15s forwards;--swal2-input-background:transparent;--swal2-progress-step-background:#add8e6;--swal2-validation-message-background:#f0f0f0;--swal2-validation-message-color:#666;--swal2-close-button-position:initial;--swal2-close-button-inset:auto;--swal2-close-button-font-size:2.5em;--swal2-close-button-color:#ccc}[data-swal2-theme=dark]{--swal2-dark-theme-black:#19191a;--swal2-dark-theme-white:#e1e1e1;--swal2-background:var(--swal2-dark-theme-black);--swal2-color:var(--swal2-dark-theme-white);--swal2-footer-border-color:#555;--swal2-input-background:color-mix(in srgb,var(--swal2-dark-theme-black),var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background:color-mix(in srgb,var(--swal2-dark-theme-black),var(--swal2-dark-theme-white) 10%);--swal2-validation-message-color:var(--swal2-dark-theme-white)}@media(prefers-color-scheme:dark){[data-swal2-theme=auto]{--swal2-dark-theme-black:#19191a;--swal2-dark-theme-white:#e1e1e1;--swal2-background:var(--swal2-dark-theme-black);--swal2-color:var(--swal2-dark-theme-white);--swal2-footer-border-color:#555;--swal2-input-background:color-mix(in srgb,var(--swal2-dark-theme-black),var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background:color-mix(in srgb,var(--swal2-dark-theme-black),var(--swal2-dark-theme-white) 10%);--swal2-validation-message-color:var(--swal2-dark-theme-white)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{background-color:transparent;box-sizing:border-box;max-width:100%;pointer-events:none;width:360px}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static!important}}div:where(.swal2-container){box-sizing:border-box;display:grid;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;inset:0;overflow-x:hidden;padding:var(--swal2-container-padding);position:fixed;transition:background-color .1s;z-index:1060;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:transparent!important}div:where(.swal2-container).swal2-bottom-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}div:where(.swal2-container).swal2-bottom,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-top{grid-template-columns:auto minmax(0,1fr) auto}div:where(.swal2-container).swal2-bottom-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-left>.swal2-popup,div:where(.swal2-container).swal2-center-start>.swal2-popup{align-self:center;grid-row:2}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-left>.swal2-popup,div:where(.swal2-container).swal2-bottom-start>.swal2-popup{align-self:end;grid-column:1;grid-row:3}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup,div:where(.swal2-container).swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{align-self:stretch;grid-row:1/4}div:where(.swal2-container).swal2-no-transition{transition:none!important}div:where(.swal2-container) div:where(.swal2-popup){background:var(--swal2-background);border:var(--swal2-border);border-radius:var(--swal2-border-radius);box-sizing:border-box;color:var(--swal2-color);display:none;font-family:inherit;font-size:1rem;grid-template-columns:minmax(0,100%);max-width:100%;padding:var(--swal2-padding);position:relative;width:var(--swal2-width)}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){color:inherit;font-size:1.875em;font-weight:600;margin:0;max-width:100%;padding:.8em 1em 0;position:relative;text-align:center;text-transform:none;word-wrap:break-word;cursor:auto}div:where(.swal2-container) div:where(.swal2-actions){align-items:center;box-sizing:border-box;display:flex;flex-wrap:wrap;justify-content:center;margin:1.25em auto 0;padding:0;width:auto;z-index:1}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}div:where(.swal2-container) div:where(.swal2-loader){align-items:center;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-color:#2778c4 transparent;border-radius:100%;border-style:solid;border-width:.25em;display:none;height:2.2em;justify-content:center;margin:0 1.875em;width:2.2em}div:where(.swal2-container) button:where(.swal2-styled){box-shadow:0 0 0 3px transparent;font-weight:500;margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){background:initial;background-color:#7066e0;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):focus-visible{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){background:initial;background-color:#dc3741;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):focus-visible{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){background:initial;background-color:#6e7881;border:0;border-radius:.25em;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):focus-visible{box-shadow:0 0 0 3px hsla(208,8%,47%,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus-visible{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){border-top:1px solid var(--swal2-footer-border-color);color:inherit;cursor:auto;font-size:1em;margin:1em 0 0;padding:1em 1em 0;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{border-bottom-left-radius:var(--swal2-border-radius);border-bottom-right-radius:var(--swal2-border-radius);bottom:0;grid-column:auto!important;left:0;overflow:hidden;position:absolute;right:0}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){background:rgba(0,0,0,.2);height:.25em;width:100%}div:where(.swal2-container) img:where(.swal2-image){cursor:auto;margin:2em auto 1em;max-width:100%}div:where(.swal2-container) button:where(.swal2-close){align-items:center;background:transparent;border:none;border-radius:var(--swal2-border-radius);color:var(--swal2-close-button-color);cursor:pointer;font-family:monospace;font-size:var(--swal2-close-button-font-size);height:1.2em;inset:var(--swal2-close-button-inset);justify-content:center;justify-self:end;margin-bottom:-1.2em;margin-right:0;margin-top:0;overflow:hidden;padding:0;position:var(--swal2-close-button-position);transition:color .1s,box-shadow .1s;width:1.2em;z-index:2}div:where(.swal2-container) button:where(.swal2-close):hover{background:transparent;color:#f27474;transform:none}div:where(.swal2-container) button:where(.swal2-close):focus-visible{box-shadow:inset 0 0 0 3px rgba(100,150,200,.5);outline:none}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){color:inherit;font-size:1.125em;font-weight:400;justify-content:center;line-height:normal;margin:0;overflow:auto;padding:1em 1.6em .3em;text-align:center;z-index:1;word-wrap:break-word;cursor:auto;word-break:break-word}div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) label:where(.swal2-checkbox),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) textarea:where(.swal2-textarea){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) textarea:where(.swal2-textarea){background:var(--swal2-input-background);border:1px solid #d9d9d9;border-radius:.1875em;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;box-sizing:border-box;color:inherit;font-size:1.125em;transition:border-color .1s,box-shadow .1s;width:auto}div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5);outline:none}div:where(.swal2-container) input:where(.swal2-file)::-moz-placeholder,div:where(.swal2-container) input:where(.swal2-input)::-moz-placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::-moz-placeholder{color:#ccc}div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{background:var(--swal2-background);margin:1em 2em 3px}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{color:inherit;font-weight:600;text-align:center;width:20%}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{font-size:1.125em;height:2.625em;line-height:2.625em;padding:0}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{background:var(--swal2-input-background);font-size:1.125em;margin-left:auto;margin-right:auto;width:75%}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{background:var(--swal2-input-background);color:inherit;font-size:1.125em;max-width:100%;min-width:50%;padding:.375em .625em}div:where(.swal2-container) .swal2-checkbox,div:where(.swal2-container) .swal2-radio{align-items:center;background:var(--swal2-background);color:inherit;justify-content:center}div:where(.swal2-container) .swal2-checkbox label,div:where(.swal2-container) .swal2-radio label{font-size:1.125em;margin:0 .6em}div:where(.swal2-container) .swal2-checkbox input,div:where(.swal2-container) .swal2-radio input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300;justify-content:center;margin:1em 0 0;overflow:hidden;padding:.625em}div:where(.swal2-container) div:where(.swal2-validation-message):before{background-color:#f27474;border-radius:50%;color:#fff;content:"!";display:inline-block;font-weight:600;height:1.5em;line-height:1.5em;margin:0 .625em;min-width:1.5em;text-align:center;width:1.5em}div:where(.swal2-container) .swal2-progress-steps{align-items:center;background:transparent;flex-wrap:wrap;font-weight:600;margin:1.25em auto;max-width:100%;padding:0}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{background:#2778c4;border-radius:2em;color:#fff;flex-shrink:0;height:2em;line-height:2em;text-align:center;width:2em;z-index:20}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{background:#2778c4;flex-shrink:0;height:.4em;margin:0 -1px;width:2.5em;z-index:10}div:where(.swal2-icon){border:.25em solid #000;border-radius:50%;box-sizing:content-box;cursor:default;font-family:inherit;height:5em;justify-content:center;line-height:5em;margin:2.5em auto .6em;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:5em}div:where(.swal2-icon) .swal2-icon-content{align-items:center;display:flex;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{flex-grow:1;position:relative}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{background-color:#f27474;border-radius:.125em;display:block;height:.3125em;position:absolute;top:2.3125em;width:2.9375em}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{border-radius:50%;height:7.5em;position:absolute;width:3.75em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:7.5em 0 0 7.5em;left:-2.0635em;top:-.4375em;transform:rotate(-45deg);transform-origin:3.75em 3.75em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 7.5em 7.5em 0;left:1.875em;top:-.6875em;transform:rotate(-45deg);transform-origin:0 3.75em}div:where(.swal2-icon).swal2-success .swal2-success-ring{border:.25em solid hsla(98,55%,69%,.3);border-radius:50%;box-sizing:content-box;height:100%;left:-.25em;position:absolute;top:-.25em;width:100%;z-index:2}div:where(.swal2-icon).swal2-success .swal2-success-fix{height:5.625em;left:1.625em;position:absolute;top:.5em;transform:rotate(-45deg);width:.4375em;z-index:1}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{background-color:#a5dc86;border-radius:.125em;display:block;height:.3125em;position:absolute;z-index:2}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{left:.8125em;top:2.875em;transform:rotate(45deg);width:1.5625em}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{right:.5em;top:2.375em;transform:rotate(-45deg);width:2.9375em}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{height:50px;overflow:scroll;position:absolute;top:-9999px;width:50px}.swal2-rtl .swal2-close{margin-left:0;margin-right:0}.swal2-rtl .swal2-timer-progress-bar{left:auto;right:0}.swal2-toast{background:var(--swal2-background);box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:min-content auto min-content;overflow-y:hidden;padding:1em;pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){font-size:1em;margin:.5em 1em;padding:0;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){font-size:1em;height:2em;margin:.5em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){font-size:.8em;margin:.5em 0 0;padding:.5em 0 0}.swal2-toast button:where(.swal2-close){align-self:center;font-size:2em;grid-column:3/3;grid-row:1/99;height:.8em;margin:0;width:.8em}.swal2-toast div:where(.swal2-html-container){font-size:1em;margin:.5em 1em;overflow:initial;padding:0;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{margin:.25em}.swal2-toast .swal2-icon,.swal2-toast .swal2-loader{align-self:center;grid-column:1;grid-row:1/99;height:2em;width:2em}.swal2-toast .swal2-icon{margin:0 .5em 0 0;min-width:2em}.swal2-toast .swal2-icon .swal2-icon-content{align-items:center;display:flex;font-size:1.8em;font-weight:700}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{height:2em;width:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){height:auto;justify-content:flex-start;margin:.5em 0 0;padding:0 .5em}.swal2-toast button:where(.swal2-styled){font-size:1em;margin:.25em .5em;padding:.4em .6em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{border-radius:50%;height:3em;position:absolute;width:1.6em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{border-radius:4em 0 0 4em;left:-.5em;top:-.8em;transform:rotate(-45deg);transform-origin:2em 2em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{border-radius:0 4em 4em 0;left:.9375em;top:-.25em;transform-origin:0 1.5em}.swal2-toast .swal2-success .swal2-success-ring{height:2em;width:2em}.swal2-toast .swal2-success .swal2-success-fix{height:2.6875em;left:.4375em;top:0;width:.4375em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{left:.1875em;top:1.125em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{right:.1875em;top:.9375em;width:1.375em}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}@keyframes swal2-hide{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}@keyframes swal2-animate-success-line-tip{0%{left:.0625em;top:1.1875em;width:0}54%{left:.125em;top:1.0625em;width:0}70%{left:-.375em;top:2.1875em;width:3.125em}84%{left:1.3125em;top:3em;width:1.0625em}to{left:.8125em;top:2.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{right:2.875em;top:3.375em;width:0}65%{right:2.875em;top:3.375em;width:0}84%{right:0;top:2.1875em;width:3.4375em}to{right:.5em;top:2.375em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;opacity:0;transform:scale(.4)}50%{margin-top:1.625em;opacity:0;transform:scale(.4)}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;opacity:1;transform:scale(1)}}@keyframes swal2-animate-error-icon{0%{opacity:0;transform:rotateX(100deg)}to{opacity:1;transform:rotateX(0deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-1turn)}to{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{opacity:0;transform:rotate(45deg)}25%{opacity:.4;transform:rotate(-25deg)}50%{opacity:.8;transform:rotate(15deg)}75%{opacity:1;transform:rotate(-5deg)}to{opacity:1;transform:rotateX(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotate(2deg)}33%{transform:translateY(0) rotate(-2deg)}66%{transform:translateY(.3125em) rotate(2deg)}to{transform:translateY(0) rotate(0deg)}}@keyframes swal2-toast-hide{to{opacity:0;transform:rotate(1deg)}}@keyframes swal2-toast-animate-success-line-tip{0%{left:.0625em;top:.5625em;width:0}54%{left:.125em;top:.125em;width:0}70%{left:-.25em;top:.625em;width:1.625em}84%{left:.75em;top:1.0625em;width:.5em}to{left:.1875em;top:1.125em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{right:1.375em;top:1.625em;width:0}65%{right:.9375em;top:1.25em;width:0}84%{right:0;top:.9375em;width:1.125em}to{right:.1875em;top:.9375em;width:1.375em}}.fl-amazon{--amazon-bg-light:#fff;--amazon-bg-dark:#202124;--amazon-text-light:#0f1111;--amazon-text-secondary-light:#565959;--amazon-text-dark:#fff;--amazon-text-secondary-dark:#b6b6b6;--amazon-border-light:#ddd;--amazon-border-dark:#3f3f3f;--amazon-yellow:#ffd814;--amazon-orange:#f90;--amazon-success-bg:#f0fff5;--amazon-success-border:#7fda95;--amazon-success-icon:#007600;--amazon-info-bg:#f3f9ff;--amazon-info-border:#7fb4da;--amazon-info-icon:#0066c0;--amazon-warning-bg:#fffcf3;--amazon-warning-border:#ffd996;--amazon-warning-icon:#c45500;--amazon-error-bg:#fff5f5;--amazon-error-border:#ff8f8f;--amazon-error-icon:#c40000;--amazon-success-bg-dark:#082d11;--amazon-success-border-dark:#1e6e2c;--amazon-success-icon-dark:#7fda95;--amazon-info-bg-dark:#0a1c2e;--amazon-info-border-dark:#1a5183;--amazon-info-icon-dark:#7fb4da;--amazon-warning-bg-dark:#342a0a;--amazon-warning-border-dark:#705711;--amazon-warning-icon-dark:#ffd996;--amazon-error-bg-dark:#2b0c0c;--amazon-error-border-dark:#721c1c;--amazon-error-icon-dark:#ff8f8f;--amazon-animation-duration:0.2s}@keyframes amazonSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fl-amazon{animation:amazonSlideDown var(--amazon-animation-duration) ease-out;font-family:Arial,sans-serif;margin:10px 0;max-width:500px;position:relative;width:100%}.fl-amazon .fl-amazon-alert{background-color:var(--amazon-bg-light);border:1px solid;border-left:4px solid;border-radius:8px;box-shadow:0 2px 5px rgba(15,17,17,.15);color:var(--amazon-text-light);display:flex;padding:14px}.fl-amazon .fl-alert-content{align-items:flex-start;display:flex;flex:1}.fl-amazon .fl-icon-container{color:currentColor;flex-shrink:0;margin-right:12px}.fl-amazon .fl-text-content{flex:1;min-width:0}.fl-amazon .fl-alert-title{font-size:16px;font-weight:700;margin-bottom:4px}.fl-amazon .fl-alert-message{color:var(--amazon-text-secondary-light);font-size:14px;line-height:20px}.fl-amazon .fl-alert-actions{margin-left:16px}.fl-amazon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--amazon-text-secondary-light);cursor:pointer;display:flex;height:30px;justify-content:center;padding:0;transition:all .2s;width:30px}.fl-amazon .fl-close:hover{background-color:rgba(0,0,0,.05);color:var(--amazon-text-light)}.fl-amazon.fl-success .fl-amazon-alert{background-color:var(--amazon-success-bg);border-color:var(--amazon-success-border)}.fl-amazon.fl-success .fl-icon-container{color:var(--amazon-success-icon)}.fl-amazon.fl-info .fl-amazon-alert{background-color:var(--amazon-info-bg);border-color:var(--amazon-info-border)}.fl-amazon.fl-info .fl-icon-container{color:var(--amazon-info-icon)}.fl-amazon.fl-warning .fl-amazon-alert{background-color:var(--amazon-warning-bg);border-color:var(--amazon-warning-border)}.fl-amazon.fl-warning .fl-icon-container{color:var(--amazon-warning-icon)}.fl-amazon.fl-error .fl-amazon-alert{background-color:var(--amazon-error-bg);border-color:var(--amazon-error-border)}.fl-amazon.fl-error .fl-icon-container{color:var(--amazon-error-icon)}.fl-amazon.fl-rtl{direction:rtl}.fl-amazon.fl-rtl .fl-icon-container{margin-left:12px;margin-right:0}.fl-amazon.fl-rtl .fl-alert-actions{margin-left:0;margin-right:16px}.fl-amazon.fl-rtl .fl-amazon-alert{border-left-width:1px;border-right-width:4px}@media (prefers-reduced-motion:reduce){.fl-amazon{animation:none}}.fl-amazon.fl-auto-dark .fl-amazon-alert,body.fl-dark .fl-amazon .fl-amazon-alert,html.fl-dark .fl-amazon .fl-amazon-alert{background-color:var(--amazon-bg-dark);border-color:var(--amazon-border-dark);box-shadow:0 2px 5px rgba(0,0,0,.3);color:var(--amazon-text-dark)}.fl-amazon.fl-auto-dark .fl-alert-message,.fl-amazon.fl-auto-dark .fl-close,body.fl-dark .fl-amazon .fl-alert-message,body.fl-dark .fl-amazon .fl-close,html.fl-dark .fl-amazon .fl-alert-message,html.fl-dark .fl-amazon .fl-close{color:var(--amazon-text-secondary-dark)}.fl-amazon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-amazon .fl-close:hover,html.fl-dark .fl-amazon .fl-close:hover{background-color:hsla(0,0%,100%,.1);color:var(--amazon-text-dark)}.fl-amazon.fl-auto-dark.fl-success .fl-amazon-alert,body.fl-dark .fl-amazon.fl-success .fl-amazon-alert,html.fl-dark .fl-amazon.fl-success .fl-amazon-alert{background-color:var(--amazon-success-bg-dark);border-color:var(--amazon-success-border-dark)}.fl-amazon.fl-auto-dark.fl-success .fl-icon-container,body.fl-dark .fl-amazon.fl-success .fl-icon-container,html.fl-dark .fl-amazon.fl-success .fl-icon-container{color:var(--amazon-success-icon-dark)}.fl-amazon.fl-auto-dark.fl-info .fl-amazon-alert,body.fl-dark .fl-amazon.fl-info .fl-amazon-alert,html.fl-dark .fl-amazon.fl-info .fl-amazon-alert{background-color:var(--amazon-info-bg-dark);border-color:var(--amazon-info-border-dark)}.fl-amazon.fl-auto-dark.fl-info .fl-icon-container,body.fl-dark .fl-amazon.fl-info .fl-icon-container,html.fl-dark .fl-amazon.fl-info .fl-icon-container{color:var(--amazon-info-icon-dark)}.fl-amazon.fl-auto-dark.fl-warning .fl-amazon-alert,body.fl-dark .fl-amazon.fl-warning .fl-amazon-alert,html.fl-dark .fl-amazon.fl-warning .fl-amazon-alert{background-color:var(--amazon-warning-bg-dark);border-color:var(--amazon-warning-border-dark)}.fl-amazon.fl-auto-dark.fl-warning .fl-icon-container,body.fl-dark .fl-amazon.fl-warning .fl-icon-container,html.fl-dark .fl-amazon.fl-warning .fl-icon-container{color:var(--amazon-warning-icon-dark)}.fl-amazon.fl-auto-dark.fl-error .fl-amazon-alert,body.fl-dark .fl-amazon.fl-error .fl-amazon-alert,html.fl-dark .fl-amazon.fl-error .fl-amazon-alert{background-color:var(--amazon-error-bg-dark);border-color:var(--amazon-error-border-dark)}.fl-amazon.fl-auto-dark.fl-error .fl-icon-container,body.fl-dark .fl-amazon.fl-error .fl-icon-container,html.fl-dark .fl-amazon.fl-error .fl-icon-container{color:var(--amazon-error-icon-dark)}.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber:last-child{margin-bottom:0}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)}.fl-aurora{--aurora-bg-light:hsla(0,0%,100%,.95);--aurora-bg-dark:rgba(20,20,28,.92);--aurora-text-light:#1e293b;--aurora-text-dark:#f8fafc;--aurora-shadow:0 8px 25px rgba(0,0,0,.08);--aurora-shadow-dark:0 10px 30px rgba(0,0,0,.16);--aurora-border-radius:16px;--aurora-blur:15px;--aurora-success-gradient:linear-gradient(135deg,rgba(16,185,129,.08),rgba(16,185,129,.2));--aurora-info-gradient:linear-gradient(135deg,rgba(59,130,246,.08),rgba(59,130,246,.2));--aurora-warning-gradient:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.2));--aurora-error-gradient:linear-gradient(135deg,rgba(239,68,68,.08),rgba(239,68,68,.2));--aurora-success:#10b981;--aurora-info:#3b82f6;--aurora-warning:#f59e0b;--aurora-error:#ef4444}@keyframes auroraFadeIn{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-aurora{animation:auroraFadeIn .35s cubic-bezier(.21,1.02,.73,1);backdrop-filter:blur(var(--aurora-blur));-webkit-backdrop-filter:blur(var(--aurora-blur));background-color:var(--aurora-bg-light);border-radius:var(--aurora-border-radius);box-shadow:var(--aurora-shadow);color:var(--aurora-text-light);font-family:var(--fl-font),sans-serif;margin:10px 0;overflow:hidden;padding:16px 18px;position:relative;will-change:transform,opacity}.fl-aurora:before{border-radius:inherit;content:"";inset:0;opacity:.8;position:absolute;z-index:0}.fl-aurora .fl-content{align-items:center;display:flex;position:relative;z-index:1}.fl-aurora .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5;margin-right:10px}.fl-aurora .fl-close{align-items:center;background:rgba(0,0,0,.05);border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:28px;justify-content:center;opacity:.7;transition:all .2s ease;width:28px}.fl-aurora .fl-close:focus,.fl-aurora .fl-close:hover{background:rgba(0,0,0,.1);opacity:1}.fl-aurora .fl-progress-bar{border-radius:6px;bottom:2px;height:3px;left:2px;opacity:.7;overflow:hidden;position:absolute;right:2px;z-index:1}.fl-aurora .fl-progress{height:100%;width:100%}.fl-aurora.fl-success:before{background:var(--aurora-success-gradient)}.fl-aurora.fl-success .fl-progress{background-color:var(--aurora-success)}.fl-aurora.fl-info:before{background:var(--aurora-info-gradient)}.fl-aurora.fl-info .fl-progress{background-color:var(--aurora-info)}.fl-aurora.fl-warning:before{background:var(--aurora-warning-gradient)}.fl-aurora.fl-warning .fl-progress{background-color:var(--aurora-warning)}.fl-aurora.fl-error:before{background:var(--aurora-error-gradient)}.fl-aurora.fl-error .fl-progress{background-color:var(--aurora-error)}.fl-aurora.fl-rtl{direction:rtl}.fl-aurora.fl-rtl .fl-message{margin-left:10px;margin-right:0}.fl-aurora.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-aurora{animation:none}}.fl-aurora.fl-auto-dark,body.fl-dark .fl-aurora,html.fl-dark .fl-aurora{background-color:var(--aurora-bg-dark);box-shadow:var(--aurora-shadow-dark);color:var(--aurora-text-dark)}.fl-aurora.fl-auto-dark .fl-close,body.fl-dark .fl-aurora .fl-close,html.fl-dark .fl-aurora .fl-close{background:hsla(0,0%,100%,.1)}.fl-aurora.fl-auto-dark .fl-close:focus,.fl-aurora.fl-auto-dark .fl-close:hover,body.fl-dark .fl-aurora .fl-close:focus,body.fl-dark .fl-aurora .fl-close:hover,html.fl-dark .fl-aurora .fl-close:focus,html.fl-dark .fl-aurora .fl-close:hover{background:hsla(0,0%,100%,.15)}.fl-aurora.fl-auto-dark.fl-success:before,body.fl-dark .fl-aurora.fl-success:before,html.fl-dark .fl-aurora.fl-success:before{background:linear-gradient(135deg,rgba(16,185,129,.1),rgba(16,185,129,.25))}.fl-aurora.fl-auto-dark.fl-info:before,body.fl-dark .fl-aurora.fl-info:before,html.fl-dark .fl-aurora.fl-info:before{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.25))}.fl-aurora.fl-auto-dark.fl-warning:before,body.fl-dark .fl-aurora.fl-warning:before,html.fl-dark .fl-aurora.fl-warning:before{background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(245,158,11,.25))}.fl-aurora.fl-auto-dark.fl-error:before,body.fl-dark .fl-aurora.fl-error:before,html.fl-dark .fl-aurora.fl-error:before{background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.25))}.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal:last-child{margin-bottom:0}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)}.fl-emerald{--emerald-bg-light:hsla(0,0%,100%,.9);--emerald-bg-dark:rgba(30,30,30,.9);--emerald-text-light:#333;--emerald-text-dark:hsla(0,0%,100%,.9);--emerald-shadow:rgba(0,0,0,.1);--emerald-blur:8px;--emerald-success:var(--success-color,#16a085);--emerald-error:var(--error-color,#e74c3c);--emerald-warning:var(--warning-color,#f39c12);--emerald-info:var(--info-color,#3498db)}@keyframes emeraldIn{0%{opacity:0;transform:scale(.5) translateY(20px)}60%{opacity:1;transform:scale(1.1) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.fl-emerald{animation:emeraldIn .5s cubic-bezier(.23,1,.32,1);backdrop-filter:blur(var(--emerald-blur));-webkit-backdrop-filter:blur(var(--emerald-blur));background:var(--emerald-bg-light);border-radius:10px;box-shadow:0 10px 20px var(--emerald-shadow);color:var(--emerald-text-light);font-family:"Inter",var(--fl-font),serif;margin:0 0 .5rem;overflow:hidden;padding:1rem 1.5rem 1rem 1rem;position:relative}.fl-emerald .fl-content{align-items:center;display:flex}.fl-emerald .fl-message{flex:1;font-size:.9rem;font-weight:500;line-height:1.4}.fl-emerald .fl-close{background:transparent;border:none;color:currentColor;cursor:pointer;font-size:1.3rem;margin-left:auto;opacity:.7;transition:opacity .2s ease}.fl-emerald .fl-close:focus,.fl-emerald .fl-close:hover{opacity:1}.fl-emerald.fl-success{color:var(--emerald-success)}.fl-emerald.fl-error{color:var(--emerald-error)}.fl-emerald.fl-warning{color:var(--emerald-warning)}.fl-emerald.fl-info{color:var(--emerald-info)}.fl-emerald.fl-rtl{direction:rtl;padding:1rem 1rem 1rem 1.5rem}.fl-emerald.fl-rtl .fl-content{flex-direction:row-reverse}.fl-emerald.fl-rtl .fl-close{margin-left:0;margin-right:auto}@media (prefers-reduced-motion:reduce){.fl-emerald{animation:none}}.fl-emerald.fl-auto-dark,body.fl-dark .fl-emerald,html.fl-dark .fl-emerald{background:var(--emerald-bg-dark)}.fl-emerald.fl-auto-dark .fl-message,body.fl-dark .fl-emerald .fl-message,html.fl-dark .fl-emerald .fl-message{color:var(--emerald-text-dark)}.fl-facebook{--fb-bg-light:#fff;--fb-bg-dark:#242526;--fb-text-light:#050505;--fb-text-secondary-light:#65676b;--fb-text-dark:#e4e6eb;--fb-text-secondary-dark:#b0b3b8;--fb-hover-light:#f0f2f5;--fb-hover-dark:#3a3b3c;--fb-border-light:#e4e6eb;--fb-border-dark:#3e4042;--fb-blue:#1876f2;--fb-name-color:#050505;--fb-name-color-dark:#e4e6eb;--fb-success:#31a24c;--fb-info:#1876f2;--fb-warning:#f7b928;--fb-error:#e41e3f;--fb-success-bg:#e7f3ff;--fb-info-bg:#e7f3ff;--fb-warning-bg:#fff5cc;--fb-error-bg:#ffebe9;--fb-success-bg-dark:#263c4b;--fb-info-bg-dark:#263c4b;--fb-warning-bg-dark:#3e3c26;--fb-error-bg-dark:#472835;--fb-animation-duration:0.2s}@keyframes fbFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-facebook{animation:fbFadeIn var(--fb-animation-duration) ease-out;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:8px 0;max-width:450px;position:relative;width:100%}.fl-facebook .fl-fb-notification{align-items:flex-start;background-color:var(--fb-bg-light);border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:var(--fb-text-light);display:flex;padding:12px;transition:background-color .1s ease}.fl-facebook .fl-fb-notification:hover{background-color:var(--fb-hover-light)}.fl-facebook .fl-icon-container{flex-shrink:0;margin-right:12px}.fl-facebook .fl-fb-icon{align-items:center;border-radius:50%;display:flex;height:36px;justify-content:center;width:36px}.fl-facebook .fl-fb-icon svg{color:#fff}.fl-facebook .fl-fb-icon-success{background-color:var(--fb-success)}.fl-facebook .fl-fb-icon-info{background-color:var(--fb-info)}.fl-facebook .fl-fb-icon-warning{background-color:var(--fb-warning)}.fl-facebook .fl-fb-icon-error{background-color:var(--fb-error)}.fl-facebook .fl-content{flex:1;min-width:0}.fl-facebook .fl-message{font-size:15px;line-height:1.33;margin-bottom:4px}.fl-facebook .fl-user-name{color:var(--fb-name-color);font-weight:600;margin-right:4px}.fl-facebook .fl-meta{align-items:center;display:flex}.fl-facebook .fl-time{color:var(--fb-text-secondary-light);font-size:13px}.fl-facebook .fl-actions{align-items:center;display:flex;margin-left:12px}.fl-facebook .fl-button{align-items:center;background:var(--fb-hover-light);border:none;border-radius:50%;color:var(--fb-text-secondary-light);cursor:pointer;display:flex;height:32px;justify-content:center;margin-left:8px;transition:background-color .1s;width:32px}.fl-facebook .fl-button:hover{background-color:var(--fb-border-light)}.fl-facebook .fl-button-icon{align-items:center;display:flex;justify-content:center}.fl-facebook.fl-rtl{direction:rtl}.fl-facebook.fl-rtl .fl-icon-container{margin-left:12px;margin-right:0}.fl-facebook.fl-rtl .fl-user-name{margin-left:4px;margin-right:0}.fl-facebook.fl-rtl .fl-actions{margin-left:0;margin-right:12px}.fl-facebook.fl-rtl .fl-button{margin-left:0;margin-right:8px}@media (prefers-reduced-motion:reduce){.fl-facebook{animation:none}}.fl-facebook.fl-auto-dark .fl-fb-notification,body.fl-dark .fl-facebook .fl-fb-notification,html.fl-dark .fl-facebook .fl-fb-notification{background-color:var(--fb-bg-dark);box-shadow:0 1px 2px rgba(0,0,0,.2);color:var(--fb-text-dark)}.fl-facebook.fl-auto-dark .fl-fb-notification:hover,body.fl-dark .fl-facebook .fl-fb-notification:hover,html.fl-dark .fl-facebook .fl-fb-notification:hover{background-color:var(--fb-hover-dark)}.fl-facebook.fl-auto-dark .fl-user-name,body.fl-dark .fl-facebook .fl-user-name,html.fl-dark .fl-facebook .fl-user-name{color:var(--fb-name-color-dark)}.fl-facebook.fl-auto-dark .fl-time,body.fl-dark .fl-facebook .fl-time,html.fl-dark .fl-facebook .fl-time{color:var(--fb-text-secondary-dark)}.fl-facebook.fl-auto-dark .fl-button,body.fl-dark .fl-facebook .fl-button,html.fl-dark .fl-facebook .fl-button{background:var(--fb-hover-dark);color:var(--fb-text-secondary-dark)}.fl-facebook.fl-auto-dark .fl-button:hover,body.fl-dark .fl-facebook .fl-button:hover,html.fl-dark .fl-facebook .fl-button:hover{background-color:var(--fb-border-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-success,body.fl-dark .fl-facebook .fl-fb-icon-success,html.fl-dark .fl-facebook .fl-fb-icon-success{background-color:var(--fb-success-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-success svg,body.fl-dark .fl-facebook .fl-fb-icon-success svg,html.fl-dark .fl-facebook .fl-fb-icon-success svg{color:var(--fb-success)}.fl-facebook.fl-auto-dark .fl-fb-icon-info,body.fl-dark .fl-facebook .fl-fb-icon-info,html.fl-dark .fl-facebook .fl-fb-icon-info{background-color:var(--fb-info-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-info svg,body.fl-dark .fl-facebook .fl-fb-icon-info svg,html.fl-dark .fl-facebook .fl-fb-icon-info svg{color:var(--fb-info)}.fl-facebook.fl-auto-dark .fl-fb-icon-warning,body.fl-dark .fl-facebook .fl-fb-icon-warning,html.fl-dark .fl-facebook .fl-fb-icon-warning{background-color:var(--fb-warning-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-warning svg,body.fl-dark .fl-facebook .fl-fb-icon-warning svg,html.fl-dark .fl-facebook .fl-fb-icon-warning svg{color:var(--fb-warning)}.fl-facebook.fl-auto-dark .fl-fb-icon-error,body.fl-dark .fl-facebook .fl-fb-icon-error,html.fl-dark .fl-facebook .fl-fb-icon-error{background-color:var(--fb-error-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-error svg,body.fl-dark .fl-facebook .fl-fb-icon-error svg,html.fl-dark .fl-facebook .fl-fb-icon-error svg{color:var(--fb-error)}@keyframes flasherIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.fl-flasher{animation:flasherIn .3s ease-out;background-color:var(--background-color,var(--fl-bg-light));border-bottom:none;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);color:var(--text-color,var(--fl-text-light));font-family:var(--fl-font),serif;line-height:1.5;margin:.75em 0;padding:.75em;position:relative;transition:transform .2s ease;will-change:transform,opacity;word-break:break-word}.fl-flasher:hover{transform:translateY(-2px)}.fl-flasher.fl-rtl{border-radius:0 .375em .375em 0}.fl-flasher:not(.fl-rtl){border-radius:.375em 0 0 .375em}.fl-flasher .fl-content{align-items:center;display:flex}.fl-flasher .fl-icon{font-size:2.5em}.fl-flasher .fl-message,.fl-flasher .fl-title{display:block;line-height:1.25em;margin-left:1em;margin-right:1em}.fl-flasher .fl-title{font-size:1em;font-weight:600}.fl-flasher .fl-message{font-size:.875em;margin-top:.25em}.fl-flasher .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:opacity .2s ease}.fl-flasher .fl-close:focus,.fl-flasher .fl-close:hover{opacity:1}.fl-flasher.fl-rtl{direction:rtl}.fl-flasher.fl-rtl .fl-content{flex-direction:row-reverse}.fl-flasher.fl-rtl .fl-close{left:.75rem;right:auto}.fl-flasher.fl-success{border-left:.8em solid var(--success-color,var(--fl-success))}.fl-flasher.fl-success.fl-rtl{border-left:none;border-right:.8em solid var(--success-color,var(--fl-success))}.fl-flasher.fl-success:not(.fl-rtl){border-left:.8em solid var(--success-color,var(--fl-success));border-right:none}.fl-flasher.fl-success .fl-close,.fl-flasher.fl-success .fl-title{color:var(--success-color,var(--fl-success))}.fl-flasher.fl-success .fl-close:focus,.fl-flasher.fl-success .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-info{border-left:.8em solid var(--info-color,var(--fl-info))}.fl-flasher.fl-info.fl-rtl{border-left:none;border-right:.8em solid var(--info-color,var(--fl-info))}.fl-flasher.fl-info:not(.fl-rtl){border-left:.8em solid var(--info-color,var(--fl-info));border-right:none}.fl-flasher.fl-info .fl-close,.fl-flasher.fl-info .fl-title{color:var(--info-color,var(--fl-info))}.fl-flasher.fl-info .fl-close:focus,.fl-flasher.fl-info .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-warning{border-left:.8em solid var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning.fl-rtl{border-left:none;border-right:.8em solid var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning:not(.fl-rtl){border-left:.8em solid var(--warning-color,var(--fl-warning));border-right:none}.fl-flasher.fl-warning .fl-close,.fl-flasher.fl-warning .fl-title{color:var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning .fl-close:focus,.fl-flasher.fl-warning .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-error{border-left:.8em solid var(--error-color,var(--fl-error))}.fl-flasher.fl-error.fl-rtl{border-left:none;border-right:.8em solid var(--error-color,var(--fl-error))}.fl-flasher.fl-error:not(.fl-rtl){border-left:.8em solid var(--error-color,var(--fl-error));border-right:none}.fl-flasher.fl-error .fl-close,.fl-flasher.fl-error .fl-title{color:var(--error-color,var(--fl-error))}.fl-flasher.fl-error .fl-close:focus,.fl-flasher.fl-error .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher .fl-progress-bar{bottom:0;display:flex;height:.125em;left:0;overflow:hidden;position:absolute;right:0}.fl-flasher.fl-success .fl-progress-bar{background-color:var(--success-color-light,var(--fl-success-light))}.fl-flasher.fl-success .fl-progress-bar .fl-progress{background-color:var(--success-color,var(--fl-success));height:100%;width:100%}.fl-flasher.fl-info .fl-progress-bar{background-color:var(--info-color-light,var(--fl-info-light))}.fl-flasher.fl-info .fl-progress-bar .fl-progress{background-color:var(--info-color,var(--fl-info));height:100%;width:100%}.fl-flasher.fl-warning .fl-progress-bar{background-color:var(--warning-color-light,var(--fl-warning-light))}.fl-flasher.fl-warning .fl-progress-bar .fl-progress{background-color:var(--warning-color,var(--fl-warning));height:100%;width:100%}.fl-flasher.fl-error .fl-progress-bar{background-color:var(--error-color-light,var(--fl-error-light))}.fl-flasher.fl-error .fl-progress-bar .fl-progress{background-color:var(--error-color,var(--fl-error));height:100%;width:100%}@media (prefers-color-scheme:dark){.fl-flasher.fl-auto-dark{background-color:var(--dark-background-color,var(--fl-bg-dark));color:var(--dark-text-color,var(--fl-text-dark))}}body.fl-dark .fl-flasher,html.fl-dark .fl-flasher{background-color:var(--dark-background-color,var(--fl-bg-dark));color:var(--dark-text-color,var(--fl-text-dark))}@media (prefers-reduced-motion:reduce){.fl-flasher{animation:none}.fl-flasher:hover{transform:none}.fl-flasher .fl-close:focus,.fl-flasher .fl-close:hover{transform:translateY(-50%)}}.fl-google{--md-bg-light:#fff;--md-bg-dark:#2d2d2d;--md-text-light:rgba(0,0,0,.87);--md-text-secondary-light:rgba(0,0,0,.6);--md-text-dark:hsla(0,0%,100%,.87);--md-text-secondary-dark:hsla(0,0%,100%,.6);--md-elevation:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);--md-elevation-dark:0 3px 5px -1px rgba(0,0,0,.4),0 6px 10px 0 rgba(0,0,0,.28),0 1px 18px 0 rgba(0,0,0,.24);--md-border-radius:4px;--md-success:#43a047;--md-info:#1e88e5;--md-warning:#fb8c00;--md-error:#e53935;--md-animation-duration:0.3s;--md-ripple-duration:0.6s;animation:mdSlideUp var(--md-animation-duration) cubic-bezier(.4,0,.2,1);font-family:Roboto,Segoe UI,Helvetica,Arial,sans-serif;margin:8px 0;max-width:400px;position:relative;width:100%}.fl-google .fl-md-card{background-color:var(--md-bg-light);border-radius:var(--md-border-radius);box-shadow:var(--md-elevation);color:var(--md-text-light);overflow:hidden}.fl-google .fl-content{align-items:flex-start;display:flex;padding:16px}.fl-google .fl-icon-wrapper{color:var(--md-text-secondary-light);flex-shrink:0;margin-right:16px}.fl-google .fl-text-content{flex:1}.fl-google .fl-title{font-size:1rem;font-weight:500;margin-bottom:4px}.fl-google .fl-message{color:var(--md-text-secondary-light);font-size:.875rem;line-height:1.43}.fl-google .fl-actions{display:flex;justify-content:flex-end;padding:8px}.fl-google .fl-action-button{background:transparent;border:none;border-radius:4px;color:currentColor;cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:500;letter-spacing:.0892857143em;overflow:hidden;padding:8px 12px;position:relative;text-transform:uppercase;transition:background-color .2s}.fl-google .fl-action-button:focus,.fl-google .fl-action-button:hover{background-color:rgba(0,0,0,.04)}.fl-google .fl-action-button:after{background:currentColor;border-radius:50%;content:"";height:5px;opacity:0;pointer-events:none;position:absolute;transform:scale(1);width:5px}.fl-google .fl-action-button:active:after{animation:mdRipple var(--md-ripple-duration) linear;opacity:.3}.fl-google.fl-success .fl-action-button,.fl-google.fl-success .fl-icon-wrapper{color:var(--md-success)}.fl-google.fl-info .fl-action-button,.fl-google.fl-info .fl-icon-wrapper{color:var(--md-info)}.fl-google.fl-warning .fl-action-button,.fl-google.fl-warning .fl-icon-wrapper{color:var(--md-warning)}.fl-google.fl-error .fl-action-button,.fl-google.fl-error .fl-icon-wrapper{color:var(--md-error)}.fl-google .fl-progress-bar{bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-google .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-google.fl-success .fl-progress{background-color:var(--md-success)}.fl-google.fl-info .fl-progress{background-color:var(--md-info)}.fl-google.fl-warning .fl-progress{background-color:var(--md-warning)}.fl-google.fl-error .fl-progress{background-color:var(--md-error)}.fl-google.fl-rtl{direction:rtl}.fl-google.fl-rtl .fl-content{flex-direction:row-reverse}.fl-google.fl-rtl .fl-icon-wrapper{margin-left:16px;margin-right:0}.fl-google.fl-rtl .fl-actions{justify-content:flex-start}.fl-google.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-google,.fl-google .fl-action-button:active:after{animation:none}}.fl-google.fl-auto-dark .fl-md-card,body.fl-dark .fl-google .fl-md-card,html.fl-dark .fl-google .fl-md-card{background-color:var(--md-bg-dark);box-shadow:var(--md-elevation-dark);color:var(--md-text-dark)}.fl-google.fl-auto-dark .fl-message,body.fl-dark .fl-google .fl-message,html.fl-dark .fl-google .fl-message{color:var(--md-text-secondary-dark)}.fl-google.fl-auto-dark .fl-action-button:focus,.fl-google.fl-auto-dark .fl-action-button:hover,body.fl-dark .fl-google .fl-action-button:focus,body.fl-dark .fl-google .fl-action-button:hover,html.fl-dark .fl-google .fl-action-button:focus,html.fl-dark .fl-google .fl-action-button:hover{background-color:hsla(0,0%,100%,.08)}.fl-ios{--ios-bg-light:hsla(0,0%,100%,.85);--ios-bg-dark:rgba(30,30,30,.85);--ios-text-light:#000;--ios-text-secondary-light:#6e6e6e;--ios-text-dark:#fff;--ios-text-secondary-dark:#a8a8a8;--ios-border-radius:13px;--ios-shadow:0 2px 12px rgba(0,0,0,.15);--ios-shadow-dark:0 2px 12px rgba(0,0,0,.35);--ios-icon-size:18px;--ios-blur:30px;--ios-success:#34c759;--ios-info:#007aff;--ios-warning:#ff9500;--ios-error:#ff3b30;--ios-animation-duration:0.4s}@keyframes iosSlideIn{0%{opacity:0;transform:translateY(-15px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes iosExpand{0%{max-height:0;opacity:0}to{max-height:100px;opacity:1}}.fl-ios{animation:iosSlideIn var(--ios-animation-duration) cubic-bezier(.23,1,.32,1);font-family:-apple-system,BlinkMacSystemFont,San Francisco,Helvetica Neue,Helvetica,Arial,sans-serif;margin:10px 0;max-width:400px;position:relative;width:100%;will-change:transform,opacity}.fl-ios .fl-ios-notification{backdrop-filter:blur(var(--ios-blur));-webkit-backdrop-filter:blur(var(--ios-blur));background-color:var(--ios-bg-light);border-radius:var(--ios-border-radius);box-shadow:var(--ios-shadow);color:var(--ios-text-light);padding:12px 15px;position:relative}.fl-ios .fl-header{align-items:center;display:flex;margin-bottom:8px;padding-right:20px}.fl-ios .fl-app-icon{align-items:center;background-color:currentColor;border-radius:5px;display:flex;flex-shrink:0;height:22px;justify-content:center;margin-right:8px;width:22px}.fl-ios .fl-icon-svg{color:#fff;height:14px;width:14px}.fl-ios .fl-app-info{align-items:baseline;display:flex;flex:1;justify-content:space-between}.fl-ios .fl-app-name{font-size:.85rem;font-weight:600}.fl-ios .fl-time{color:var(--ios-text-secondary-light);flex-shrink:0;font-size:.75rem;margin-left:5px}.fl-ios .fl-content{animation:iosExpand .3s forwards;animation-delay:.1s;overflow:hidden}.fl-ios .fl-message{font-size:.95rem;line-height:1.3;margin:0;padding-right:15px}.fl-ios .fl-close{align-items:center;background-color:rgba(0,0,0,.1);border:none;border-radius:50%;color:var(--ios-text-light);cursor:pointer;display:flex;font-size:14px;height:18px;justify-content:center;line-height:1;opacity:.7;padding:0;position:absolute;right:12px;top:10px;transition:opacity .2s;width:18px}.fl-ios .fl-close:focus,.fl-ios .fl-close:hover{opacity:1}.fl-ios.fl-success .fl-app-icon{color:var(--ios-success)}.fl-ios.fl-info .fl-app-icon{color:var(--ios-info)}.fl-ios.fl-warning .fl-app-icon{color:var(--ios-warning)}.fl-ios.fl-error .fl-app-icon{color:var(--ios-error)}.fl-ios.fl-rtl{direction:rtl}.fl-ios.fl-rtl .fl-header{padding-left:20px;padding-right:0}.fl-ios.fl-rtl .fl-app-icon{margin-left:8px;margin-right:0}.fl-ios.fl-rtl .fl-time{margin-left:0;margin-right:5px}.fl-ios.fl-rtl .fl-message{padding-left:15px;padding-right:0}.fl-ios.fl-rtl .fl-close{left:12px;right:auto}@media (prefers-reduced-motion:reduce){.fl-ios{animation:none}.fl-ios .fl-content{animation:none;max-height:none;opacity:1}}@media screen and (max-width:480px){.fl-ios{width:100%}}.fl-ios.fl-auto-dark .fl-ios-notification,body.fl-dark .fl-ios .fl-ios-notification,html.fl-dark .fl-ios .fl-ios-notification{background-color:var(--ios-bg-dark);box-shadow:var(--ios-shadow-dark);color:var(--ios-text-dark)}.fl-ios.fl-auto-dark .fl-time,body.fl-dark .fl-ios .fl-time,html.fl-dark .fl-ios .fl-time{color:var(--ios-text-secondary-dark)}.fl-ios.fl-auto-dark .fl-close,body.fl-dark .fl-ios .fl-close,html.fl-dark .fl-ios .fl-close{background-color:hsla(0,0%,100%,.2);color:var(--ios-text-dark)}.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade:last-child{margin-bottom:0}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)}.fl-material{--md-bg-light:#fff;--md-bg-dark:#2d2d2d;--md-text-light:rgba(0,0,0,.87);--md-text-secondary-light:rgba(0,0,0,.6);--md-text-dark:hsla(0,0%,100%,.87);--md-text-secondary-dark:hsla(0,0%,100%,.6);--md-elevation:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);--md-elevation-dark:0 3px 5px -1px rgba(0,0,0,.4),0 6px 10px 0 rgba(0,0,0,.28),0 1px 18px 0 rgba(0,0,0,.24);--md-border-radius:4px;--md-success:#43a047;--md-info:#1e88e5;--md-warning:#fb8c00;--md-error:#e53935;--md-animation-duration:0.3s;--md-ripple-duration:0.6s}@keyframes mdSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes mdRipple{to{opacity:0;transform:scale(4)}}.fl-material{animation:mdSlideUp var(--md-animation-duration) cubic-bezier(.4,0,.2,1);font-family:Roboto,Segoe UI,Helvetica,Arial,sans-serif;margin:8px 0;max-width:400px;position:relative;width:100%}.fl-material .fl-md-card{background-color:var(--md-bg-light);border-radius:var(--md-border-radius);box-shadow:var(--md-elevation);color:var(--md-text-light);overflow:hidden}.fl-material .fl-content{align-items:flex-start;display:flex;padding:16px}.fl-material .fl-text-content{flex:1}.fl-material .fl-message{color:var(--md-text-secondary-light);font-size:.875rem;line-height:1.43}.fl-material .fl-actions{display:flex;justify-content:flex-end;padding:8px}.fl-material .fl-action-button{background:transparent;border:none;border-radius:4px;color:currentColor;cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:500;letter-spacing:.0892857143em;overflow:hidden;padding:8px 12px;position:relative;text-transform:uppercase;transition:background-color .2s}.fl-material .fl-action-button:focus,.fl-material .fl-action-button:hover{background-color:rgba(0,0,0,.04)}.fl-material .fl-action-button:after{background:currentColor;border-radius:50%;content:"";height:5px;opacity:0;pointer-events:none;position:absolute;transform:scale(1);width:5px}.fl-material .fl-action-button:active:after{animation:mdRipple var(--md-ripple-duration) linear;opacity:.3}.fl-material.fl-success .fl-action-button,.fl-material.fl-success .fl-icon-wrapper{color:var(--md-success)}.fl-material.fl-info .fl-action-button,.fl-material.fl-info .fl-icon-wrapper{color:var(--md-info)}.fl-material.fl-warning .fl-action-button,.fl-material.fl-warning .fl-icon-wrapper{color:var(--md-warning)}.fl-material.fl-error .fl-action-button,.fl-material.fl-error .fl-icon-wrapper{color:var(--md-error)}.fl-material .fl-progress-bar{bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-material .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-material.fl-success .fl-progress{background-color:var(--md-success)}.fl-material.fl-info .fl-progress{background-color:var(--md-info)}.fl-material.fl-warning .fl-progress{background-color:var(--md-warning)}.fl-material.fl-error .fl-progress{background-color:var(--md-error)}.fl-material.fl-rtl{direction:rtl}.fl-material.fl-rtl .fl-content{flex-direction:row-reverse}.fl-material.fl-rtl .fl-icon-wrapper{margin-left:16px;margin-right:0}.fl-material.fl-rtl .fl-actions{justify-content:flex-start}.fl-material.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-material,.fl-material .fl-action-button:active:after{animation:none}}.fl-material.fl-auto-dark .fl-md-card,body.fl-dark .fl-material .fl-md-card,html.fl-dark .fl-material .fl-md-card{background-color:var(--md-bg-dark);box-shadow:var(--md-elevation-dark);color:var(--md-text-dark)}.fl-material.fl-auto-dark .fl-message,body.fl-dark .fl-material .fl-message,html.fl-dark .fl-material .fl-message{color:var(--md-text-secondary-dark)}.fl-material.fl-auto-dark .fl-action-button:focus,.fl-material.fl-auto-dark .fl-action-button:hover,body.fl-dark .fl-material .fl-action-button:focus,body.fl-dark .fl-material .fl-action-button:hover,html.fl-dark .fl-material .fl-action-button:focus,html.fl-dark .fl-material .fl-action-button:hover{background-color:hsla(0,0%,100%,.08)}.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal:last-child{margin-bottom:0}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)}.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)}.fl-onyx{--onyx-bg-light:#fff;--onyx-bg-dark:#1e1e1e;--onyx-text-light:#333;--onyx-text-dark:#f5f5f5;--onyx-shadow:0 8px 30px rgba(0,0,0,.12);--onyx-shadow-dark:0 8px 30px rgba(0,0,0,.25);--onyx-border-radius:1rem;--onyx-success:#10b981;--onyx-info:#3b82f6;--onyx-warning:#f59e0b;--onyx-error:#ef4444}@keyframes onyxIn{0%{filter:blur(3px);opacity:0;transform:translateY(15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}.fl-onyx{animation:onyxIn .4s cubic-bezier(.16,1,.3,1);background-color:var(--onyx-bg-light);border-radius:var(--onyx-border-radius);box-shadow:var(--onyx-shadow);color:var(--onyx-text-light);font-family:var(--fl-font),serif;margin:.75rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity,filter}.fl-onyx:after,.fl-onyx:before{border-radius:50%;content:"";height:6px;position:absolute;width:6px;z-index:1}.fl-onyx:before{left:10px;top:10px}.fl-onyx:after{bottom:10px;right:10px}.fl-onyx .fl-content{align-items:center;display:flex;padding-left:.4rem}.fl-onyx .fl-text{flex:1;position:relative}.fl-onyx .fl-message{font-size:.925rem;font-weight:400;letter-spacing:.01rem;line-height:1.5}.fl-onyx .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1.25rem;height:1.75rem;justify-content:center;margin-left:1rem;opacity:.6;padding:.25rem;transition:all .2s ease;width:1.75rem}.fl-onyx .fl-close:focus,.fl-onyx .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-onyx .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-onyx .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-onyx.fl-success .fl-progress-bar .fl-progress,.fl-onyx.fl-success:after,.fl-onyx.fl-success:before{background-color:var(--onyx-success)}.fl-onyx.fl-info .fl-progress-bar .fl-progress,.fl-onyx.fl-info:after,.fl-onyx.fl-info:before{background-color:var(--onyx-info)}.fl-onyx.fl-warning .fl-progress-bar .fl-progress,.fl-onyx.fl-warning:after,.fl-onyx.fl-warning:before{background-color:var(--onyx-warning)}.fl-onyx.fl-error .fl-progress-bar .fl-progress,.fl-onyx.fl-error:after,.fl-onyx.fl-error:before{background-color:var(--onyx-error)}.fl-onyx.fl-rtl{direction:rtl}.fl-onyx.fl-rtl .fl-content{padding-left:0;padding-right:.4rem}.fl-onyx.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-onyx.fl-rtl:before{left:auto;right:10px}.fl-onyx.fl-rtl:after{left:10px;right:auto}.fl-onyx.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-onyx{animation:none}}.fl-onyx.fl-auto-dark,body.fl-dark .fl-onyx,html.fl-dark .fl-onyx{background-color:var(--onyx-bg-dark);box-shadow:var(--onyx-shadow-dark);color:var(--onyx-text-dark)}.fl-onyx.fl-auto-dark .fl-close:focus,.fl-onyx.fl-auto-dark .fl-close:hover,body.fl-dark .fl-onyx .fl-close:focus,body.fl-dark .fl-onyx .fl-close:hover,html.fl-dark .fl-onyx .fl-close:focus,html.fl-dark .fl-onyx .fl-close:hover{background-color:hsla(0,0%,100%,.1)}.fl-ruby{--ruby-text:#fff;--ruby-text-dark:#f8fafc;--ruby-border-radius:1.125rem;--ruby-shadow:0 10px 25px -3px rgba(0,0,0,.2);--ruby-success-gradient:linear-gradient(135deg,#059669,#10b981);--ruby-info-gradient:linear-gradient(135deg,#2563eb,#3b82f6);--ruby-warning-gradient:linear-gradient(135deg,#d97706,#f59e0b);--ruby-error-gradient:linear-gradient(135deg,#b91c1c,#ef4444)}@keyframes rubyShine{0%{left:-100%;opacity:.6}60%{left:100%;opacity:.6}to{left:100%;opacity:0}}@keyframes rubyIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.fl-ruby{animation:rubyIn .35s cubic-bezier(.21,1.02,.73,1);border-radius:var(--ruby-border-radius);box-shadow:var(--ruby-shadow);color:var(--ruby-text);font-family:var(--fl-font),serif;margin:.75rem 0;overflow:hidden;padding:0;position:relative;will-change:transform,opacity}.fl-ruby .fl-shine{animation:rubyShine 6s infinite;animation-delay:1s;background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3) 50%,hsla(0,0%,100%,0));height:100%;left:-100%;position:absolute;top:0;transform:skewX(-20deg);width:50%;z-index:1}.fl-ruby .fl-content{align-items:center;display:flex;padding:.9rem 1.1rem;position:relative;z-index:2}.fl-ruby .fl-icon-circle{align-items:center;background-color:hsla(0,0%,100%,.25);border-radius:50%;display:flex;flex-shrink:0;height:2.25rem;justify-content:center;margin-right:1rem;width:2.25rem}.fl-ruby .fl-icon{background-color:transparent;color:var(--ruby-text);font-size:1rem;margin:0}.fl-ruby .fl-text{flex:1}.fl-ruby .fl-message{font-size:.925rem;font-weight:500;line-height:1.5}.fl-ruby .fl-close{align-items:center;background:hsla(0,0%,100%,.2);border:none;border-radius:50%;color:var(--ruby-text);cursor:pointer;display:flex;flex-shrink:0;font-size:1.1rem;height:1.6rem;justify-content:center;margin-left:.75rem;opacity:.8;padding:.1rem;transition:all .2s;width:1.6rem}.fl-ruby .fl-close:focus,.fl-ruby .fl-close:hover{background:hsla(0,0%,100%,.3);opacity:1;transform:scale(1.05)}.fl-ruby .fl-progress-bar{background-color:rgba(0,0,0,.1);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;right:0;z-index:3}.fl-ruby .fl-progress-bar .fl-progress{background:hsla(0,0%,100%,.4);height:100%;width:100%}.fl-ruby.fl-success{background:var(--ruby-success-gradient)}.fl-ruby.fl-info{background:var(--ruby-info-gradient)}.fl-ruby.fl-warning{background:var(--ruby-warning-gradient)}.fl-ruby.fl-error{background:var(--ruby-error-gradient)}.fl-ruby.fl-rtl{direction:rtl}.fl-ruby.fl-rtl .fl-icon-circle{margin-left:1rem;margin-right:0}.fl-ruby.fl-rtl .fl-close{margin-left:0;margin-right:.75rem}.fl-ruby.fl-rtl .fl-shine{transform:skewX(20deg)}.fl-ruby.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-ruby{animation:none}.fl-ruby .fl-shine{display:none}}.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire:last-child{margin-bottom:0}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}}.fl-slack{--slack-bg-light:#fff;--slack-bg-dark:#1a1d21;--slack-hover-light:#f8f8f8;--slack-hover-dark:#222529;--slack-text-light:#1d1c1d;--slack-text-secondary-light:#616061;--slack-text-dark:#e0e0e0;--slack-text-secondary-dark:#ababad;--slack-border-light:#e0e0e0;--slack-border-dark:#393a3e;--slack-shadow:0 1px 0 rgba(0,0,0,.1);--slack-shadow-dark:0 1px 0 rgba(0,0,0,.2);--slack-avatar-size:36px;--slack-success:#2bac76;--slack-info:#1264a3;--slack-warning:#e8912d;--slack-error:#e01e5a;--slack-animation-duration:150ms}@keyframes slackFadeIn{0%{opacity:0}to{opacity:1}}.fl-slack{animation:slackFadeIn var(--slack-animation-duration) ease-out;font-family:Lato,Slack-Lato,Helvetica Neue,Helvetica,sans-serif;margin:4px 0;max-width:500px;position:relative;width:100%}.fl-slack .fl-slack-message{align-items:flex-start;background-color:var(--slack-bg-light);border:1px solid var(--slack-border-light);border-radius:4px;box-shadow:var(--slack-shadow);color:var(--slack-text-light);display:flex;padding:8px 20px 8px 8px;transition:background-color .1s ease}.fl-slack .fl-slack-message:hover{background-color:var(--slack-hover-light)}.fl-slack .fl-avatar{align-items:center;background-color:currentColor;border-radius:4px;display:flex;flex-shrink:0;height:var(--slack-avatar-size);justify-content:center;margin-right:8px;width:var(--slack-avatar-size)}.fl-slack .fl-type-icon{color:#fff;font-size:16px;font-weight:700}.fl-slack .fl-message-content{flex:1;min-width:0}.fl-slack .fl-message-text{font-size:15px;line-height:1.46668;word-break:break-word}.fl-slack .fl-actions{opacity:0;position:absolute;right:6px;top:8px;transition:opacity .1s ease;visibility:hidden}.fl-slack .fl-slack-message:hover .fl-actions{opacity:1;visibility:visible}.fl-slack .fl-close{align-items:center;background:none;border:none;border-radius:4px;color:var(--slack-text-secondary-light);cursor:pointer;display:flex;justify-content:center;padding:4px}.fl-slack .fl-close:hover{background-color:var(--slack-hover-light);color:var(--slack-text-light)}.fl-slack.fl-success .fl-avatar{color:var(--slack-success)}.fl-slack.fl-info .fl-avatar{color:var(--slack-info)}.fl-slack.fl-warning .fl-avatar{color:var(--slack-warning)}.fl-slack.fl-error .fl-avatar{color:var(--slack-error)}.fl-slack.fl-rtl{direction:rtl}.fl-slack.fl-rtl .fl-avatar{margin-left:8px;margin-right:0}.fl-slack.fl-rtl .fl-username{margin-left:4px;margin-right:0}.fl-slack.fl-rtl .fl-actions{left:6px;right:auto}.fl-slack.fl-rtl .fl-slack-message{padding:8px 8px 8px 20px}@media (prefers-reduced-motion:reduce){.fl-slack{animation:none}}.fl-slack.fl-auto-dark .fl-slack-message,body.fl-dark .fl-slack .fl-slack-message,html.fl-dark .fl-slack .fl-slack-message{background-color:var(--slack-bg-dark);border-color:var(--slack-border-dark);box-shadow:var(--slack-shadow-dark);color:var(--slack-text-dark)}.fl-slack.fl-auto-dark .fl-slack-message:hover,body.fl-dark .fl-slack .fl-slack-message:hover,html.fl-dark .fl-slack .fl-slack-message:hover{background-color:var(--slack-hover-dark)}.fl-slack.fl-auto-dark .fl-close,body.fl-dark .fl-slack .fl-close,html.fl-dark .fl-slack .fl-close{color:var(--slack-text-secondary-dark)}.fl-slack.fl-auto-dark .fl-close:hover,body.fl-dark .fl-slack .fl-close:hover,html.fl-dark .fl-slack .fl-close:hover{background-color:var(--slack-hover-dark);color:var(--slack-text-dark)}.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{color:#fff;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);float:right;font-size:20px;font-weight:700;line-height:1;opacity:.8;position:relative;right:-.3em;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;top:-.3em}.toast-close-button:focus,.toast-close-button:hover{color:#000;cursor:pointer;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40);opacity:.4;text-decoration:none}.rtl .toast-close-button{float:left;left:-.3em;right:.3em}button.toast-close-button{-webkit-appearance:none;background:0 0;border:0;cursor:pointer;padding:0}.toast-top-center{right:0;top:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{right:0;top:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{left:12px;top:12px}.toast-top-right{right:12px;top:12px}.toast-bottom-right{bottom:12px;right:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{pointer-events:none;position:fixed;z-index:999999}#toast-container *{box-sizing:border-box}#toast-container>div{background-position:15px;background-repeat:no-repeat;border-radius:3px;box-shadow:0 0 12px #999;color:#fff;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);margin:0 0 6px;opacity:.8;overflow:hidden;padding:15px 15px 15px 50px;pointer-events:auto;position:relative;width:300px}#toast-container>div.rtl{background-position:right 15px center;direction:rtl;padding:15px 50px 15px 15px}#toast-container>div:hover{box-shadow:0 0 12px #000;cursor:pointer;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);opacity:1}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{margin-left:auto;margin-right:auto;width:300px}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{margin-left:auto;margin-right:auto;width:96%}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{background-color:#000;bottom:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40);height:4px;left:0;opacity:.4;position:absolute}@media (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}}pre.tryable{position:relative}pre.tryable .tryit{position:absolute;right:4rem;top:.85rem}pre.tryable:hover .tryit{display:inline-block}pre.tryable .tryit i{font-size:1.5rem}pre.tryable .tryit:active{transform:translateY(3px)}@media (max-width:768px){pre.tryable:hover .tryit{display:none}}pre.tryable .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-bottom-1{bottom:-.25rem}.-right-1{right:-.25rem}.bottom-0{bottom:0}.left-3{left:.75rem}.right-0{right:0}.top-0{top:0}.top-2\.5{top:.625rem}.top-24{top:6rem}.top-8{top:2rem}.z-30{z-index:30}.z-40{z-index:40}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-8{margin-bottom:2rem;margin-top:2rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-24{margin-bottom:6rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-px{height:1px}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-br{border-bottom-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-l-8{border-left-width:8px}.border-t{border-top-width:1px}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-indigo-100{--tw-border-opacity:1;border-color:rgb(224 231 255/var(--tw-border-opacity,1))}.border-indigo-200{--tw-border-opacity:1;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.border-indigo-800{--tw-border-opacity:1;border-color:rgb(55 48 163/var(--tw-border-opacity,1))}.border-purple-100{--tw-border-opacity:1;border-color:rgb(243 232 255/var(--tw-border-opacity,1))}.border-purple-500{--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-slate-50{--tw-border-opacity:1;border-color:rgb(248 250 252/var(--tw-border-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.bg-indigo-50{--tw-bg-opacity:1;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.bg-indigo-800{--tw-bg-opacity:1;background-color:rgb(55 48 163/var(--tw-bg-opacity,1))}.bg-indigo-900{--tw-bg-opacity:1;background-color:rgb(49 46 129/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-slate-900\/50{background-color:rgba(15,23,42,.5)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-indigo-50{--tw-gradient-from:#eef2ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(238,242,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from:#f8fafc var(--tw-gradient-from-position);--tw-gradient-to:rgba(248,250,252,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-blue-50{--tw-gradient-to:#eff6ff var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-10{padding-left:2.5rem}.pl-4{padding-left:1rem}.pr-4{padding-right:1rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[9px\]{font-size:9px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-loose{line-height:2}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-indigo-100{--tw-text-opacity:1;color:rgb(224 231 255/var(--tw-text-opacity,1))}.text-indigo-200{--tw-text-opacity:1;color:rgb(199 210 254/var(--tw-text-opacity,1))}.text-indigo-300{--tw-text-opacity:1;color:rgb(165 180 252/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-indigo-500{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-indigo-700{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity,1))}.text-indigo-900{--tw-text-opacity:1;color:rgb(49 46 129/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-pink-800{--tw-text-opacity:1;color:rgb(157 23 77/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-offset-2{--tw-ring-offset-width:2px}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-colors{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}hr{border-bottom-width:1px;border-top-width:1px;margin:2.5rem auto 2rem;width:50%;--tw-border-opacity:1;border-color:rgb(224 231 255/var(--tw-border-opacity,1));border-bottom-color:#fff;opacity:.75}body{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1));font-size:15px;font-stretch:100%;-webkit-font-smoothing:antialiased;font-smoothing:antialiased}body,h1,h2,h3{font-weight:400}h1,h2,h3{font-weight:600;margin-bottom:1.5rem;margin-top:1.5rem}img{display:inline;vertical-align:initial}a{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}ul{margin-bottom:1rem}pre{border-radius:.25rem;padding:.5rem 1rem;position:relative}:focus{outline:none}.focus\:placeholder-none:focus::-moz-placeholder{opacity:0}.focus\:placeholder-none:focus::placeholder{opacity:0}article h1{font-size:2.25rem;line-height:2.5rem;line-height:1.25}article h1,article h2{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}article h2{font-size:1.5rem;line-height:2rem}article h3{font-size:1.25rem;line-height:1.75rem;margin-top:1.5rem;--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}article table{margin-bottom:1rem;table-layout:auto;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;text-align:left;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);border-collapse:collapse;border-spacing:0;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);width:calc(100% + 2rem)}article table thead{min-width:100%}article p,article table{margin-bottom:1.5rem;max-width:100%;overflow-wrap:normal;padding:0;position:relative;word-break:normal}article table td{border-top-width:1px;vertical-align:top;--tw-border-opacity:1;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}article table td,article table th{padding:.5rem 1rem}article table th{--tw-bg-opacity:1;background-color:rgb(55 48 163/var(--tw-bg-opacity,1));font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}article blockquote{border-left-width:8px;margin-bottom:1rem;--tw-border-opacity:1;border-color:rgb(55 48 163/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}article ol,article ul{margin-bottom:1.5rem;padding-left:1.5rem}article ul{list-style:disc}article ol{list-style:decimal}article blockquote :last-child{margin-bottom:0}.overflow-x-auto::-webkit-scrollbar,.overflow-y-auto::-webkit-scrollbar{display:none}.overflow-x-auto,.overflow-y-auto{-ms-overflow-style:none;scrollbar-width:none}code{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity,1))}#main-navigation ul i{width:20px}a.anchor{border-radius:.25rem;line-height:2;padding-left:3rem;padding-right:3rem}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-indigo-100:hover{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.hover\:text-indigo-600:hover{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.hover\:text-indigo-700:hover{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity,1))}.hover\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.focus\:border-indigo-600:focus{--tw-border-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\:ring-yellow-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(234 179 8/var(--tw-ring-opacity,1))}.focus\:ring-opacity-50:focus{--tw-ring-opacity:0.5}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}@media (min-width:640px){.sm\:mb-0{margin-bottom:0}.sm\:ml-2{margin-left:.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:flex-1{flex:1 1 0%}.sm\:flex-row{flex-direction:row}.sm\:text-left{text-align:left}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:block{display:block}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:justify-start{justify-content:flex-start}.md\:text-left{text-align:left}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-64{width:16rem}.lg\:flex-row{flex-direction:row}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1280px){.xl\:block{display:block}} \ No newline at end of file diff --git a/docs/dist/main.855339d4.js b/docs/dist/main.855339d4.js deleted file mode 100644 index d52f0a16..00000000 --- a/docs/dist/main.855339d4.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.855339d4.js.LICENSE.txt */ -!function(){var e,t,n={3:function(e,t,n){var r,i;n.amdD,r=[n(616)],void 0===(i=function(e){return function(){var t,n,r,i=0,o="error",s="info",a="success",l="warning",c={clear:function(n,r){var i=f();t||u(i),d(n,i,r)||function(n){for(var r=t.children(),i=r.length-1;i>=0;i--)d(e(r[i]),n)}(i)},remove:function(n){var r=f();t||u(r),n&&0===e(":focus",n).length?m(n):t.children().length&&t.remove()},error:function(e,t,n){return p({type:o,iconClass:f().iconClasses.error,message:e,optionsOverride:n,title:t})},getContainer:u,info:function(e,t,n){return p({type:s,iconClass:f().iconClasses.info,message:e,optionsOverride:n,title:t})},options:{},subscribe:function(e){n=e},success:function(e,t,n){return p({type:a,iconClass:f().iconClasses.success,message:e,optionsOverride:n,title:t})},version:"2.1.4",warning:function(e,t,n){return p({type:l,iconClass:f().iconClasses.warning,message:e,optionsOverride:n,title:t})}};return c;function u(n,r){return n||(n=f()),(t=e("#"+n.containerId)).length||r&&(t=function(n){return(t=e("
").attr("id",n.containerId).addClass(n.positionClass)).appendTo(e(n.target)),t}(n)),t}function d(t,n,r){var i=!(!r||!r.force)&&r.force;return!(!t||!i&&0!==e(":focus",t).length||(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){m(t)}}),0))}function h(e){n&&n(e)}function p(n){var o=f(),s=n.iconClass||o.iconClass;if(void 0!==n.optionsOverride&&(o=e.extend(o,n.optionsOverride),s=n.optionsOverride.iconClass||s),!function(e,t){if(e.preventDuplicates){if(t.message===r)return!0;r=t.message}return!1}(o,n)){i++,t=u(o,!0);var a=null,l=e("
"),c=e("
"),d=e("
"),p=e("
"),g=e(o.closeHtml),v={intervalId:null,hideEta:null,maxHideTime:null},y={toastId:i,state:"visible",startTime:new Date,options:o,map:n};return n.iconClass&&l.addClass(o.toastClass).addClass(s),function(){if(n.title){var e=n.title;o.escapeHtml&&(e=w(n.title)),c.append(e).addClass(o.titleClass),l.append(c)}}(),function(){if(n.message){var e=n.message;o.escapeHtml&&(e=w(n.message)),d.append(e).addClass(o.messageClass),l.append(d)}}(),o.closeButton&&(g.addClass(o.closeClass).attr("role","button"),l.prepend(g)),o.progressBar&&(p.addClass(o.progressClass),l.prepend(p)),o.rtl&&l.addClass("rtl"),o.newestOnTop?t.prepend(l):t.append(l),function(){var e="";switch(n.iconClass){case"toast-success":case"toast-info":e="polite";break;default:e="assertive"}l.attr("aria-live",e)}(),l.hide(),l[o.showMethod]({duration:o.showDuration,easing:o.showEasing,complete:o.onShown}),o.timeOut>0&&(a=setTimeout(b,o.timeOut),v.maxHideTime=parseFloat(o.timeOut),v.hideEta=(new Date).getTime()+v.maxHideTime,o.progressBar&&(v.intervalId=setInterval(E,10))),o.closeOnHover&&l.hover(k,x),!o.onclick&&o.tapToDismiss&&l.click(b),o.closeButton&&g&&g.click((function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&!0!==e.cancelBubble&&(e.cancelBubble=!0),o.onCloseClick&&o.onCloseClick(e),b(!0)})),o.onclick&&l.click((function(e){o.onclick(e),b()})),h(y),o.debug&&console&&console.log(y),l}function w(e){return null==e&&(e=""),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function b(t){var n=t&&!1!==o.closeMethod?o.closeMethod:o.hideMethod,r=t&&!1!==o.closeDuration?o.closeDuration:o.hideDuration,i=t&&!1!==o.closeEasing?o.closeEasing:o.hideEasing;if(!e(":focus",l).length||t)return clearTimeout(v.intervalId),l[n]({duration:r,easing:i,complete:function(){m(l),clearTimeout(a),o.onHidden&&"hidden"!==y.state&&o.onHidden(),y.state="hidden",y.endTime=new Date,h(y)}})}function x(){(o.timeOut>0||o.extendedTimeOut>0)&&(a=setTimeout(b,o.extendedTimeOut),v.maxHideTime=parseFloat(o.extendedTimeOut),v.hideEta=(new Date).getTime()+v.maxHideTime)}function k(){clearTimeout(a),v.hideEta=0,l.stop(!0,!0)[o.showMethod]({duration:o.showDuration,easing:o.showEasing})}function E(){var e=(v.hideEta-(new Date).getTime())/v.maxHideTime*100;p.width(e+"%")}}function f(){return e.extend({},{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'',closeClass:"toast-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toast-progress",rtl:!1},c.options)}function m(e){t||(t=u()),e.is(":visible")||(e.remove(),e=null,0===t.children().length&&(t.remove(),r=void 0))}}()}.apply(t,r))||(e.exports=i)},54:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.onyx")}}},61:function(e,t,n){"use strict";n.d(t,{b:function(){return o}});var r=n(104);function i(e){0!==e.length&&setTimeout((()=>{e[0](),i(e.slice(1))}),1500)}function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=r.A.use(e),o=e.startsWith("theme.");let s={...t},a={...t},l={...t},c={...t};o&&(s={...t,position:"bottom-right"},a={...t,position:"bottom-right"},l={...t,position:"bottom-right"},c={...t,position:"bottom-right"}),n.info("Welcome back","Info",s),["sweetalert"].includes(e)||i([()=>n.error("Oops! Something went wrong!","Error",a),()=>n.warning("Are you sure you want to proceed?","Warning",l),()=>n.success("Data has been saved successfully!","Success",c)])}},79:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.minimal")}}},104:function(e,t,n){"use strict";function r(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))}n.d(t,{A:function(){return s}}),"function"==typeof SuppressedError&&SuppressedError;class i{success(e,t,n){this.flash("success",e,t,n)}error(e,t,n){this.flash("error",e,t,n)}info(e,t,n){this.flash("info",e,t,n)}warning(e,t,n){this.flash("warning",e,t,n)}flash(e,t,n,r){let i,o,s,a={};if("object"==typeof e?(a=Object.assign({},e),i=a.type,o=a.message,s=a.title,delete a.type,delete a.message,delete a.title):"object"==typeof t?(a=Object.assign({},t),i=e,o=a.message,s=a.title,delete a.message,delete a.title):"object"==typeof n?(a=Object.assign({},n),i=e,o=t,s=a.title,delete a.title):(i=e,o=t,s=n,a=r||{}),!i)throw new Error("Type is required for notifications");if(null==o)throw new Error("Message is required for notifications");const l={type:i,message:o,title:s||i,options:a,metadata:{plugin:""}};this.renderOptions(a),this.renderEnvelopes([l])}}class o extends i{constructor(e){if(super(),this.options={timeout:null,timeouts:{success:1e4,info:1e4,error:1e4,warning:1e4},fps:30,position:"top-right",direction:"top",rtl:!1,style:{},escapeHtml:!1},!e)throw new Error("Theme is required");if("function"!=typeof e.render)throw new TypeError("Theme must have a render function");this.theme=e}renderEnvelopes(e){if(!(null==e?void 0:e.length))return;const t=()=>{e.forEach((e=>{var t,n,r,i;try{const o=null!==(n=null!==(t=this.options.timeout)&&void 0!==t?t:this.options.timeouts[e.type])&&void 0!==n?n:1e4,s=Object.assign(Object.assign(Object.assign({},this.options),e.options),{timeout:null!==(r=e.options.timeout)&&void 0!==r?r:o,escapeHtml:null!==(i=e.options.escapeHtml)&&void 0!==i?i:this.options.escapeHtml}),a=this.createContainer(s),l={direction:s.direction,timeout:Number(s.timeout||0),fps:s.fps,rtl:s.rtl,escapeHtml:s.escapeHtml};this.addToContainer(a,e,l)}catch(t){console.error("PHPFlasher: Error rendering envelope",t,e)}}))};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",t):t()}renderOptions(e){e&&(this.options=Object.assign(Object.assign({},this.options),e))}createContainer(e){let t=document.querySelector(`.fl-wrapper[data-position="${e.position}"]`);return t||(t=document.createElement("div"),t.className="fl-wrapper",t.dataset.position=e.position,Object.entries(e.style).forEach((e=>{let[n,r]=e;null!=r&&t.style.setProperty(n,String(r))})),document.body.appendChild(t)),t.dataset.turboTemporary="",t}addToContainer(e,t,n){n.escapeHtml&&(t.title=this.escapeHtml(t.title),t.message=this.escapeHtml(t.message));const r=this.stringToHTML(this.theme.render(t));r.classList.add("fl-container"),n.rtl&&r.classList.add("fl-rtl"),"bottom"===n.direction?e.append(r):e.prepend(r),requestAnimationFrame((()=>r.classList.add("fl-show")));const i=r.querySelector(".fl-close");i&&i.addEventListener("click",(e=>{e.stopPropagation(),this.removeNotification(r)})),n.timeout>0&&this.addTimer(r,n)}addTimer(e,t){let{timeout:n,fps:r}=t;if(n<=0)return;const i=1e3/r;let o,s=0;const a=()=>{s+=i;const t=e.querySelector(".fl-progress-bar");if(t){let e=t.querySelector(".fl-progress");e||(e=document.createElement("span"),e.classList.add("fl-progress"),t.append(e));const r=100*(1-s/n);e.style.width=`${Math.max(0,r)}%`}s>=n&&(clearInterval(o),this.removeNotification(e))};o=window.setInterval(a,i),e.addEventListener("mouseout",(()=>{clearInterval(o),o=window.setInterval(a,i)})),e.addEventListener("mouseover",(()=>clearInterval(o)))}removeNotification(e){e&&(e.classList.remove("fl-show"),e.ontransitionend=()=>{const t=e.parentElement;e.remove(),t&&!t.hasChildNodes()&&t.remove()})}stringToHTML(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstElementChild}escapeHtml(e){if(null==e)return"";const t={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"=","/":"/"};return e.replace(/[&<>"'`=/]/g,(e=>t[e]||e))}}const s=new class extends i{constructor(){super(...arguments),this.defaultPlugin="flasher",this.plugins=new Map,this.themes=new Map,this.loadedAssets=new Set}render(e){return r(this,void 0,void 0,(function*(){const t=this.resolveResponse(e);try{yield this.addAssets([{urls:t.styles,nonce:t.context.csp_style_nonce,type:"style"},{urls:t.scripts,nonce:t.context.csp_script_nonce,type:"script"}]),this.renderOptions(t.options),this.renderEnvelopes(t.envelopes)}catch(e){console.error("PHPFlasher: Error rendering notifications",e)}}))}renderEnvelopes(e){if(!(null==e?void 0:e.length))return;const t={};e.forEach((e=>{const n=this.resolvePluginAlias(e.metadata.plugin);t[n]=t[n]||[],t[n].push(e)})),Object.entries(t).forEach((e=>{let[t,n]=e;try{this.use(t).renderEnvelopes(n)}catch(e){console.error(`PHPFlasher: Error rendering envelopes for plugin "${t}"`,e)}}))}renderOptions(e){e&&Object.entries(e).forEach((e=>{let[t,n]=e;try{this.use(t).renderOptions(n)}catch(e){console.error(`PHPFlasher: Error applying options for plugin "${t}"`,e)}}))}addPlugin(e,t){if(!e||!t)throw new Error("Both plugin name and instance are required");this.plugins.set(e,t)}addTheme(e,t){if(!e||!t)throw new Error("Both theme name and definition are required");this.themes.set(e,t)}use(e){const t=this.resolvePluginAlias(e);this.resolvePlugin(t);const n=this.plugins.get(t);if(!n)throw new Error(`Unable to resolve "${t}" plugin, did you forget to register it?`);return n}create(e){return this.use(e)}resolveResponse(e){const t=Object.assign({envelopes:[],options:{},scripts:[],styles:[],context:{}},e);return Object.entries(t.options).forEach((e=>{let[n,r]=e;t.options[n]=this.resolveOptions(r)})),t.context.csp_style_nonce=t.context.csp_style_nonce||"",t.context.csp_script_nonce=t.context.csp_script_nonce||"",t.envelopes.forEach((n=>{n.metadata=n.metadata||{},n.metadata.plugin=this.resolvePluginAlias(n.metadata.plugin),this.addThemeStyles(t,n.metadata.plugin),n.options=this.resolveOptions(n.options),n.context=e.context})),t}resolveOptions(e){if(!e)return{};const t=Object.assign({},e);return Object.entries(t).forEach((e=>{let[n,r]=e;t[n]=this.resolveFunction(r)})),t}resolveFunction(e){var t,n;if("string"!=typeof e)return e;const r=e.match(/^function\s*(\w*)\s*\(([^)]*)\)\s*\{([\s\S]*)\}$/)||e.match(/^\s*(\(([^)]*)\)|[^=]+)\s*=>\s*([\s\S]+)$/);if(!r)return e;const i=null!==(n=null===(t=r[2])||void 0===t?void 0:t.split(",").map((e=>e.trim())))&&void 0!==n?n:[];let o=r[3].trim();o.startsWith("{")||(o=`{ return ${o}; }`);try{return new Function(...i,o)}catch(t){return console.error("PHPFlasher: Error converting string to function:",t),e}}resolvePlugin(e){if(this.plugins.get(e)||!e.includes("theme."))return;const t=e.replace("theme.",""),n=this.themes.get(t);n&&this.addPlugin(e,new o(n))}resolvePluginAlias(e){return"flasher"===(e=e||this.defaultPlugin)?"theme.flasher":e}addAssets(e){return r(this,void 0,void 0,(function*(){try{const t=e.filter((e=>"style"===e.type)),n=[];for(const{urls:e,nonce:r,type:i}of t)if(null==e?void 0:e.length)for(const t of e)t&&!this.loadedAssets.has(t)&&(n.push(this.loadAsset(t,r,i)),this.loadedAssets.add(t));yield Promise.all(n);const r=e.filter((e=>"script"===e.type));for(const{urls:e,nonce:t,type:n}of r)if(null==e?void 0:e.length)for(const r of e)r&&!this.loadedAssets.has(r)&&(yield this.loadAsset(r,t,n),this.loadedAssets.add(r))}catch(e){console.error("PHPFlasher: Error loading assets",e)}}))}loadAsset(e,t,n){return document.querySelector(`${"style"===n?"link":"script"}[src="${e}"]`)?Promise.resolve():new Promise(((r,i)=>{const o=document.createElement("style"===n?"link":"script");"style"===n?(o.rel="stylesheet",o.href=e):(o.type="text/javascript",o.src=e),t&&o.setAttribute("nonce",t),o.onload=()=>r(),o.onerror=()=>i(new Error(`Failed to load ${e}`)),document.head.appendChild(o)}))}addThemeStyles(e,t){if("flasher"!==t&&!t.includes("theme."))return;const n=t.replace("theme.",""),r=this.themes.get(n);if(!(null==r?void 0:r.styles))return;const i=Array.isArray(r.styles)?r.styles:[r.styles];e.styles=Array.from(new Set([...e.styles,...i]))}};s.addTheme("flasher",{render:e=>{const{type:t,title:n,message:r}=e,i="error"===t||"warning"===t,o=i?"alert":"status",s=i?"assertive":"polite",a=n||t.charAt(0).toUpperCase()+t.slice(1);return`\n
\n
\n
\n
\n ${a}\n ${r}\n
\n \n
\n \n \n \n
`}}),"undefined"!=typeof window&&(window.flasher=s)},108:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.crystal")}}},113:function(e){var t;t=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.css=t.deepExtend=t.animationEndEvents=void 0;var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.inArray=function(e,t,n){var r=void 0;if(n){for(r in t)if(t.hasOwnProperty(r)&&t[r]===e)return!0}else for(r in t)if(t.hasOwnProperty(r)&&t[r]===e)return!0;return!1},t.stopPropagation=function(e){void 0!==(e=e||window.event).stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.generateID=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t="noty_"+e+"_";return t+="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))},t.outerHeight=function(e){var t=e.offsetHeight,n=window.getComputedStyle(e);return t+=parseInt(n.marginTop)+parseInt(n.marginBottom)},t.addListener=o,t.hasClass=s,t.addClass=function(e,t){var n=l(e),r=n+t;s(n,t)||(e.className=r.substring(1))},t.removeClass=function(e,t){var n=l(e),r=void 0;s(e,t)&&(r=n.replace(" "+t+" "," "),e.className=r.substring(1,r.length-1))},t.remove=a,t.classList=l,t.visibilityChangeFlow=function(){var e=void 0,t=void 0;function n(){i.PageHidden?setTimeout((function(){Object.keys(i.Store).forEach((function(e){i.Store.hasOwnProperty(e)&&i.Store[e].options.visibilityControl&&i.Store[e].stop()}))}),100):setTimeout((function(){Object.keys(i.Store).forEach((function(e){i.Store.hasOwnProperty(e)&&i.Store[e].options.visibilityControl&&i.Store[e].resume()})),i.queueRenderAll()}),100)}void 0!==document.hidden?(e="hidden",t="visibilitychange"):void 0!==document.msHidden?(e="msHidden",t="msvisibilitychange"):void 0!==document.webkitHidden&&(e="webkitHidden",t="webkitvisibilitychange"),t&&o(document,t,(function(){i.PageHidden=document[e],n()})),o(window,"blur",(function(){i.PageHidden=!0,n()})),o(window,"focus",(function(){i.PageHidden=!1,n()}))},t.createAudioElements=function(e){if(e.hasSound){var t=document.createElement("audio");e.options.sounds.sources.forEach((function(e){var n=document.createElement("source");n.src=e,n.type="audio/"+e.match(/\.([^.]+)$/)[1],t.appendChild(n)})),e.barDom?e.barDom.appendChild(t):document.querySelector("body").appendChild(t),t.volume=e.options.sounds.volume,e.soundPlayed||(t.play(),e.soundPlayed=!0),t.onended=function(){a(t)}}};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1));function o(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t=t.split(" ");for(var i=0;i=0}function a(e){e.parentNode&&e.parentNode.removeChild(e)}function l(e){return(" "+(e&&e.className||"")+" ").replace(/\s+/gi," ")}t.animationEndEvents="webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",t.deepExtend=function e(t){t=t||{};for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:"global",t=0,n=a;return l.hasOwnProperty(e)&&(n=l[e].maxVisible,Object.keys(c).forEach((function(n){c[n].options.queue!==e||c[n].closed||t++}))),{current:t,maxVisible:n}},t.addToQueue=function(e){l.hasOwnProperty(e.options.queue)||(l[e.options.queue]={maxVisible:a,queue:[]}),l[e.options.queue].queue.push(e)},t.removeFromQueue=function(e){if(l.hasOwnProperty(e.options.queue)){var t=[];Object.keys(l[e.options.queue].queue).forEach((function(n){l[e.options.queue].queue[n].id!==e.id&&t.push(l[e.options.queue].queue[n])})),l[e.options.queue].queue=t}},t.queueRender=u,t.queueRenderAll=function(){Object.keys(l).forEach((function(e){u(e)}))},t.ghostFix=function(e){var t=r.generateID("ghost"),n=document.createElement("div");n.setAttribute("id",t),r.css(n,{height:r.outerHeight(e.barDom)+"px"}),e.barDom.insertAdjacentHTML("afterend",n.outerHTML),r.remove(e.barDom),n=document.getElementById(t),r.addClass(n,"noty_fix_effects_height"),r.addListener(n,r.animationEndEvents,(function(){r.remove(n)}))},t.build=function(e){!function(e){if(e.options.container)e.layoutDom=document.querySelector(e.options.container);else{var t="noty_layout__"+e.options.layout;e.layoutDom=document.querySelector("div#"+t),e.layoutDom||(e.layoutDom=document.createElement("div"),e.layoutDom.setAttribute("id",t),e.layoutDom.setAttribute("role","alert"),e.layoutDom.setAttribute("aria-live","polite"),r.addClass(e.layoutDom,"noty_layout"),document.querySelector("body").appendChild(e.layoutDom))}}(e);var t='
'+e.options.text+"
"+function(e){if(d(e)){var t=document.createElement("div");return r.addClass(t,"noty_buttons"),Object.keys(e.options.buttons).forEach((function(n){t.appendChild(e.options.buttons[n].dom)})),e.options.buttons.forEach((function(e){t.appendChild(e.dom)})),t.outerHTML}return""}(e)+'
';e.barDom=document.createElement("div"),e.barDom.setAttribute("id",e.id),r.addClass(e.barDom,"noty_bar noty_type__"+e.options.type+" noty_theme__"+e.options.theme),e.barDom.innerHTML=t,f(e,"onTemplate")},t.hasButtons=d,t.handleModal=function(e){var n,o;e.options.modal&&(0===i&&(n=document.querySelector("body"),o=document.createElement("div"),r.addClass(o,"noty_modal"),n.insertBefore(o,n.firstChild),r.addClass(o,"noty_modal_open"),r.addListener(o,r.animationEndEvents,(function(){r.removeClass(o,"noty_modal_open")}))),t.DocModalCount=i+=1)},t.handleModalClose=function(e){if(e.options.modal&&i>0&&(t.DocModalCount=i-=1,i<=0)){var n=document.querySelector(".noty_modal");n&&(r.removeClass(n,"noty_modal_open"),r.addClass(n,"noty_modal_close"),r.addListener(n,r.animationEndEvents,(function(){r.remove(n)})))}},t.queueClose=h,t.dequeueClose=p,t.fire=f,t.openFlow=function(e){f(e,"afterShow"),h(e),r.addListener(e.barDom,"mouseenter",(function(){p(e)})),r.addListener(e.barDom,"mouseleave",(function(){h(e)}))},t.closeFlow=function(e){delete c[e.id],e.closing=!1,f(e,"afterClose"),r.remove(e.barDom),0!==e.layoutDom.querySelectorAll(".noty_bar").length||e.options.container||r.remove(e.layoutDom),(r.inArray("docVisible",e.options.titleCount.conditions)||r.inArray("docHidden",e.options.titleCount.conditions))&&s.decrement(),u(e.options.queue)};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(0));t.PageHidden=!1;var i=t.DocModalCount=0,o={originalTitle:null,count:0,changed:!1,timer:-1},s=t.docTitle={increment:function(){o.count++,s._update()},decrement:function(){o.count--,o.count<=0?s._clear():s._update()},_update:function(){var e=document.title;o.changed?document.title="("+o.count+") "+o.originalTitle:(o.originalTitle=e,document.title="("+o.count+") "+e,o.changed=!0)},_clear:function(){o.changed&&(o.count=0,document.title=o.originalTitle,o.changed=!1)}},a=t.DefaultMaxVisible=5,l=t.Queues={global:{maxVisible:a,queue:[]}},c=t.Store={};function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"global";if(l.hasOwnProperty(e)){var t=l[e].queue.shift();t&&t.show()}}function d(e){return!(!e.options.buttons||!Object.keys(e.options.buttons).length)}function h(e){e.options.timeout&&(e.options.progressBar&&e.progressDom&&r.css(e.progressDom,{transition:"width "+e.options.timeout+"ms linear",width:"0%"}),clearTimeout(e.closeTimer),e.closeTimer=setTimeout((function(){e.close()}),e.options.timeout))}function p(e){e.options.timeout&&e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=-1,e.options.progressBar&&e.progressDom&&r.css(e.progressDom,{transition:"width 0ms linear",width:"100%"}))}function f(e,t){e.listeners.hasOwnProperty(t)&&e.listeners[t].forEach((function(t){"function"==typeof t&&t.apply(e)}))}t.Defaults={type:"alert",layout:"topRight",theme:"mint",text:"",timeout:!1,progressBar:!0,closeWith:["click"],animation:{open:"noty_effects_open",close:"noty_effects_close"},id:!1,force:!1,killer:!1,queue:"global",container:!1,buttons:[],callbacks:{beforeShow:null,onShow:null,afterShow:null,onClose:null,afterClose:null,onClick:null,onHover:null,onTemplate:null},sounds:{sources:[],volume:1,conditions:[]},titleCount:{conditions:[]},modal:!1,visibilityControl:!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NotyButton=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(0));t.NotyButton=function e(t,n,i){var o=this,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.dom=document.createElement("button"),this.dom.innerHTML=t,this.id=s.id=s.id||r.generateID("button"),this.cb=i,Object.keys(s).forEach((function(e){o.dom.setAttribute(e,s[e])})),r.addClass(this.dom,n||"noty_btn"),this}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:"/service-worker.js";return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.subData={},this.workerPath=t,this.listeners={onPermissionGranted:[],onPermissionDenied:[],onSubscriptionSuccess:[],onSubscriptionCancel:[],onWorkerError:[],onWorkerSuccess:[],onWorkerNotSupported:[]},this}return r(e,[{key:"on",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return"function"==typeof t&&this.listeners.hasOwnProperty(e)&&this.listeners[e].push(t),this}},{key:"fire",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.listeners.hasOwnProperty(e)&&this.listeners[e].forEach((function(e){"function"==typeof e&&e.apply(t,n)}))}},{key:"create",value:function(){console.log("NOT IMPLEMENTED YET")}},{key:"isSupported",value:function(){var e=!1;try{e=window.Notification||window.webkitNotifications||navigator.mozNotification||window.external&&void 0!==window.external.msIsSiteMode()}catch(e){}return e}},{key:"getPermissionStatus",value:function(){var e="default";if(window.Notification&&window.Notification.permissionLevel)e=window.Notification.permissionLevel;else if(window.webkitNotifications&&window.webkitNotifications.checkPermission)switch(window.webkitNotifications.checkPermission()){case 1:e="default";break;case 0:e="granted";break;default:e="denied"}else window.Notification&&window.Notification.permission?e=window.Notification.permission:navigator.mozNotification?e="granted":window.external&&void 0!==window.external.msIsSiteMode()&&(e=window.external.msIsSiteMode()?"granted":"default");return e.toString().toLowerCase()}},{key:"getEndpoint",value:function(e){var t=e.endpoint,n=e.subscriptionId;return n&&-1===t.indexOf(n)&&(t+="/"+n),t}},{key:"isSWRegistered",value:function(){try{return"activated"===navigator.serviceWorker.controller.state}catch(e){return!1}}},{key:"unregisterWorker",value:function(){var e=this;"serviceWorker"in navigator&&navigator.serviceWorker.getRegistrations().then((function(t){var n=!0,r=!1,i=void 0;try{for(var o,s=t[Symbol.iterator]();!(n=(o=s.next()).done);n=!0)o.value.unregister(),e.fire("onSubscriptionCancel")}catch(e){r=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(r)throw i}}}))}},{key:"requestSubscription",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=this,r=this.getPermissionStatus(),i=function(r){"granted"===r?(e.fire("onPermissionGranted"),"serviceWorker"in navigator?navigator.serviceWorker.register(e.workerPath).then((function(){navigator.serviceWorker.ready.then((function(e){n.fire("onWorkerSuccess"),e.pushManager.subscribe({userVisibleOnly:t}).then((function(e){var t=e.getKey("p256dh"),r=e.getKey("auth");n.subData={endpoint:n.getEndpoint(e),p256dh:t?window.btoa(String.fromCharCode.apply(null,new Uint8Array(t))):null,auth:r?window.btoa(String.fromCharCode.apply(null,new Uint8Array(r))):null},n.fire("onSubscriptionSuccess",[n.subData])})).catch((function(e){n.fire("onWorkerError",[e])}))}))})):n.fire("onWorkerNotSupported")):"denied"===r&&(e.fire("onPermissionDenied"),e.unregisterWorker())};"default"===r?window.Notification&&window.Notification.requestPermission?window.Notification.requestPermission(i):window.webkitNotifications&&window.webkitNotifications.checkPermission&&window.webkitNotifications.requestPermission(i):i(r)}}]),e}()},function(e,t,n){(function(t,r){var i;i=function(){"use strict";function e(e){return"function"==typeof e}var i=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=0,s=void 0,a=void 0,l=function(e,t){m[o]=e,m[o+1]=t,2===(o+=2)&&(a?a(g):x())},c="undefined"!=typeof window?window:void 0,u=c||{},d=u.MutationObserver||u.WebKitMutationObserver,h="undefined"==typeof self&&void 0!==t&&"[object process]"==={}.toString.call(t),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function f(){var e=setTimeout;return function(){return e(g,1)}}var m=new Array(1e3);function g(){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=a.deepExtend({},l.Defaults,t),l.Store[this.options.id]?l.Store[this.options.id]:(this.id=this.options.id||a.generateID("bar"),this.closeTimer=-1,this.barDom=null,this.layoutDom=null,this.progressDom=null,this.showing=!1,this.shown=!1,this.closed=!1,this.closing=!1,this.killable=this.options.timeout||this.options.closeWith.length>0,this.hasSound=this.options.sounds.sources.length>0,this.soundPlayed=!1,this.listeners={beforeShow:[],onShow:[],afterShow:[],onClose:[],afterClose:[],onClick:[],onHover:[],onTemplate:[]},this.promises={show:null,close:null},this.on("beforeShow",this.options.callbacks.beforeShow),this.on("onShow",this.options.callbacks.onShow),this.on("afterShow",this.options.callbacks.afterShow),this.on("onClose",this.options.callbacks.onClose),this.on("afterClose",this.options.callbacks.afterClose),this.on("onClick",this.options.callbacks.onClick),this.on("onHover",this.options.callbacks.onHover),this.on("onTemplate",this.options.callbacks.onTemplate),this)}return r(e,[{key:"on",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return"function"==typeof t&&this.listeners.hasOwnProperty(e)&&this.listeners[e].push(t),this}},{key:"show",value:function(){var t=this;if(this.showing||this.shown)return this;!0===this.options.killer?e.closeAll():"string"==typeof this.options.killer&&e.closeAll(this.options.killer);var n=l.getQueueCounts(this.options.queue);if(n.current>=n.maxVisible||l.PageHidden&&this.options.visibilityControl)return l.addToQueue(this),l.PageHidden&&this.hasSound&&a.inArray("docHidden",this.options.sounds.conditions)&&a.createAudioElements(this),l.PageHidden&&a.inArray("docHidden",this.options.titleCount.conditions)&&l.docTitle.increment(),this;if(l.Store[this.id]=this,l.fire(this,"beforeShow"),this.showing=!0,this.closing)return this.showing=!1,this;if(l.build(this),l.handleModal(this),this.options.force?this.layoutDom.insertBefore(this.barDom,this.layoutDom.firstChild):this.layoutDom.appendChild(this.barDom),this.hasSound&&!this.soundPlayed&&a.inArray("docVisible",this.options.sounds.conditions)&&a.createAudioElements(this),a.inArray("docVisible",this.options.titleCount.conditions)&&l.docTitle.increment(),this.shown=!0,this.closed=!1,l.hasButtons(this)&&Object.keys(this.options.buttons).forEach((function(e){var n=t.barDom.querySelector("#"+t.options.buttons[e].id);a.addListener(n,"click",(function(n){a.stopPropagation(n),t.options.buttons[e].cb(t)}))})),this.progressDom=this.barDom.querySelector(".noty_progressbar"),a.inArray("click",this.options.closeWith)&&(a.addClass(this.barDom,"noty_close_with_click"),a.addListener(this.barDom,"click",(function(e){a.stopPropagation(e),l.fire(t,"onClick"),t.close()}),!1)),a.addListener(this.barDom,"mouseenter",(function(){l.fire(t,"onHover")}),!1),this.options.timeout&&a.addClass(this.barDom,"noty_has_timeout"),this.options.progressBar&&a.addClass(this.barDom,"noty_has_progressbar"),a.inArray("button",this.options.closeWith)){a.addClass(this.barDom,"noty_close_with_button");var r=document.createElement("div");a.addClass(r,"noty_close_button"),r.innerHTML="×",this.barDom.appendChild(r),a.addListener(r,"click",(function(e){a.stopPropagation(e),t.close()}),!1)}return l.fire(this,"onShow"),null===this.options.animation.open?this.promises.show=new s.default((function(e){e()})):"function"==typeof this.options.animation.open?this.promises.show=new s.default(this.options.animation.open.bind(this)):(a.addClass(this.barDom,this.options.animation.open),this.promises.show=new s.default((function(e){a.addListener(t.barDom,a.animationEndEvents,(function(){a.removeClass(t.barDom,t.options.animation.open),e()}))}))),this.promises.show.then((function(){var e=t;setTimeout((function(){l.openFlow(e)}),100)})),this}},{key:"stop",value:function(){return l.dequeueClose(this),this}},{key:"resume",value:function(){return l.queueClose(this),this}},{key:"setTimeout",value:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){if(this.stop(),this.options.timeout=e,this.barDom){this.options.timeout?a.addClass(this.barDom,"noty_has_timeout"):a.removeClass(this.barDom,"noty_has_timeout");var t=this;setTimeout((function(){t.resume()}),100)}return this}))},{key:"setText",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.barDom&&(this.barDom.querySelector(".noty_body").innerHTML=e),t&&(this.options.text=e),this}},{key:"setType",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.barDom&&(a.classList(this.barDom).split(" ").forEach((function(e){"noty_type__"===e.substring(0,11)&&a.removeClass(t.barDom,e)})),a.addClass(this.barDom,"noty_type__"+e)),n&&(this.options.type=e),this}},{key:"setTheme",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.barDom&&(a.classList(this.barDom).split(" ").forEach((function(e){"noty_theme__"===e.substring(0,12)&&a.removeClass(t.barDom,e)})),a.addClass(this.barDom,"noty_theme__"+e)),n&&(this.options.theme=e),this}},{key:"close",value:function(){var e=this;return this.closed?this:this.shown?(l.fire(this,"onClose"),this.closing=!0,null===this.options.animation.close||!1===this.options.animation.close?this.promises.close=new s.default((function(e){e()})):"function"==typeof this.options.animation.close?this.promises.close=new s.default(this.options.animation.close.bind(this)):(a.addClass(this.barDom,this.options.animation.close),this.promises.close=new s.default((function(t){a.addListener(e.barDom,a.animationEndEvents,(function(){e.options.force?a.remove(e.barDom):l.ghostFix(e),t()}))}))),this.promises.close.then((function(){l.closeFlow(e),l.handleModalClose(e)})),this.closed=!0,this):(l.removeFromQueue(this),this)}}],[{key:"closeAll",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Object.keys(l.Store).forEach((function(t){e?l.Store[t].options.queue===e&&l.Store[t].killable&&l.Store[t].close():l.Store[t].killable&&l.Store[t].close()})),this}},{key:"clearQueue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"global";return l.Queues.hasOwnProperty(e)&&(l.Queues[e].queue=[]),this}},{key:"overrideDefaults",value:function(e){return l.Defaults=a.deepExtend({},l.Defaults,e),this}},{key:"setMaxVisible",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.DefaultMaxVisible,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global";return l.Queues.hasOwnProperty(t)||(l.Queues[t]={maxVisible:e,queue:[]}),l.Queues[t].maxVisible=e,this}},{key:"button",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new c.NotyButton(e,t,n,r)}},{key:"version",value:function(){return"3.2.0-beta"}},{key:"Push",value:function(e){return new u.Push(e)}},{key:"Queues",get:function(){return l.Queues}},{key:"PageHidden",get:function(){return l.PageHidden}}]),e}();t.default=h,"undefined"!=typeof window&&a.visibilityChangeFlow(),e.exports=t.default},function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var l,c=[],u=!1,d=-1;function h(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&p())}function p(){if(!u){var e=a(h);u=!0;for(var t=c.length;t;){for(l=c,c=[];++d1)for(var n=1;n{i.preventDefault(),r(e,"menu-closed"),r(t,"hidden"),r(n,"hidden")}))}}},242:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("sweetalert")}}},325:function(e){e.exports=function(){"use strict";function e(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function t(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function n(t,n){return t.get(e(t,n))}function r(e,n,r){t(e,n),n.set(e,r)}function i(t,n,r){return t.set(e(t,n),r),r}const o=100,s={},a=()=>{s.previousActiveElement instanceof HTMLElement?(s.previousActiveElement.focus(),s.previousActiveElement=null):document.body&&document.body.focus()},l=e=>new Promise((t=>{if(!e)return t();const n=window.scrollX,r=window.scrollY;s.restoreFocusTimeout=setTimeout((()=>{a(),t()}),o),window.scrollTo(n,r)})),c="swal2-",u=["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","draggable","dragging"].reduce(((e,t)=>(e[t]=c+t,e)),{}),d=["success","warning","info","question","error"].reduce(((e,t)=>(e[t]=c+t,e)),{}),h="SweetAlert2:",p=e=>e.charAt(0).toUpperCase()+e.slice(1),f=e=>{console.warn(`${h} ${"object"==typeof e?e.join(" "):e}`)},m=e=>{console.error(`${h} ${e}`)},g=[],v=e=>{g.includes(e)||(g.push(e),f(e))},y=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;v(`"${e}" is deprecated and will be removed in the next major release.${t?` Use "${t}" instead.`:""}`)},w=e=>"function"==typeof e?e():e,b=e=>e&&"function"==typeof e.toPromise,x=e=>b(e)?e.toPromise():Promise.resolve(e),k=e=>e&&Promise.resolve(e)===e,E=()=>document.body.querySelector(`.${u.container}`),C=e=>{const t=E();return t?t.querySelector(e):null},A=e=>C(`.${e}`),T=()=>A(u.popup),O=()=>A(u.icon),S=()=>A(u["icon-content"]),$=()=>A(u.title),j=()=>A(u["html-container"]),L=()=>A(u.image),_=()=>A(u["progress-steps"]),M=()=>A(u["validation-message"]),N=()=>C(`.${u.actions} .${u.confirm}`),D=()=>C(`.${u.actions} .${u.cancel}`),P=()=>C(`.${u.actions} .${u.deny}`),F=()=>A(u["input-label"]),B=()=>C(`.${u.loader}`),H=()=>A(u.actions),q=()=>A(u.footer),I=()=>A(u["timer-progress-bar"]),z=()=>A(u.close),R='\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n',V=()=>{const e=T();if(!e)return[];const t=e.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'),n=Array.from(t).sort(((e,t)=>{const n=parseInt(e.getAttribute("tabindex")||"0"),r=parseInt(t.getAttribute("tabindex")||"0");return n>r?1:n"-1"!==e.getAttribute("tabindex")));return[...new Set(n.concat(i))].filter((e=>ue(e)))},W=()=>Y(document.body,u.shown)&&!Y(document.body,u["toast-shown"])&&!Y(document.body,u["no-backdrop"]),U=()=>{const e=T();return!!e&&Y(e,u.toast)},K=()=>{const e=T();return!!e&&e.hasAttribute("data-loading")},X=(e,t)=>{if(e.textContent="",t){const n=(new DOMParser).parseFromString(t,"text/html"),r=n.querySelector("head");r&&Array.from(r.childNodes).forEach((t=>{e.appendChild(t)}));const i=n.querySelector("body");i&&Array.from(i.childNodes).forEach((t=>{t instanceof HTMLVideoElement||t instanceof HTMLAudioElement?e.appendChild(t.cloneNode(!0)):e.appendChild(t)}))}},Y=(e,t)=>{if(!t)return!1;const n=t.split(/\s+/);for(let t=0;t{Array.from(e.classList).forEach((n=>{Object.values(u).includes(n)||Object.values(d).includes(n)||Object.values(t.showClass||{}).includes(n)||e.classList.remove(n)}))},Q=(e,t,n)=>{if(Z(e,t),!t.customClass)return;const r=t.customClass[n];r&&("string"==typeof r||r.forEach?te(e,r):f(`Invalid type of customClass.${n}! Expected string or iterable object, got "${typeof r}"`))},G=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(`.${u.popup} > .${u[t]}`);case"checkbox":return e.querySelector(`.${u.popup} > .${u.checkbox} input`);case"radio":return e.querySelector(`.${u.popup} > .${u.radio} input:checked`)||e.querySelector(`.${u.popup} > .${u.radio} input:first-child`);case"range":return e.querySelector(`.${u.popup} > .${u.range} input`);default:return e.querySelector(`.${u.popup} > .${u.input}`)}},J=e=>{if(e.focus(),"file"!==e.type){const t=e.value;e.value="",e.value=t}},ee=(e,t,n)=>{e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((t=>{Array.isArray(e)?e.forEach((e=>{n?e.classList.add(t):e.classList.remove(t)})):n?e.classList.add(t):e.classList.remove(t)})))},te=(e,t)=>{ee(e,t,!0)},ne=(e,t)=>{ee(e,t,!1)},re=(e,t)=>{const n=Array.from(e.children);for(let e=0;e{n===`${parseInt(n)}`&&(n=parseInt(n)),n||0===parseInt(n)?e.style.setProperty(t,"number"==typeof n?`${n}px`:n):e.style.removeProperty(t)},oe=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flex";e&&(e.style.display=t)},se=e=>{e&&(e.style.display="none")},ae=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"block";e&&new MutationObserver((()=>{ce(e,e.innerHTML,t)})).observe(e,{childList:!0,subtree:!0})},le=(e,t,n,r)=>{const i=e.querySelector(t);i&&i.style.setProperty(n,r)},ce=function(e,t){t?oe(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex"):se(e)},ue=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),de=()=>!ue(N())&&!ue(P())&&!ue(D()),he=e=>!!(e.scrollHeight>e.clientHeight),pe=e=>{const t=window.getComputedStyle(e),n=parseFloat(t.getPropertyValue("animation-duration")||"0"),r=parseFloat(t.getPropertyValue("transition-duration")||"0");return n>0||r>0},fe=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=I();n&&ue(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout((()=>{n.style.transition=`width ${e/1e3}s linear`,n.style.width="0%"}),10))},me=()=>{const e=I();if(!e)return;const t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const n=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width=`${n}%`},ge=()=>"undefined"==typeof window||"undefined"==typeof document,ve=`\n
\n \n
    \n
    \n \n

    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n`.replace(/(^|\n)\s*/g,""),ye=()=>{const e=E();return!!e&&(e.remove(),ne([document.documentElement,document.body],[u["no-backdrop"],u["toast-shown"],u["has-column"]]),!0)},we=()=>{s.currentInstance.resetValidationMessage()},be=()=>{const e=T(),t=re(e,u.input),n=re(e,u.file),r=e.querySelector(`.${u.range} input`),i=e.querySelector(`.${u.range} output`),o=re(e,u.select),s=e.querySelector(`.${u.checkbox} input`),a=re(e,u.textarea);t.oninput=we,n.onchange=we,o.onchange=we,s.onchange=we,a.oninput=we,r.oninput=()=>{we(),i.value=r.value},r.onchange=()=>{we(),i.value=r.value}},xe=e=>"string"==typeof e?document.querySelector(e):e,ke=e=>{const t=T();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},Ee=e=>{"rtl"===window.getComputedStyle(e).direction&&te(E(),u.rtl)},Ce=e=>{const t=ye();if(ge())return void m("SweetAlert2 requires document to initialize");const n=document.createElement("div");n.className=u.container,t&&te(n,u["no-transition"]),X(n,ve),n.dataset.swal2Theme=e.theme;const r=xe(e.target);r.appendChild(n),ke(e),Ee(r),be()},Ae=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?Te(e,t):e&&X(t,e)},Te=(e,t)=>{e.jquery?Oe(t,e):X(t,e.toString())},Oe=(e,t)=>{if(e.textContent="",0 in t)for(let n=0;n in t;n++)e.appendChild(t[n].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},Se=(e,t)=>{const n=H(),r=B();n&&r&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?oe(n):se(n),Q(n,t,"actions"),$e(n,r,t),X(r,t.loaderHtml||""),Q(r,t,"loader"))};function $e(e,t,n){const r=N(),i=P(),o=D();r&&i&&o&&(Le(r,"confirm",n),Le(i,"deny",n),Le(o,"cancel",n),je(r,i,o,n),n.reverseButtons&&(n.toast?(e.insertBefore(o,r),e.insertBefore(i,r)):(e.insertBefore(o,t),e.insertBefore(i,t),e.insertBefore(r,t))))}function je(e,t,n,r){r.buttonsStyling?(te([e,t,n],u.styled),r.confirmButtonColor&&(e.style.backgroundColor=r.confirmButtonColor,te(e,u["default-outline"])),r.denyButtonColor&&(t.style.backgroundColor=r.denyButtonColor,te(t,u["default-outline"])),r.cancelButtonColor&&(n.style.backgroundColor=r.cancelButtonColor,te(n,u["default-outline"]))):ne([e,t,n],u.styled)}function Le(e,t,n){const r=p(t);ce(e,n[`show${r}Button`],"inline-block"),X(e,n[`${t}ButtonText`]||""),e.setAttribute("aria-label",n[`${t}ButtonAriaLabel`]||""),e.className=u[t],Q(e,n,`${t}Button`)}const _e=(e,t)=>{const n=z();n&&(X(n,t.closeButtonHtml||""),Q(n,t,"closeButton"),ce(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel||""))},Me=(e,t)=>{const n=E();n&&(Ne(n,t.backdrop),De(n,t.position),Pe(n,t.grow),Q(n,t,"container"))};function Ne(e,t){"string"==typeof t?e.style.background=t:t||te([document.documentElement,document.body],u["no-backdrop"])}function De(e,t){t&&(t in u?te(e,u[t]):(f('The "position" parameter is not valid, defaulting to "center"'),te(e,u.center)))}function Pe(e,t){t&&te(e,u[`grow-${t}`])}var Fe={innerParams:new WeakMap,domCache:new WeakMap};const Be=["input","file","range","select","radio","checkbox","textarea"],He=(e,t)=>{const n=T();if(!n)return;const r=Fe.innerParams.get(e),i=!r||t.input!==r.input;Be.forEach((e=>{const r=re(n,u[e]);r&&(ze(e,t.inputAttributes),r.className=u[e],i&&se(r))})),t.input&&(i&&qe(t),Re(t))},qe=e=>{if(!e.input)return;if(!Xe[e.input])return void m(`Unexpected type of input! Expected ${Object.keys(Xe).join(" | ")}, got "${e.input}"`);const t=Ue(e.input);if(!t)return;const n=Xe[e.input](t,e);oe(t),e.inputAutoFocus&&setTimeout((()=>{J(n)}))},Ie=e=>{for(let t=0;t{const n=T();if(!n)return;const r=G(n,e);if(r){Ie(r);for(const e in t)r.setAttribute(e,t[e])}},Re=e=>{if(!e.input)return;const t=Ue(e.input);t&&Q(t,e,"input")},Ve=(e,t)=>{!e.placeholder&&t.inputPlaceholder&&(e.placeholder=t.inputPlaceholder)},We=(e,t,n)=>{if(n.inputLabel){const r=document.createElement("label"),i=u["input-label"];r.setAttribute("for",e.id),r.className=i,"object"==typeof n.customClass&&te(r,n.customClass.inputLabel),r.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",r)}},Ue=e=>{const t=T();if(t)return re(t,u[e]||u.input)},Ke=(e,t)=>{["string","number"].includes(typeof t)?e.value=`${t}`:k(t)||f(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof t}"`)},Xe={};Xe.text=Xe.email=Xe.password=Xe.number=Xe.tel=Xe.url=Xe.search=Xe.date=Xe["datetime-local"]=Xe.time=Xe.week=Xe.month=(e,t)=>(Ke(e,t.inputValue),We(e,e,t),Ve(e,t),e.type=t.input,e),Xe.file=(e,t)=>(We(e,e,t),Ve(e,t),e),Xe.range=(e,t)=>{const n=e.querySelector("input"),r=e.querySelector("output");return Ke(n,t.inputValue),n.type=t.input,Ke(r,t.inputValue),We(n,e,t),e},Xe.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");X(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return We(e,e,t),e},Xe.radio=e=>(e.textContent="",e),Xe.checkbox=(e,t)=>{const n=G(T(),"checkbox");n.value="1",n.checked=Boolean(t.inputValue);const r=e.querySelector("span");return X(r,t.inputPlaceholder||t.inputLabel),n},Xe.textarea=(e,t)=>{Ke(e,t.inputValue),Ve(e,t),We(e,e,t);const n=e=>parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight);return setTimeout((()=>{if("MutationObserver"in window){const r=parseInt(window.getComputedStyle(T()).width);new MutationObserver((()=>{if(!document.body.contains(e))return;const i=e.offsetWidth+n(e);i>r?T().style.width=`${i}px`:ie(T(),"width",t.width)})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};const Ye=(e,t)=>{const n=j();n&&(ae(n),Q(n,t,"htmlContainer"),t.html?(Ae(t.html,n),oe(n,"block")):t.text?(n.textContent=t.text,oe(n,"block")):se(n),He(e,t))},Ze=(e,t)=>{const n=q();n&&(ae(n),ce(n,t.footer,"block"),t.footer&&Ae(t.footer,n),Q(n,t,"footer"))},Qe=(e,t)=>{const n=Fe.innerParams.get(e),r=O();if(r){if(n&&t.icon===n.icon)return nt(r,t),void Ge(r,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(d).indexOf(t.icon))return m(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${t.icon}"`),void se(r);oe(r),nt(r,t),Ge(r,t),te(r,t.showClass&&t.showClass.icon),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",Je)}else se(r)}},Ge=(e,t)=>{for(const[n,r]of Object.entries(d))t.icon!==n&&ne(e,r);te(e,t.icon&&d[t.icon]),rt(e,t),Je(),Q(e,t,"icon")},Je=()=>{const e=T();if(!e)return;const t=window.getComputedStyle(e).getPropertyValue("background-color"),n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e
    \n \n
    \n
    \n',tt='\n \n \n \n \n',nt=(e,t)=>{if(!t.icon&&!t.iconHtml)return;let n=e.innerHTML,r="";t.iconHtml?r=it(t.iconHtml):"success"===t.icon?(r=et,n=n.replace(/ style=".*?"/g,"")):"error"===t.icon?r=tt:t.icon&&(r=it({question:"?",warning:"!",info:"i"}[t.icon])),n.trim()!==r.trim()&&X(e,r)},rt=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])le(e,n,"background-color",t.iconColor);le(e,".swal2-success-ring","border-color",t.iconColor)}},it=e=>`
    ${e}
    `,ot=(e,t)=>{const n=L();n&&(t.imageUrl?(oe(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt||""),ie(n,"width",t.imageWidth),ie(n,"height",t.imageHeight),n.className=u.image,Q(n,t,"image")):se(n))};let st=!1,at=0,lt=0,ct=0,ut=0;const dt=e=>{e.addEventListener("mousedown",pt),document.body.addEventListener("mousemove",ft),e.addEventListener("mouseup",mt),e.addEventListener("touchstart",pt),document.body.addEventListener("touchmove",ft),e.addEventListener("touchend",mt)},ht=e=>{e.removeEventListener("mousedown",pt),document.body.removeEventListener("mousemove",ft),e.removeEventListener("mouseup",mt),e.removeEventListener("touchstart",pt),document.body.removeEventListener("touchmove",ft),e.removeEventListener("touchend",mt)},pt=e=>{const t=T();if(e.target===t||O().contains(e.target)){st=!0;const n=gt(e);at=n.clientX,lt=n.clientY,ct=parseInt(t.style.insetInlineStart)||0,ut=parseInt(t.style.insetBlockStart)||0,te(t,"swal2-dragging")}},ft=e=>{const t=T();if(st){let{clientX:n,clientY:r}=gt(e);t.style.insetInlineStart=`${ct+(n-at)}px`,t.style.insetBlockStart=`${ut+(r-lt)}px`}},mt=()=>{const e=T();st=!1,ne(e,"swal2-dragging")},gt=e=>{let t=0,n=0;return e.type.startsWith("mouse")?(t=e.clientX,n=e.clientY):e.type.startsWith("touch")&&(t=e.touches[0].clientX,n=e.touches[0].clientY),{clientX:t,clientY:n}},vt=(e,t)=>{const n=E(),r=T();if(n&&r){if(t.toast){ie(n,"width",t.width),r.style.width="100%";const e=B();e&&r.insertBefore(e,O())}else ie(r,"width",t.width);ie(r,"padding",t.padding),t.color&&(r.style.color=t.color),t.background&&(r.style.background=t.background),se(M()),yt(r,t),t.draggable&&!t.toast?(te(r,u.draggable),dt(r)):(ne(r,u.draggable),ht(r))}},yt=(e,t)=>{const n=t.showClass||{};e.className=`${u.popup} ${ue(e)?n.popup:""}`,t.toast?(te([document.documentElement,document.body],u["toast-shown"]),te(e,u.toast)):te(e,u.modal),Q(e,t,"popup"),"string"==typeof t.customClass&&te(e,t.customClass),t.icon&&te(e,u[`icon-${t.icon}`])},wt=(e,t)=>{const n=_();if(!n)return;const{progressSteps:r,currentProgressStep:i}=t;r&&0!==r.length&&void 0!==i?(oe(n),n.textContent="",i>=r.length&&f("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),r.forEach(((e,o)=>{const s=bt(e);if(n.appendChild(s),o===i&&te(s,u["active-progress-step"]),o!==r.length-1){const e=xt(t);n.appendChild(e)}}))):se(n)},bt=e=>{const t=document.createElement("li");return te(t,u["progress-step"]),X(t,e),t},xt=e=>{const t=document.createElement("li");return te(t,u["progress-step-line"]),e.progressStepsDistance&&ie(t,"width",e.progressStepsDistance),t},kt=(e,t)=>{const n=$();n&&(ae(n),ce(n,t.title||t.titleText,"block"),t.title&&Ae(t.title,n),t.titleText&&(n.innerText=t.titleText),Q(n,t,"title"))},Et=(e,t)=>{vt(e,t),Me(e,t),wt(e,t),Qe(e,t),ot(e,t),kt(e,t),_e(e,t),Ye(e,t),Se(e,t),Ze(e,t);const n=T();"function"==typeof t.didRender&&n&&t.didRender(n),s.eventEmitter.emit("didRender",n)},Ct=()=>ue(T()),At=()=>{var e;return null===(e=N())||void 0===e?void 0:e.click()},Tt=()=>{var e;return null===(e=P())||void 0===e?void 0:e.click()},Ot=()=>{var e;return null===(e=D())||void 0===e?void 0:e.click()},St=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),$t=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},jt=(e,t,n)=>{$t(e),t.toast||(e.keydownHandler=e=>Nt(t,e,n),e.keydownTarget=t.keydownListenerCapture?window:T(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0)},Lt=(e,t)=>{var n;const r=V();if(r.length)return(e+=t)===r.length?e=0:-1===e&&(e=r.length-1),void r[e].focus();null===(n=T())||void 0===n||n.focus()},_t=["ArrowRight","ArrowDown"],Mt=["ArrowLeft","ArrowUp"],Nt=(e,t,n)=>{e&&(t.isComposing||229===t.keyCode||(e.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?Dt(t,e):"Tab"===t.key?Pt(t):[..._t,...Mt].includes(t.key)?Ft(t.key):"Escape"===t.key&&Bt(t,e,n)))},Dt=(e,t)=>{if(!w(t.allowEnterKey))return;const n=G(T(),t.input);if(e.target&&n&&e.target instanceof HTMLElement&&e.target.outerHTML===n.outerHTML){if(["textarea","file"].includes(t.input))return;At(),e.preventDefault()}},Pt=e=>{const t=e.target,n=V();let r=-1;for(let e=0;e{const t=H(),n=N(),r=P(),i=D();if(!(t&&n&&r&&i))return;const o=[n,r,i];if(document.activeElement instanceof HTMLElement&&!o.includes(document.activeElement))return;const s=_t.includes(e)?"nextElementSibling":"previousElementSibling";let a=document.activeElement;if(a){for(let e=0;e{w(t.allowEscapeKey)&&(e.preventDefault(),n(St.esc))};var Ht={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const qt=()=>{const e=E();Array.from(document.body.children).forEach((t=>{t.contains(e)||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")||""),t.setAttribute("aria-hidden","true"))}))},It=()=>{Array.from(document.body.children).forEach((e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")||""),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")}))},zt="undefined"!=typeof window&&!!window.GestureEvent,Rt=()=>{if(zt&&!Y(document.body,u.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",te(document.body,u.iosfix),Vt()}},Vt=()=>{const e=E();if(!e)return;let t;e.ontouchstart=e=>{t=Wt(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},Wt=e=>{const t=e.target,n=E(),r=j();return!(!n||!r||Ut(e)||Kt(e)||t!==n&&(he(n)||!(t instanceof HTMLElement)||"INPUT"===t.tagName||"TEXTAREA"===t.tagName||he(r)&&r.contains(t)))},Ut=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,Kt=e=>e.touches&&e.touches.length>1,Xt=()=>{if(Y(document.body,u.iosfix)){const e=parseInt(document.body.style.top,10);ne(document.body,u.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}},Yt=()=>{const e=document.createElement("div");e.className=u["scrollbar-measure"],document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t};let Zt=null;const Qt=e=>{null===Zt&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(Zt=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${Zt+Yt()}px`)},Gt=()=>{null!==Zt&&(document.body.style.paddingRight=`${Zt}px`,Zt=null)};function Jt(e,t,n,r){U()?cn(e,r):(l(n).then((()=>cn(e,r))),$t(s)),zt?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),W()&&(Gt(),Xt(),It()),en()}function en(){ne([document.documentElement,document.body],[u.shown,u["height-auto"],u["no-backdrop"],u["toast-shown"]])}function tn(e){e=sn(e);const t=Ht.swalPromiseResolve.get(this),n=nn(this);this.isAwaitingPromise?e.isDismissed||(on(this),t(e)):n&&t(e)}const nn=e=>{const t=T();if(!t)return!1;const n=Fe.innerParams.get(e);if(!n||Y(t,n.hideClass.popup))return!1;ne(t,n.showClass.popup),te(t,n.hideClass.popup);const r=E();return ne(r,n.showClass.backdrop),te(r,n.hideClass.backdrop),an(e,t,n),!0};function rn(e){const t=Ht.swalPromiseReject.get(this);on(this),t&&t(e)}const on=e=>{e.isAwaitingPromise&&(delete e.isAwaitingPromise,Fe.innerParams.get(e)||e._destroy())},sn=e=>void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e),an=(e,t,n)=>{var r;const i=E(),o=pe(t);"function"==typeof n.willClose&&n.willClose(t),null===(r=s.eventEmitter)||void 0===r||r.emit("willClose",t),o?ln(e,t,i,n.returnFocus,n.didClose):Jt(e,i,n.returnFocus,n.didClose)},ln=(e,t,n,r,i)=>{s.swalCloseEventFinishedCallback=Jt.bind(null,e,n,r,i);const o=function(e){var n;e.target===t&&(null===(n=s.swalCloseEventFinishedCallback)||void 0===n||n.call(s),delete s.swalCloseEventFinishedCallback,t.removeEventListener("animationend",o),t.removeEventListener("transitionend",o))};t.addEventListener("animationend",o),t.addEventListener("transitionend",o)},cn=(e,t)=>{setTimeout((()=>{var n;"function"==typeof t&&t.bind(e.params)(),null===(n=s.eventEmitter)||void 0===n||n.emit("didClose"),e._destroy&&e._destroy()}))},un=e=>{let t=T();if(t||new pi,t=T(),!t)return;const n=B();U()?se(O()):dn(t,e),oe(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},dn=(e,t)=>{const n=H(),r=B();n&&r&&(!t&&ue(N())&&(t=N()),oe(n),t&&(se(t),r.setAttribute("data-button-to-replace",t.className),n.insertBefore(r,t)),te([e,n],u.loading))},hn=(e,t)=>{"select"===t.input||"radio"===t.input?vn(e,t):["text","email","number","tel","textarea"].some((e=>e===t.input))&&(b(t.inputValue)||k(t.inputValue))&&(un(N()),yn(e,t))},pn=(e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return fn(n);case"radio":return mn(n);case"file":return gn(n);default:return t.inputAutoTrim?n.value.trim():n.value}},fn=e=>e.checked?1:0,mn=e=>e.checked?e.value:null,gn=e=>e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,vn=(e,t)=>{const n=T();if(!n)return;const r=e=>{"select"===t.input?wn(n,xn(e),t):"radio"===t.input&&bn(n,xn(e),t)};b(t.inputOptions)||k(t.inputOptions)?(un(N()),x(t.inputOptions).then((t=>{e.hideLoading(),r(t)}))):"object"==typeof t.inputOptions?r(t.inputOptions):m("Unexpected type of inputOptions! Expected object, Map or Promise, got "+typeof t.inputOptions)},yn=(e,t)=>{const n=e.getInput();n&&(se(n),x(t.inputValue).then((r=>{n.value="number"===t.input?`${parseFloat(r)||0}`:`${r}`,oe(n),n.focus(),e.hideLoading()})).catch((t=>{m(`Error in inputValue promise: ${t}`),n.value="",oe(n),n.focus(),e.hideLoading()})))};function wn(e,t,n){const r=re(e,u.select);if(!r)return;const i=(e,t,r)=>{const i=document.createElement("option");i.value=r,X(i,t),i.selected=kn(r,n.inputValue),e.appendChild(i)};t.forEach((e=>{const t=e[0],n=e[1];if(Array.isArray(n)){const e=document.createElement("optgroup");e.label=t,e.disabled=!1,r.appendChild(e),n.forEach((t=>i(e,t[1],t[0])))}else i(r,n,t)})),r.focus()}function bn(e,t,n){const r=re(e,u.radio);if(!r)return;t.forEach((e=>{const t=e[0],i=e[1],o=document.createElement("input"),s=document.createElement("label");o.type="radio",o.name=u.radio,o.value=t,kn(t,n.inputValue)&&(o.checked=!0);const a=document.createElement("span");X(a,i),a.className=u.label,s.appendChild(o),s.appendChild(a),r.appendChild(s)}));const i=r.querySelectorAll("input");i.length&&i[0].focus()}const xn=e=>{const t=[];return e instanceof Map?e.forEach(((e,n)=>{let r=e;"object"==typeof r&&(r=xn(r)),t.push([n,r])})):Object.keys(e).forEach((n=>{let r=e[n];"object"==typeof r&&(r=xn(r)),t.push([n,r])})),t},kn=(e,t)=>!!t&&t.toString()===e.toString(),En=e=>{const t=Fe.innerParams.get(e);e.disableButtons(),t.input?Tn(e,"confirm"):Ln(e,!0)},Cn=e=>{const t=Fe.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Tn(e,"deny"):Sn(e,!1)},An=(e,t)=>{e.disableButtons(),t(St.cancel)},Tn=(e,t)=>{const n=Fe.innerParams.get(e);if(!n.input)return void m(`The "input" parameter is needed to be set when using returnInputValueOn${p(t)}`);const r=e.getInput(),i=pn(e,n);n.inputValidator?On(e,i,t):r&&!r.checkValidity()?(e.enableButtons(),e.showValidationMessage(n.validationMessage||r.validationMessage)):"deny"===t?Sn(e,i):Ln(e,i)},On=(e,t,n)=>{const r=Fe.innerParams.get(e);e.disableInput(),Promise.resolve().then((()=>x(r.inputValidator(t,r.validationMessage)))).then((r=>{e.enableButtons(),e.enableInput(),r?e.showValidationMessage(r):"deny"===n?Sn(e,t):Ln(e,t)}))},Sn=(e,t)=>{const n=Fe.innerParams.get(e||void 0);n.showLoaderOnDeny&&un(P()),n.preDeny?(e.isAwaitingPromise=!0,Promise.resolve().then((()=>x(n.preDeny(t,n.validationMessage)))).then((n=>{!1===n?(e.hideLoading(),on(e)):e.close({isDenied:!0,value:void 0===n?t:n})})).catch((t=>jn(e||void 0,t)))):e.close({isDenied:!0,value:t})},$n=(e,t)=>{e.close({isConfirmed:!0,value:t})},jn=(e,t)=>{e.rejectPromise(t)},Ln=(e,t)=>{const n=Fe.innerParams.get(e||void 0);n.showLoaderOnConfirm&&un(),n.preConfirm?(e.resetValidationMessage(),e.isAwaitingPromise=!0,Promise.resolve().then((()=>x(n.preConfirm(t,n.validationMessage)))).then((n=>{ue(M())||!1===n?(e.hideLoading(),on(e)):$n(e,void 0===n?t:n)})).catch((t=>jn(e||void 0,t)))):$n(e,t)};function _n(){const e=Fe.innerParams.get(this);if(!e)return;const t=Fe.domCache.get(this);se(t.loader),U()?e.icon&&oe(O()):Mn(t),ne([t.popup,t.actions],u.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}const Mn=e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?oe(t[0],"inline-block"):de()&&se(e.actions)};function Nn(){const e=Fe.innerParams.get(this),t=Fe.domCache.get(this);return t?G(t.popup,e.input):null}function Dn(e,t,n){const r=Fe.domCache.get(e);t.forEach((e=>{r[e].disabled=n}))}function Pn(e,t){const n=T();if(n&&e)if("radio"===e.type){const e=n.querySelectorAll(`[name="${u.radio}"]`);for(let n=0;nObject.prototype.hasOwnProperty.call(Rn,e),Xn=e=>-1!==Vn.indexOf(e),Yn=e=>Wn[e],Zn=e=>{Kn(e)||f(`Unknown parameter "${e}"`)},Qn=e=>{Un.includes(e)&&f(`The parameter "${e}" is incompatible with toasts`)},Gn=e=>{const t=Yn(e);t&&y(e,t)},Jn=e=>{!1===e.backdrop&&e.allowOutsideClick&&f('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),e.theme&&!["light","dark","auto","borderless"].includes(e.theme)&&f(`Invalid theme "${e.theme}". Expected "light", "dark", "auto", or "borderless"`);for(const t in e)Zn(t),e.toast&&Qn(t),Gn(t)};function er(e){const t=E(),n=T(),r=Fe.innerParams.get(this);if(!n||Y(n,r.hideClass.popup))return void f("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const i=tr(e),o=Object.assign({},r,i);Jn(o),t.dataset.swal2Theme=o.theme,Et(this,o),Fe.innerParams.set(this,o),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})}const tr=e=>{const t={};return Object.keys(e).forEach((n=>{Xn(n)?t[n]=e[n]:f(`Invalid parameter to update: ${n}`)})),t};function nr(){const e=Fe.domCache.get(this),t=Fe.innerParams.get(this);t?(e.popup&&s.swalCloseEventFinishedCallback&&(s.swalCloseEventFinishedCallback(),delete s.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),s.eventEmitter.emit("didDestroy"),rr(this)):ir(this)}const rr=e=>{ir(e),delete e.params,delete s.keydownHandler,delete s.keydownTarget,delete s.currentInstance},ir=e=>{e.isAwaitingPromise?(or(Fe,e),e.isAwaitingPromise=!0):(or(Ht,e),or(Fe,e),delete e.isAwaitingPromise,delete e.disableButtons,delete e.enableButtons,delete e.getInput,delete e.disableInput,delete e.enableInput,delete e.hideLoading,delete e.disableLoading,delete e.showValidationMessage,delete e.resetValidationMessage,delete e.close,delete e.closePopup,delete e.closeModal,delete e.closeToast,delete e.rejectPromise,delete e.update,delete e._destroy)},or=(e,t)=>{for(const n in e)e[n].delete(t)};var sr=Object.freeze({__proto__:null,_destroy:nr,close:tn,closeModal:tn,closePopup:tn,closeToast:tn,disableButtons:Bn,disableInput:qn,disableLoading:_n,enableButtons:Fn,enableInput:Hn,getInput:Nn,handleAwaitingPromise:on,hideLoading:_n,rejectPromise:rn,resetValidationMessage:zn,showValidationMessage:In,update:er});const ar=(e,t,n)=>{e.toast?lr(e,t,n):(dr(t),hr(t),pr(e,t,n))},lr=(e,t,n)=>{t.popup.onclick=()=>{e&&(cr(e)||e.timer||e.input)||n(St.close)}},cr=e=>!!(e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton);let ur=!1;const dr=e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(t){e.container.onmouseup=()=>{},t.target===e.container&&(ur=!0)}}},hr=e=>{e.container.onmousedown=t=>{t.target===e.container&&t.preventDefault(),e.popup.onmouseup=function(t){e.popup.onmouseup=()=>{},(t.target===e.popup||t.target instanceof HTMLElement&&e.popup.contains(t.target))&&(ur=!0)}}},pr=(e,t,n)=>{t.container.onclick=r=>{ur?ur=!1:r.target===t.container&&w(e.allowOutsideClick)&&n(St.backdrop)}},fr=e=>"object"==typeof e&&e.jquery,mr=e=>e instanceof Element||fr(e),gr=e=>{const t={};return"object"!=typeof e[0]||mr(e[0])?["title","html","icon"].forEach(((n,r)=>{const i=e[r];"string"==typeof i||mr(i)?t[n]=i:void 0!==i&&m(`Unexpected type of ${n}! Expected "string" or "Element", got ${typeof i}`)})):Object.assign(t,e[0]),t};function vr(){for(var e=arguments.length,t=new Array(e),n=0;ns.timeout&&s.timeout.getTimerLeft(),br=()=>{if(s.timeout)return me(),s.timeout.stop()},xr=()=>{if(s.timeout){const e=s.timeout.start();return fe(e),e}},kr=()=>{const e=s.timeout;return e&&(e.running?br():xr())},Er=e=>{if(s.timeout){const t=s.timeout.increase(e);return fe(t,!0),t}},Cr=()=>!(!s.timeout||!s.timeout.isRunning());let Ar=!1;const Tr={};function Or(){Tr[arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,Ar||(document.body.addEventListener("click",Sr),Ar=!0)}const Sr=e=>{for(let t=e.target;t&&t!==document;t=t.parentNode)for(const e in Tr){const n=t.getAttribute(e);if(n)return void Tr[e].fire({template:n})}};class $r{constructor(){this.events={}}_getHandlersByEventName(e){return void 0===this.events[e]&&(this.events[e]=[]),this.events[e]}on(e,t){const n=this._getHandlersByEventName(e);n.includes(t)||n.push(t)}once(e,t){var n=this;const r=function(){n.removeListener(e,r);for(var i=arguments.length,o=new Array(i),s=0;s1?t-1:0),r=1;r{try{e.apply(this,n)}catch(e){console.error(e)}}))}removeListener(e,t){const n=this._getHandlersByEventName(e),r=n.indexOf(t);r>-1&&n.splice(r,1)}removeAllListeners(e){void 0!==this.events[e]&&(this.events[e].length=0)}reset(){this.events={}}}s.eventEmitter=new $r;const jr=(e,t)=>{s.eventEmitter.on(e,t)},Lr=(e,t)=>{s.eventEmitter.once(e,t)},_r=(e,t)=>{e?t?s.eventEmitter.removeListener(e,t):s.eventEmitter.removeAllListeners(e):s.eventEmitter.reset()};var Mr=Object.freeze({__proto__:null,argsToParams:gr,bindClickHandler:Or,clickCancel:Ot,clickConfirm:At,clickDeny:Tt,enableLoading:un,fire:vr,getActions:H,getCancelButton:D,getCloseButton:z,getConfirmButton:N,getContainer:E,getDenyButton:P,getFocusableElements:V,getFooter:q,getHtmlContainer:j,getIcon:O,getIconContent:S,getImage:L,getInputLabel:F,getLoader:B,getPopup:T,getProgressSteps:_,getTimerLeft:wr,getTimerProgressBar:I,getTitle:$,getValidationMessage:M,increaseTimer:Er,isDeprecatedParameter:Yn,isLoading:K,isTimerRunning:Cr,isUpdatableParameter:Xn,isValidParameter:Kn,isVisible:Ct,mixin:yr,off:_r,on:jr,once:Lr,resumeTimer:xr,showLoading:un,stopTimer:br,toggleTimer:kr});class Nr{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){const t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const Dr=["swal-title","swal-html","swal-footer"],Pr=e=>{const t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};const n=t.content;return Vr(n),Object.assign(Fr(n),Br(n),Hr(n),qr(n),Ir(n),zr(n),Rr(n,Dr))},Fr=e=>{const t={};return Array.from(e.querySelectorAll("swal-param")).forEach((e=>{Wr(e,["name","value"]);const n=e.getAttribute("name"),r=e.getAttribute("value");n&&r&&("boolean"==typeof Rn[n]?t[n]="false"!==r:"object"==typeof Rn[n]?t[n]=JSON.parse(r):t[n]=r)})),t},Br=e=>{const t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((e=>{const n=e.getAttribute("name"),r=e.getAttribute("value");n&&r&&(t[n]=new Function(`return ${r}`)())})),t},Hr=e=>{const t={};return Array.from(e.querySelectorAll("swal-button")).forEach((e=>{Wr(e,["type","color","aria-label"]);const n=e.getAttribute("type");n&&["confirm","cancel","deny"].includes(n)&&(t[`${n}ButtonText`]=e.innerHTML,t[`show${p(n)}Button`]=!0,e.hasAttribute("color")&&(t[`${n}ButtonColor`]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t[`${n}ButtonAriaLabel`]=e.getAttribute("aria-label")))})),t},qr=e=>{const t={},n=e.querySelector("swal-image");return n&&(Wr(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")||void 0),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")||void 0),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")||void 0),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt")||void 0)),t},Ir=e=>{const t={},n=e.querySelector("swal-icon");return n&&(Wr(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},zr=e=>{const t={},n=e.querySelector("swal-input");n&&(Wr(n,["type","label","placeholder","value"]),t.input=n.getAttribute("type")||"text",n.hasAttribute("label")&&(t.inputLabel=n.getAttribute("label")),n.hasAttribute("placeholder")&&(t.inputPlaceholder=n.getAttribute("placeholder")),n.hasAttribute("value")&&(t.inputValue=n.getAttribute("value")));const r=Array.from(e.querySelectorAll("swal-input-option"));return r.length&&(t.inputOptions={},r.forEach((e=>{Wr(e,["value"]);const n=e.getAttribute("value");if(!n)return;const r=e.innerHTML;t.inputOptions[n]=r}))),t},Rr=(e,t)=>{const n={};for(const r in t){const i=t[r],o=e.querySelector(i);o&&(Wr(o,[]),n[i.replace(/^swal-/,"")]=o.innerHTML.trim())}return n},Vr=e=>{const t=Dr.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((e=>{const n=e.tagName.toLowerCase();t.includes(n)||f(`Unrecognized element <${n}>`)}))},Wr=(e,t)=>{Array.from(e.attributes).forEach((n=>{-1===t.indexOf(n.name)&&f([`Unrecognized attribute "${n.name}" on <${e.tagName.toLowerCase()}>.`,t.length?`Allowed attributes are: ${t.join(", ")}`:"To set the value, use HTML within the element."])}))},Ur=10,Kr=e=>{const t=E(),n=T();"function"==typeof e.willOpen&&e.willOpen(n),s.eventEmitter.emit("willOpen",n);const r=window.getComputedStyle(document.body).overflowY;Qr(t,n,e),setTimeout((()=>{Yr(t,n)}),Ur),W()&&(Zr(t,e.scrollbarPadding,r),qt()),U()||s.previousActiveElement||(s.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout((()=>e.didOpen(n))),s.eventEmitter.emit("didOpen",n),ne(t,u["no-transition"])},Xr=e=>{const t=T();if(e.target!==t)return;const n=E();t.removeEventListener("animationend",Xr),t.removeEventListener("transitionend",Xr),n.style.overflowY="auto"},Yr=(e,t)=>{pe(t)?(e.style.overflowY="hidden",t.addEventListener("animationend",Xr),t.addEventListener("transitionend",Xr)):e.style.overflowY="auto"},Zr=(e,t,n)=>{Rt(),t&&"hidden"!==n&&Qt(n),setTimeout((()=>{e.scrollTop=0}))},Qr=(e,t,n)=>{te(e,n.showClass.backdrop),n.animation?(t.style.setProperty("opacity","0","important"),oe(t,"grid"),setTimeout((()=>{te(t,n.showClass.popup),t.style.removeProperty("opacity")}),Ur)):oe(t,"grid"),te([document.documentElement,document.body],u.shown),n.heightAuto&&n.backdrop&&!n.toast&&te([document.documentElement,document.body],u["height-auto"])};var Gr={email:(e,t)=>/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function Jr(e){e.inputValidator||("email"===e.input&&(e.inputValidator=Gr.email),"url"===e.input&&(e.inputValidator=Gr.url))}function ei(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(f('Target parameter is not valid, defaulting to "body"'),e.target="body")}function ti(e){Jr(e),e.showLoaderOnConfirm&&!e.preConfirm&&f("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),ei(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
    ")),Ce(e)}let ni;var ri=new WeakMap;class ii{constructor(){if(r(this,ri,void 0),"undefined"==typeof window)return;ni=this;for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(Jn(Object.assign({},t,e)),s.currentInstance){const e=Ht.swalPromiseResolve.get(s.currentInstance),{isAwaitingPromise:t}=s.currentInstance;s.currentInstance._destroy(),t||e({isDismissed:!0}),W()&&It()}s.currentInstance=ni;const n=si(e,t);ti(n),Object.freeze(n),s.timeout&&(s.timeout.stop(),delete s.timeout),clearTimeout(s.restoreFocusTimeout);const r=ai(ni);return Et(ni,n),Fe.innerParams.set(ni,n),oi(ni,r,n)}then(e){return n(ri,this).then(e)}finally(e){return n(ri,this).finally(e)}}const oi=(e,t,n)=>new Promise(((r,i)=>{const o=t=>{e.close({isDismissed:!0,dismiss:t})};Ht.swalPromiseResolve.set(e,r),Ht.swalPromiseReject.set(e,i),t.confirmButton.onclick=()=>{En(e)},t.denyButton.onclick=()=>{Cn(e)},t.cancelButton.onclick=()=>{An(e,o)},t.closeButton.onclick=()=>{o(St.close)},ar(n,t,o),jt(s,n,o),hn(e,n),Kr(n),li(s,n,o),ci(t,n),setTimeout((()=>{t.container.scrollTop=0}))})),si=(e,t)=>{const n=Pr(e),r=Object.assign({},Rn,t,n,e);return r.showClass=Object.assign({},Rn.showClass,r.showClass),r.hideClass=Object.assign({},Rn.hideClass,r.hideClass),!1===r.animation&&(r.showClass={backdrop:"swal2-noanimation"},r.hideClass={}),r},ai=e=>{const t={popup:T(),container:E(),actions:H(),confirmButton:N(),denyButton:P(),cancelButton:D(),loader:B(),closeButton:z(),validationMessage:M(),progressSteps:_()};return Fe.domCache.set(e,t),t},li=(e,t,n)=>{const r=I();se(r),t.timer&&(e.timeout=new Nr((()=>{n("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(oe(r),Q(r,t,"timerProgressBar"),setTimeout((()=>{e.timeout&&e.timeout.running&&fe(t.timer)}))))},ci=(e,t)=>{if(!t.toast)return w(t.allowEnterKey)?void(ui(e)||di(e,t)||Lt(-1,1)):(y("allowEnterKey"),void hi())},ui=e=>{const t=Array.from(e.popup.querySelectorAll("[autofocus]"));for(const e of t)if(e instanceof HTMLElement&&ue(e))return e.focus(),!0;return!1},di=(e,t)=>t.focusDeny&&ue(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ue(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ue(e.confirmButton)||(e.confirmButton.focus(),0)),hi=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){const e=new Date,t=localStorage.getItem("swal-initiation");t?(e.getTime()-Date.parse(t))/864e5>3&&setTimeout((()=>{document.body.style.pointerEvents="none";const e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((()=>{e.play().catch((()=>{}))}),2500)}),500):localStorage.setItem("swal-initiation",`${e}`)}ii.prototype.disableButtons=Bn,ii.prototype.enableButtons=Fn,ii.prototype.getInput=Nn,ii.prototype.disableInput=qn,ii.prototype.enableInput=Hn,ii.prototype.hideLoading=_n,ii.prototype.disableLoading=_n,ii.prototype.showValidationMessage=In,ii.prototype.resetValidationMessage=zn,ii.prototype.close=tn,ii.prototype.closePopup=tn,ii.prototype.closeModal=tn,ii.prototype.closeToast=tn,ii.prototype.rejectPromise=rn,ii.prototype.update=er,ii.prototype._destroy=nr,Object.assign(ii,Mr),Object.keys(sr).forEach((e=>{ii[e]=function(){return ni&&ni[e]?ni[e](...arguments):null}})),ii.DismissReason=St,ii.version="11.17.2";const pi=ii;return pi.default=pi,pi}(),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2),"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,':root{--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-footer-border-color: #eee;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-input-background: transparent;--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):focus-visible{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):focus-visible{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):focus-visible{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus-visible{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);color:inherit;font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:var(--swal2-border-radius);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:1em 1.6em .3em;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:var(--swal2-input-background);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:var(--swal2-background);box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}')},326:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("notyf")}}},334:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.slack")}}},342:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.emerald")}}},358:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.neon")}}},374:function(e,t,n){"use strict";n.r(t);var r=n(891);t.default=class extends r.xI{connect(){document.querySelectorAll("pre > code").forEach((e=>{const t=document.createElement("button");t.classList.add("copy","text-indigo-500"),t.type="button",t.ariaLabel=t.title="Copy code to clipboard";const n='';t.innerHTML=n;const r=e.parentElement;r.classList.add("copyable"),r.append(t),t.addEventListener("click",(()=>{let r=e.textContent.trim();if(r.startsWith("#")){const e=r.split("\n");e.shift(),r=e.join("\n")}window.navigator.clipboard.writeText(r),t.innerHTML='',setTimeout((()=>{t.innerHTML=n}),1e3)}))}))}}},435:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return O}});var r=n(891),i=n(104),o=n(3);class s{success(e,t,n){this.flash("success",e,t,n)}error(e,t,n){this.flash("error",e,t,n)}info(e,t,n){this.flash("info",e,t,n)}warning(e,t,n){this.flash("warning",e,t,n)}flash(e,t,n,r){let i,o,s,a={};if("object"==typeof e?(a=Object.assign({},e),i=a.type,o=a.message,s=a.title,delete a.type,delete a.message,delete a.title):"object"==typeof t?(a=Object.assign({},t),i=e,o=a.message,s=a.title,delete a.message,delete a.title):"object"==typeof n?(a=Object.assign({},n),i=e,o=t,s=a.title,delete a.title):(i=e,o=t,s=n,a=r||{}),!i)throw new Error("Type is required for notifications");if(null==o)throw new Error("Message is required for notifications");const l={type:i,message:o,title:s||i,options:a,metadata:{plugin:""}};this.renderOptions(a),this.renderEnvelopes([l])}}const a=new class extends s{renderEnvelopes(e){(null==e?void 0:e.length)&&this.isDependencyAvailable()&&e.forEach((e=>{try{const{message:t,title:n,type:r,options:i}=e,s=o[r](t,n,i);if(s&&s.parent)try{const e=s.parent();e&&"function"==typeof e.attr&&e.attr("data-turbo-temporary","")}catch(e){console.error("PHPFlasher Toastr: Error setting Turbo compatibility",e)}}catch(t){console.error("PHPFlasher Toastr: Error rendering notification",t,e)}}))}renderOptions(e){if(this.isDependencyAvailable())try{o.options=Object.assign({timeOut:e.timeOut||1e4,progressBar:e.progressBar||!0},e)}catch(e){console.error("PHPFlasher Toastr: Error applying options",e)}}isDependencyAvailable(){return!(!window.jQuery&&!window.$)||(console.error("PHPFlasher Toastr: jQuery is required but not loaded. Make sure jQuery is loaded before using Toastr."),!1)}};i.A.addPlugin("toastr",a);var l=n(113);class c{success(e,t,n){this.flash("success",e,t,n)}error(e,t,n){this.flash("error",e,t,n)}info(e,t,n){this.flash("info",e,t,n)}warning(e,t,n){this.flash("warning",e,t,n)}flash(e,t,n,r){let i,o,s,a={};if("object"==typeof e?(a=Object.assign({},e),i=a.type,o=a.message,s=a.title,delete a.type,delete a.message,delete a.title):"object"==typeof t?(a=Object.assign({},t),i=e,o=a.message,s=a.title,delete a.message,delete a.title):"object"==typeof n?(a=Object.assign({},n),i=e,o=t,s=a.title,delete a.title):(i=e,o=t,s=n,a=r||{}),!i)throw new Error("Type is required for notifications");if(null==o)throw new Error("Message is required for notifications");const l={type:i,message:o,title:s||i,options:a,metadata:{plugin:""}};this.renderOptions(a),this.renderEnvelopes([l])}}const u=new class extends c{constructor(){super(...arguments),this.defaultOptions={timeout:1e4}}renderEnvelopes(e){(null==e?void 0:e.length)&&e.forEach((e=>{try{const t=Object.assign({text:e.message,type:e.type},this.defaultOptions);e.options&&Object.assign(t,e.options);const n=new l(t);n.show();const r=n.layoutDom;r&&"object"==typeof r.dataset&&(r.dataset.turboTemporary="")}catch(t){console.error("PHPFlasher Noty: Error rendering notification",t,e)}}))}renderOptions(e){e&&(Object.assign(this.defaultOptions,e),l.overrideDefaults(this.defaultOptions))}};i.A.addPlugin("noty",u);class d{success(e,t,n){this.flash("success",e,t,n)}error(e,t,n){this.flash("error",e,t,n)}info(e,t,n){this.flash("info",e,t,n)}warning(e,t,n){this.flash("warning",e,t,n)}flash(e,t,n,r){let i,o,s,a={};if("object"==typeof e?(a=Object.assign({},e),i=a.type,o=a.message,s=a.title,delete a.type,delete a.message,delete a.title):"object"==typeof t?(a=Object.assign({},t),i=e,o=a.message,s=a.title,delete a.message,delete a.title):"object"==typeof n?(a=Object.assign({},n),i=e,o=t,s=a.title,delete a.title):(i=e,o=t,s=n,a=r||{}),!i)throw new Error("Type is required for notifications");if(null==o)throw new Error("Message is required for notifications");const l={type:i,message:o,title:s||i,options:a,metadata:{plugin:""}};this.renderOptions(a),this.renderEnvelopes([l])}}var h,p=function(){return p=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{var t;try{const n=Object.assign(Object.assign({},e),e.options);null===(t=this.notyf)||void 0===t||t.open(n)}catch(t){console.error("PHPFlasher Notyf: Error rendering notification",t,e)}}));try{if(this.notyf){const e=this.notyf.view.container,t=this.notyf.view.a11yContainer;e&&e.dataset&&(e.dataset.turboTemporary=""),t&&t.dataset&&(t.dataset.turboTemporary="")}}catch(e){console.error("PHPFlasher Notyf: Error setting Turbo compatibility",e)}}renderOptions(e){if(!e)return;const t=Object.assign({duration:e.duration||1e4},e);t.types=t.types||[],this.addTypeIfNotExists(t.types,{type:"info",className:"notyf__toast--info",background:"#5784E5",icon:{className:"notyf__icon--info",tagName:"i"}}),this.addTypeIfNotExists(t.types,{type:"warning",className:"notyf__toast--warning",background:"#E3A008",icon:{className:"notyf__icon--warning",tagName:"i"}}),this.notyf=this.notyf||new w(t)}initializeNotyf(){this.notyf||this.renderOptions({duration:1e4,position:{x:"right",y:"top"},dismissible:!0})}addTypeIfNotExists(e,t){e.some((e=>e.type===t.type))||e.push(t)}};i.A.addPlugin("notyf",b);var x=n(325);function k(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;class E{success(e,t,n){this.flash("success",e,t,n)}error(e,t,n){this.flash("error",e,t,n)}info(e,t,n){this.flash("info",e,t,n)}warning(e,t,n){this.flash("warning",e,t,n)}flash(e,t,n,r){let i,o,s,a={};if("object"==typeof e?(a=Object.assign({},e),i=a.type,o=a.message,s=a.title,delete a.type,delete a.message,delete a.title):"object"==typeof t?(a=Object.assign({},t),i=e,o=a.message,s=a.title,delete a.message,delete a.title):"object"==typeof n?(a=Object.assign({},n),i=e,o=t,s=a.title,delete a.title):(i=e,o=t,s=n,a=r||{}),!i)throw new Error("Type is required for notifications");if(null==o)throw new Error("Message is required for notifications");const l={type:i,message:o,title:s||i,options:a,metadata:{plugin:""}};this.renderOptions(a),this.renderEnvelopes([l])}}const C=new class extends E{renderEnvelopes(e){return k(this,void 0,void 0,(function*(){this.sweetalert||this.initializeSweetAlert();try{for(const t of e)yield this.renderEnvelope(t)}catch(e){console.error("PHPFlasher SweetAlert: Error rendering envelopes",e)}}))}renderOptions(e){try{this.sweetalert=this.sweetalert||x.mixin(Object.assign({timer:e.timer||1e4,timerProgressBar:e.timerProgressBar||!0},e)),this.setupTurboCompatibility()}catch(e){console.error("PHPFlasher SweetAlert: Error applying options",e)}}renderEnvelope(e){return k(this,void 0,void 0,(function*(){var t;try{let{options:n}=e;n=Object.assign(Object.assign({},n),{icon:(null==n?void 0:n.icon)||e.type,text:(null==n?void 0:n.text)||e.message});const r=yield null===(t=this.sweetalert)||void 0===t?void 0:t.fire(n);this.dispatchResultEvent(r,e)}catch(t){console.error("PHPFlasher SweetAlert: Error rendering envelope",t,e)}}))}initializeSweetAlert(){this.sweetalert||this.renderOptions({timer:1e4,timerProgressBar:!0})}setupTurboCompatibility(){document.addEventListener("turbo:before-cache",(()=>{if(x.isVisible()){const e=x.getPopup();e&&e.style.setProperty("animation-duration","0ms"),x.close()}}))}dispatchResultEvent(e,t){e&&window.dispatchEvent(new CustomEvent("flasher:sweetalert:promise",{detail:{promise:e,envelope:t}}))}};var A,T;i.A.addPlugin("sweetalert",C),A=void 0,T=function(e){e.addTheme("amazon",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    \n
    \n ${(()=>{switch(t){case"success":return'\n \n ';case"error":return'\n \n ';case"warning":return'\n \n ';case"info":return'\n \n '}return""})()}\n
    \n
    \n
    ${(()=>{switch(t){case"success":return"Success!";case"error":return"Problem";case"warning":return"Warning";case"info":return"Information";default:return"Alert"}})()}
    \n
    ${n}
    \n
    \n
    \n
    \n \n
    \n
    \n
    `}})},"object"==typeof exports&&"undefined"!=typeof module?T(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],T):T((A="undefined"!=typeof globalThis?globalThis:A||self).flasher),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("amber",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    \n
    \n
    ${n}
    \n
    \n \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("aurora",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    ${n}
    \n \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("crystal",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    \n

    ${n}

    \n
    \n \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("emerald",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    ${n}
    \n \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){const t={render:e=>{var t;const{type:n,message:r}=e,i="error"===n||"warning"===n,o=i?"alert":"status",s=i?"assertive":"polite",a=String((null===(t=e.options)||void 0===t?void 0:t.timestamp)||"2025-03-02 06:49:21").split(" ")[1].substring(0,5);return`\n `}};e.addTheme("facebook",t)})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("google",{render:e=>{const{type:t,message:n,title:r}=e,i="error"===t||"warning"===t,o=r?`
    ${r}
    `:"";return`\n
    \n
    \n
    \n
    \n ${(()=>{switch(t){case"success":return'\n \n ';case"error":return'\n \n ';case"warning":return'\n \n ';case"info":return'\n \n '}return""})()}\n
    \n
    \n ${o}\n
    ${n}
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){const t={render:e=>{const{type:t,message:n,title:r}=e,i="error"===t||"warning"===t,o=i?"alert":"status",s=i?"assertive":"polite",a=(new Date).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"}),l=r||"PHPFlasher";return`\n
    \n
    \n
    \n
    \n ${(()=>{switch(t){case"success":return'\n \n ';case"error":return'\n \n ';case"warning":return'\n \n ';case"info":return'\n \n '}return""})()}\n
    \n
    \n
    ${l}
    \n
    ${a}
    \n
    \n
    \n
    \n
    ${n}
    \n
    \n \n
    \n
    `}};e.addTheme("ios",t)})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("jade",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    ${n}
    \n \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("material",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    \n
    \n
    ${n}
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("minimal",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    ${n}
    \n \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("neon",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    ${n}
    \n \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("onyx",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    \n
    ${n}
    \n
    \n \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("ruby",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    ${n}
    \n
    \n \n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("sapphire",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n ${n}\n
    \n
    \n
    \n
    \n
    `}})})),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).flasher)}(void 0,(function(e){e.addTheme("slack",{render:e=>{const{type:t,message:n}=e,r="error"===t||"warning"===t;return`\n
    \n
    \n
    \n ${(()=>{switch(t){case"success":return'
    ';case"error":return'
    ';case"warning":return'
    !
    ';case"info":return'
    i
    '}return""})()}\n
    \n
    \n
    ${n}
    \n
    \n
    \n \n
    \n
    \n
    `}})})),window.flasher=i.A;var O=class extends r.xI{connect(){this.initializeCodeBlocks()}initializeCodeBlocks(){document.querySelectorAll("pre > code").forEach((e=>{e.textContent.trim().startsWith("#/")&&this.addTryItButtonToCodeBlock(e)}))}addTryItButtonToCodeBlock(e){const t=document.createElement("button");t.className="tryit text-indigo-500",t.type="button",t.ariaLabel=t.title="Try it!",t.innerHTML='',e.parentElement.classList.add("tryable"),e.parentElement.append(t),t.addEventListener("click",(()=>this.handleTryItButtonClick(t,e.textContent.trim())))}handleTryItButtonClick(e,t){e.innerHTML='';const n=this.defineThemes(),r=t.split("\n")[0].trim();try{"#/ flasher darkMode"===r?this.toggleDarkMode(r):r in n?this.applyTheme(r,n):Array.isArray(window.messages[r])?window.messages[r].forEach(this.flash.bind(this)):this.flash(window.messages[r])}catch(e){console.error(e)}finally{setTimeout((()=>e.innerHTML=''),500)}}toggleDarkMode(e){document.documentElement.classList.add("dark"),this.flash(window.messages[e]),setTimeout((()=>document.documentElement.classList.remove("dark")),5e3)}applyTheme(e,t){n(941)(`./${t[e]}`).then((()=>{window.messages[e].forEach(this.flash.bind(this))}))}defineThemes(){return{"#/ noty theme sunset":"sunset.css","#/ noty theme relax":"relax.css","#/ noty theme light":"light.css","#/ noty theme metroui":"metroui.css"}}flash(e){let{handler:t,type:n,message:r,title:o,options:s}=e;const a=i.A.use(t);a&&a.flash(n,r,o,s)}}},447:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("flasher")}}},476:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.sapphire")}}},498:function(e,t,n){var r={"./anchor_controller.js":835,"./clipboard_controller.js":374,"./flasher_controller.js":447,"./navigation_controller.js":162,"./noty_controller.js":880,"./notyf_controller.js":326,"./playground_controller.js":983,"./prev-next_controller.js":995,"./sweetalert_controller.js":242,"./theme_amazon_controller.js":522,"./theme_amber_controller.js":987,"./theme_aurora_controller.js":722,"./theme_crystal_controller.js":108,"./theme_emerald_controller.js":342,"./theme_facebook_controller.js":946,"./theme_flasher_controller.js":869,"./theme_google_controller.js":787,"./theme_ios_controller.js":613,"./theme_jade_controller.js":684,"./theme_material_controller.js":697,"./theme_minimal_controller.js":79,"./theme_neon_controller.js":358,"./theme_onyx_controller.js":54,"./theme_ruby_controller.js":598,"./theme_sapphire_controller.js":476,"./theme_slack_controller.js":334,"./toastr_controller.js":921,"./tryit_controller.js":435};function i(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}i.keys=function(){return Object.keys(r)},i.resolve=o,e.exports=i,i.id=498},522:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.amazon")}}},554:function(){!function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],r=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,i=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,o=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:r,operator:i,punctuation:o};var s={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},a=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:s}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:s}}];e.languages.insertBefore("php","variable",{string:a,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:a,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:r,operator:i,punctuation:o}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},598:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.ruby")}}},613:function(e,t,n){"use strict";n.r(t);var r=n(891),i=n(61);t.default=class extends r.xI{connect(){(0,i.b)("theme.ios")}}},616:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(r,i){"use strict";var o=[],s=Object.getPrototypeOf,a=o.slice,l=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},c=o.push,u=o.indexOf,d={},h=d.toString,p=d.hasOwnProperty,f=p.toString,m=f.call(Object),g={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},w=r.document,b={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var r,i,o=(n=n||w).createElement("script");if(o.text=e,t)for(r in b)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function k(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?d[h.call(e)]||"object":typeof e}var E="3.7.1",C=/HTML$/i,A=function(e,t){return new A.fn.init(e,t)};function T(e){var t=!!e&&"length"in e&&e.length,n=k(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function O(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}A.fn=A.prototype={jquery:E,constructor:A,length:0,toArray:function(){return a.call(this)},get:function(e){return null==e?a.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=A.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return A.each(this,e)},map:function(e){return this.pushStack(A.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(A.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(A.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+L+")"+L+"*"),I=new RegExp(L+"|>"),z=new RegExp(F),R=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+T+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,U=/^h\d$/i,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,X=/[+~]/,Y=new RegExp("\\\\[\\da-fA-F]{1,6}"+L+"?|\\\\([^\\r\\n\\f])","g"),Z=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},Q=function(){le()},G=he((function(e){return!0===e.disabled&&O(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{m.apply(o=a.call(D.childNodes),D.childNodes),o[D.childNodes.length].nodeType}catch(e){m={apply:function(e,t){P.apply(e,a.call(t))},call:function(e){P.apply(e,a.call(arguments,1))}}}function J(e,t,n,r){var i,o,s,a,c,u,p,f=t&&t.ownerDocument,y=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==y&&9!==y&&11!==y)return n;if(!r&&(le(t),t=t||l,d)){if(11!==y&&(c=K.exec(e)))if(i=c[1]){if(9===y){if(!(s=t.getElementById(i)))return n;if(s.id===i)return m.call(n,s),n}else if(f&&(s=f.getElementById(i))&&J.contains(t,s)&&s.id===i)return m.call(n,s),n}else{if(c[2])return m.apply(n,t.getElementsByTagName(e)),n;if((i=c[3])&&t.getElementsByClassName)return m.apply(n,t.getElementsByClassName(i)),n}if(!(E[e+" "]||h&&h.test(e))){if(p=e,f=t,1===y&&(I.test(e)||q.test(e))){for((f=X.test(e)&&ae(t.parentNode)||t)==t&&g.scope||((a=t.getAttribute("id"))?a=A.escapeSelector(a):t.setAttribute("id",a=v)),o=(u=ue(e)).length;o--;)u[o]=(a?"#"+a:":scope")+" "+de(u[o]);p=u.join(",")}try{return m.apply(n,f.querySelectorAll(p)),n}catch(t){E(e,!0)}finally{a===v&&t.removeAttribute("id")}}}return ye(e.replace(_,"$1"),t,n,r)}function ee(){var e=[];return function n(r,i){return e.push(r+" ")>t.cacheLength&&delete n[e.shift()],n[r+" "]=i}}function te(e){return e[v]=!0,e}function ne(e){var t=l.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function re(e){return function(t){return O(t,"input")&&t.type===e}}function ie(e){return function(t){return(O(t,"input")||O(t,"button"))&&t.type===e}}function oe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&G(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function se(e){return te((function(t){return t=+t,te((function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))}))}))}function ae(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var n,r=e?e.ownerDocument||e:D;return r!=l&&9===r.nodeType&&r.documentElement?(c=(l=r).documentElement,d=!A.isXMLDoc(l),f=c.matches||c.webkitMatchesSelector||c.msMatchesSelector,c.msMatchesSelector&&D!=l&&(n=l.defaultView)&&n.top!==n&&n.addEventListener("unload",Q),g.getById=ne((function(e){return c.appendChild(e).id=A.expando,!l.getElementsByName||!l.getElementsByName(A.expando).length})),g.disconnectedMatch=ne((function(e){return f.call(e,"*")})),g.scope=ne((function(){return l.querySelectorAll(":scope")})),g.cssHas=ne((function(){try{return l.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),g.getById?(t.filter.ID=function(e){var t=e.replace(Y,Z);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&d){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(Y,Z);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&d){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&d)return t.getElementsByClassName(e)},h=[],ne((function(e){var t;c.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||h.push("\\["+L+"*(?:value|"+T+")"),e.querySelectorAll("[id~="+v+"-]").length||h.push("~="),e.querySelectorAll("a#"+v+"+*").length||h.push(".#.+[+~]"),e.querySelectorAll(":checked").length||h.push(":checked"),(t=l.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),c.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&h.push(":enabled",":disabled"),(t=l.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||h.push("\\["+L+"*name"+L+"*="+L+"*(?:''|\"\")")})),g.cssHas||h.push(":has"),h=h.length&&new RegExp(h.join("|")),C=function(e,t){if(e===t)return s=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument==D&&J.contains(D,e)?-1:t===l||t.ownerDocument==D&&J.contains(D,t)?1:i?u.call(i,e)-u.call(i,t):0:4&n?-1:1)},l):l}for(e in J.matches=function(e,t){return J(e,null,null,t)},J.matchesSelector=function(e,t){if(le(e),d&&!E[t+" "]&&(!h||!h.test(t)))try{var n=f.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){E(t,!0)}return J(t,l,null,[e]).length>0},J.contains=function(e,t){return(e.ownerDocument||e)!=l&&le(e),A.contains(e,t)},J.attr=function(e,n){(e.ownerDocument||e)!=l&&le(e);var r=t.attrHandle[n.toLowerCase()],i=r&&p.call(t.attrHandle,n.toLowerCase())?r(e,n,!d):void 0;return void 0!==i?i:e.getAttribute(n)},J.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},A.uniqueSort=function(e){var t,n=[],r=0,o=0;if(s=!g.sortStable,i=!g.sortStable&&a.call(e,0),$.call(e,C),s){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)j.call(e,n[r],1)}return i=null,e},A.fn.uniqueSort=function(){return this.pushStack(A.uniqueSort(a.apply(this)))},t=A.expr={cacheLength:50,createPseudo:te,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Y,Z),e[3]=(e[3]||e[4]||e[5]||"").replace(Y,Z),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||J.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&J.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&z.test(n)&&(t=ue(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Y,Z).toLowerCase();return"*"===e?function(){return!0}:function(e){return O(e,t)}},CLASS:function(e){var t=b[e+" "];return t||(t=new RegExp("(^|"+L+")"+e+"("+L+"|$)"))&&b(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=J.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(B," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,h,p,f=o!==s?"nextSibling":"previousSibling",m=t.parentNode,g=a&&t.nodeName.toLowerCase(),w=!l&&!a,b=!1;if(m){if(o){for(;f;){for(d=t;d=d[f];)if(a?O(d,g):1===d.nodeType)return!1;p=f="only"===e&&!p&&"nextSibling"}return!0}if(p=[s?m.firstChild:m.lastChild],s&&w){for(b=(h=(c=(u=m[v]||(m[v]={}))[e]||[])[0]===y&&c[1])&&c[2],d=h&&m.childNodes[h];d=++h&&d&&d[f]||(b=h=0)||p.pop();)if(1===d.nodeType&&++b&&d===t){u[e]=[y,h,b];break}}else if(w&&(b=h=(c=(u=t[v]||(t[v]={}))[e]||[])[0]===y&&c[1]),!1===b)for(;(d=++h&&d&&d[f]||(b=h=0)||p.pop())&&(!(a?O(d,g):1===d.nodeType)||!++b||(w&&((u=d[v]||(d[v]={}))[e]=[y,b]),d!==t)););return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,n){var r,i=t.pseudos[e]||t.setFilters[e.toLowerCase()]||J.error("unsupported pseudo: "+e);return i[v]?i(n):i.length>1?(r=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var r,o=i(e,n),s=o.length;s--;)e[r=u.call(e,o[s])]=!(t[r]=o[s])})):function(e){return i(e,0,r)}):i}},pseudos:{not:te((function(e){var t=[],n=[],r=ve(e.replace(_,"$1"));return r[v]?te((function(e,t,n,i){for(var o,s=r(e,null,i,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return J(e,t).length>0}})),contains:te((function(e){return e=e.replace(Y,Z),function(t){return(t.textContent||A.text(t)).indexOf(e)>-1}})),lang:te((function(e){return R.test(e||"")||J.error("unsupported lang: "+e),e=e.replace(Y,Z).toLowerCase(),function(t){var n;do{if(n=d?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=r.location&&r.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===c},focus:function(e){return e===function(){try{return l.activeElement}catch(e){}}()&&l.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:oe(!1),disabled:oe(!0),checked:function(e){return O(e,"input")&&!!e.checked||O(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return U.test(e.nodeName)},input:function(e){return W.test(e.nodeName)},button:function(e){return O(e,"input")&&"button"===e.type||O(e,"button")},text:function(e){var t;return O(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:se((function(){return[0]})),last:se((function(e,t){return[t-1]})),eq:se((function(e,t,n){return[n<0?n+t:n]})),even:se((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:se((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function fe(e,t,n,r,i){for(var o,s=[],a=0,l=e.length,c=null!=t;a-1&&(o[c]=!(s[c]=h))}}else p=fe(p===s?p.splice(v,p.length):p),i?i(null,s,p,l):m.apply(s,p)}))}function ge(e){for(var r,i,o,s=e.length,a=t.relative[e[0].type],l=a||t.relative[" "],c=a?1:0,d=he((function(e){return e===r}),l,!0),h=he((function(e){return u.call(r,e)>-1}),l,!0),p=[function(e,t,i){var o=!a&&(i||t!=n)||((r=t).nodeType?d(e,t,i):h(e,t,i));return r=null,o}];c1&&pe(p),c>1&&de(e.slice(0,c-1).concat({value:" "===e[c-2].type?"*":""})).replace(_,"$1"),i,c0,o=e.length>0,s=function(s,a,c,u,h){var p,f,g,v=0,w="0",b=s&&[],x=[],k=n,E=s||o&&t.find.TAG("*",h),C=y+=null==k?1:Math.random()||.1,T=E.length;for(h&&(n=a==l||a||h);w!==T&&null!=(p=E[w]);w++){if(o&&p){for(f=0,a||p.ownerDocument==l||(le(p),c=!d);g=e[f++];)if(g(p,a||l,c)){m.call(u,p);break}h&&(y=C)}i&&((p=!g&&p)&&v--,s&&b.push(p))}if(v+=w,i&&w!==v){for(f=0;g=r[f++];)g(b,x,a,c);if(s){if(v>0)for(;w--;)b[w]||x[w]||(x[w]=S.call(u));x=fe(x)}m.apply(u,x),h&&!s&&x.length>0&&v+r.length>1&&A.uniqueSort(u)}return h&&(y=C,n=k),b};return i?te(s):s}(s,o)),a.selector=e}return a}function ye(e,n,r,i){var o,s,a,l,c,u="function"==typeof e&&e,h=!i&&ue(e=u.selector||e);if(r=r||[],1===h.length){if((s=h[0]=h[0].slice(0)).length>2&&"ID"===(a=s[0]).type&&9===n.nodeType&&d&&t.relative[s[1].type]){if(!(n=(t.find.ID(a.matches[0].replace(Y,Z),n)||[])[0]))return r;u&&(n=n.parentNode),e=e.slice(s.shift().value.length)}for(o=V.needsContext.test(e)?0:s.length;o--&&(a=s[o],!t.relative[l=a.type]);)if((c=t.find[l])&&(i=c(a.matches[0].replace(Y,Z),X.test(s[0].type)&&ae(n.parentNode)||n))){if(s.splice(o,1),!(e=i.length&&de(s)))return m.apply(r,i),r;break}}return(u||ve(e,h))(i,n,!d,r,!n||X.test(e)&&ae(n.parentNode)||n),r}ce.prototype=t.filters=t.pseudos,t.setFilters=new ce,g.sortStable=v.split("").sort(C).join("")===v,le(),g.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(l.createElement("fieldset"))})),A.find=J,A.expr[":"]=A.expr.pseudos,A.unique=A.uniqueSort,J.compile=ve,J.select=ye,J.setDocument=le,J.tokenize=ue,J.escape=A.escapeSelector,J.getText=A.text,J.isXML=A.isXMLDoc,J.selectors=A.expr,J.support=A.support,J.uniqueSort=A.uniqueSort}();var F=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&A(e).is(n))break;r.push(e)}return r},B=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},H=A.expr.match.needsContext,q=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function I(e,t,n){return v(t)?A.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?A.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?A.grep(e,(function(e){return u.call(t,e)>-1!==n})):A.filter(t,e,n)}A.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?A.find.matchesSelector(r,e)?[r]:[]:A.find.matches(e,A.grep(t,(function(e){return 1===e.nodeType})))},A.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(A(e).filter((function(){for(t=0;t1?A.uniqueSort(n):n},filter:function(e){return this.pushStack(I(this,e||[],!1))},not:function(e){return this.pushStack(I(this,e||[],!0))},is:function(e){return!!I(this,"string"==typeof e&&H.test(e)?A(e):e||[],!1).length}});var z,R=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(A.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||z,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:R.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof A?t[0]:t,A.merge(this,A.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:w,!0)),q.test(r[1])&&A.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=w.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(A):A.makeArray(e,this)}).prototype=A.fn,z=A(w);var V=/^(?:parents|prev(?:Until|All))/,W={children:!0,contents:!0,next:!0,prev:!0};function U(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}A.fn.extend({has:function(e){var t=A(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&A.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?A.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(A(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(A.uniqueSort(A.merge(this.get(),A(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),A.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return F(e,"parentNode")},parentsUntil:function(e,t,n){return F(e,"parentNode",n)},next:function(e){return U(e,"nextSibling")},prev:function(e){return U(e,"previousSibling")},nextAll:function(e){return F(e,"nextSibling")},prevAll:function(e){return F(e,"previousSibling")},nextUntil:function(e,t,n){return F(e,"nextSibling",n)},prevUntil:function(e,t,n){return F(e,"previousSibling",n)},siblings:function(e){return B((e.parentNode||{}).firstChild,e)},children:function(e){return B(e.firstChild)},contents:function(e){return null!=e.contentDocument&&s(e.contentDocument)?e.contentDocument:(O(e,"template")&&(e=e.content||e),A.merge([],e.childNodes))}},(function(e,t){A.fn[e]=function(n,r){var i=A.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=A.filter(r,i)),this.length>1&&(W[e]||A.uniqueSort(i),V.test(e)&&i.reverse()),this.pushStack(i)}}));var K=/[^\x20\t\r\n\f]+/g;function X(e){return e}function Y(e){throw e}function Z(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}A.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return A.each(e.match(K)||[],(function(e,n){t[n]=!0})),t}(e):A.extend({},e);var t,n,r,i,o=[],s=[],a=-1,l=function(){for(i=i||e.once,r=t=!0;s.length;a=-1)for(n=s.shift();++a-1;)o.splice(n,1),n<=a&&a--})),this},has:function(e){return e?A.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=s=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=s=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},A.extend({Deferred:function(e){var t=[["notify","progress",A.Callbacks("memory"),A.Callbacks("memory"),2],["resolve","done",A.Callbacks("once memory"),A.Callbacks("once memory"),0,"resolved"],["reject","fail",A.Callbacks("once memory"),A.Callbacks("once memory"),1,"rejected"]],n="pending",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return A.Deferred((function(n){A.each(t,(function(t,r){var i=v(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&v(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,i){var o=0;function s(e,t,n,i){return function(){var a=this,l=arguments,c=function(){var r,c;if(!(e=o&&(n!==Y&&(a=void 0,l=[r]),t.rejectWith(a,l))}};e?u():(A.Deferred.getErrorHook?u.error=A.Deferred.getErrorHook():A.Deferred.getStackHook&&(u.error=A.Deferred.getStackHook()),r.setTimeout(u))}}return A.Deferred((function(r){t[0][3].add(s(0,r,v(i)?i:X,r.notifyWith)),t[1][3].add(s(0,r,v(e)?e:X)),t[2][3].add(s(0,r,v(n)?n:Y))})).promise()},promise:function(e){return null!=e?A.extend(e,i):i}},o={};return A.each(t,(function(e,r){var s=r[2],a=r[5];i[r[1]]=s.add,a&&s.add((function(){n=a}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),s.add(r[3].fire),o[r[0]]=function(){return o[r[0]+"With"](this===o?void 0:this,arguments),this},o[r[0]+"With"]=s.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=a.call(arguments),o=A.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?a.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(Z(e,o.done(s(n)).resolve,o.reject,!t),"pending"===o.state()||v(i[n]&&i[n].then)))return o.then();for(;n--;)Z(i[n],s(n),o.reject);return o.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;A.Deferred.exceptionHook=function(e,t){r.console&&r.console.warn&&e&&Q.test(e.name)&&r.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},A.readyException=function(e){r.setTimeout((function(){throw e}))};var G=A.Deferred();function J(){w.removeEventListener("DOMContentLoaded",J),r.removeEventListener("load",J),A.ready()}A.fn.ready=function(e){return G.then(e).catch((function(e){A.readyException(e)})),this},A.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--A.readyWait:A.isReady)||(A.isReady=!0,!0!==e&&--A.readyWait>0||G.resolveWith(w,[A]))}}),A.ready.then=G.then,"complete"===w.readyState||"loading"!==w.readyState&&!w.documentElement.doScroll?r.setTimeout(A.ready):(w.addEventListener("DOMContentLoaded",J),r.addEventListener("load",J));var ee=function(e,t,n,r,i,o,s){var a=0,l=e.length,c=null==n;if("object"===k(n))for(a in i=!0,n)ee(e,t,a,n[a],!0,o,s);else if(void 0!==r&&(i=!0,v(r)||(s=!0),c&&(s?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(A(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each((function(){le.remove(this,e)}))}}),A.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=ae.get(e,t),n&&(!r||Array.isArray(n)?r=ae.access(e,t,A.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=A.queue(e,t),r=n.length,i=n.shift(),o=A._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){A.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ae.get(e,n)||ae.access(e,n,{empty:A.Callbacks("once memory").add((function(){ae.remove(e,[t+"queue",n])}))})}}),A.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,Oe=/^$|^module$|\/(?:java|ecma)script/i;Ee=w.createDocumentFragment().appendChild(w.createElement("div")),(Ce=w.createElement("input")).setAttribute("type","radio"),Ce.setAttribute("checked","checked"),Ce.setAttribute("name","t"),Ee.appendChild(Ce),g.checkClone=Ee.cloneNode(!0).cloneNode(!0).lastChild.checked,Ee.innerHTML="",g.noCloneChecked=!!Ee.cloneNode(!0).lastChild.defaultValue,Ee.innerHTML="",g.option=!!Ee.lastChild;var Se={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function $e(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&O(e,t)?A.merge([e],n):n}function je(e,t){for(var n=0,r=e.length;n",""]);var Le=/<|&#?\w+;/;function _e(e,t,n,r,i){for(var o,s,a,l,c,u,d=t.createDocumentFragment(),h=[],p=0,f=e.length;p-1)i&&i.push(o);else if(c=ge(o),s=$e(d.appendChild(o),"script"),c&&je(s),n)for(u=0;o=s[u++];)Oe.test(o.type||"")&&n.push(o);return d}var Me=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function De(){return!1}function Pe(e,t,n,r,i,o){var s,a;if("object"==typeof t){for(a in"string"!=typeof n&&(r=r||n,n=void 0),t)Pe(e,a,n,r,t[a],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=De;else if(!i)return e;return 1===o&&(s=i,i=function(e){return A().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=A.guid++)),e.each((function(){A.event.add(this,t,i,r,n)}))}function Fe(e,t,n){n?(ae.set(e,t,!1),A.event.add(e,t,{namespace:!1,handler:function(e){var n,r=ae.get(this,t);if(1&e.isTrigger&&this[t]){if(r)(A.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=a.call(arguments),ae.set(this,t,r),this[t](),n=ae.get(this,t),ae.set(this,t,!1),r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(ae.set(this,t,A.event.trigger(r[0],r.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===ae.get(e,t)&&A.event.add(e,t,Ne)}A.event={global:{},add:function(e,t,n,r,i){var o,s,a,l,c,u,d,h,p,f,m,g=ae.get(e);if(oe(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&A.find.matchesSelector(me,i),n.guid||(n.guid=A.guid++),(l=g.events)||(l=g.events=Object.create(null)),(s=g.handle)||(s=g.handle=function(t){return void 0!==A&&A.event.triggered!==t.type?A.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(K)||[""]).length;c--;)p=m=(a=Me.exec(t[c])||[])[1],f=(a[2]||"").split(".").sort(),p&&(d=A.event.special[p]||{},p=(i?d.delegateType:d.bindType)||p,d=A.event.special[p]||{},u=A.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&A.expr.match.needsContext.test(i),namespace:f.join(".")},o),(h=l[p])||((h=l[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,f,s)||e.addEventListener&&e.addEventListener(p,s)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,u):h.push(u),A.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,s,a,l,c,u,d,h,p,f,m,g=ae.hasData(e)&&ae.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(K)||[""]).length;c--;)if(p=m=(a=Me.exec(t[c])||[])[1],f=(a[2]||"").split(".").sort(),p){for(d=A.event.special[p]||{},h=l[p=(r?d.delegateType:d.bindType)||p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=h.length;o--;)u=h[o],!i&&m!==u.origType||n&&n.guid!==u.guid||a&&!a.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(h.splice(o,1),u.selector&&h.delegateCount--,d.remove&&d.remove.call(e,u));s&&!h.length&&(d.teardown&&!1!==d.teardown.call(e,f,g.handle)||A.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)A.event.remove(e,p+t[c],n,r,!0);A.isEmptyObject(l)&&ae.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,s,a=new Array(arguments.length),l=A.event.fix(e),c=(ae.get(this,"events")||Object.create(null))[l.type]||[],u=A.event.special[l.type]||{};for(a[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],s={},n=0;n-1:A.find(i,this,null,[c]).length),s[i]&&o.push(r);o.length&&a.push({elem:c,handlers:o})}return c=this,l\s*$/g;function Ie(e,t){return O(e,"table")&&O(11!==t.nodeType?t:t.firstChild,"tr")&&A(e).children("tbody")[0]||e}function ze(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ve(e,t){var n,r,i,o,s,a;if(1===t.nodeType){if(ae.hasData(e)&&(a=ae.get(e).events))for(i in ae.remove(t,"handle events"),a)for(n=0,r=a[i].length;n1&&"string"==typeof f&&!g.checkClone&&He.test(f))return e.each((function(i){var o=e.eq(i);m&&(t[0]=f.call(this,i,o.html())),Ue(o,t,n,r)}));if(h&&(o=(i=_e(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(a=(s=A.map($e(i,"script"),ze)).length;d0&&je(s,!l&&$e(e,"script")),a},cleanData:function(e){for(var t,n,r,i=A.event.special,o=0;void 0!==(n=e[o]);o++)if(oe(n)){if(t=n[ae.expando]){if(t.events)for(r in t.events)i[r]?A.event.remove(n,r):A.removeEvent(n,r,t.handle);n[ae.expando]=void 0}n[le.expando]&&(n[le.expando]=void 0)}}}),A.fn.extend({detach:function(e){return Ke(this,e,!0)},remove:function(e){return Ke(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?A.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Ue(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Ie(this,e).appendChild(e)}))},prepend:function(){return Ue(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Ie(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Ue(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Ue(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(A.cleanData($e(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return A.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Be.test(e)&&!Se[(Te.exec(e)||["",""])[1].toLowerCase()]){e=A.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-a-.5))||0),l+c}function ut(e,t,n){var r=Ze(e),i=(!g.boxSizingReliable()||n)&&"border-box"===A.css(e,"boxSizing",!1,r),o=i,s=Je(e,t,r),a="offset"+t[0].toUpperCase()+t.slice(1);if(Xe.test(s)){if(!n)return s;s="auto"}return(!g.boxSizingReliable()&&i||!g.reliableTrDimensions()&&O(e,"tr")||"auto"===s||!parseFloat(s)&&"inline"===A.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===A.css(e,"boxSizing",!1,r),(o=a in e)&&(s=e[a])),(s=parseFloat(s)||0)+ct(e,t,n||(i?"border":"content"),o,r,s)+"px"}function dt(e,t,n,r,i){return new dt.prototype.init(e,t,n,r,i)}A.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Je(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=ie(t),l=Ye.test(t),c=e.style;if(l||(t=it(a)),s=A.cssHooks[t]||A.cssHooks[a],void 0===n)return s&&"get"in s&&void 0!==(i=s.get(e,!1,r))?i:c[t];"string"===(o=typeof n)&&(i=pe.exec(n))&&i[1]&&(n=we(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||l||(n+=i&&i[3]||(A.cssNumber[a]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,s,a=ie(t);return Ye.test(t)||(t=it(a)),(s=A.cssHooks[t]||A.cssHooks[a])&&"get"in s&&(i=s.get(e,!0,n)),void 0===i&&(i=Je(e,t,r)),"normal"===i&&t in at&&(i=at[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),A.each(["height","width"],(function(e,t){A.cssHooks[t]={get:function(e,n,r){if(n)return!ot.test(A.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ut(e,t,r):Qe(e,st,(function(){return ut(e,t,r)}))},set:function(e,n,r){var i,o=Ze(e),s=!g.scrollboxSize()&&"absolute"===o.position,a=(s||r)&&"border-box"===A.css(e,"boxSizing",!1,o),l=r?ct(e,t,r,a,o):0;return a&&s&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-ct(e,t,"border",!1,o)-.5)),l&&(i=pe.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=A.css(e,t)),lt(0,n,l)}}})),A.cssHooks.marginLeft=et(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Je(e,"marginLeft"))||e.getBoundingClientRect().left-Qe(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),A.each({margin:"",padding:"",border:"Width"},(function(e,t){A.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+fe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(A.cssHooks[e+t].set=lt)})),A.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var r,i,o={},s=0;if(Array.isArray(t)){for(r=Ze(e),i=t.length;s1)}}),A.Tween=dt,dt.prototype={constructor:dt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||A.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(A.cssNumber[n]?"":"px")},cur:function(){var e=dt.propHooks[this.prop];return e&&e.get?e.get(this):dt.propHooks._default.get(this)},run:function(e){var t,n=dt.propHooks[this.prop];return this.options.duration?this.pos=t=A.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):dt.propHooks._default.set(this),this}},dt.prototype.init.prototype=dt.prototype,dt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=A.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){A.fx.step[e.prop]?A.fx.step[e.prop](e):1!==e.elem.nodeType||!A.cssHooks[e.prop]&&null==e.elem.style[it(e.prop)]?e.elem[e.prop]=e.now:A.style(e.elem,e.prop,e.now+e.unit)}}},dt.propHooks.scrollTop=dt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},A.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},A.fx=dt.prototype.init,A.fx.step={};var ht,pt,ft=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;function gt(){pt&&(!1===w.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(gt):r.setTimeout(gt,A.fx.interval),A.fx.tick())}function vt(){return r.setTimeout((function(){ht=void 0})),ht=Date.now()}function yt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=fe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function wt(e,t,n){for(var r,i=(bt.tweeners[t]||[]).concat(bt.tweeners["*"]),o=0,s=i.length;o1)},removeAttr:function(e){return this.each((function(){A.removeAttr(this,e)}))}}),A.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?A.prop(e,t,n):(1===o&&A.isXMLDoc(e)||(i=A.attrHooks[t.toLowerCase()]||(A.expr.match.bool.test(t)?xt:void 0)),void 0!==n?null===n?void A.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=A.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&O(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(K);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),xt={set:function(e,t,n){return!1===t?A.removeAttr(e,n):e.setAttribute(n,n),n}},A.each(A.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=kt[t]||A.find.attr;kt[t]=function(e,t,r){var i,o,s=t.toLowerCase();return r||(o=kt[s],kt[s]=i,i=null!=n(e,t,r)?s:null,kt[s]=o),i}}));var Et=/^(?:input|select|textarea|button)$/i,Ct=/^(?:a|area)$/i;function At(e){return(e.match(K)||[]).join(" ")}function Tt(e){return e.getAttribute&&e.getAttribute("class")||""}function Ot(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(K)||[]}A.fn.extend({prop:function(e,t){return ee(this,A.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[A.propFix[e]||e]}))}}),A.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&A.isXMLDoc(e)||(t=A.propFix[t]||t,i=A.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=A.find.attr(e,"tabindex");return t?parseInt(t,10):Et.test(e.nodeName)||Ct.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(A.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),A.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){A.propFix[this.toLowerCase()]=this})),A.fn.extend({addClass:function(e){var t,n,r,i,o,s;return v(e)?this.each((function(t){A(this).addClass(e.call(this,t,Tt(this)))})):(t=Ot(e)).length?this.each((function(){if(r=Tt(this),n=1===this.nodeType&&" "+At(r)+" "){for(o=0;o-1;)n=n.replace(" "+i+" "," ");s=At(n),r!==s&&this.setAttribute("class",s)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,r,i,o,s=typeof e,a="string"===s||Array.isArray(e);return v(e)?this.each((function(n){A(this).toggleClass(e.call(this,n,Tt(this),t),t)})):"boolean"==typeof t&&a?t?this.addClass(e):this.removeClass(e):(n=Ot(e),this.each((function(){if(a)for(o=A(this),i=0;i-1)return!0;return!1}});var St=/\r/g;A.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=v(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,A(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=A.map(i,(function(e){return null==e?"":e+""}))),(t=A.valHooks[this.type]||A.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=A.valHooks[i.type]||A.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(St,""):null==n?"":n:void 0}}),A.extend({valHooks:{option:{get:function(e){var t=A.find.attr(e,"value");return null!=t?t:At(A.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,s="select-one"===e.type,a=s?null:[],l=s?o+1:i.length;for(r=o<0?l:s?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),A.each(["radio","checkbox"],(function(){A.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=A.inArray(A(e).val(),t)>-1}},g.checkOn||(A.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var $t=r.location,jt={guid:Date.now()},Lt=/\?/;A.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new r.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||A.error("Invalid XML: "+(n?A.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var _t=/^(?:focusinfocus|focusoutblur)$/,Mt=function(e){e.stopPropagation()};A.extend(A.event,{trigger:function(e,t,n,i){var o,s,a,l,c,u,d,h,f=[n||w],m=p.call(e,"type")?e.type:e,g=p.call(e,"namespace")?e.namespace.split("."):[];if(s=h=a=n=n||w,3!==n.nodeType&&8!==n.nodeType&&!_t.test(m+A.event.triggered)&&(m.indexOf(".")>-1&&(g=m.split("."),m=g.shift(),g.sort()),c=m.indexOf(":")<0&&"on"+m,(e=e[A.expando]?e:new A.Event(m,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:A.makeArray(t,[e]),d=A.event.special[m]||{},i||!d.trigger||!1!==d.trigger.apply(n,t))){if(!i&&!d.noBubble&&!y(n)){for(l=d.delegateType||m,_t.test(l+m)||(s=s.parentNode);s;s=s.parentNode)f.push(s),a=s;a===(n.ownerDocument||w)&&f.push(a.defaultView||a.parentWindow||r)}for(o=0;(s=f[o++])&&!e.isPropagationStopped();)h=s,e.type=o>1?l:d.bindType||m,(u=(ae.get(s,"events")||Object.create(null))[e.type]&&ae.get(s,"handle"))&&u.apply(s,t),(u=c&&s[c])&&u.apply&&oe(s)&&(e.result=u.apply(s,t),!1===e.result&&e.preventDefault());return e.type=m,i||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(f.pop(),t)||!oe(n)||c&&v(n[m])&&!y(n)&&((a=n[c])&&(n[c]=null),A.event.triggered=m,e.isPropagationStopped()&&h.addEventListener(m,Mt),n[m](),e.isPropagationStopped()&&h.removeEventListener(m,Mt),A.event.triggered=void 0,a&&(n[c]=a)),e.result}},simulate:function(e,t,n){var r=A.extend(new A.Event,n,{type:e,isSimulated:!0});A.event.trigger(r,null,t)}}),A.fn.extend({trigger:function(e,t){return this.each((function(){A.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return A.event.trigger(e,t,n,!0)}});var Nt=/\[\]$/,Dt=/\r?\n/g,Pt=/^(?:submit|button|image|reset|file)$/i,Ft=/^(?:input|select|textarea|keygen)/i;function Bt(e,t,n,r){var i;if(Array.isArray(t))A.each(t,(function(t,i){n||Nt.test(e)?r(e,i):Bt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==k(t))r(e,t);else for(i in t)Bt(e+"["+i+"]",t[i],n,r)}A.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!A.isPlainObject(e))A.each(e,(function(){i(this.name,this.value)}));else for(n in e)Bt(n,e[n],t,i);return r.join("&")},A.fn.extend({serialize:function(){return A.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=A.prop(this,"elements");return e?A.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!A(this).is(":disabled")&&Ft.test(this.nodeName)&&!Pt.test(e)&&(this.checked||!Ae.test(e))})).map((function(e,t){var n=A(this).val();return null==n?null:Array.isArray(n)?A.map(n,(function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}})):{name:t.name,value:n.replace(Dt,"\r\n")}})).get()}});var Ht=/%20/g,qt=/#.*$/,It=/([?&])_=[^&]*/,zt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Vt=/^\/\//,Wt={},Ut={},Kt="*/".concat("*"),Xt=w.createElement("a");function Yt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(K)||[];if(v(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Zt(e,t,n,r){var i={},o=e===Ut;function s(a){var l;return i[a]=!0,A.each(e[a]||[],(function(e,a){var c=a(t,n,r);return"string"!=typeof c||o||i[c]?o?!(l=c):void 0:(t.dataTypes.unshift(c),s(c),!1)})),l}return s(t.dataTypes[0])||!i["*"]&&s("*")}function Qt(e,t){var n,r,i=A.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&A.extend(!0,e,r),e}Xt.href=$t.href,A.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:$t.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test($t.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":A.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Qt(Qt(e,A.ajaxSettings),t):Qt(A.ajaxSettings,e)},ajaxPrefilter:Yt(Wt),ajaxTransport:Yt(Ut),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,i,o,s,a,l,c,u,d,h,p=A.ajaxSetup({},t),f=p.context||p,m=p.context&&(f.nodeType||f.jquery)?A(f):A.event,g=A.Deferred(),v=A.Callbacks("once memory"),y=p.statusCode||{},b={},x={},k="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s)for(s={};t=zt.exec(o);)s[t[1].toLowerCase()+" "]=(s[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=s[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?o:null},setRequestHeader:function(e,t){return null==c&&(e=x[e.toLowerCase()]=x[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)y[t]=[y[t],e[t]];return this},abort:function(e){var t=e||k;return n&&n.abort(t),C(0,t),this}};if(g.promise(E),p.url=((e||p.url||$t.href)+"").replace(Vt,$t.protocol+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(K)||[""],null==p.crossDomain){l=w.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=Xt.protocol+"//"+Xt.host!=l.protocol+"//"+l.host}catch(e){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=A.param(p.data,p.traditional)),Zt(Wt,p,t,E),c)return E;for(d in(u=A.event&&p.global)&&0==A.active++&&A.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Rt.test(p.type),i=p.url.replace(qt,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(Ht,"+")):(h=p.url.slice(i.length),p.data&&(p.processData||"string"==typeof p.data)&&(i+=(Lt.test(i)?"&":"?")+p.data,delete p.data),!1===p.cache&&(i=i.replace(It,"$1"),h=(Lt.test(i)?"&":"?")+"_="+jt.guid+++h),p.url=i+h),p.ifModified&&(A.lastModified[i]&&E.setRequestHeader("If-Modified-Since",A.lastModified[i]),A.etag[i]&&E.setRequestHeader("If-None-Match",A.etag[i])),(p.data&&p.hasContent&&!1!==p.contentType||t.contentType)&&E.setRequestHeader("Content-Type",p.contentType),E.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Kt+"; q=0.01":""):p.accepts["*"]),p.headers)E.setRequestHeader(d,p.headers[d]);if(p.beforeSend&&(!1===p.beforeSend.call(f,E,p)||c))return E.abort();if(k="abort",v.add(p.complete),E.done(p.success),E.fail(p.error),n=Zt(Ut,p,t,E)){if(E.readyState=1,u&&m.trigger("ajaxSend",[E,p]),c)return E;p.async&&p.timeout>0&&(a=r.setTimeout((function(){E.abort("timeout")}),p.timeout));try{c=!1,n.send(b,C)}catch(e){if(c)throw e;C(-1,e)}}else C(-1,"No Transport");function C(e,t,s,l){var d,h,w,b,x,k=t;c||(c=!0,a&&r.clearTimeout(a),n=void 0,o=l||"",E.readyState=e>0?4:0,d=e>=200&&e<300||304===e,s&&(b=function(e,t,n){for(var r,i,o,s,a=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in a)if(a[i]&&a[i].test(r)){l.unshift(i);break}if(l[0]in n)o=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){o=i;break}s||(s=i)}o=o||s}if(o)return o!==l[0]&&l.unshift(o),n[o]}(p,E,s)),!d&&A.inArray("script",p.dataTypes)>-1&&A.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),b=function(e,t,n,r){var i,o,s,a,l,c={},u=e.dataTypes.slice();if(u[1])for(s in e.converters)c[s.toLowerCase()]=e.converters[s];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(s=c[l+" "+o]||c["* "+o]))for(i in c)if((a=i.split(" "))[1]===o&&(s=c[l+" "+a[0]]||c["* "+a[0]])){!0===s?s=c[i]:!0!==c[i]&&(o=a[0],u.unshift(a[1]));break}if(!0!==s)if(s&&e.throws)t=s(t);else try{t=s(t)}catch(e){return{state:"parsererror",error:s?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(p,b,E,d),d?(p.ifModified&&((x=E.getResponseHeader("Last-Modified"))&&(A.lastModified[i]=x),(x=E.getResponseHeader("etag"))&&(A.etag[i]=x)),204===e||"HEAD"===p.type?k="nocontent":304===e?k="notmodified":(k=b.state,h=b.data,d=!(w=b.error))):(w=k,!e&&k||(k="error",e<0&&(e=0))),E.status=e,E.statusText=(t||k)+"",d?g.resolveWith(f,[h,k,E]):g.rejectWith(f,[E,k,w]),E.statusCode(y),y=void 0,u&&m.trigger(d?"ajaxSuccess":"ajaxError",[E,p,d?h:w]),v.fireWith(f,[E,k]),u&&(m.trigger("ajaxComplete",[E,p]),--A.active||A.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return A.get(e,t,n,"json")},getScript:function(e,t){return A.get(e,void 0,t,"script")}}),A.each(["get","post"],(function(e,t){A[t]=function(e,n,r,i){return v(n)&&(i=i||r,r=n,n=void 0),A.ajax(A.extend({url:e,type:t,dataType:i,data:n,success:r},A.isPlainObject(e)&&e))}})),A.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),A._evalUrl=function(e,t,n){return A.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){A.globalEval(e,t,n)}})},A.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=A(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){A(this).wrapInner(e.call(this,t))})):this.each((function(){var t=A(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){A(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){A(this).replaceWith(this.childNodes)})),this}}),A.expr.pseudos.hidden=function(e){return!A.expr.pseudos.visible(e)},A.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},A.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(e){}};var Gt={0:200,1223:204},Jt=A.ajaxSettings.xhr();g.cors=!!Jt&&"withCredentials"in Jt,g.ajax=Jt=!!Jt,A.ajaxTransport((function(e){var t,n;if(g.cors||Jt&&!e.crossDomain)return{send:function(i,o){var s,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(s in e.xhrFields)a[s]=e.xhrFields[s];for(s in e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)a.setRequestHeader(s,i[s]);t=function(e){return function(){t&&(t=n=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Gt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=t(),n=a.onerror=a.ontimeout=t("error"),void 0!==a.onabort?a.onabort=n:a.onreadystatechange=function(){4===a.readyState&&r.setTimeout((function(){t&&n()}))},t=t("abort");try{a.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),A.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),A.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return A.globalEval(e),e}}}),A.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),A.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=A(" - -### PHP - -```php -#/ amazon types - -// With Amazon set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Amazon set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Amazon Theme for Specific Notifications - -If Amazon isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.amazon') - ->success('This notification uses Amazon theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.amazon').success('This notification uses Amazon theme.'); -``` - -### Custom Colors - -The Amazon theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Amazon theme colors - Light mode */ --amazon-success-bg: #f0fff5; /* Success background */ --amazon-success-border: #7fda95; /* Success border */ @@ -181,72 +52,25 @@ The Amazon theme uses CSS variables that can be customized to match your brand: --amazon-error-bg-dark: #400a0a; --amazon-error-border-dark: #6e2a2a; --amazon-error-icon-dark: #ff8f8f; -} -``` + } -## HTML Structure - -The Amazon theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    - -
    -
    -
    Title
    -
    Message
    -
    -
    -
    - -
    -
    -
    -``` - -This structure provides proper semantic markup and accessibility attributes for screen readers and assistive technologies. - -## Theme Features - -### Dark Mode - -The Amazon theme automatically adapts to system dark mode preferences without additional configuration using the `prefers-color-scheme` media query. - -### Accessibility Features - -The Amazon theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query -- **Keyboard Access**: Close button is fully keyboard accessible -- **High Contrast**: All text meets WCAG 2.1 AA color contrast standards -- **Screen Reader Support**: Proper labeling of interactive elements - -## Browser Support - -The Amazon theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -## Implementation Details - -The Amazon theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Flexbox Layout**: For responsive and flexible notification structure -- **SVG Icons**: For resolution-independent, lightweight icons -- **Media Queries**: For responsive design, dark mode, and reduced motion support -- **ARIA Attributes**: For accessibility and screen reader support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | +
    +
    +
    +
    + +
    +
    +
    Title
    +
    Message
    +
    +
    +
    + +
    +
    +
    +--- diff --git a/docs/pages/themes/amber.md b/docs/pages/themes/amber.md index 64d10541..e2b77a13 100644 --- a/docs/pages/themes/amber.md +++ b/docs/pages/themes/amber.md @@ -1,159 +1,32 @@ --- +layout: theme permalink: /theme/amber/ title: Amber Theme +subtitle: Modern, elegant notification system description: Transform your notifications with the elegant Amber theme for PHPFlasher. Featuring a modern, minimalist design with subtle animations and comprehensive dark mode support. -handler: theme.amber -data-controller: theme-amber ---- +theme_name: theme.amber +theme_name_short: amber +theme_class: fl-amber +icon: fa-sun +color: amber +has_assets: true -## Amber Theme +visual_features: + - Modern, minimalist design with clean aesthetics + - Subtle animations and transitions for a refined feel + - Visual progress bar indicating time before auto-dismiss + - Automatic dark mode support with elegant color shifts -The Amber theme offers a modern, elegant notification style with refined aesthetics that focuses on clean design and readability. It provides a minimalist approach while maintaining visual appeal with subtle animations and transitions. +accessibility_features: + - Proper ARIA roles for different notification types + - Live regions with appropriate assertiveness levels + - Respects user's reduced motion preferences + - Fully keyboard accessible controls + - High contrast text meeting WCAG 2.1 AA standards + - Descriptive aria-labels for screen readers -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Amber theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.amber', // Make Amber the default theme - - 'themes' => [ - 'amber' => [ - 'scripts' => [ - '/vendor/flasher/themes/amber.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/amber.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.amber # Make Amber the default theme - - themes: - amber: - scripts: - - '/vendor/flasher/themes/amber.min.js' - styles: - - '/vendor/flasher/themes/amber.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { amberTheme } from '@flasher/flasher/themes'; -flasher.addTheme('amber', amberTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.amber'; - -// Or use it for specific notifications -flasher.success('Your changes have been saved successfully'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Amber styling: - -{% assign successMessage = 'Your changes have been saved successfully.' %} -{% assign errorMessage = 'An error occurred while saving your changes.' %} -{% assign warningMessage = 'Your session will expire in 5 minutes.' %} -{% assign infoMessage = 'New features have been added to your account.' %} - - - -### PHP - -```php -#/ amber types - -// With Amber set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Amber set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Amber Theme for Specific Notifications - -If Amber isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.amber') - ->success('This notification uses Amber theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.amber').success('This notification uses Amber theme.'); -``` - -### Custom Colors - -The Amber theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --amber-bg-light: #ffffff; /* Light mode background */ --amber-bg-dark: #1e293b; /* Dark mode background */ @@ -170,77 +43,19 @@ The Amber theme uses CSS variables that can be customized to match your brand: /* Dark mode shadows */ --amber-shadow-dark: 0 5px 15px rgba(0, 0, 0, 0.25); -} -``` + } -## HTML Structure - -The Amber theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    -
    Message text
    -
    - -
    -
    -
    -
    -
    -``` - -This structure includes a progress bar that shows the time remaining before the notification auto-dismisses. - -## Theme Features - -### Dark Mode - -The Amber theme automatically adapts to system dark mode preferences without additional configuration using the `prefers-color-scheme` media query. - -### Accessibility Features - -The Amber theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query -- **Keyboard Access**: Close button is fully keyboard accessible -- **Color Contrast**: All text meets WCAG 2.1 AA color contrast standards -- **Button Labels**: Close button has descriptive aria-label for screen readers - -### Key Differences from Default Theme - -The Amber theme differs from the default theme in several ways: - -1. **More Minimal**: Cleaner design with less ornamentation -2. **Subtle Shadows**: Uses softer box shadows for a modern look -3. **Smaller Icon**: Uses a more compact icon size -4. **Progress Bar**: Visual indicator for auto-dismiss timing -5. **Different Animation**: Uses a top-down entrance animation -6. **Colored Close Button**: Close button color matches notification type - -## Browser Support - -The Amber theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -## Implementation Details - -The Amber theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Flexbox Layout**: For responsive and flexible notification structure -- **CSS Animations**: For entrance effects and progress bar -- **Media Queries**: For responsive design, dark mode, and reduced motion support -- **Core Icons**: Uses the PHPFlasher core icon system - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | +
    +
    +
    +
    +
    Message text
    +
    + +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/aurora.md b/docs/pages/themes/aurora.md index 8b85a278..45fde7f9 100644 --- a/docs/pages/themes/aurora.md +++ b/docs/pages/themes/aurora.md @@ -1,159 +1,31 @@ --- +layout: theme permalink: /theme/aurora/ title: Aurora Theme +subtitle: Elegant glass-like notification system description: Add elegant glass-like notifications to your application with the Aurora theme for PHPFlasher. Featuring translucent backgrounds, subtle gradients, and modern backdrop blur effects. -handler: theme.aurora -data-controller: theme-aurora ---- +theme_name: theme.aurora +theme_name_short: aurora +theme_class: fl-aurora +icon: fa-sparkles +color: blue +has_assets: true -## Aurora Theme +visual_features: + - Glass-like appearance with translucent backgrounds + - Subtle gradient overlays for each notification type + - Modern backdrop blur effect for a frosted glass look + - Elegant animation combining fade, translation and scale -The Aurora theme provides an elegant, glass-like notification style with translucent backgrounds, subtle gradients, and backdrop blur effects. It offers a modern, refined aesthetic inspired by contemporary UI design trends like glass morphism. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion adaptation for users with motion sensitivity + - High contrast maintained despite translucent backgrounds + - Fully keyboard accessible controls -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Aurora theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.aurora', // Make Aurora the default theme - - 'themes' => [ - 'aurora' => [ - 'scripts' => [ - '/vendor/flasher/themes/aurora.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/aurora.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.aurora # Make Aurora the default theme - - themes: - aurora: - scripts: - - '/vendor/flasher/themes/aurora.min.js' - styles: - - '/vendor/flasher/themes/aurora.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { auroraTheme } from '@flasher/flasher/themes'; -flasher.addTheme('aurora', auroraTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.aurora'; - -// Or use it for specific notifications -flasher.success('Your profile has been updated'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Aurora styling: - -{% assign successMessage = 'Your profile has been updated successfully.' %} -{% assign errorMessage = 'Please check your connection and try again.' %} -{% assign warningMessage = 'Your session will expire in 5 minutes.' %} -{% assign infoMessage = 'New feature available in your dashboard.' %} - - - -### PHP - -```php -#/ aurora types - -// With Aurora set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Aurora set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Aurora Theme for Specific Notifications - -If Aurora isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.aurora') - ->success('This notification uses Aurora theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.aurora').success('This notification uses Aurora theme.'); -``` - -### Custom Colors and Appearance - -The Aurora theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --aurora-bg-light: rgba(255, 255, 255, 0.95); /* Light background */ --aurora-bg-dark: rgba(20, 20, 28, 0.92); /* Dark background */ @@ -173,79 +45,16 @@ The Aurora theme uses CSS variables that can be customized to match your brand: --aurora-info-gradient: linear-gradient(135deg, rgba(59, 130, 246, 0.08) 0%, rgba(59, 130, 246, 0.2) 100%); --aurora-warning-gradient: linear-gradient(135deg, rgba(245, 158, 11, 0.08) 0%, rgba(245, 158, 11, 0.2) 100%); --aurora-error-gradient: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(239, 68, 68, 0.2) 100%); -} -``` + } -## HTML Structure - -The Aurora theme generates notifications with the following HTML structure: - -```html -
    -
    -
    Message text
    - -
    -
    -
    -
    -
    -``` - -This minimalist structure focuses on content by omitting unnecessary UI elements while still maintaining a progress bar that shows the time remaining before auto-dismiss. - -## Theme Features - -### Glass Morphism Effect - -The Aurora theme uses CSS `backdrop-filter` to create its signature glass effect, giving notifications a modern, translucent appearance with background blur. - -### Dark Mode - -The theme automatically adapts to system dark mode preferences without additional configuration, adjusting both the background transparency and text colors for optimal readability. - -### Accessibility Features - -The Aurora theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query -- **Keyboard Access**: Close button is fully keyboard accessible -- **Color Contrast**: Maintains proper contrast ratios even with translucent backgrounds -- **Button Labels**: Close button has descriptive aria-label for screen readers - -### Animation Technique - -The entrance animation combines three effects for a refined appearance: - -1. **Opacity**: Fade in from transparent to visible -2. **Translation**: Slight movement from above -3. **Scale**: Subtle growth from slightly smaller to full size - -This combination creates a more organic, sophisticated appearance than simple fades or slides. - -## Browser Support - -The Aurora theme is compatible with all modern browsers that support CSS variables and backdrop filters: - -- Chrome 76+ -- Firefox 70+ -- Safari 9+ -- Edge 17+ -- Opera 64+ -- Mobile browsers on iOS and Android - -For browsers that don't support backdrop filters, the theme gracefully degrades to using just the translucent background. - -## Implementation Details - -The Aurora theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Backdrop Filter**: For the frosted glass effect -- **Gradient Overlays**: Using `::before` pseudo-elements for type-specific styling -- **CSS Animations**: For smooth entrance effects and progress bar -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | +
    +
    +
    Message text
    + +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/crystal.md b/docs/pages/themes/crystal.md index a0e68a25..557ce89e 100644 --- a/docs/pages/themes/crystal.md +++ b/docs/pages/themes/crystal.md @@ -1,159 +1,32 @@ --- +layout: theme permalink: /theme/crystal/ title: Crystal Theme +subtitle: Clean, monochromatic notification system description: Enhance your notifications with the elegant Crystal theme for PHPFlasher. Featuring a clean, monochromatic design with colored text and subtle animation effects. -handler: theme.crystal -data-controller: theme-crystal ---- +theme_name: theme.crystal +theme_name_short: crystal +theme_class: fl-crystal +icon: fa-diamond +color: indigo +has_assets: true -## Crystal Theme +visual_features: + - Monochromatic design with type-specific colored text + - Subtle entrance animation with smooth slide-in and fade effects + - Gentle pulsing shadow on hover creates a "breathing" effect + - Clean, minimalist interface focused on content clarity -The Crystal theme provides an elegant, clean notification style with subtle animations and a focus on simplicity. It features a monochromatic design with type-specific colored text and a gentle pulsing shadow effect on hover. +accessibility_features: + - Type-appropriate ARIA roles for screen readers + - Optimized aria-live regions based on message importance + - Reduced motion adaptation for motion-sensitive users + - High contrast text for optimal readability + - Fully keyboard accessible with visual feedback + - Descriptive aria-labels for interactive elements -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Crystal theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.crystal', // Make Crystal the default theme - - 'themes' => [ - 'crystal' => [ - 'scripts' => [ - '/vendor/flasher/themes/crystal.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/crystal.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.crystal # Make Crystal the default theme - - themes: - crystal: - scripts: - - '/vendor/flasher/themes/crystal.min.js' - styles: - - '/vendor/flasher/themes/crystal.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { crystalTheme } from '@flasher/flasher/themes'; -flasher.addTheme('crystal', crystalTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.crystal'; - -// Or use it for specific notifications -flasher.success('Document saved successfully'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Crystal styling: - -{% assign successMessage = 'Document saved successfully.' %} -{% assign errorMessage = 'An error occurred while saving your document.' %} -{% assign warningMessage = 'Your session will expire in 5 minutes.' %} -{% assign infoMessage = 'New features have been added to the editor.' %} - - - -### PHP - -```php -#/ crystal types - -// With Crystal set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Crystal set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Crystal Theme for Specific Notifications - -If Crystal isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.crystal') - ->success('This notification uses Crystal theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.crystal').success('This notification uses Crystal theme.'); -``` - -### Custom Colors and Appearance - -The Crystal theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --crystal-bg-light: #ffffff; /* Light mode background */ --crystal-bg-dark: rgba(30, 30, 30, 0.95); /* Dark mode background */ @@ -167,79 +40,18 @@ The Crystal theme uses CSS variables that can be customized to match your brand: --fl-info: #3b82f6; /* Info color */ --fl-warning: #f59e0b; /* Warning color */ --fl-error: #ef4444; /* Error color */ -} -``` + } -## HTML Structure - -The Crystal theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -

    Message text

    -
    - -
    -
    -
    -
    -
    -``` - -This minimalist structure focuses on content with a clean design, while still maintaining a progress bar that shows the time remaining before auto-dismiss. - -## Theme Features - -### Elegant Animations - -The Crystal theme features two distinct animations: - -1. **Entrance Animation**: A smooth slide-in from above with a fade-in effect -2. **Hover Animation**: A gentle pulsing shadow that creates a subtle "breathing" effect - -The hover animation is disabled in dark mode and for users who prefer reduced motion, replaced with a static enhanced shadow effect. - -### Dark Mode - -The theme automatically adapts to system dark mode preferences without additional configuration, adjusting both the background and text colors for optimal readability. - -### Design Philosophy - -The Crystal theme embodies clarity and simplicity. Rather than using colored backgrounds or borders, it employs colored text to indicate notification types. This creates a cleaner, more sophisticated appearance while still providing clear visual cues about the notification's nature. - -### Accessibility Features - -The Crystal theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query and disables animations -- **Keyboard Access**: Close button is fully keyboard accessible with visual feedback -- **Color Contrast**: High contrast between text and background for readability -- **Button Labels**: Close button has descriptive aria-label for screen readers - -## Browser Support - -The Crystal theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -## Implementation Details - -The Crystal theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **CSS Transitions**: For smooth hover effects -- **Keyframe Animations**: For entrance and pulsing shadow effects -- **Absolute Positioning**: For consistent close button layout -- **Progress Bar**: Shows countdown until notification dismissal -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | +
    +
    +
    +

    Message text

    +
    + +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/emerald.md b/docs/pages/themes/emerald.md index 83c33ec2..f52e26f3 100644 --- a/docs/pages/themes/emerald.md +++ b/docs/pages/themes/emerald.md @@ -1,159 +1,31 @@ --- +layout: theme permalink: /theme/emerald/ title: Emerald Theme +subtitle: Elegant glass-like notifications with bounce effect description: Enhance your notifications with the elegant Emerald theme for PHPFlasher. Featuring a glass-like appearance with bounce animation and minimalist design for a modern, polished user experience. -handler: theme.emerald -data-controller: theme-emerald ---- +theme_name: theme.emerald +theme_name_short: emerald +theme_class: fl-emerald +icon: fa-gem +color: emerald +has_assets: true -## Emerald Theme +visual_features: + - Distinctive bounce animation for eye-catching entrance + - Glass-like translucent background with blur effect + - Minimalist design focusing on content clarity + - Colored text indicators instead of backgrounds for elegance -The Emerald theme provides an elegant, glass-like notification style with a distinctive bounce animation and translucent background. It focuses on minimalism and modern aesthetics, featuring colored text rather than backgrounds to indicate notification types. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion option for users with motion sensitivity + - Relative text sizing that respects user preferences + - Fully keyboard accessible controls with descriptive labels -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Emerald theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.emerald', // Make Emerald the default theme - - 'themes' => [ - 'emerald' => [ - 'scripts' => [ - '/vendor/flasher/themes/emerald.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/emerald.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.emerald # Make Emerald the default theme - - themes: - emerald: - scripts: - - '/vendor/flasher/themes/emerald.min.js' - styles: - - '/vendor/flasher/themes/emerald.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { emeraldTheme } from '@flasher/flasher/themes'; -flasher.addTheme('emerald', emeraldTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.emerald'; - -// Or use it for specific notifications -flasher.success('Your changes have been saved'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Emerald styling: - -{% assign successMessage = 'Your changes have been saved successfully.' %} -{% assign errorMessage = 'An error occurred while saving your changes.' %} -{% assign warningMessage = 'Your session will expire soon.' %} -{% assign infoMessage = 'New features have been added to your dashboard.' %} - - - -### PHP - -```php -#/ emerald types - -// With Emerald set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Emerald set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Emerald Theme for Specific Notifications - -If Emerald isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.emerald') - ->success('This notification uses Emerald theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.emerald').success('This notification uses Emerald theme.'); -``` - -### Custom Colors and Appearance - -The Emerald theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base colors */ --emerald-bg-light: rgba(255, 255, 255, 0.9); /* Light background */ --emerald-bg-dark: rgba(30, 30, 30, 0.9); /* Dark background */ @@ -167,87 +39,13 @@ The Emerald theme uses CSS variables that can be customized to match your brand: --emerald-error: #e74c3c; /* Error color */ --emerald-warning: #f39c12; /* Warning color */ --emerald-info: #3498db; /* Info color */ -} -``` + } -## HTML Structure - -The Emerald theme generates notifications with the following HTML structure: - -```html -
    -
    -
    Message text
    - -
    -
    -``` - -This minimalist structure focuses on content by omitting unnecessary UI elements for a cleaner, more elegant look. - -## Theme Features - -### Distinctive Animation - -The Emerald theme features a unique bounce animation that works as follows: - -1. **Start**: The notification begins at 50% size and slightly below its final position -2. **Middle**: It quickly grows to 110% size and slightly above its final position -3. **End**: It settles back to 100% size at its final position - -This creates a playful yet elegant "bounce" effect that draws attention without being too disruptive. - -### Glass Morphism Effect - -The theme uses CSS `backdrop-filter` to create a frosted glass effect, giving notifications a modern, translucent appearance with background blur. - -### Dark Mode - -The theme automatically adapts to system dark mode preferences without additional configuration, adjusting both the background transparency and text colors for optimal readability. - -### Design Philosophy - -The Emerald theme is named after its polished, refined appearance that gives notifications a gem-like quality. Its design principles include: - -- **Simplicity**: Only essential elements are included -- **Elegance**: Soft blurs, shadows, and animations create a premium feel -- **Subtlety**: Colored text rather than backgrounds for a more refined look -- **Modernity**: Contemporary typography and glass-like effects -- **Focus**: Clear emphasis on the message content - -### Accessibility Features - -The Emerald theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query -- **Keyboard Access**: Close button is fully keyboard accessible -- **Text Sizing**: Uses relative units (rem) for text to respect user font size preferences -- **Button Labels**: Close button has descriptive aria-label for screen readers - -## Browser Support - -The Emerald theme is compatible with all modern browsers: - -- Chrome 76+ -- Firefox 70+ -- Safari 9+ -- Edge 79+ -- Opera 63+ -- Mobile browsers on iOS and Android - -For browsers that don't support backdrop-filter, the theme gracefully degrades to a translucent background without blur. - -## Implementation Details - -The Emerald theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Backdrop Filter**: For the frosted glass effect -- **CSS Animations**: For the distinctive bounce entrance effect -- **Inter Font**: Optimized for clean, modern typography (with system font fallback) -- **Box Shadows**: For subtle depth and dimension -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | +
    +
    +
    Message text
    + +
    +
    +--- diff --git a/docs/pages/themes/facebook.md b/docs/pages/themes/facebook.md index f27fa13a..8d65ca37 100644 --- a/docs/pages/themes/facebook.md +++ b/docs/pages/themes/facebook.md @@ -1,180 +1,33 @@ --- +layout: theme permalink: /theme/facebook/ title: Facebook Theme +subtitle: Familiar social media notification style description: Add Facebook-style notifications to your application with the Facebook theme for PHPFlasher. Featuring familiar notification cards, circular icons, and Facebook's signature design elements. -handler: theme.facebook -data-controller: theme-facebook ---- +theme_name: theme.facebook +theme_name_short: facebook +theme_class: fl-facebook +icon: fa-facebook +color: blue +has_assets: true -## Facebook Theme +visual_features: + - Rounded notification cards with subtle drop shadows + - Circular colored icons for each notification type + - Facebook's signature typography and color scheme + - Timestamp display showing when notifications were created + - Interactive elements with familiar hover states -The Facebook theme replicates the familiar notification style from Facebook's interface, providing a user experience that billions of people worldwide will instantly recognize. It features Facebook's signature look and feel, including rounded cards, circular icons, and the platform's distinctive typography and color scheme. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion support for users with motion sensitivity + - Fully keyboard accessible interactive elements + - Color contrast optimized for readability while maintaining Facebook's look + - Descriptive aria-labels for all controls -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Facebook theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.facebook', // Make Facebook the default theme - - 'themes' => [ - 'facebook' => [ - 'scripts' => [ - '/vendor/flasher/themes/facebook.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/facebook.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.facebook # Make Facebook the default theme - - themes: - facebook: - scripts: - - '/vendor/flasher/themes/facebook.min.js' - styles: - - '/vendor/flasher/themes/facebook.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { facebookTheme } from '@flasher/flasher/themes'; -flasher.addTheme('facebook', facebookTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.facebook'; - -// Or use it for specific notifications -flasher.success('Your post was published successfully'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Facebook styling: - -{% assign successMessage = 'Your post was published successfully.' %} -{% assign errorMessage = 'There was a problem uploading your photo.' %} -{% assign warningMessage = 'Your account is approaching storage limits.' %} -{% assign infoMessage = '3 people reacted to your comment.' %} - - - -### PHP - -```php -#/ facebook types - -// With Facebook set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Facebook set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Facebook Theme for Specific Notifications - -If Facebook isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.facebook') - ->success('This notification uses Facebook theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.facebook').success('This notification uses Facebook theme.'); -``` - -### Adding a Timestamp - -You can add a timestamp to your Facebook-style notification: - -#### PHP - -```php -flash() - ->use('theme.facebook') - ->success('Your post was published successfully.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.facebook') - .success('Your post was published successfully'); -``` - -If no timestamp is provided, the current time will be used automatically. - -### Custom Colors and Appearance - -The Facebook theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base colors */ --fb-bg-light: #ffffff; /* Light mode background */ --fb-bg-dark: #242526; /* Dark mode background */ @@ -190,87 +43,29 @@ The Facebook theme uses CSS variables that can be customized to match your brand --fb-info: #1876f2; /* Info color (Facebook blue) */ --fb-warning: #f7b928; /* Warning color */ --fb-error: #e41e3f; /* Error color */ -} -``` + } -## HTML Structure - -The Facebook theme generates notifications with the following HTML structure: - -```html - -``` - -This structure closely mimics Facebook's notification layout, including the circular icons, message content, timestamp, and close button. - -## Theme Features - -### Facebook-Style Design - -The Facebook theme accurately recreates Facebook's notification appearance with: - -- Rounded notification cards with subtle shadows -- Circular colored icons for each notification type -- Timestamp display showing when the notification was created -- Interactive close button with hover effects -- Facebook's signature typography - -### Dark Mode - -The theme automatically adapts to system dark mode preferences without additional configuration, switching to Facebook's dark theme colors for a consistent experience. - -### Accessibility Features - -The Facebook theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query -- **Keyboard Access**: Close button is fully keyboard accessible -- **Color Contrast**: Maintains Facebook's visual identity while ensuring readability -- **Button Labels**: Close button has descriptive aria-label for screen readers - -## Browser Support - -The Facebook theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -## Implementation Details - -The Facebook theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Facebook's Font Stack**: For authentic typography -- **SVG Icons**: For high-quality, resolution-independent icons -- **CSS Animations**: For subtle entrance effects -- **CSS Box Shadows**: For depth and dimension -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | + +--- diff --git a/docs/pages/themes/flasher.md b/docs/pages/themes/flasher.md index 2c5734cc..65d18449 100644 --- a/docs/pages/themes/flasher.md +++ b/docs/pages/themes/flasher.md @@ -4,7 +4,7 @@ permalink: /theme/flasher/ title: Flasher Theme subtitle: The default notification system for PHPFlasher description: The default notification theme for PHPFlasher with a clean design, colored borders, and accessible notifications for your web applications. -theme_name: flasher +theme_name: theme.flasher theme_name_short: flasher theme_class: fl icon: fa-bolt diff --git a/docs/pages/themes/google.md b/docs/pages/themes/google.md index e46a5971..48c284fe 100644 --- a/docs/pages/themes/google.md +++ b/docs/pages/themes/google.md @@ -1,163 +1,33 @@ --- +layout: theme permalink: /theme/google/ title: Google Theme +subtitle: Material Design-inspired notifications description: Add Material Design-inspired notifications to your application with the Google theme for PHPFlasher. Featuring Google's card-based layout, typography, and interactive elements like ripple effects. -handler: theme.google -data-controller: theme-google ---- +theme_name: theme.google +theme_name_short: google +theme_class: fl-google +icon: fa-google +color: red +has_assets: true -## Google Theme +visual_features: + - Material Design elevation with three-component shadow system + - Card-based layout with Google's signature typography + - Interactive ripple effect for tactile button feedback + - Progress bar showing time until auto-dismiss + - Responsive design that adapts to different screen sizes -The Google theme provides notifications inspired by Google's Material Design system, one of the most recognized design languages worldwide. It features Google's distinctive card-based layout, typography, elevation patterns, and interactive elements like ripple effects that will be immediately familiar to users of Google products. +accessibility_features: + - ARIA roles specific to each notification type + - Appropriate aria-live regions based on message importance + - Reduced motion option for users with motion sensitivity + - High contrast text meeting WCAG 2.1 AA standards + - Fully keyboard accessible with clear focus indicators + - Descriptive aria-labels for interactive elements -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Google theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.google', // Make Google the default theme - - 'themes' => [ - 'google' => [ - 'scripts' => [ - '/vendor/flasher/themes/google.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/google.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.google # Make Google the default theme - - themes: - google: - scripts: - - '/vendor/flasher/themes/google.min.js' - styles: - - '/vendor/flasher/themes/google.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { googleTheme } from '@flasher/flasher/themes'; -flasher.addTheme('google', googleTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.google'; - -// Or use it for specific notifications -flasher.success('Operation completed successfully'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Google styling: - -{% assign successMessage = 'Operation completed successfully.' %} -{% assign errorMessage = 'An error occurred during the operation.' %} -{% assign warningMessage = 'This action cannot be undone.' %} -{% assign infoMessage = 'New updates are available.' %} - - - -### PHP - -```php -#/ google types - -// With Google set as default theme -flash()->success('{{ successMessage }}', 'Success'); -flash()->error('{{ errorMessage }}', 'Error'); -flash()->warning('{{ warningMessage }}', 'Warning'); -flash()->info('{{ infoMessage }}', 'Information'); -``` - -### JavaScript - -```javascript -// With Google set as default theme -flasher.success('{{ successMessage }}', 'Success'); -flasher.error('{{ errorMessage }}', 'Error'); -flasher.warning('{{ warningMessage }}', 'Warning'); -flasher.info('{{ infoMessage }}', 'Information'); -``` - -## Customization - -### Using Google Theme for Specific Notifications - -If Google isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.google') - ->success('This notification uses Google theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.google').success('This notification uses Google theme.'); -``` - -### Custom Colors and Appearance - -The Google theme uses CSS variables that can be customized to match your brand while maintaining the Material Design feel: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --md-bg-light: #ffffff; /* Light mode background */ --md-bg-dark: #2d2d2d; /* Dark mode background */ @@ -177,120 +47,28 @@ The Google theme uses CSS variables that can be customized to match your brand w /* Animation timing */ --md-animation-duration: 0.3s; /* Entrance animation duration */ --md-ripple-duration: 0.6s; /* Button ripple effect duration */ -} -``` + } -## HTML Structure - -The Google theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    - -
    -
    -
    Title (if provided)
    -
    Message text
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -``` - -This structure follows Material Design principles with cards, proper typography hierarchy, and interactive elements. - -## Theme Features - -### Material Design Elements - -#### Elevation - -The theme uses proper Material Design elevation with three shadow components: - -1. **Umbra**: The darkest, sharpest shadow representing the main shadow -2. **Penumbra**: The mid-tone, slightly softer shadow -3. **Ambient**: The lightest, most diffuse shadow - -This creates the characteristic Material Design "floating" effect for cards. - -#### Typography - -Following Material Design typography guidelines: - -- **Title**: 16px (1rem), medium weight (500) -- **Message**: 14px (0.875rem), regular weight (400), 60% opacity for secondary text -- **Button**: 13px (0.8125rem), medium weight (500), uppercase with letterSpacing - -#### Ripple Effect - -The theme includes Material Design's signature "ink ripple" effect: - -1. A small circle appears at the point of interaction -2. The circle rapidly expands outward -3. The effect fades out as it reaches full size - -This provides visual feedback that enhances the tactile feeling of the interface. - -### Dark Mode - -The Google theme implements Material Design's dark theme guidelines: - -- Dark surfaces (#2d2d2d) -- Light text (87% white for primary, 60% white for secondary) -- Adjusted shadows for better visibility on dark backgrounds -- Higher contrast for hover states (8% opacity instead of 4%) - -### Accessibility Features - -The Google theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query and disables animations -- **Keyboard Access**: Action button is fully keyboard accessible -- **Color Contrast**: All text meets WCAG 2.1 AA color contrast standards -- **Text Alternatives**: Descriptive aria-labels for interactive elements - -## Browser Support - -The Google theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -The ripple effect and other animations may have slightly different appearances across browsers, but the core functionality works everywhere. - -## Implementation Details - -The Google theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Material Design Elevation**: Proper shadow implementation for depth -- **Ripple Animation**: For tactile button feedback -- **CSS Animations**: With Material Design easing curves -- **Linear Progress**: For countdown visualization -- **Roboto Font**: Falls back to system fonts if unavailable -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. - -For the best experience, it's recommended to include the Roboto font in your project: - -```html - -``` +html_structure: | +
    +
    +
    +
    + +
    +
    +
    Title (if provided)
    +
    Message text
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/ios.md b/docs/pages/themes/ios.md index fed52e8f..69d41890 100644 --- a/docs/pages/themes/ios.md +++ b/docs/pages/themes/ios.md @@ -1,163 +1,33 @@ --- +layout: theme permalink: /theme/ios/ title: iOS Theme +subtitle: Apple-style notification system description: Add Apple iOS-style notifications to your application with the iOS theme for PHPFlasher. Featuring frosted glass effects, app icons, and animations that mimic native iOS notifications. -handler: theme.ios -data-controller: theme-ios ---- +theme_name: theme.ios +theme_name_short: ios +theme_class: fl-ios +icon: fa-apple +color: slate +has_assets: true -## iOS Theme +visual_features: + - Apple's signature frosted glass backdrop effect + - App icon design with colored backgrounds + - Real-time timestamp display in iOS format + - Smooth entrance and content expansion animations + - Adaptive design that matches iOS light and dark mode -The iOS theme provides notifications styled after Apple's iOS notification system, creating a familiar experience for users of iPhones and iPads. It features Apple's distinctive frosted glass effect, app icon style, and subtle animations that mimic native iOS notifications. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion option for motion-sensitive users + - High contrast text that adapts to light and dark modes + - Fully keyboard accessible close button + - Mobile-optimized responsive layout -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the iOS theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.ios', // Make iOS the default theme - - 'themes' => [ - 'ios' => [ - 'scripts' => [ - '/vendor/flasher/themes/ios.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/ios.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.ios # Make iOS the default theme - - themes: - ios: - scripts: - - '/vendor/flasher/themes/ios.min.js' - styles: - - '/vendor/flasher/themes/ios.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { iosTheme } from '@flasher/flasher/themes'; -flasher.addTheme('ios', iosTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.ios'; - -// Or use it for specific notifications -flasher.success('Your photo was uploaded successfully'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with iOS styling: - -{% assign successMessage = 'Your photo was uploaded successfully.' %} -{% assign errorMessage = 'Unable to connect to server.' %} -{% assign warningMessage = 'Low storage space on your device.' %} -{% assign infoMessage = 'New software update available.' %} - - - -### PHP - -```php -#/ ios types - -// With iOS set as default theme -flash()->success('{{ successMessage }}', 'Photos'); -flash()->error('{{ errorMessage }}', 'Settings'); -flash()->warning('{{ warningMessage }}', 'Storage'); -flash()->info('{{ infoMessage }}', 'App Store'); -``` - -### JavaScript - -```javascript -// With iOS set as default theme -flasher.success('{{ successMessage }}', 'Photos'); -flasher.error('{{ errorMessage }}', 'Settings'); -flasher.warning('{{ warningMessage }}', 'Storage'); -flasher.info('{{ infoMessage }}', 'App Store'); -``` - -## Customization - -### Using iOS Theme for Specific Notifications - -If iOS isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.ios') - ->success('This notification uses iOS theme.', 'Photos'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.ios').success('This notification uses iOS theme.', 'Photos'); -``` - -### Custom Colors and Appearance - -The iOS theme uses CSS variables that can be customized to match your brand while maintaining the iOS look: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --ios-bg-light: rgba(255, 255, 255, 0.85); /* Light mode background */ --ios-bg-dark: rgba(30, 30, 30, 0.85); /* Dark mode background */ @@ -173,108 +43,26 @@ The iOS theme uses CSS variables that can be customized to match your brand whil --ios-info: #007aff; /* iOS blue */ --ios-warning: #ff9500; /* iOS orange */ --ios-error: #ff3b30; /* iOS red */ -} -``` + } -## HTML Structure - -The iOS theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    - -
    -
    -
    App Name/Title
    -
    2025-03-10 00:14:11
    -
    -
    -
    -
    Message text
    -
    - -
    -
    -``` - -This structure mimics the iOS notification layout, including the app icon, app name, current time, and message content. - -## Theme Features - -### iOS-Specific Design Elements - -#### Frosted Glass Effect - -The iOS theme uses `backdrop-filter: blur()` to create Apple's signature frosted glass effect. This creates a semi-transparent background that blurs content behind the notification. - -#### App Icon - -The app icon follows iOS design principles: -- Square with slightly rounded corners (5px radius) -- Colored background based on notification type -- White icon centered within the square - -#### Real-Time Timestamp - -The theme automatically displays the current time in the iOS format (HH:MM), just like native iOS notifications. - -#### Smooth Animations - -The iOS theme features two carefully crafted animations: - -1. **Entrance Animation**: Slides in from above with a subtle scaling effect -2. **Content Expansion**: The content area expands with a slight delay after the header appears - -These animations mimic the iOS notification animation style with a quick start and gentle end. - -### Dark Mode - -The theme automatically adapts to system dark mode preferences, switching to the iOS dark appearance: -- Dark semi-transparent background -- Light text -- Adjusted shadows for better visibility -- Lighter close button background - -### Accessibility Features - -The iOS theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query and disables animations -- **Keyboard Access**: Close button is fully keyboard accessible -- **Color Contrast**: Maintains proper contrast ratios in both light and dark modes -- **Mobile Optimization**: Responsive design that adjusts for small screens - -## Browser Support - -The iOS theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -For browsers that don't support backdrop-filter, the theme gracefully degrades to using just the semi-transparent background without blur. - -## Implementation Details - -The iOS theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Backdrop Filter**: For the frosted glass effect -- **CSS Animations**: For entrance and content expansion effects -- **San Francisco Font**: Uses Apple's system font stack with appropriate fallbacks -- **Real-Time Timestamps**: Automatically displays current time in iOS format -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. - -**Note:** The title parameter is used as the "app name" in the notification. If no title is provided, it defaults to "PHPFlasher". +html_structure: | +
    +
    +
    +
    + +
    +
    +
    App Name/Title
    +
    2025-03-10 00:14:11
    +
    +
    +
    +
    Message text
    +
    + +
    +
    +--- diff --git a/docs/pages/themes/jade.md b/docs/pages/themes/jade.md index 8a07a26e..2744d277 100644 --- a/docs/pages/themes/jade.md +++ b/docs/pages/themes/jade.md @@ -1,159 +1,32 @@ --- +layout: theme permalink: /theme/jade/ title: Jade Theme +subtitle: Calm, minimalist notification system description: Enhance your notifications with the calm, minimalist Jade theme for PHPFlasher. Featuring soft colors, rounded corners, and subtle animations for a soothing user experience. -handler: theme.jade -data-controller: theme-jade ---- +theme_name: theme.jade +theme_name_short: jade +theme_class: fl-jade +icon: fa-leaf +color: green +has_assets: true -## Jade Theme +visual_features: + - Soft, pastel colors with generous padding for a calm appearance + - Rounded corners (1rem radius) creating a gentle, friendly feel + - Refined entrance animation combining fade, scaling and movement + - Clean design that emphasizes content without unnecessary elements -The Jade theme provides a calm, minimalist notification style with soft colors and subtle animations. It features a clean design that emphasizes message content through generous padding, rounded corners, and type-specific color schemes. The theme takes its name from the natural, soothing quality of its appearance. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion option for users with motion sensitivity + - High contrast between background and text colors + - Fully keyboard accessible close button with visual feedback + - Descriptive aria-labels for interactive elements -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Jade theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.jade', // Make Jade the default theme - - 'themes' => [ - 'jade' => [ - 'scripts' => [ - '/vendor/flasher/themes/jade.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/jade.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.jade # Make Jade the default theme - - themes: - jade: - scripts: - - '/vendor/flasher/themes/jade.min.js' - styles: - - '/vendor/flasher/themes/jade.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { jadeTheme } from '@flasher/flasher/themes'; -flasher.addTheme('jade', jadeTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.jade'; - -// Or use it for specific notifications -flasher.success('Your changes have been saved'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Jade styling: - -{% assign successMessage = 'Your changes have been saved successfully.' %} -{% assign errorMessage = 'An error occurred while saving your changes.' %} -{% assign warningMessage = 'Your session will expire in 5 minutes.' %} -{% assign infoMessage = 'New features have been added to your dashboard.' %} - - - -### PHP - -```php -#/ jade types - -// With Jade set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Jade set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Jade Theme for Specific Notifications - -If Jade isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.jade') - ->success('This notification uses Jade theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.jade').success('This notification uses Jade theme.'); -``` - -### Custom Colors and Appearance - -The Jade theme uses CSS variables that can be customized to match your brand while maintaining its calm aesthetic: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --jade-text-light: #5f6c7b; /* Text color in light mode */ --jade-text-dark: #e2e8f0; /* Text color in dark mode */ @@ -174,98 +47,16 @@ The Jade theme uses CSS variables that can be customized to match your brand whi --jade-info-bg-dark: rgba(59, 130, 246, 0.15); /* Dark mode info */ --jade-warning-bg-dark: rgba(245, 158, 11, 0.15); /* Dark mode warning */ --jade-error-bg-dark: rgba(220, 38, 38, 0.15); /* Dark mode error */ -} -``` + } -## HTML Structure - -The Jade theme generates notifications with the following HTML structure: - -```html -
    -
    -
    Message text
    - -
    -
    -
    -
    -
    -``` - -This minimalist structure focuses on content by omitting icons and unnecessary UI elements for a cleaner, more elegant look. - -## Theme Features - -### Design Philosophy - -The Jade theme embodies several design principles: - -1. **Simplicity**: Only essential elements are included, with no icons or extraneous components -2. **Softness**: Rounded corners, pastel colors, and subtle transitions create a gentle feel -3. **Clarity**: Clear color coding with strong contrast between background and text -4. **Refinement**: Thoughtful attention to details like animation timing and hover states -5. **Consistency**: Each notification type follows the same pattern with its own color scheme - -### Color System - -The Jade theme uses a dual-color system for each notification type: - -- **Background**: Very light, pastel version of the type color (e.g., very light green for success) -- **Text/Accents**: More saturated version of the same color (e.g., medium green for success text) - -This approach maintains excellent readability while providing clear visual differentiation between notification types. - -### Animation - -The Jade theme features a refined entrance animation that combines scaling and movement: - -- Notifications fade in from invisible to fully visible -- They move upward slightly from their initial position -- They scale from 95% to 100% of their final size - -This combination creates a more organic, refined entrance than simple fades or slides, using a carefully tuned easing curve for a natural feel. - -### Dark Mode - -The theme automatically adapts to system dark mode preferences, with semi-transparent colored backgrounds that create a subtle glow effect: - -- Base text becomes lighter (#e2e8f0) -- Backgrounds use semi-transparent colored overlays (15% opacity) -- Hover states use white instead of black (10% white opacity) - -This creates a cohesive dark appearance that maintains the theme's calm aesthetic. - -### Accessibility Features - -The Jade theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query -- **Keyboard Access**: Close button is fully keyboard accessible with visual feedback -- **Color Contrast**: All text meets WCAG 2.1 AA color contrast standards -- **Button Labeling**: Close button has descriptive aria-label for screen readers - -## Browser Support - -The Jade theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -## Implementation Details - -The Jade theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **CSS Animations**: For refined entrance effects -- **CSS Transitions**: For smooth hover interactions -- **Progress Bar**: Shows countdown until notification dismissal -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | +
    +
    +
    Message text
    + +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/material.md b/docs/pages/themes/material.md index 39f81435..de666705 100644 --- a/docs/pages/themes/material.md +++ b/docs/pages/themes/material.md @@ -1,159 +1,33 @@ --- +layout: theme permalink: /theme/material/ title: Material Theme +subtitle: Minimalist Material Design notifications description: Add minimalist Material Design notifications to your application with the Material theme for PHPFlasher. Featuring clean cards, proper elevation, and interactive elements following Material guidelines. -handler: theme.material -data-controller: theme-material ---- +theme_name: theme.material +theme_name_short: material +theme_class: fl-material +icon: fa-square +color: indigo +has_assets: true -## Material Theme +visual_features: + - Clean card design with proper Material Design elevation + - Minimalist appearance focusing entirely on message content + - Interactive elements with signature Material ripple effect + - Progress bar showing time until auto-dismiss + - Subtle slide-up entrance animation with Material motion curve -The Material theme provides a minimalist implementation of Google's Material Design system for notifications. It features clean cards with proper elevation, Material Design typography, and interactive elements that follow Material guidelines, all without unnecessary visual elements to maintain focus on the message content. +accessibility_features: + - ARIA roles specific to each notification type + - Appropriate aria-live regions based on message importance + - Reduced motion option for users with motion sensitivity + - High contrast text meeting WCAG 2.1 AA standards + - Fully keyboard accessible with clear focus indicators + - Descriptive aria-labels for interactive elements -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Material theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.material', // Make Material the default theme - - 'themes' => [ - 'material' => [ - 'scripts' => [ - '/vendor/flasher/themes/material.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/material.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.material # Make Material the default theme - - themes: - material: - scripts: - - '/vendor/flasher/themes/material.min.js' - styles: - - '/vendor/flasher/themes/material.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { materialTheme } from '@flasher/flasher/themes'; -flasher.addTheme('material', materialTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.material'; - -// Or use it for specific notifications -flasher.success('Operation completed successfully'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Material styling: - -{% assign successMessage = 'Operation completed successfully.' %} -{% assign errorMessage = 'An error occurred during the operation.' %} -{% assign warningMessage = 'This action cannot be undone.' %} -{% assign infoMessage = 'New updates are available.' %} - - - -### PHP - -```php -#/ material types - -// With Material set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Material set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Material Theme for Specific Notifications - -If Material isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.material') - ->success('This notification uses Material theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.material').success('This notification uses Material theme.'); -``` - -### Custom Colors and Appearance - -The Material theme uses CSS variables that can be customized to match your brand while maintaining the Material Design feel: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --md-bg-light: #ffffff; /* Light mode background */ --md-bg-dark: #2d2d2d; /* Dark mode background */ @@ -173,136 +47,24 @@ The Material theme uses CSS variables that can be customized to match your brand /* Animation timing */ --md-animation-duration: 0.3s; /* Entrance animation duration */ --md-ripple-duration: 0.6s; /* Button ripple effect duration */ -} -``` + } -## HTML Structure - -The Material theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    -
    Message text
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -``` - -This minimalist structure focuses on content by omitting unnecessary UI elements for a cleaner appearance. - -## Theme Features - -### Material Design Elements - -#### Elevation - -The theme uses proper Material Design elevation with three shadow components: - -1. **Umbra**: The darkest, sharpest shadow representing the main shadow -2. **Penumbra**: The mid-tone, slightly softer shadow -3. **Ambient**: The lightest, most diffuse shadow - -This creates the characteristic Material Design "floating" effect for cards. - -#### Typography - -Following Material Design typography guidelines: - -- **Message**: 14px (0.875rem), regular weight (400), 60% opacity for secondary text -- **Button**: 13px (0.8125rem), medium weight (500), uppercase with letterSpacing - -#### Ripple Effect - -The theme includes Material Design's signature "ink ripple" effect: - -1. A small circle appears at the point of interaction -2. The circle rapidly expands outward -3. The effect fades out as it reaches full size - -This provides visual feedback that enhances the tactile feeling of the interface. - -### Animation Details - -The Material theme uses Material Design's standard motion curve (cubic-bezier(0.4, 0, 0.2, 1)) for its slide-up animation. This creates a natural-feeling motion that follows the principles of Material motion: - -- Quick acceleration from start -- Smooth deceleration to end -- Total duration of 300ms - -The theme also includes several interaction animations: - -1. **Button Hover**: Background color transition (200ms) -2. **Button Press**: Ripple effect (600ms) -3. **Progress Bar**: Linear progress animation - -### Differences from Google Theme - -While both the Material theme and Google theme follow Material Design guidelines, they differ in these key ways: - -1. **Minimalist Approach**: The Material theme omits icons entirely for a more streamlined appearance -2. **Focus on Content**: With fewer visual elements, more focus is placed on the message text -3. **Simplified Structure**: The HTML structure is more straightforward without icon containers - -### Dark Mode - -The Material theme implements Material Design's dark theme guidelines: - -- Dark surfaces (#2d2d2d) -- Light text (87% white for primary, 60% white for secondary) -- Adjusted shadows for better visibility on dark backgrounds -- Higher contrast for hover states (8% opacity instead of 4%) - -### Accessibility Features - -The Material theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query and disables animations -- **Keyboard Access**: Action button is fully keyboard accessible -- **Color Contrast**: All text meets WCAG 2.1 AA color contrast standards -- **Text Alternatives**: Descriptive aria-labels for interactive elements - -## Browser Support - -The Material theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -The ripple effect and other animations may have slightly different appearances across browsers, but the core functionality works everywhere. - -## Implementation Details - -The Material theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Material Design Elevation**: Proper shadow implementation for depth -- **Ripple Animation**: For tactile button feedback -- **CSS Animations**: With Material Design easing curves -- **Linear Progress**: For countdown visualization -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. - -For the best experience, it's recommended to include the Roboto font in your project: - -```html - -``` +html_structure: | +
    +
    +
    +
    +
    Message text
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/minimal.md b/docs/pages/themes/minimal.md index 0ba76445..384652cf 100644 --- a/docs/pages/themes/minimal.md +++ b/docs/pages/themes/minimal.md @@ -1,159 +1,33 @@ --- +layout: theme permalink: /theme/minimal/ title: Minimal Theme +subtitle: Ultra-clean, distraction-free notification system description: Enhance your application with ultra-clean, distraction-free notifications using the Minimal theme for PHPFlasher. Featuring a translucent design with subtle styling for unobtrusive messaging. -handler: theme.minimal -data-controller: theme-minimal ---- +theme_name: theme.minimal +theme_name_short: minimal +theme_class: fl-minimal +icon: fa-minus +color: gray +has_assets: true -## Minimal Theme +visual_features: + - Ultra-clean design with minimal visual elements + - Subtle translucent background with frosted glass effect + - Small colored dot to indicate notification type + - Compact size and spacing for unobtrusive appearance + - System fonts for optimal native readability -The Minimal theme provides an ultra-clean, distraction-free notification design that prioritizes simplicity and unobtrusiveness. With its compact dimensions, subtle visual styling, and reduced visual elements, this theme is perfect for applications where notifications should provide information without competing for attention with the main interface. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion adaptation for users with motion sensitivity + - Color indications that don't rely solely on color + - System fonts that respect user's platform for improved readability + - Fully keyboard accessible close button -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Minimal theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.minimal', // Make Minimal the default theme - - 'themes' => [ - 'minimal' => [ - 'scripts' => [ - '/vendor/flasher/themes/minimal.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/minimal.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.minimal # Make Minimal the default theme - - themes: - minimal: - scripts: - - '/vendor/flasher/themes/minimal.min.js' - styles: - - '/vendor/flasher/themes/minimal.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { minimalTheme } from '@flasher/flasher/themes'; -flasher.addTheme('minimal', minimalTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.minimal'; - -// Or use it for specific notifications -flasher.success('Changes saved'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Minimal styling: - -{% assign successMessage = 'Changes saved.' %} -{% assign errorMessage = 'Connection lost.' %} -{% assign warningMessage = 'Low disk space.' %} -{% assign infoMessage = 'Updates available.' %} - - - -### PHP - -```php -#/ minimal types - -// With Minimal set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Minimal set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Minimal Theme for Specific Notifications - -If Minimal isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.minimal') - ->success('This notification uses Minimal theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.minimal').success('This notification uses Minimal theme.'); -``` - -### Custom Colors and Appearance - -The Minimal theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --minimal-bg-light: rgba(255, 255, 255, 0.8); /* Light mode background */ --minimal-bg-dark: rgba(25, 25, 25, 0.8); /* Dark mode background */ @@ -170,101 +44,17 @@ The Minimal theme uses CSS variables that can be customized to match your brand: /* Additional customization */ --minimal-blur: 8px; /* Backdrop blur amount */ --minimal-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); /* Shadow */ -} -``` - -## HTML Structure - -The Minimal theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    Message text
    - -
    -
    -
    -
    -
    -``` - -This structure is deliberately minimalist, with just a small colored dot to indicate notification type and a thin progress bar at the bottom. - -## Theme Features - -### Design Philosophy - -The Minimal theme embodies several key design principles: - -1. **Reduction**: Eliminating all non-essential visual elements -2. **Unobtrusiveness**: Staying out of the way while delivering information -3. **Clarity**: Maintaining excellent readability with system fonts -4. **Subtlety**: Using transparency, small indicators, and minimal animation -5. **Consistency**: Applying the same minimal approach to all aspects - -The theme deliberately avoids large icons, bold colors, or pronounced animations that might distract users from their primary tasks. The small colored dot provides just enough visual indication of the notification type without overwhelming the interface. - -### Visual Characteristics - -#### Frosted Glass Effect - -The theme uses a semi-transparent background (80% opacity) with an 8px backdrop blur, creating a subtle "frosted glass" effect that lets the underlying content partially show through. - -#### System Font Stack - -The theme uses the system UI font of the user's device (San Francisco on Apple devices, Segoe UI on Windows, etc.), ensuring that notifications look native to the platform. - -#### Compact Size and Spacing - -- **Max Width**: 320px -- **Padding**: 0.75rem 1rem (12px 16px at default font size) -- **Text Size**: 0.875rem (14px at default font size) -- **Dot Size**: 8px diameter - -#### Quick Animation - -The entrance animation is intentionally brief (0.2s) and subtle, with just a small movement from above and fade-in effect. - -### Dark Mode - -The theme automatically adapts to system dark mode preferences, with a dark semi-transparent background and light text that maintains the minimal aesthetic while ensuring readability. - -### Accessibility Features - -The Minimal theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query -- **Keyboard Access**: Close button is fully keyboard accessible -- **Color Indications**: Uses color dots to indicate type without relying solely on color -- **System Fonts**: Improved readability through native font rendering -- **Adequate Contrast**: Maintains good contrast ratio between text and background - -## Browser Support - -The Minimal theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) - falls back gracefully to semi-transparent background without blur -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -## Implementation Details - -The Minimal theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **Backdrop Filter**: For the subtle frosted glass effect -- **System Font Stack**: For optimal readability with native fonts -- **CSS Transitions**: For subtle hover effects -- **CSS Animations**: For quick, minimal entrance animation -- **Performance Optimization**: Uses `will-change: transform, opacity` for smooth animations -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times and minimal impact on application performance. + } +html_structure: | +
    +
    +
    +
    Message text
    + +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/neon.md b/docs/pages/themes/neon.md index f6869c49..0e906b2e 100644 --- a/docs/pages/themes/neon.md +++ b/docs/pages/themes/neon.md @@ -1,159 +1,33 @@ --- +layout: theme permalink: /theme/neon/ title: Neon Theme +subtitle: Elegant notifications with subtle glowing accents description: Add elegant notifications with subtle glowing accents to your application using the Neon theme for PHPFlasher. Featuring frosted glass backgrounds, floating illuminated indicators, and refined typography. -handler: theme.neon -data-controller: theme-neon ---- +theme_name: theme.neon +theme_name_short: neon +theme_class: fl-neon +icon: fa-lightbulb +color: purple +has_assets: true -## Neon Theme +visual_features: + - Distinctive floating indicator with subtle glow effect + - Frosted glass background with backdrop blur + - Gentle "breathing" animation for the glowing elements + - Refined entrance animation combining fade and movement + - Modern typography with clean, readable font -The Neon theme provides elegant notifications with subtle glowing accents that evoke the gentle illumination of neon lights. It features a frosted glass background, floating illuminated indicators, and refined typography that come together to create a modern, sophisticated appearance. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion option disables both entrance and glow animations + - Fully keyboard accessible close button with visual feedback + - Both color and position used to indicate notification type + - Sufficient contrast between text and background -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Neon theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.neon', // Make Neon the default theme - - 'themes' => [ - 'neon' => [ - 'scripts' => [ - '/vendor/flasher/themes/neon.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/neon.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.neon # Make Neon the default theme - - themes: - neon: - scripts: - - '/vendor/flasher/themes/neon.min.js' - styles: - - '/vendor/flasher/themes/neon.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { neonTheme } from '@flasher/flasher/themes'; -flasher.addTheme('neon', neonTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.neon'; - -// Or use it for specific notifications -flasher.success('Your changes have been saved'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Neon styling: - -{% assign successMessage = 'Your changes have been saved successfully.' %} -{% assign errorMessage = 'There was a problem saving your changes.' %} -{% assign warningMessage = 'This action cannot be undone.' %} -{% assign infoMessage = 'New features are available.' %} - - - -### PHP - -```php -#/ neon types - -// With Neon set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Neon set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Neon Theme for Specific Notifications - -If Neon isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.neon') - ->success('This notification uses Neon theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.neon').success('This notification uses Neon theme.'); -``` - -### Custom Colors and Appearance - -The Neon theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --neon-bg-light: rgba(255, 255, 255, 0.9); /* Light mode background */ --neon-bg-dark: rgba(15, 23, 42, 0.9); /* Dark mode background */ @@ -170,110 +44,16 @@ The Neon theme uses CSS variables that can be customized to match your brand: /* Glow properties */ --neon-glow-strength: 10px; /* How far the glow extends */ --neon-blur: 10px; /* Backdrop blur amount */ -} -``` + } -## HTML Structure - -The Neon theme generates notifications with the following HTML structure: - -```html -
    -
    -
    Message text
    - -
    -
    -
    -
    -
    -``` - -The floating illuminated indicator is created using CSS pseudo-elements rather than being part of the HTML structure. - -## Theme Features - -### Floating Illuminated Indicator - -The Neon theme features a distinctive floating indicator that appears to hover above the notification with a subtle glow: - -1. **Container**: Positioned above the notification's top edge -2. **Glow**: Applied using a filter drop-shadow with the notification type's color -3. **Background**: Semi-transparent circle created with ::before pseudo-element -4. **Center dot**: Solid-colored small dot created with ::after pseudo-element - -This layering creates the illusion of a floating, glowing dot that serves as a visual indicator of the notification type. - -### Animation Effects - -The Neon theme features two distinctive animations: - -#### Entrance Animation - -A combined animation creates a refined entrance where notifications: -1. Fade in from invisible to fully visible -2. Move downward slightly from above -3. Transition from a blurred state to sharp focus - -#### Glow Animation - -A subtle "breathing" effect where the glow gently pulses, becoming slightly dimmer in the middle of the animation cycle before returning to full brightness. - -### Frosted Glass Effect - -The theme uses a semi-transparent background combined with backdrop-filter to create a frosted glass effect that gives notifications a modern, sophisticated appearance where they appear to float above the page with a subtle blur applied to content behind them. - -### Dark Mode - -The dark mode implementation maintains the glowing aesthetic while adjusting for low-light environments: - -- Dark slate semi-transparent background -- Light colored text for better contrast -- Stronger shadow for better depth perception -- Adjusted hover state for the close button - -The glowing colors remain consistent between light and dark modes to maintain brand color recognition. - -### Accessibility Features - -The Neon theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query and disables both entrance and glow animations -- **Keyboard Access**: Close button is fully keyboard accessible with visual feedback -- **Color Contrast**: Maintains sufficient contrast ratio between text and background -- **Visual Indicators**: Uses both color and position to signal notification type - -## Browser Support - -The Neon theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -For browsers that don't support backdrop-filter (like Firefox), the theme gracefully degrades to using just the semi-transparent background without the blur effect. - -## Implementation Details - -The Neon theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **CSS Pseudo-elements**: For creating the floating indicator without extra HTML -- **Backdrop Filter**: For the frosted glass effect -- **Filter Effects**: For creating the glowing appearance -- **CSS Animations**: For entrance and glow pulsing effects -- **Typography**: Uses Inter font (with fallbacks) for a clean, modern look -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. - -For the best experience with the Neon theme, it's recommended to include the Inter font in your project: - -```html - -``` +html_structure: | +
    +
    +
    Message text
    + +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/onyx.md b/docs/pages/themes/onyx.md index 542bf10e..f664726c 100644 --- a/docs/pages/themes/onyx.md +++ b/docs/pages/themes/onyx.md @@ -1,159 +1,33 @@ --- +layout: theme permalink: /theme/onyx/ title: Onyx Theme +subtitle: Modern, floating notifications with elegant details description: Add modern, floating notifications to your application with the Onyx theme for PHPFlasher. Featuring elegant shadows, colored corner dots, and smooth animations for a sophisticated appearance. -handler: theme.onyx -data-controller: theme-onyx ---- +theme_name: theme.onyx +theme_name_short: onyx +theme_class: fl-onyx +icon: fa-gem +color: black +has_assets: true -## Onyx Theme +visual_features: + - Sophisticated floating card design with elegant shadows + - Distinctive colored accent dots in corners to indicate notification type + - Clean, minimalist appearance focusing on content clarity + - Refined entrance animation combining fade, movement and focus effects + - Generous spacing and rounded corners (1rem radius) for a contemporary look -The Onyx theme provides modern, floating notifications with a clean design and subtle accent elements. It features elegant shadows, colored corner dots indicating notification type, and smooth animations to create a sophisticated, contemporary appearance that integrates well with modern interfaces. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion option for users with motion sensitivity + - Colored dots provide type indication without relying solely on color + - Fully keyboard accessible close button with visual feedback + - High contrast between text and background in both light and dark modes -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Onyx theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.onyx', // Make Onyx the default theme - - 'themes' => [ - 'onyx' => [ - 'scripts' => [ - '/vendor/flasher/themes/onyx.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/onyx.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.onyx # Make Onyx the default theme - - themes: - onyx: - scripts: - - '/vendor/flasher/themes/onyx.min.js' - styles: - - '/vendor/flasher/themes/onyx.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { onyxTheme } from '@flasher/flasher/themes'; -flasher.addTheme('onyx', onyxTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.onyx'; - -// Or use it for specific notifications -flasher.success('Your changes have been saved'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Onyx styling: - -{% assign successMessage = 'Your changes have been saved successfully.' %} -{% assign errorMessage = 'There was a problem saving your changes.' %} -{% assign warningMessage = 'This action cannot be undone.' %} -{% assign infoMessage = 'New features are available.' %} - - - -### PHP - -```php -#/ onyx types - -// With Onyx set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Onyx set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Onyx Theme for Specific Notifications - -If Onyx isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.onyx') - ->success('This notification uses Onyx theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.onyx').success('This notification uses Onyx theme.'); -``` - -### Custom Colors and Appearance - -The Onyx theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --onyx-bg-light: #ffffff; /* Light mode background */ --onyx-bg-dark: #1e1e1e; /* Dark mode background */ @@ -168,107 +42,18 @@ The Onyx theme uses CSS variables that can be customized to match your brand: --onyx-info: #3b82f6; /* Info color */ --onyx-warning: #f59e0b; /* Warning color */ --onyx-error: #ef4444; /* Error color */ -} -``` + } -## HTML Structure - -The Onyx theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    Message text
    -
    - -
    -
    -
    -
    -
    -``` - -The accent dots are created using CSS pseudo-elements (`::before` and `::after`) rather than being part of the HTML structure. - -## Theme Features - -### Design Philosophy - -The Onyx theme embodies several design principles: - -1. **Elegance**: Clean, sophisticated appearance with subtle details -2. **Minimalism**: Only essential elements are included, with no icons or extraneous components -3. **Focus**: The clean design keeps attention on the message content -4. **Refinement**: Thoughtful attention to details like animation timing and corner dots -5. **Consistency**: Each notification type follows the same pattern with its own accent color - -### Accent Dots Design - -One of the distinctive features of the Onyx theme is its use of subtle accent dots in the corners: - -- **Top-left dot**: Positioned 10px from the top and left edges -- **Bottom-right dot**: Positioned 10px from the bottom and right edges -- **Small size**: Each dot is just 6px in diameter -- **Type-specific colors**: The dots match the color associated with the notification type - -These small visual elements provide a subtle but clear indication of the notification type without requiring large icons or colored backgrounds. - -### Animation Effects - -The Onyx theme features a sophisticated entrance animation that combines multiple effects: - -- Notifications fade in from invisible to fully visible -- They move upward slightly from below their final position -- They transition from a blurred state to sharp focus - -The animation uses a carefully crafted easing curve for a natural, refined movement. - -### Dark Mode - -The dark mode implementation maintains the sophisticated aesthetic while adjusting for low-light environments: - -- Dark background (#1e1e1e) -- Light text color (#f5f5f5) -- Deeper shadow for enhanced depth perception -- Adjusted hover state for the close button using white opacity - -The accent dot colors remain consistent between light and dark modes to maintain brand color recognition. - -### Accessibility Features - -The Onyx theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query and disables entrance animation -- **Keyboard Access**: Close button is fully keyboard accessible with visual feedback -- **Color Indicators**: Uses colored dots to indicate type without relying solely on color for meaning -- **Adequate Contrast**: Ensures good contrast between text and background in both light and dark modes - -## Browser Support - -The Onyx theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -No special polyfills or fallbacks are required as the theme uses standard CSS features that are well-supported across browsers. - -## Implementation Details - -The Onyx theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **CSS Pseudo-elements**: For creating the accent dots without extra HTML -- **Box Shadows**: For the floating card appearance -- **CSS Animations**: For refined entrance effects combining movement and blur -- **CSS Transitions**: For smooth hover interactions -- **Progress Bar**: Shows countdown until notification dismissal with type-specific colors -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | +
    +
    +
    +
    Message text
    +
    + +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/ruby.md b/docs/pages/themes/ruby.md index 0653fe65..1a3eb52a 100644 --- a/docs/pages/themes/ruby.md +++ b/docs/pages/themes/ruby.md @@ -1,159 +1,33 @@ --- +layout: theme permalink: /theme/ruby/ title: Ruby Theme +subtitle: Vibrant gradient notifications with shine effect description: Add vibrant notifications with rich gradient backgrounds to your application using the Ruby theme for PHPFlasher. Featuring an elegant shine animation, circular icons, and gemstone-like appearance. -handler: theme.ruby -data-controller: theme-ruby ---- +theme_name: theme.ruby +theme_name_short: ruby +theme_class: fl-ruby +icon: fa-gem +color: red +has_assets: true -## Ruby Theme +visual_features: + - Rich diagonal gradient backgrounds in vibrant colors + - Distinctive shine animation mimicking light reflecting off gemstone surfaces + - Circular translucent icon containers for clear notification type identification + - Smooth entrance animation with scale and fade effects + - Sophisticated shadow treatment for depth and premium feel -The Ruby theme provides vibrant notifications with rich gradient backgrounds and a distinctive gemstone-like appearance. It features an elegant shine animation that mimics light reflecting off a precious stone, along with circular icon containers and smooth animations to create a premium, eye-catching visual experience. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion option disables shine animation and entrance effects + - High contrast white text on colored backgrounds + - Fully keyboard accessible controls with visual feedback + - Complete RTL language support with directional adjustments -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Ruby theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.ruby', // Make Ruby the default theme - - 'themes' => [ - 'ruby' => [ - 'scripts' => [ - '/vendor/flasher/themes/ruby.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/ruby.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.ruby # Make Ruby the default theme - - themes: - ruby: - scripts: - - '/vendor/flasher/themes/ruby.min.js' - styles: - - '/vendor/flasher/themes/ruby.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { rubyTheme } from '@flasher/flasher/themes'; -flasher.addTheme('ruby', rubyTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.ruby'; - -// Or use it for specific notifications -flasher.success('Your changes have been saved'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Ruby styling: - -{% assign successMessage = 'Your changes have been saved successfully.' %} -{% assign errorMessage = 'There was a problem saving your changes.' %} -{% assign warningMessage = 'This action cannot be undone.' %} -{% assign infoMessage = 'New features are available.' %} - - - -### PHP - -```php -#/ ruby types - -// With Ruby set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Ruby set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Ruby Theme for Specific Notifications - -If Ruby isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.ruby') - ->success('This notification uses Ruby theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.ruby').success('This notification uses Ruby theme.'); -``` - -### Custom Colors and Appearance - -The Ruby theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --ruby-text: #ffffff; /* Text color */ --ruby-border-radius: 1.125rem; /* Corner roundness */ @@ -164,119 +38,22 @@ The Ruby theme uses CSS variables that can be customized to match your brand: --ruby-info-gradient: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%); /* Info */ --ruby-warning-gradient: linear-gradient(135deg, #d97706 0%, #f59e0b 100%); /* Warning */ --ruby-error-gradient: linear-gradient(135deg, #b91c1c 0%, #ef4444 100%); /* Error */ -} -``` + } -## HTML Structure - -The Ruby theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    -
    -
    -
    -
    Message text
    -
    - -
    -
    -
    -
    -
    -``` - -This structure includes the shine element that creates the gemstone-like reflection animation and the circular icon container that's distinctive to this theme. - -## Theme Features - -### Gradient Design - -The theme uses rich, vibrant gradients that flow from a deeper shade to a brighter one: - -- **Success**: Green gradient from #059669 to #10b981 -- **Info**: Blue gradient from #2563eb to #3b82f6 -- **Warning**: Amber gradient from #d97706 to #f59e0b -- **Error**: Red gradient from #b91c1c to #ef4444 - -All gradients are angled at 135 degrees, creating a consistent diagonal flow across all notification types. - -### Shine Animation - -The Ruby theme features a distinctive shine animation that mimics light reflecting off a gemstone surface: - -- A moving highlight travels across the notification from left to right -- The effect is angled with a skew transform -- Uses a semi-transparent white gradient -- Repeats every 6 seconds after an initial 1-second delay -- Fades out at the end of each cycle - -This animation adds a premium, dynamic quality to the notifications that draws the user's attention. - -### Circular Icon Container - -The circular icon container uses: -- Semi-transparent white background (25% opacity) -- Perfect circular shape (border-radius: 50%) -- 36px diameter (2.25rem) -- Centered icon with white color - -This creates a subtle but distinctive visual element that helps identify the notification type. - -### Animation Effects - -In addition to the shine animation, the Ruby theme includes: - -- **Entrance Animation**: A smooth scale-up from 96% to 100% combined with a fade-in -- **Close Button Interactions**: Scale and opacity changes on hover -- **Progress Bar Animation**: A fluid countdown indicator - -### Design Philosophy - -The Ruby theme embodies a premium, attention-grabbing design philosophy: -1. **Vibrance**: Rich, saturated colors that stand out -2. **Movement**: Dynamic shine animation that draws the eye -3. **Depth**: Shadows and translucent elements create a layered appearance -4. **Polish**: Refined animations and hover states reflect a premium quality -5. **Legibility**: Despite the colorful backgrounds, text remains highly readable - -### Accessibility Features - -The Ruby theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query by disabling animations and shine effect -- **Color Contrast**: White text (#ffffff) on colored backgrounds meets WCAG 2.1 AA contrast requirements -- **Keyboard Access**: Close button is fully keyboard accessible with visual feedback -- **RTL Support**: Complete right-to-left language support with appropriate directional adjustments - -## Browser Support - -The Ruby theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -The gradient backgrounds and animations are well-supported across modern browsers, requiring no special fallbacks. - -## Implementation Details - -The Ruby theme uses modern web technologies: - -- **CSS Variables**: For theme customization -- **CSS Gradients**: For rich, vibrant backgrounds -- **CSS Animations**: For shine effect and entrance animations -- **CSS Transitions**: For smooth hover interactions -- **Box Shadows**: For depth and premium feel -- **SVG Icons**: For crisp, scalable notification type indicators -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. +html_structure: | +
    +
    +
    +
    +
    +
    +
    +
    Message text
    +
    + +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/sapphire.md b/docs/pages/themes/sapphire.md index b5275f12..7c90d64b 100644 --- a/docs/pages/themes/sapphire.md +++ b/docs/pages/themes/sapphire.md @@ -1,159 +1,33 @@ --- +layout: theme permalink: /theme/sapphire/ title: Sapphire Theme +subtitle: Modern, glassmorphic notification system description: Add modern, glassmorphic notifications to your application with the Sapphire theme for PHPFlasher. Featuring a blurred backdrop effect, minimal interface, and subtle animations. -handler: theme.sapphire -data-controller: theme-sapphire ---- +theme_name: theme.sapphire +theme_name_short: sapphire +theme_class: fl-sapphire +icon: fa-gem +color: blue +has_assets: true -## Sapphire Theme +visual_features: + - Frosted glass effect with semi-transparent backgrounds and backdrop blur + - Ultra-minimal interface without close buttons or icons + - Distinctive bounce animation for a more dynamic entrance + - Type-specific colored backgrounds with consistent visual language + - Progress bar showing time until auto-dismissal -The Sapphire theme provides modern, glassmorphic notifications with a blurred backdrop effect. It features a clean, minimal design that emphasizes simplicity and contemporary aesthetics, with semi-transparent colored backgrounds and subtle animations that create a sophisticated, unobtrusive appearance. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion option for users with motion sensitivity + - High contrast between text and all background colors + - Complete RTL language support + - Auto-dismissal with visual progress indicator -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Sapphire theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.sapphire', // Make Sapphire the default theme - - 'themes' => [ - 'sapphire' => [ - 'scripts' => [ - '/vendor/flasher/themes/sapphire.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/sapphire.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.sapphire # Make Sapphire the default theme - - themes: - sapphire: - scripts: - - '/vendor/flasher/themes/sapphire.min.js' - styles: - - '/vendor/flasher/themes/sapphire.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { sapphireTheme } from '@flasher/flasher/themes'; -flasher.addTheme('sapphire', sapphireTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.sapphire'; - -// Or use it for specific notifications -flasher.success('Your changes have been saved'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Sapphire styling: - -{% assign successMessage = 'Your changes have been saved successfully.' %} -{% assign errorMessage = 'There was a problem saving your changes.' %} -{% assign warningMessage = 'This action cannot be undone.' %} -{% assign infoMessage = 'New features are available.' %} - - - -### PHP - -```php -#/ sapphire types - -// With Sapphire set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Sapphire set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Sapphire Theme for Specific Notifications - -If Sapphire isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.sapphire') - ->success('This notification uses Sapphire theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.sapphire').success('This notification uses Sapphire theme.'); -``` - -### Custom Colors and Appearance - -The Sapphire theme uses CSS variables that can be customized to match your brand: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --sapphire-bg-base: rgba(30, 30, 30, 0.9); /* Base background color */ --sapphire-text: #f0f0f0; /* Text color */ @@ -170,105 +44,15 @@ The Sapphire theme uses CSS variables that can be customized to match your brand --sapphire-error: rgba(239, 68, 68, 0.95); /* Error color */ --sapphire-warning: rgba(245, 158, 11, 0.95); /* Warning color */ --sapphire-info: rgba(59, 130, 246, 0.95); /* Info color */ -} -``` + } -## HTML Structure - -The Sapphire theme generates notifications with the following HTML structure: - -```html -
    -
    - Message text -
    -
    -
    -
    -
    -``` - -Note that unlike most themes, Sapphire intentionally omits a close button and icons for a more streamlined appearance. - -## Theme Features - -### Glassmorphic Design - -The Sapphire theme implements the popular glassmorphism design trend with a semi-transparent background and backdrop blur that creates a frosted glass effect where: - -- The notification background is semi-transparent -- Content behind the notification appears blurred -- The effect creates depth and visual interest -- The notification feels like it's floating above the content - -### Minimalist Approach - -Unlike many notification themes, Sapphire takes a distinctly minimalist approach: - -- No close button (notifications auto-dismiss) -- No icons or visual indicators beyond color -- Clean typography with minimal styling -- Focus purely on the message content -- Subtle progress indicator - -This approach reduces visual noise and creates a more elegant, unobtrusive notification experience. - -### Animation Effects - -The Sapphire theme features a distinctive bounce animation for a more dynamic entrance where notifications: - -1. Fade in from invisible to fully visible -2. Move upward from below their final position -3. Slightly overshoot their target position before settling (bounce effect) - -The animation uses a carefully tuned easing curve that enhances the natural feel of the motion. - -### Color System - -The theme uses a sophisticated color system: - -- High transparency backgrounds (95% opacity) -- Type-specific colors that maintain a consistent visual language -- Light text (#f0f0f0) for excellent contrast on all background colors -- Semi-transparent progress indicator that works across all notification types - -### Accessibility Features - -The Sapphire theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query and disables animations -- **Color Contrast**: Ensures good contrast between text and all background colors -- **RTL Support**: Complete right-to-left language support - -## Browser Support - -The Sapphire theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -For browsers that don't support backdrop-filter (like older Firefox versions), the theme gracefully degrades to using just the semi-transparent background without the blur effect. - -## Implementation Details - -The Sapphire theme uses modern web technologies: - -- **CSS Variables**: For theme customization -- **Backdrop Filter**: For the frosted glass effect -- **CSS Animations**: For the bounce entrance effect -- **CSS Transitions**: For smooth progress bar animation -- **Media Queries**: For responsive design and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. - -For the best experience with the Sapphire theme, it's recommended to include the Roboto font in your project: - -```html - -``` +html_structure: | +
    +
    + Message text +
    +
    +
    +
    +
    +--- diff --git a/docs/pages/themes/slack.md b/docs/pages/themes/slack.md index 2337ed75..6612360a 100644 --- a/docs/pages/themes/slack.md +++ b/docs/pages/themes/slack.md @@ -1,159 +1,34 @@ --- +layout: theme permalink: /theme/slack/ title: Slack Theme +subtitle: Familiar workspace messaging style description: Add Slack-style notifications to your application with the Slack theme for PHPFlasher. Featuring message bubbles with colored avatars, clean typography, and interactive hover effects. -handler: theme.slack -data-controller: theme-slack ---- +theme_name: theme.slack +theme_name_short: slack +theme_class: fl-slack +icon: fa-slack +color: purple +has_assets: true -## Slack Theme +visual_features: + - Message bubble design with subtle borders and shadow effects + - Colored square avatars with notification type symbols + - Clean typography mimicking Slack's font styling + - Interactive close button that appears on hover + - Consistent styling between notification types with color-coded avatars -The Slack theme provides notifications styled after Slack's familiar messaging interface. It features message bubbles with colored avatars, clean typography, and interactive hover effects that closely resemble the appearance and behavior of messages in the popular workplace communication platform. +accessibility_features: + - Type-specific ARIA roles for screen readers + - Appropriate aria-live regions based on message importance + - Reduced motion option for users with motion sensitivity + - Fully keyboard accessible close button + - Multiple indicators (color and symbol) for notification types + - High contrast text in both light and dark modes + - Complete RTL language support with properly flipped layout -> **Note:** -> New to PHPFlasher? Check the [installation guide](/installation/) first. - -## Setup - -The easiest way to use the Slack theme is to set it as your **default theme**: - -### Laravel - -```php - 'theme.slack', // Make Slack the default theme - - 'themes' => [ - 'slack' => [ - 'scripts' => [ - '/vendor/flasher/themes/slack.min.js', - ], - 'styles' => [ - '/vendor/flasher/themes/slack.min.css', - ], - ], - ], -]; -``` - -### Symfony - -```yaml -# config/packages/flasher.yaml - -flasher: - default: theme.slack # Make Slack the default theme - - themes: - slack: - scripts: - - '/vendor/flasher/themes/slack.min.js' - styles: - - '/vendor/flasher/themes/slack.min.css' -``` - -### JavaScript/TypeScript - -```typescript -// Import the theme (if not auto-registered) -import { slackTheme } from '@flasher/flasher/themes'; -flasher.addTheme('slack', slackTheme); - -// Set as default theme -flasher.defaultPlugin = 'theme.slack'; - -// Or use it for specific notifications -flasher.success('Your file was uploaded successfully'); -``` - -## Notification Types - -Once configured, use standard PHPFlasher methods to create notifications with Slack styling: - -{% assign successMessage = 'Your file was uploaded successfully.' %} -{% assign errorMessage = 'Unable to connect to the server.' %} -{% assign warningMessage = 'Your session will expire soon.' %} -{% assign infoMessage = 'New comments on your post.' %} - - - -### PHP - -```php -#/ slack types - -// With Slack set as default theme -flash()->success('{{ successMessage }}'); -flash()->error('{{ errorMessage }}'); -flash()->warning('{{ warningMessage }}'); -flash()->info('{{ infoMessage }}'); -``` - -### JavaScript - -```javascript -// With Slack set as default theme -flasher.success('{{ successMessage }}'); -flasher.error('{{ errorMessage }}'); -flasher.warning('{{ warningMessage }}'); -flasher.info('{{ infoMessage }}'); -``` - -## Customization - -### Using Slack Theme for Specific Notifications - -If Slack isn't your default theme, you can use it for specific notifications: - -#### PHP - -```php -flash() - ->use('theme.slack') - ->success('This notification uses Slack theme.'); -``` - -#### JavaScript - -```javascript -flasher.use('theme.slack').success('This notification uses Slack theme.'); -``` - -### Custom Colors and Appearance - -The Slack theme uses CSS variables that can be customized to match your brand while maintaining the Slack-like appearance: - -```css -:root { +css_variables: | + :root { /* Base appearance */ --slack-bg-light: #ffffff; /* Light mode background */ --slack-bg-dark: #1a1d21; /* Dark mode background */ @@ -168,128 +43,22 @@ The Slack theme uses CSS variables that can be customized to match your brand wh --slack-info: #1264a3; /* Info avatar color */ --slack-warning: #e8912d; /* Warning avatar color */ --slack-error: #e01e5a; /* Error avatar color */ -} -``` + } -## HTML Structure - -The Slack theme generates notifications with the following HTML structure: - -```html -
    -
    -
    -
    [Symbol]
    -
    -
    -
    Message text
    -
    -
    - -
    -
    -
    -``` - -This structure mirrors Slack's message layout with an avatar container, message content, and action button. - -## Theme Features - -### Message Bubble Design - -The main container follows Slack's message styling: -- White background (#ffffff) in light mode -- Dark background (#1a1d21) in dark mode -- Subtle border (1px solid #e0e0e0) -- Slight bottom shadow for depth (0 1px 0 rgba(0, 0, 0, 0.1)) -- Subtle hover state (#f8f8f8) -- 4px border radius - -### Avatar Design - -Each notification type has a colored square avatar: -- Success: Green (#2bac76) with ✓ symbol -- Error: Pink/Red (#e01e5a) with ✕ symbol -- Warning: Orange (#e8912d) with ! symbol -- Info: Blue (#1264a3) with i symbol - -The avatars are 36px × 36px squares with slightly rounded corners (4px border radius). - -### Interactive Elements - -The close button appears on hover: -- Initially hidden (opacity: 0, visibility: hidden) -- Fades in when hovering over the message -- Uses Slack's "X" SVG icon -- Changes color on hover (from #616061 to #1d1c1d) -- Has a subtle background on hover (#f8f8f8) - -### Animation Effects - -The theme uses a simple, quick fade-in animation: -- Duration: 150ms (matches Slack's quick, responsive feel) -- Timing function: ease-out -- Effect: Simple opacity change from 0 to 1 - -### Typography - -The theme uses Slack's typography style: -- Font family: Lato, Slack-Lato, Helvetica Neue, Helvetica, sans-serif -- Font size: 15px for message text -- Line height: 1.46668 (Slack's specific line height) -- Text color: Near black (#1d1c1d) in light mode, off-white (#e0e0e0) in dark mode - -### Dark Mode - -The dark mode implementation closely matches Slack's dark theme: -- Background: #1a1d21 (Slack's dark mode color) -- Text: #e0e0e0 (light gray) -- Border: #393a3e (dark gray) -- Hover background: #222529 (slightly lighter than the background) - -The avatar colors remain consistent between light and dark modes to maintain clear visual indicators. - -### Accessibility Features - -The Slack theme includes several accessibility features: - -- **ARIA Roles**: Uses appropriate `role="alert"` for error/warning and `role="status"` for success/info -- **ARIA Live Regions**: Uses `aria-live="assertive"` for critical messages and `aria-live="polite"` for non-critical messages -- **Reduced Motion**: Respects `prefers-reduced-motion` media query and disables animations -- **Keyboard Access**: Close button is fully keyboard accessible -- **Color Indicators**: Each notification type has its own color, but also includes a symbol -- **Text Contrast**: Maintains good contrast ratios in both light and dark modes -- **RTL Support**: Complete right-to-left language support with properly flipped layout - -## Browser Support - -The Slack theme is compatible with all modern browsers: - -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) -- Mobile browsers on iOS and Android - -The theme uses standard CSS features that are well-supported across browsers, ensuring a consistent experience for all users. - -## Implementation Details - -The Slack theme uses modern web technologies: - -- **CSS Variables**: For theme customization and dark mode support -- **CSS Flexbox**: For proper message layout and alignment -- **CSS Transitions**: For smooth hover interactions -- **SVG Icons**: For the close button and notification type indicators -- **Media Queries**: For responsive design, dark mode, and reduced motion support - -All theme files are optimized for production use, with minified JavaScript and CSS to ensure fast loading times. - -For the best experience with the Slack theme, it's recommended to include the Lato font in your project: - -```html - -``` +html_structure: | +
    +
    +
    +
    [Symbol]
    +
    +
    +
    Message text
    +
    +
    + +
    +
    +
    +--- diff --git a/package-lock.json b/package-lock.json index 036c448b..a93c2eab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "all-contributors-cli": "^6.26.1", - "autoprefixer": "^10.4.20", + "autoprefixer": "^10.4.21", "browserslist": "^4.24.4", "cross-env": "^7.0.3", "cssnano": "^7.0.6", @@ -38,7 +38,7 @@ "eslint": "^8.57.1", "eslint-config-airbnb-typescript": "^18.0.0", "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^3.8.3", + "eslint-import-resolver-typescript": "^3.8.4", "eslint-plugin-babel": "^5.3.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-prettier": "^5.2.3", @@ -4838,9 +4838,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "dev": true, "funding": [ { @@ -4858,11 +4858,11 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -6628,9 +6628,9 @@ } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.8.3.tgz", - "integrity": "sha512-A0bu4Ks2QqDWNpeEgTQMPTngaMhuDu4yv6xpftBMAf+1ziXnpx+eSR1WRfoPTe2BAiAjHFZ7kSNx1fvr5g5pmQ==", + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.8.4.tgz", + "integrity": "sha512-vjTGvhr528DzCOLQnBxvoB9a2YuzegT1ogfrUwOqMXS/J6vNYQKSHDJxxDVU1gRuTiUK8N2wyp8Uik9JSPAygA==", "dev": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 8125bbb9..a9de9b90 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "all-contributors-cli": "^6.26.1", - "autoprefixer": "^10.4.20", + "autoprefixer": "^10.4.21", "browserslist": "^4.24.4", "cross-env": "^7.0.3", "cssnano": "^7.0.6", @@ -66,7 +66,7 @@ "eslint": "^8.57.1", "eslint-config-airbnb-typescript": "^18.0.0", "eslint-config-prettier": "^9.1.0", - "eslint-import-resolver-typescript": "^3.8.3", + "eslint-import-resolver-typescript": "^3.8.4", "eslint-plugin-babel": "^5.3.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-prettier": "^5.2.3", diff --git a/src/Prime/Resources/assets/themes/amber/amber.scss b/src/Prime/Resources/assets/themes/amber/amber.scss index 5e643443..bd4cf42a 100644 --- a/src/Prime/Resources/assets/themes/amber/amber.scss +++ b/src/Prime/Resources/assets/themes/amber/amber.scss @@ -57,11 +57,6 @@ font-family: var(--fl-font), serif; will-change: transform, opacity; - /* Remove margin from last notification in a stack */ - &:last-child { - margin-bottom: 0; - } - /** * Content container * Holds all notification elements in a flexbox layout diff --git a/src/Prime/Resources/assets/themes/crystal/crystal.scss b/src/Prime/Resources/assets/themes/crystal/crystal.scss index cf2c7772..0c7e3dfc 100644 --- a/src/Prime/Resources/assets/themes/crystal/crystal.scss +++ b/src/Prime/Resources/assets/themes/crystal/crystal.scss @@ -81,13 +81,6 @@ animation: crystalPulse 2s ease-in-out infinite; } - /** - * Remove margin from last notification in a stack - */ - &:last-child { - margin-bottom: 0; - } - /** * Content container * Holds the message and close button diff --git a/src/Prime/Resources/assets/themes/facebook/facebook.ts b/src/Prime/Resources/assets/themes/facebook/facebook.ts index f1e8a0b4..c133328b 100644 --- a/src/Prime/Resources/assets/themes/facebook/facebook.ts +++ b/src/Prime/Resources/assets/themes/facebook/facebook.ts @@ -50,11 +50,9 @@ export const facebookTheme = { const role = isAlert ? 'alert' : 'status' const ariaLive = isAlert ? 'assertive' : 'polite' - // Extract timestamp from options or use current time - const timestamp = String(envelope.options?.timestamp || '2025-03-02 06:49:21') - - // Format time to be more readable (HH:MM format) - const formattedTime = timestamp.split(' ')[1].substring(0, 5) + // Format current time in Facebook style (hour:minute) + const now = new Date() + const timeString = now.toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' }) /** * Gets the appropriate icon based on notification type. @@ -103,7 +101,7 @@ export const facebookTheme = { ${message}
    - ${formattedTime} + ${timeString}
    diff --git a/src/Prime/Resources/assets/themes/jade/jade.scss b/src/Prime/Resources/assets/themes/jade/jade.scss index 7c1d38c4..bf25310c 100644 --- a/src/Prime/Resources/assets/themes/jade/jade.scss +++ b/src/Prime/Resources/assets/themes/jade/jade.scss @@ -68,13 +68,6 @@ border: 1px solid transparent; /* Border for type-specific colors */ overflow: hidden; /* Contain progress bar */ - /** - * Remove margin from last notification in a stack - */ - &:last-child { - margin-bottom: 0; - } - /** * Content container * Holds message and close button diff --git a/src/Prime/Resources/assets/themes/minimal/minimal.scss b/src/Prime/Resources/assets/themes/minimal/minimal.scss index 7a7f9574..a6db9a45 100644 --- a/src/Prime/Resources/assets/themes/minimal/minimal.scss +++ b/src/Prime/Resources/assets/themes/minimal/minimal.scss @@ -65,13 +65,6 @@ border: 1px solid var(--minimal-border-color); /* Nearly invisible border */ max-width: 320px; /* Limit width for readability */ - /** - * Remove margin from last notification in a stack - */ - &:last-child { - margin-bottom: 0; - } - /** * Content container * Holds message and close button diff --git a/src/Prime/Resources/assets/themes/neon/neon.scss b/src/Prime/Resources/assets/themes/neon/neon.scss index 5df8e216..713c84e8 100644 --- a/src/Prime/Resources/assets/themes/neon/neon.scss +++ b/src/Prime/Resources/assets/themes/neon/neon.scss @@ -77,6 +77,7 @@ animation: neonEntrance var(--neon-animation-duration) ease-out; font-family: 'Inter', var(--fl-font), sans-serif; /* Prefer Inter font for elegant typography */ will-change: transform, opacity, filter; /* Optimize for animation performance */ + overflow: hidden; /* Contain progress bar */ /* Frosted glass effect */ backdrop-filter: blur(10px); diff --git a/src/Prime/Resources/assets/themes/sapphire/sapphire.scss b/src/Prime/Resources/assets/themes/sapphire/sapphire.scss index 499889e8..699fba89 100644 --- a/src/Prime/Resources/assets/themes/sapphire/sapphire.scss +++ b/src/Prime/Resources/assets/themes/sapphire/sapphire.scss @@ -75,13 +75,6 @@ backdrop-filter: blur(12px); /* Strong blur effect */ -webkit-backdrop-filter: blur(12px); /* Safari support */ - /** - * Remove margin from last notification in a stack - */ - &:last-child { - margin-bottom: 0; - } - /** * Message styling * Clean, readable text diff --git a/src/Prime/Resources/dist/flasher.min.css b/src/Prime/Resources/dist/flasher.min.css index 880015b6..f5825c26 100644 --- a/src/Prime/Resources/dist/flasher.min.css +++ b/src/Prime/Resources/dist/flasher.min.css @@ -1,18 +1,18 @@ :root{--fl-success:#10b981;--fl-info:#3b82f6;--fl-warning:#f59e0b;--fl-error:#ef4444;--fl-success-light:color-mix(in srgb,var(--fl-success) 10%,transparent);--fl-info-light:color-mix(in srgb,var(--fl-info) 10%,transparent);--fl-warning-light:color-mix(in srgb,var(--fl-warning) 10%,transparent);--fl-error-light:color-mix(in srgb,var(--fl-error) 10%,transparent);--fl-white:#fff;--fl-black:#000;--fl-bg-light:var(--fl-white);--fl-bg-dark:#0f172a;--fl-text-light:#4b5563;--fl-text-dark:var(--fl-white);--fl-font:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--fl-border-radius:4px;--fl-shadow:0 4px 12px rgba(0,0,0,.15);--fl-shadow-dark:0 4px 12px rgba(0,0,0,.35);--fl-transition:0.4s cubic-bezier(0.23,1,0.32,1);--background-color:var(--fl-bg-light);--text-color:var(--fl-text-light);--dark-background-color:var(--fl-bg-dark);--dark-text-color:var(--fl-text-dark);--success-color:var(--fl-success);--info-color:var(--fl-info);--warning-color:var(--fl-warning);--error-color:var(--fl-error);--success-color-light:var(--fl-success-light);--info-color-light:var(--fl-info-light);--warning-color-light:var(--fl-warning-light);--error-color-light:var(--fl-error-light)}.fl-wrapper{pointer-events:none;position:fixed;transition:all .4s cubic-bezier(.23,1,.32,1);width:24em;z-index:1000}.fl-wrapper .fl-container{border-radius:var(--fl-border-radius,4px);opacity:0;pointer-events:auto;transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .4s cubic-bezier(.23,1,.32,1)}.fl-wrapper .fl-container.fl-show{opacity:1;transform:translate(0) scale(1)!important}.fl-wrapper.fl-stacked .fl-container:not(:last-child){margin-bottom:.5em}.fl-wrapper[data-position^=top-]{top:.75em}.fl-wrapper[data-position^=bottom-]{bottom:.75em}.fl-wrapper[data-position^=center-]{top:50%}.fl-wrapper[data-position$=-right]{right:.75em}.fl-wrapper[data-position$=-left]{left:.75em}.fl-wrapper[data-position$=-center]{left:50%}.fl-wrapper[data-position=center-left]{transform:translateY(-50%)}.fl-wrapper[data-position=center-left] .fl-container{transform:translateX(-110%)}.fl-wrapper[data-position=center-right]{transform:translateY(-50%)}.fl-wrapper[data-position=center-right] .fl-container{transform:translateX(110%)}.fl-wrapper[data-position=center-center]{transform:translate(-50%,-50%)}.fl-wrapper[data-position=center-center] .fl-container{opacity:0;transform:translate(0) scale(.5);transition:transform .5s cubic-bezier(.23,1,.32,1),opacity .5s cubic-bezier(.23,1,.32,1)}.fl-wrapper[data-position=bottom-center],.fl-wrapper[data-position=top-center]{transform:translateX(-50%)}.fl-wrapper[data-position=top-center] .fl-container{transform:translateY(-150%)}.fl-wrapper[data-position=bottom-center] .fl-container{transform:translateY(150%)}.fl-wrapper[data-position=bottom-right] .fl-container,.fl-wrapper[data-position=top-right] .fl-container{transform:translateX(110%)}.fl-wrapper[data-position=bottom-left] .fl-container,.fl-wrapper[data-position=top-left] .fl-container{transform:translateX(-110%)}@media screen and (max-width:768px){.fl-wrapper{left:7.5%;right:7.5%;width:85%}.fl-wrapper[data-position$=-center],.fl-wrapper[data-position$=-left],.fl-wrapper[data-position$=-right]{left:50%;right:auto}.fl-wrapper[data-position^=top-]{top:.75em;transform:translateX(-50%)}.fl-wrapper[data-position^=bottom-]{bottom:.75em;transform:translateX(-50%)}.fl-wrapper[data-position^=center-]{top:50%;transform:translate(-50%,-50%)}}@media screen and (max-width:480px){.fl-wrapper{left:5%;right:5%;width:90%}}@media (prefers-color-scheme:dark){.fl-wrapper.fl-auto-dark .fl-container{box-shadow:var(--fl-shadow-dark,0 4px 12px rgba(0,0,0,.35))}}.fl-wrapper .fl-container.fl-dismissing{opacity:0;transition:all .3s ease-out}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-right],.fl-wrapper .fl-container.fl-dismissing[data-position=top-right]{transform:translateX(110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-left],.fl-wrapper .fl-container.fl-dismissing[data-position=top-left]{transform:translateX(-110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=top-center]{transform:translateY(-150%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-center]{transform:scale(.5);transition:opacity .4s ease-out,transform .4s ease-out}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-center]{transform:translateY(150%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-left]{transform:translateX(-110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-right]{transform:translateX(110%)}@media (prefers-reduced-motion:reduce){.fl-wrapper,.fl-wrapper .fl-container{transition:none!important}}.fl-container{color:var(--text-color,var(--fl-text-light));opacity:0;transform:translateY(-20px);transition:all .4s cubic-bezier(.23,1,.32,1);will-change:opacity,transform}.fl-container.fl-show{opacity:1;transform:translate(0)!important}.fl-container.fl-rtl{direction:rtl;text-align:right}.fl-progress-bar{bottom:0;display:flex;height:.125em;left:0;overflow:hidden;position:absolute;right:0}.fl-success .fl-progress-bar{background-color:var(--success-color-light,var(--fl-success-light))}.fl-success .fl-progress-bar .fl-progress{background-color:var(--success-color,var(--fl-success));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-info .fl-progress-bar{background-color:var(--info-color-light,var(--fl-info-light))}.fl-info .fl-progress-bar .fl-progress{background-color:var(--info-color,var(--fl-info));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-warning .fl-progress-bar{background-color:var(--warning-color-light,var(--fl-warning-light))}.fl-warning .fl-progress-bar .fl-progress{background-color:var(--warning-color,var(--fl-warning));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-error .fl-progress-bar{background-color:var(--error-color-light,var(--fl-error-light))}.fl-error .fl-progress-bar .fl-progress{background-color:var(--error-color,var(--fl-error));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-rtl .fl-progress .fl-progress{transform-origin:right center}.fl-icon{border-radius:50%;box-sizing:border-box;color:#fff;display:inline-block;height:1em;margin:0;min-height:1em;min-width:1em;position:relative;transition:transform .2s ease;width:1em}.fl-icon:after,.fl-icon:before{border-width:0;box-sizing:border-box;content:"";position:absolute;transition:inherit}.fl-success .fl-icon:after,.fl-success .fl-icon:before{background-color:currentcolor;border-radius:.1em;height:.6em;left:.35em;top:.6em;transform:rotate(-135deg);transform-origin:.08em .08em;width:.16em}.fl-success .fl-icon:after{height:.16em;width:.4em}.fl-info .fl-icon:after,.fl-info .fl-icon:before{background-color:currentcolor;border-radius:.03em;left:50%;transform:translateX(-50%);width:.15em}.fl-info .fl-icon:before{height:.38em;top:.4em}.fl-info .fl-icon:after{box-shadow:-.06em .19em,-.06em .44em,.06em .44em;height:.13em;top:.21em}.fl-warning .fl-icon:after,.fl-warning .fl-icon:before{background-color:currentcolor;border-radius:.03em;left:50%;transform:translateX(-50%);width:.15em}.fl-warning .fl-icon:before{height:.38em;top:.21em}.fl-warning .fl-icon:after{height:.13em;top:.65em}.fl-error .fl-icon:after,.fl-error .fl-icon:before{background-color:currentcolor;border-radius:.1em;height:.7em;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-135deg);width:.16em}.fl-error .fl-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}.fl-success .fl-icon{background-color:var(--success-color,var(--fl-success))}.fl-info .fl-icon{background-color:var(--info-color,var(--fl-info))}.fl-warning .fl-icon{background-color:var(--warning-color,var(--fl-warning))}.fl-error .fl-icon{background-color:var(--error-color,var(--fl-error))} .fl-amazon{--amazon-bg-light:#fff;--amazon-bg-dark:#202124;--amazon-text-light:#0f1111;--amazon-text-secondary-light:#565959;--amazon-text-dark:#fff;--amazon-text-secondary-dark:#b6b6b6;--amazon-border-light:#ddd;--amazon-border-dark:#3f3f3f;--amazon-yellow:#ffd814;--amazon-orange:#f90;--amazon-success-bg:#f0fff5;--amazon-success-border:#7fda95;--amazon-success-icon:#007600;--amazon-info-bg:#f3f9ff;--amazon-info-border:#7fb4da;--amazon-info-icon:#0066c0;--amazon-warning-bg:#fffcf3;--amazon-warning-border:#ffd996;--amazon-warning-icon:#c45500;--amazon-error-bg:#fff5f5;--amazon-error-border:#ff8f8f;--amazon-error-icon:#c40000;--amazon-success-bg-dark:#082d11;--amazon-success-border-dark:#1e6e2c;--amazon-success-icon-dark:#7fda95;--amazon-info-bg-dark:#0a1c2e;--amazon-info-border-dark:#1a5183;--amazon-info-icon-dark:#7fb4da;--amazon-warning-bg-dark:#342a0a;--amazon-warning-border-dark:#705711;--amazon-warning-icon-dark:#ffd996;--amazon-error-bg-dark:#2b0c0c;--amazon-error-border-dark:#721c1c;--amazon-error-icon-dark:#ff8f8f;--amazon-animation-duration:0.2s}@keyframes amazonSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fl-amazon{animation:amazonSlideDown var(--amazon-animation-duration) ease-out;font-family:Arial,sans-serif;margin:10px 0;max-width:500px;position:relative;width:100%}.fl-amazon .fl-amazon-alert{background-color:var(--amazon-bg-light);border:1px solid;border-left:4px solid;border-radius:8px;box-shadow:0 2px 5px rgba(15,17,17,.15);color:var(--amazon-text-light);display:flex;padding:14px}.fl-amazon .fl-alert-content{align-items:flex-start;display:flex;flex:1}.fl-amazon .fl-icon-container{color:currentColor;flex-shrink:0;margin-right:12px}.fl-amazon .fl-text-content{flex:1;min-width:0}.fl-amazon .fl-alert-title{font-size:16px;font-weight:700;margin-bottom:4px}.fl-amazon .fl-alert-message{color:var(--amazon-text-secondary-light);font-size:14px;line-height:20px}.fl-amazon .fl-alert-actions{margin-left:16px}.fl-amazon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--amazon-text-secondary-light);cursor:pointer;display:flex;height:30px;justify-content:center;padding:0;transition:all .2s;width:30px}.fl-amazon .fl-close:hover{background-color:rgba(0,0,0,.05);color:var(--amazon-text-light)}.fl-amazon.fl-success .fl-amazon-alert{background-color:var(--amazon-success-bg);border-color:var(--amazon-success-border)}.fl-amazon.fl-success .fl-icon-container{color:var(--amazon-success-icon)}.fl-amazon.fl-info .fl-amazon-alert{background-color:var(--amazon-info-bg);border-color:var(--amazon-info-border)}.fl-amazon.fl-info .fl-icon-container{color:var(--amazon-info-icon)}.fl-amazon.fl-warning .fl-amazon-alert{background-color:var(--amazon-warning-bg);border-color:var(--amazon-warning-border)}.fl-amazon.fl-warning .fl-icon-container{color:var(--amazon-warning-icon)}.fl-amazon.fl-error .fl-amazon-alert{background-color:var(--amazon-error-bg);border-color:var(--amazon-error-border)}.fl-amazon.fl-error .fl-icon-container{color:var(--amazon-error-icon)}.fl-amazon.fl-rtl{direction:rtl}.fl-amazon.fl-rtl .fl-icon-container{margin-left:12px;margin-right:0}.fl-amazon.fl-rtl .fl-alert-actions{margin-left:0;margin-right:16px}.fl-amazon.fl-rtl .fl-amazon-alert{border-left-width:1px;border-right-width:4px}@media (prefers-reduced-motion:reduce){.fl-amazon{animation:none}}.fl-amazon.fl-auto-dark .fl-amazon-alert,body.fl-dark .fl-amazon .fl-amazon-alert,html.fl-dark .fl-amazon .fl-amazon-alert{background-color:var(--amazon-bg-dark);border-color:var(--amazon-border-dark);box-shadow:0 2px 5px rgba(0,0,0,.3);color:var(--amazon-text-dark)}.fl-amazon.fl-auto-dark .fl-alert-message,.fl-amazon.fl-auto-dark .fl-close,body.fl-dark .fl-amazon .fl-alert-message,body.fl-dark .fl-amazon .fl-close,html.fl-dark .fl-amazon .fl-alert-message,html.fl-dark .fl-amazon .fl-close{color:var(--amazon-text-secondary-dark)}.fl-amazon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-amazon .fl-close:hover,html.fl-dark .fl-amazon .fl-close:hover{background-color:hsla(0,0%,100%,.1);color:var(--amazon-text-dark)}.fl-amazon.fl-auto-dark.fl-success .fl-amazon-alert,body.fl-dark .fl-amazon.fl-success .fl-amazon-alert,html.fl-dark .fl-amazon.fl-success .fl-amazon-alert{background-color:var(--amazon-success-bg-dark);border-color:var(--amazon-success-border-dark)}.fl-amazon.fl-auto-dark.fl-success .fl-icon-container,body.fl-dark .fl-amazon.fl-success .fl-icon-container,html.fl-dark .fl-amazon.fl-success .fl-icon-container{color:var(--amazon-success-icon-dark)}.fl-amazon.fl-auto-dark.fl-info .fl-amazon-alert,body.fl-dark .fl-amazon.fl-info .fl-amazon-alert,html.fl-dark .fl-amazon.fl-info .fl-amazon-alert{background-color:var(--amazon-info-bg-dark);border-color:var(--amazon-info-border-dark)}.fl-amazon.fl-auto-dark.fl-info .fl-icon-container,body.fl-dark .fl-amazon.fl-info .fl-icon-container,html.fl-dark .fl-amazon.fl-info .fl-icon-container{color:var(--amazon-info-icon-dark)}.fl-amazon.fl-auto-dark.fl-warning .fl-amazon-alert,body.fl-dark .fl-amazon.fl-warning .fl-amazon-alert,html.fl-dark .fl-amazon.fl-warning .fl-amazon-alert{background-color:var(--amazon-warning-bg-dark);border-color:var(--amazon-warning-border-dark)}.fl-amazon.fl-auto-dark.fl-warning .fl-icon-container,body.fl-dark .fl-amazon.fl-warning .fl-icon-container,html.fl-dark .fl-amazon.fl-warning .fl-icon-container{color:var(--amazon-warning-icon-dark)}.fl-amazon.fl-auto-dark.fl-error .fl-amazon-alert,body.fl-dark .fl-amazon.fl-error .fl-amazon-alert,html.fl-dark .fl-amazon.fl-error .fl-amazon-alert{background-color:var(--amazon-error-bg-dark);border-color:var(--amazon-error-border-dark)}.fl-amazon.fl-auto-dark.fl-error .fl-icon-container,body.fl-dark .fl-amazon.fl-error .fl-icon-container,html.fl-dark .fl-amazon.fl-error .fl-icon-container{color:var(--amazon-error-icon-dark)} -.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber:last-child{margin-bottom:0}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)} +.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)} .fl-aurora{--aurora-bg-light:hsla(0,0%,100%,.95);--aurora-bg-dark:rgba(20,20,28,.92);--aurora-text-light:#1e293b;--aurora-text-dark:#f8fafc;--aurora-shadow:0 8px 25px rgba(0,0,0,.08);--aurora-shadow-dark:0 10px 30px rgba(0,0,0,.16);--aurora-border-radius:16px;--aurora-blur:15px;--aurora-success-gradient:linear-gradient(135deg,rgba(16,185,129,.08),rgba(16,185,129,.2));--aurora-info-gradient:linear-gradient(135deg,rgba(59,130,246,.08),rgba(59,130,246,.2));--aurora-warning-gradient:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.2));--aurora-error-gradient:linear-gradient(135deg,rgba(239,68,68,.08),rgba(239,68,68,.2));--aurora-success:#10b981;--aurora-info:#3b82f6;--aurora-warning:#f59e0b;--aurora-error:#ef4444}@keyframes auroraFadeIn{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-aurora{animation:auroraFadeIn .35s cubic-bezier(.21,1.02,.73,1);backdrop-filter:blur(var(--aurora-blur));-webkit-backdrop-filter:blur(var(--aurora-blur));background-color:var(--aurora-bg-light);border-radius:var(--aurora-border-radius);box-shadow:var(--aurora-shadow);color:var(--aurora-text-light);font-family:var(--fl-font),sans-serif;margin:10px 0;overflow:hidden;padding:16px 18px;position:relative;will-change:transform,opacity}.fl-aurora:before{border-radius:inherit;content:"";inset:0;opacity:.8;position:absolute;z-index:0}.fl-aurora .fl-content{align-items:center;display:flex;position:relative;z-index:1}.fl-aurora .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5;margin-right:10px}.fl-aurora .fl-close{align-items:center;background:rgba(0,0,0,.05);border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:28px;justify-content:center;opacity:.7;transition:all .2s ease;width:28px}.fl-aurora .fl-close:focus,.fl-aurora .fl-close:hover{background:rgba(0,0,0,.1);opacity:1}.fl-aurora .fl-progress-bar{border-radius:6px;bottom:2px;height:3px;left:2px;opacity:.7;overflow:hidden;position:absolute;right:2px;z-index:1}.fl-aurora .fl-progress{height:100%;width:100%}.fl-aurora.fl-success:before{background:var(--aurora-success-gradient)}.fl-aurora.fl-success .fl-progress{background-color:var(--aurora-success)}.fl-aurora.fl-info:before{background:var(--aurora-info-gradient)}.fl-aurora.fl-info .fl-progress{background-color:var(--aurora-info)}.fl-aurora.fl-warning:before{background:var(--aurora-warning-gradient)}.fl-aurora.fl-warning .fl-progress{background-color:var(--aurora-warning)}.fl-aurora.fl-error:before{background:var(--aurora-error-gradient)}.fl-aurora.fl-error .fl-progress{background-color:var(--aurora-error)}.fl-aurora.fl-rtl{direction:rtl}.fl-aurora.fl-rtl .fl-message{margin-left:10px;margin-right:0}.fl-aurora.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-aurora{animation:none}}.fl-aurora.fl-auto-dark,body.fl-dark .fl-aurora,html.fl-dark .fl-aurora{background-color:var(--aurora-bg-dark);box-shadow:var(--aurora-shadow-dark);color:var(--aurora-text-dark)}.fl-aurora.fl-auto-dark .fl-close,body.fl-dark .fl-aurora .fl-close,html.fl-dark .fl-aurora .fl-close{background:hsla(0,0%,100%,.1)}.fl-aurora.fl-auto-dark .fl-close:focus,.fl-aurora.fl-auto-dark .fl-close:hover,body.fl-dark .fl-aurora .fl-close:focus,body.fl-dark .fl-aurora .fl-close:hover,html.fl-dark .fl-aurora .fl-close:focus,html.fl-dark .fl-aurora .fl-close:hover{background:hsla(0,0%,100%,.15)}.fl-aurora.fl-auto-dark.fl-success:before,body.fl-dark .fl-aurora.fl-success:before,html.fl-dark .fl-aurora.fl-success:before{background:linear-gradient(135deg,rgba(16,185,129,.1),rgba(16,185,129,.25))}.fl-aurora.fl-auto-dark.fl-info:before,body.fl-dark .fl-aurora.fl-info:before,html.fl-dark .fl-aurora.fl-info:before{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.25))}.fl-aurora.fl-auto-dark.fl-warning:before,body.fl-dark .fl-aurora.fl-warning:before,html.fl-dark .fl-aurora.fl-warning:before{background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(245,158,11,.25))}.fl-aurora.fl-auto-dark.fl-error:before,body.fl-dark .fl-aurora.fl-error:before,html.fl-dark .fl-aurora.fl-error:before{background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.25))} -.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal:last-child{margin-bottom:0}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)} +.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)} .fl-emerald{--emerald-bg-light:hsla(0,0%,100%,.9);--emerald-bg-dark:rgba(30,30,30,.9);--emerald-text-light:#333;--emerald-text-dark:hsla(0,0%,100%,.9);--emerald-shadow:rgba(0,0,0,.1);--emerald-blur:8px;--emerald-success:var(--success-color,#16a085);--emerald-error:var(--error-color,#e74c3c);--emerald-warning:var(--warning-color,#f39c12);--emerald-info:var(--info-color,#3498db)}@keyframes emeraldIn{0%{opacity:0;transform:scale(.5) translateY(20px)}60%{opacity:1;transform:scale(1.1) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.fl-emerald{animation:emeraldIn .5s cubic-bezier(.23,1,.32,1);backdrop-filter:blur(var(--emerald-blur));-webkit-backdrop-filter:blur(var(--emerald-blur));background:var(--emerald-bg-light);border-radius:10px;box-shadow:0 10px 20px var(--emerald-shadow);color:var(--emerald-text-light);font-family:"Inter",var(--fl-font),serif;margin:0 0 .5rem;overflow:hidden;padding:1rem 1.5rem 1rem 1rem;position:relative}.fl-emerald .fl-content{align-items:center;display:flex}.fl-emerald .fl-message{flex:1;font-size:.9rem;font-weight:500;line-height:1.4}.fl-emerald .fl-close{background:transparent;border:none;color:currentColor;cursor:pointer;font-size:1.3rem;margin-left:auto;opacity:.7;transition:opacity .2s ease}.fl-emerald .fl-close:focus,.fl-emerald .fl-close:hover{opacity:1}.fl-emerald.fl-success{color:var(--emerald-success)}.fl-emerald.fl-error{color:var(--emerald-error)}.fl-emerald.fl-warning{color:var(--emerald-warning)}.fl-emerald.fl-info{color:var(--emerald-info)}.fl-emerald.fl-rtl{direction:rtl;padding:1rem 1rem 1rem 1.5rem}.fl-emerald.fl-rtl .fl-content{flex-direction:row-reverse}.fl-emerald.fl-rtl .fl-close{margin-left:0;margin-right:auto}@media (prefers-reduced-motion:reduce){.fl-emerald{animation:none}}.fl-emerald.fl-auto-dark,body.fl-dark .fl-emerald,html.fl-dark .fl-emerald{background:var(--emerald-bg-dark)}.fl-emerald.fl-auto-dark .fl-message,body.fl-dark .fl-emerald .fl-message,html.fl-dark .fl-emerald .fl-message{color:var(--emerald-text-dark)} .fl-facebook{--fb-bg-light:#fff;--fb-bg-dark:#242526;--fb-text-light:#050505;--fb-text-secondary-light:#65676b;--fb-text-dark:#e4e6eb;--fb-text-secondary-dark:#b0b3b8;--fb-hover-light:#f0f2f5;--fb-hover-dark:#3a3b3c;--fb-border-light:#e4e6eb;--fb-border-dark:#3e4042;--fb-blue:#1876f2;--fb-name-color:#050505;--fb-name-color-dark:#e4e6eb;--fb-success:#31a24c;--fb-info:#1876f2;--fb-warning:#f7b928;--fb-error:#e41e3f;--fb-success-bg:#e7f3ff;--fb-info-bg:#e7f3ff;--fb-warning-bg:#fff5cc;--fb-error-bg:#ffebe9;--fb-success-bg-dark:#263c4b;--fb-info-bg-dark:#263c4b;--fb-warning-bg-dark:#3e3c26;--fb-error-bg-dark:#472835;--fb-animation-duration:0.2s}@keyframes fbFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-facebook{animation:fbFadeIn var(--fb-animation-duration) ease-out;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:8px 0;max-width:450px;position:relative;width:100%}.fl-facebook .fl-fb-notification{align-items:flex-start;background-color:var(--fb-bg-light);border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:var(--fb-text-light);display:flex;padding:12px;transition:background-color .1s ease}.fl-facebook .fl-fb-notification:hover{background-color:var(--fb-hover-light)}.fl-facebook .fl-icon-container{flex-shrink:0;margin-right:12px}.fl-facebook .fl-fb-icon{align-items:center;border-radius:50%;display:flex;height:36px;justify-content:center;width:36px}.fl-facebook .fl-fb-icon svg{color:#fff}.fl-facebook .fl-fb-icon-success{background-color:var(--fb-success)}.fl-facebook .fl-fb-icon-info{background-color:var(--fb-info)}.fl-facebook .fl-fb-icon-warning{background-color:var(--fb-warning)}.fl-facebook .fl-fb-icon-error{background-color:var(--fb-error)}.fl-facebook .fl-content{flex:1;min-width:0}.fl-facebook .fl-message{font-size:15px;line-height:1.33;margin-bottom:4px}.fl-facebook .fl-user-name{color:var(--fb-name-color);font-weight:600;margin-right:4px}.fl-facebook .fl-meta{align-items:center;display:flex}.fl-facebook .fl-time{color:var(--fb-text-secondary-light);font-size:13px}.fl-facebook .fl-actions{align-items:center;display:flex;margin-left:12px}.fl-facebook .fl-button{align-items:center;background:var(--fb-hover-light);border:none;border-radius:50%;color:var(--fb-text-secondary-light);cursor:pointer;display:flex;height:32px;justify-content:center;margin-left:8px;transition:background-color .1s;width:32px}.fl-facebook .fl-button:hover{background-color:var(--fb-border-light)}.fl-facebook .fl-button-icon{align-items:center;display:flex;justify-content:center}.fl-facebook.fl-rtl{direction:rtl}.fl-facebook.fl-rtl .fl-icon-container{margin-left:12px;margin-right:0}.fl-facebook.fl-rtl .fl-user-name{margin-left:4px;margin-right:0}.fl-facebook.fl-rtl .fl-actions{margin-left:0;margin-right:12px}.fl-facebook.fl-rtl .fl-button{margin-left:0;margin-right:8px}@media (prefers-reduced-motion:reduce){.fl-facebook{animation:none}}.fl-facebook.fl-auto-dark .fl-fb-notification,body.fl-dark .fl-facebook .fl-fb-notification,html.fl-dark .fl-facebook .fl-fb-notification{background-color:var(--fb-bg-dark);box-shadow:0 1px 2px rgba(0,0,0,.2);color:var(--fb-text-dark)}.fl-facebook.fl-auto-dark .fl-fb-notification:hover,body.fl-dark .fl-facebook .fl-fb-notification:hover,html.fl-dark .fl-facebook .fl-fb-notification:hover{background-color:var(--fb-hover-dark)}.fl-facebook.fl-auto-dark .fl-user-name,body.fl-dark .fl-facebook .fl-user-name,html.fl-dark .fl-facebook .fl-user-name{color:var(--fb-name-color-dark)}.fl-facebook.fl-auto-dark .fl-time,body.fl-dark .fl-facebook .fl-time,html.fl-dark .fl-facebook .fl-time{color:var(--fb-text-secondary-dark)}.fl-facebook.fl-auto-dark .fl-button,body.fl-dark .fl-facebook .fl-button,html.fl-dark .fl-facebook .fl-button{background:var(--fb-hover-dark);color:var(--fb-text-secondary-dark)}.fl-facebook.fl-auto-dark .fl-button:hover,body.fl-dark .fl-facebook .fl-button:hover,html.fl-dark .fl-facebook .fl-button:hover{background-color:var(--fb-border-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-success,body.fl-dark .fl-facebook .fl-fb-icon-success,html.fl-dark .fl-facebook .fl-fb-icon-success{background-color:var(--fb-success-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-success svg,body.fl-dark .fl-facebook .fl-fb-icon-success svg,html.fl-dark .fl-facebook .fl-fb-icon-success svg{color:var(--fb-success)}.fl-facebook.fl-auto-dark .fl-fb-icon-info,body.fl-dark .fl-facebook .fl-fb-icon-info,html.fl-dark .fl-facebook .fl-fb-icon-info{background-color:var(--fb-info-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-info svg,body.fl-dark .fl-facebook .fl-fb-icon-info svg,html.fl-dark .fl-facebook .fl-fb-icon-info svg{color:var(--fb-info)}.fl-facebook.fl-auto-dark .fl-fb-icon-warning,body.fl-dark .fl-facebook .fl-fb-icon-warning,html.fl-dark .fl-facebook .fl-fb-icon-warning{background-color:var(--fb-warning-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-warning svg,body.fl-dark .fl-facebook .fl-fb-icon-warning svg,html.fl-dark .fl-facebook .fl-fb-icon-warning svg{color:var(--fb-warning)}.fl-facebook.fl-auto-dark .fl-fb-icon-error,body.fl-dark .fl-facebook .fl-fb-icon-error,html.fl-dark .fl-facebook .fl-fb-icon-error{background-color:var(--fb-error-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-error svg,body.fl-dark .fl-facebook .fl-fb-icon-error svg,html.fl-dark .fl-facebook .fl-fb-icon-error svg{color:var(--fb-error)} @keyframes flasherIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.fl-flasher{animation:flasherIn .3s ease-out;background-color:var(--background-color,var(--fl-bg-light));border-bottom:none;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);color:var(--text-color,var(--fl-text-light));font-family:var(--fl-font),serif;line-height:1.5;margin:.75em 0;padding:.75em;position:relative;transition:transform .2s ease;will-change:transform,opacity;word-break:break-word}.fl-flasher:hover{transform:translateY(-2px)}.fl-flasher.fl-rtl{border-radius:0 .375em .375em 0}.fl-flasher:not(.fl-rtl){border-radius:.375em 0 0 .375em}.fl-flasher .fl-content{align-items:center;display:flex}.fl-flasher .fl-icon{font-size:2.5em}.fl-flasher .fl-message,.fl-flasher .fl-title{display:block;line-height:1.25em;margin-left:1em;margin-right:1em}.fl-flasher .fl-title{font-size:1em;font-weight:600}.fl-flasher .fl-message{font-size:.875em;margin-top:.25em}.fl-flasher .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:opacity .2s ease}.fl-flasher .fl-close:focus,.fl-flasher .fl-close:hover{opacity:1}.fl-flasher.fl-rtl{direction:rtl}.fl-flasher.fl-rtl .fl-content{flex-direction:row-reverse}.fl-flasher.fl-rtl .fl-close{left:.75rem;right:auto}.fl-flasher.fl-success{border-left:.8em solid var(--success-color,var(--fl-success))}.fl-flasher.fl-success.fl-rtl{border-left:none;border-right:.8em solid var(--success-color,var(--fl-success))}.fl-flasher.fl-success:not(.fl-rtl){border-left:.8em solid var(--success-color,var(--fl-success));border-right:none}.fl-flasher.fl-success .fl-close,.fl-flasher.fl-success .fl-title{color:var(--success-color,var(--fl-success))}.fl-flasher.fl-success .fl-close:focus,.fl-flasher.fl-success .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-info{border-left:.8em solid var(--info-color,var(--fl-info))}.fl-flasher.fl-info.fl-rtl{border-left:none;border-right:.8em solid var(--info-color,var(--fl-info))}.fl-flasher.fl-info:not(.fl-rtl){border-left:.8em solid var(--info-color,var(--fl-info));border-right:none}.fl-flasher.fl-info .fl-close,.fl-flasher.fl-info .fl-title{color:var(--info-color,var(--fl-info))}.fl-flasher.fl-info .fl-close:focus,.fl-flasher.fl-info .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-warning{border-left:.8em solid var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning.fl-rtl{border-left:none;border-right:.8em solid var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning:not(.fl-rtl){border-left:.8em solid var(--warning-color,var(--fl-warning));border-right:none}.fl-flasher.fl-warning .fl-close,.fl-flasher.fl-warning .fl-title{color:var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning .fl-close:focus,.fl-flasher.fl-warning .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-error{border-left:.8em solid var(--error-color,var(--fl-error))}.fl-flasher.fl-error.fl-rtl{border-left:none;border-right:.8em solid var(--error-color,var(--fl-error))}.fl-flasher.fl-error:not(.fl-rtl){border-left:.8em solid var(--error-color,var(--fl-error));border-right:none}.fl-flasher.fl-error .fl-close,.fl-flasher.fl-error .fl-title{color:var(--error-color,var(--fl-error))}.fl-flasher.fl-error .fl-close:focus,.fl-flasher.fl-error .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher .fl-progress-bar{bottom:0;display:flex;height:.125em;left:0;overflow:hidden;position:absolute;right:0}.fl-flasher.fl-success .fl-progress-bar{background-color:var(--success-color-light,var(--fl-success-light))}.fl-flasher.fl-success .fl-progress-bar .fl-progress{background-color:var(--success-color,var(--fl-success));height:100%;width:100%}.fl-flasher.fl-info .fl-progress-bar{background-color:var(--info-color-light,var(--fl-info-light))}.fl-flasher.fl-info .fl-progress-bar .fl-progress{background-color:var(--info-color,var(--fl-info));height:100%;width:100%}.fl-flasher.fl-warning .fl-progress-bar{background-color:var(--warning-color-light,var(--fl-warning-light))}.fl-flasher.fl-warning .fl-progress-bar .fl-progress{background-color:var(--warning-color,var(--fl-warning));height:100%;width:100%}.fl-flasher.fl-error .fl-progress-bar{background-color:var(--error-color-light,var(--fl-error-light))}.fl-flasher.fl-error .fl-progress-bar .fl-progress{background-color:var(--error-color,var(--fl-error));height:100%;width:100%}@media (prefers-color-scheme:dark){.fl-flasher.fl-auto-dark{background-color:var(--dark-background-color,var(--fl-bg-dark));color:var(--dark-text-color,var(--fl-text-dark))}}body.fl-dark .fl-flasher,html.fl-dark .fl-flasher{background-color:var(--dark-background-color,var(--fl-bg-dark));color:var(--dark-text-color,var(--fl-text-dark))}@media (prefers-reduced-motion:reduce){.fl-flasher{animation:none}.fl-flasher:hover{transform:none}.fl-flasher .fl-close:focus,.fl-flasher .fl-close:hover{transform:translateY(-50%)}} .fl-google{--md-bg-light:#fff;--md-bg-dark:#2d2d2d;--md-text-light:rgba(0,0,0,.87);--md-text-secondary-light:rgba(0,0,0,.6);--md-text-dark:hsla(0,0%,100%,.87);--md-text-secondary-dark:hsla(0,0%,100%,.6);--md-elevation:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);--md-elevation-dark:0 3px 5px -1px rgba(0,0,0,.4),0 6px 10px 0 rgba(0,0,0,.28),0 1px 18px 0 rgba(0,0,0,.24);--md-border-radius:4px;--md-success:#43a047;--md-info:#1e88e5;--md-warning:#fb8c00;--md-error:#e53935;--md-animation-duration:0.3s;--md-ripple-duration:0.6s}@keyframes mdSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes mdRipple{to{opacity:0;transform:scale(4)}}.fl-google{animation:mdSlideUp var(--md-animation-duration) cubic-bezier(.4,0,.2,1);font-family:Roboto,Segoe UI,Helvetica,Arial,sans-serif;margin:8px 0;max-width:400px;position:relative;width:100%}.fl-google .fl-md-card{background-color:var(--md-bg-light);border-radius:var(--md-border-radius);box-shadow:var(--md-elevation);color:var(--md-text-light);overflow:hidden}.fl-google .fl-content{align-items:flex-start;display:flex;padding:16px}.fl-google .fl-icon-wrapper{color:var(--md-text-secondary-light);flex-shrink:0;margin-right:16px}.fl-google .fl-text-content{flex:1}.fl-google .fl-title{font-size:1rem;font-weight:500;margin-bottom:4px}.fl-google .fl-message{color:var(--md-text-secondary-light);font-size:.875rem;line-height:1.43}.fl-google .fl-actions{display:flex;justify-content:flex-end;padding:8px}.fl-google .fl-action-button{background:transparent;border:none;border-radius:4px;color:currentColor;cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:500;letter-spacing:.0892857143em;overflow:hidden;padding:8px 12px;position:relative;text-transform:uppercase;transition:background-color .2s}.fl-google .fl-action-button:focus,.fl-google .fl-action-button:hover{background-color:rgba(0,0,0,.04)}.fl-google .fl-action-button:after{background:currentColor;border-radius:50%;content:"";height:5px;opacity:0;pointer-events:none;position:absolute;transform:scale(1);width:5px}.fl-google .fl-action-button:active:after{animation:mdRipple var(--md-ripple-duration) linear;opacity:.3}.fl-google.fl-success .fl-action-button,.fl-google.fl-success .fl-icon-wrapper{color:var(--md-success)}.fl-google.fl-info .fl-action-button,.fl-google.fl-info .fl-icon-wrapper{color:var(--md-info)}.fl-google.fl-warning .fl-action-button,.fl-google.fl-warning .fl-icon-wrapper{color:var(--md-warning)}.fl-google.fl-error .fl-action-button,.fl-google.fl-error .fl-icon-wrapper{color:var(--md-error)}.fl-google .fl-progress-bar{bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-google .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-google.fl-success .fl-progress{background-color:var(--md-success)}.fl-google.fl-info .fl-progress{background-color:var(--md-info)}.fl-google.fl-warning .fl-progress{background-color:var(--md-warning)}.fl-google.fl-error .fl-progress{background-color:var(--md-error)}.fl-google.fl-rtl{direction:rtl}.fl-google.fl-rtl .fl-content{flex-direction:row-reverse}.fl-google.fl-rtl .fl-icon-wrapper{margin-left:16px;margin-right:0}.fl-google.fl-rtl .fl-actions{justify-content:flex-start}.fl-google.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-google,.fl-google .fl-action-button:active:after{animation:none}}.fl-google.fl-auto-dark .fl-md-card,body.fl-dark .fl-google .fl-md-card,html.fl-dark .fl-google .fl-md-card{background-color:var(--md-bg-dark);box-shadow:var(--md-elevation-dark);color:var(--md-text-dark)}.fl-google.fl-auto-dark .fl-message,body.fl-dark .fl-google .fl-message,html.fl-dark .fl-google .fl-message{color:var(--md-text-secondary-dark)}.fl-google.fl-auto-dark .fl-action-button:focus,.fl-google.fl-auto-dark .fl-action-button:hover,body.fl-dark .fl-google .fl-action-button:focus,body.fl-dark .fl-google .fl-action-button:hover,html.fl-dark .fl-google .fl-action-button:focus,html.fl-dark .fl-google .fl-action-button:hover{background-color:hsla(0,0%,100%,.08)} .fl-ios{--ios-bg-light:hsla(0,0%,100%,.85);--ios-bg-dark:rgba(30,30,30,.85);--ios-text-light:#000;--ios-text-secondary-light:#6e6e6e;--ios-text-dark:#fff;--ios-text-secondary-dark:#a8a8a8;--ios-border-radius:13px;--ios-shadow:0 2px 12px rgba(0,0,0,.15);--ios-shadow-dark:0 2px 12px rgba(0,0,0,.35);--ios-icon-size:18px;--ios-blur:30px;--ios-success:#34c759;--ios-info:#007aff;--ios-warning:#ff9500;--ios-error:#ff3b30;--ios-animation-duration:0.4s}@keyframes iosSlideIn{0%{opacity:0;transform:translateY(-15px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes iosExpand{0%{max-height:0;opacity:0}to{max-height:100px;opacity:1}}.fl-ios{animation:iosSlideIn var(--ios-animation-duration) cubic-bezier(.23,1,.32,1);font-family:-apple-system,BlinkMacSystemFont,San Francisco,Helvetica Neue,Helvetica,Arial,sans-serif;margin:10px 0;max-width:400px;position:relative;width:100%;will-change:transform,opacity}.fl-ios .fl-ios-notification{backdrop-filter:blur(var(--ios-blur));-webkit-backdrop-filter:blur(var(--ios-blur));background-color:var(--ios-bg-light);border-radius:var(--ios-border-radius);box-shadow:var(--ios-shadow);color:var(--ios-text-light);padding:12px 15px;position:relative}.fl-ios .fl-header{align-items:center;display:flex;margin-bottom:8px;padding-right:20px}.fl-ios .fl-app-icon{align-items:center;background-color:currentColor;border-radius:5px;display:flex;flex-shrink:0;height:22px;justify-content:center;margin-right:8px;width:22px}.fl-ios .fl-icon-svg{color:#fff;height:14px;width:14px}.fl-ios .fl-app-info{align-items:baseline;display:flex;flex:1;justify-content:space-between}.fl-ios .fl-app-name{font-size:.85rem;font-weight:600}.fl-ios .fl-time{color:var(--ios-text-secondary-light);flex-shrink:0;font-size:.75rem;margin-left:5px}.fl-ios .fl-content{animation:iosExpand .3s forwards;animation-delay:.1s;overflow:hidden}.fl-ios .fl-message{font-size:.95rem;line-height:1.3;margin:0;padding-right:15px}.fl-ios .fl-close{align-items:center;background-color:rgba(0,0,0,.1);border:none;border-radius:50%;color:var(--ios-text-light);cursor:pointer;display:flex;font-size:14px;height:18px;justify-content:center;line-height:1;opacity:.7;padding:0;position:absolute;right:12px;top:10px;transition:opacity .2s;width:18px}.fl-ios .fl-close:focus,.fl-ios .fl-close:hover{opacity:1}.fl-ios.fl-success .fl-app-icon{color:var(--ios-success)}.fl-ios.fl-info .fl-app-icon{color:var(--ios-info)}.fl-ios.fl-warning .fl-app-icon{color:var(--ios-warning)}.fl-ios.fl-error .fl-app-icon{color:var(--ios-error)}.fl-ios.fl-rtl{direction:rtl}.fl-ios.fl-rtl .fl-header{padding-left:20px;padding-right:0}.fl-ios.fl-rtl .fl-app-icon{margin-left:8px;margin-right:0}.fl-ios.fl-rtl .fl-time{margin-left:0;margin-right:5px}.fl-ios.fl-rtl .fl-message{padding-left:15px;padding-right:0}.fl-ios.fl-rtl .fl-close{left:12px;right:auto}@media (prefers-reduced-motion:reduce){.fl-ios{animation:none}.fl-ios .fl-content{animation:none;max-height:none;opacity:1}}@media screen and (max-width:480px){.fl-ios{width:100%}}.fl-ios.fl-auto-dark .fl-ios-notification,body.fl-dark .fl-ios .fl-ios-notification,html.fl-dark .fl-ios .fl-ios-notification{background-color:var(--ios-bg-dark);box-shadow:var(--ios-shadow-dark);color:var(--ios-text-dark)}.fl-ios.fl-auto-dark .fl-time,body.fl-dark .fl-ios .fl-time,html.fl-dark .fl-ios .fl-time{color:var(--ios-text-secondary-dark)}.fl-ios.fl-auto-dark .fl-close,body.fl-dark .fl-ios .fl-close,html.fl-dark .fl-ios .fl-close{background-color:hsla(0,0%,100%,.2);color:var(--ios-text-dark)} -.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade:last-child{margin-bottom:0}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)} +.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)} .fl-material{--md-bg-light:#fff;--md-bg-dark:#2d2d2d;--md-text-light:rgba(0,0,0,.87);--md-text-secondary-light:rgba(0,0,0,.6);--md-text-dark:hsla(0,0%,100%,.87);--md-text-secondary-dark:hsla(0,0%,100%,.6);--md-elevation:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);--md-elevation-dark:0 3px 5px -1px rgba(0,0,0,.4),0 6px 10px 0 rgba(0,0,0,.28),0 1px 18px 0 rgba(0,0,0,.24);--md-border-radius:4px;--md-success:#43a047;--md-info:#1e88e5;--md-warning:#fb8c00;--md-error:#e53935;--md-animation-duration:0.3s;--md-ripple-duration:0.6s}@keyframes mdSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes mdRipple{to{opacity:0;transform:scale(4)}}.fl-material{animation:mdSlideUp var(--md-animation-duration) cubic-bezier(.4,0,.2,1);font-family:Roboto,Segoe UI,Helvetica,Arial,sans-serif;margin:8px 0;max-width:400px;position:relative;width:100%}.fl-material .fl-md-card{background-color:var(--md-bg-light);border-radius:var(--md-border-radius);box-shadow:var(--md-elevation);color:var(--md-text-light);overflow:hidden}.fl-material .fl-content{align-items:flex-start;display:flex;padding:16px}.fl-material .fl-text-content{flex:1}.fl-material .fl-message{color:var(--md-text-secondary-light);font-size:.875rem;line-height:1.43}.fl-material .fl-actions{display:flex;justify-content:flex-end;padding:8px}.fl-material .fl-action-button{background:transparent;border:none;border-radius:4px;color:currentColor;cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:500;letter-spacing:.0892857143em;overflow:hidden;padding:8px 12px;position:relative;text-transform:uppercase;transition:background-color .2s}.fl-material .fl-action-button:focus,.fl-material .fl-action-button:hover{background-color:rgba(0,0,0,.04)}.fl-material .fl-action-button:after{background:currentColor;border-radius:50%;content:"";height:5px;opacity:0;pointer-events:none;position:absolute;transform:scale(1);width:5px}.fl-material .fl-action-button:active:after{animation:mdRipple var(--md-ripple-duration) linear;opacity:.3}.fl-material.fl-success .fl-action-button,.fl-material.fl-success .fl-icon-wrapper{color:var(--md-success)}.fl-material.fl-info .fl-action-button,.fl-material.fl-info .fl-icon-wrapper{color:var(--md-info)}.fl-material.fl-warning .fl-action-button,.fl-material.fl-warning .fl-icon-wrapper{color:var(--md-warning)}.fl-material.fl-error .fl-action-button,.fl-material.fl-error .fl-icon-wrapper{color:var(--md-error)}.fl-material .fl-progress-bar{bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-material .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-material.fl-success .fl-progress{background-color:var(--md-success)}.fl-material.fl-info .fl-progress{background-color:var(--md-info)}.fl-material.fl-warning .fl-progress{background-color:var(--md-warning)}.fl-material.fl-error .fl-progress{background-color:var(--md-error)}.fl-material.fl-rtl{direction:rtl}.fl-material.fl-rtl .fl-content{flex-direction:row-reverse}.fl-material.fl-rtl .fl-icon-wrapper{margin-left:16px;margin-right:0}.fl-material.fl-rtl .fl-actions{justify-content:flex-start}.fl-material.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-material,.fl-material .fl-action-button:active:after{animation:none}}.fl-material.fl-auto-dark .fl-md-card,body.fl-dark .fl-material .fl-md-card,html.fl-dark .fl-material .fl-md-card{background-color:var(--md-bg-dark);box-shadow:var(--md-elevation-dark);color:var(--md-text-dark)}.fl-material.fl-auto-dark .fl-message,body.fl-dark .fl-material .fl-message,html.fl-dark .fl-material .fl-message{color:var(--md-text-secondary-dark)}.fl-material.fl-auto-dark .fl-action-button:focus,.fl-material.fl-auto-dark .fl-action-button:hover,body.fl-dark .fl-material .fl-action-button:focus,body.fl-dark .fl-material .fl-action-button:hover,html.fl-dark .fl-material .fl-action-button:focus,html.fl-dark .fl-material .fl-action-button:hover{background-color:hsla(0,0%,100%,.08)} -.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal:last-child{margin-bottom:0}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)} -.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)} +.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)} +.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;overflow:hidden;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)} .fl-onyx{--onyx-bg-light:#fff;--onyx-bg-dark:#1e1e1e;--onyx-text-light:#333;--onyx-text-dark:#f5f5f5;--onyx-shadow:0 8px 30px rgba(0,0,0,.12);--onyx-shadow-dark:0 8px 30px rgba(0,0,0,.25);--onyx-border-radius:1rem;--onyx-success:#10b981;--onyx-info:#3b82f6;--onyx-warning:#f59e0b;--onyx-error:#ef4444}@keyframes onyxIn{0%{filter:blur(3px);opacity:0;transform:translateY(15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}.fl-onyx{animation:onyxIn .4s cubic-bezier(.16,1,.3,1);background-color:var(--onyx-bg-light);border-radius:var(--onyx-border-radius);box-shadow:var(--onyx-shadow);color:var(--onyx-text-light);font-family:var(--fl-font),serif;margin:.75rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity,filter}.fl-onyx:after,.fl-onyx:before{border-radius:50%;content:"";height:6px;position:absolute;width:6px;z-index:1}.fl-onyx:before{left:10px;top:10px}.fl-onyx:after{bottom:10px;right:10px}.fl-onyx .fl-content{align-items:center;display:flex;padding-left:.4rem}.fl-onyx .fl-text{flex:1;position:relative}.fl-onyx .fl-message{font-size:.925rem;font-weight:400;letter-spacing:.01rem;line-height:1.5}.fl-onyx .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1.25rem;height:1.75rem;justify-content:center;margin-left:1rem;opacity:.6;padding:.25rem;transition:all .2s ease;width:1.75rem}.fl-onyx .fl-close:focus,.fl-onyx .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-onyx .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-onyx .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-onyx.fl-success .fl-progress-bar .fl-progress,.fl-onyx.fl-success:after,.fl-onyx.fl-success:before{background-color:var(--onyx-success)}.fl-onyx.fl-info .fl-progress-bar .fl-progress,.fl-onyx.fl-info:after,.fl-onyx.fl-info:before{background-color:var(--onyx-info)}.fl-onyx.fl-warning .fl-progress-bar .fl-progress,.fl-onyx.fl-warning:after,.fl-onyx.fl-warning:before{background-color:var(--onyx-warning)}.fl-onyx.fl-error .fl-progress-bar .fl-progress,.fl-onyx.fl-error:after,.fl-onyx.fl-error:before{background-color:var(--onyx-error)}.fl-onyx.fl-rtl{direction:rtl}.fl-onyx.fl-rtl .fl-content{padding-left:0;padding-right:.4rem}.fl-onyx.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-onyx.fl-rtl:before{left:auto;right:10px}.fl-onyx.fl-rtl:after{left:10px;right:auto}.fl-onyx.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-onyx{animation:none}}.fl-onyx.fl-auto-dark,body.fl-dark .fl-onyx,html.fl-dark .fl-onyx{background-color:var(--onyx-bg-dark);box-shadow:var(--onyx-shadow-dark);color:var(--onyx-text-dark)}.fl-onyx.fl-auto-dark .fl-close:focus,.fl-onyx.fl-auto-dark .fl-close:hover,body.fl-dark .fl-onyx .fl-close:focus,body.fl-dark .fl-onyx .fl-close:hover,html.fl-dark .fl-onyx .fl-close:focus,html.fl-dark .fl-onyx .fl-close:hover{background-color:hsla(0,0%,100%,.1)} .fl-ruby{--ruby-text:#fff;--ruby-text-dark:#f8fafc;--ruby-border-radius:1.125rem;--ruby-shadow:0 10px 25px -3px rgba(0,0,0,.2);--ruby-success-gradient:linear-gradient(135deg,#059669,#10b981);--ruby-info-gradient:linear-gradient(135deg,#2563eb,#3b82f6);--ruby-warning-gradient:linear-gradient(135deg,#d97706,#f59e0b);--ruby-error-gradient:linear-gradient(135deg,#b91c1c,#ef4444)}@keyframes rubyShine{0%{left:-100%;opacity:.6}60%{left:100%;opacity:.6}to{left:100%;opacity:0}}@keyframes rubyIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.fl-ruby{animation:rubyIn .35s cubic-bezier(.21,1.02,.73,1);border-radius:var(--ruby-border-radius);box-shadow:var(--ruby-shadow);color:var(--ruby-text);font-family:var(--fl-font),serif;margin:.75rem 0;overflow:hidden;padding:0;position:relative;will-change:transform,opacity}.fl-ruby .fl-shine{animation:rubyShine 6s infinite;animation-delay:1s;background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3) 50%,hsla(0,0%,100%,0));height:100%;left:-100%;position:absolute;top:0;transform:skewX(-20deg);width:50%;z-index:1}.fl-ruby .fl-content{align-items:center;display:flex;padding:.9rem 1.1rem;position:relative;z-index:2}.fl-ruby .fl-icon-circle{align-items:center;background-color:hsla(0,0%,100%,.25);border-radius:50%;display:flex;flex-shrink:0;height:2.25rem;justify-content:center;margin-right:1rem;width:2.25rem}.fl-ruby .fl-icon{background-color:transparent;color:var(--ruby-text);font-size:1rem;margin:0}.fl-ruby .fl-text{flex:1}.fl-ruby .fl-message{font-size:.925rem;font-weight:500;line-height:1.5}.fl-ruby .fl-close{align-items:center;background:hsla(0,0%,100%,.2);border:none;border-radius:50%;color:var(--ruby-text);cursor:pointer;display:flex;flex-shrink:0;font-size:1.1rem;height:1.6rem;justify-content:center;margin-left:.75rem;opacity:.8;padding:.1rem;transition:all .2s;width:1.6rem}.fl-ruby .fl-close:focus,.fl-ruby .fl-close:hover{background:hsla(0,0%,100%,.3);opacity:1;transform:scale(1.05)}.fl-ruby .fl-progress-bar{background-color:rgba(0,0,0,.1);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;right:0;z-index:3}.fl-ruby .fl-progress-bar .fl-progress{background:hsla(0,0%,100%,.4);height:100%;width:100%}.fl-ruby.fl-success{background:var(--ruby-success-gradient)}.fl-ruby.fl-info{background:var(--ruby-info-gradient)}.fl-ruby.fl-warning{background:var(--ruby-warning-gradient)}.fl-ruby.fl-error{background:var(--ruby-error-gradient)}.fl-ruby.fl-rtl{direction:rtl}.fl-ruby.fl-rtl .fl-icon-circle{margin-left:1rem;margin-right:0}.fl-ruby.fl-rtl .fl-close{margin-left:0;margin-right:.75rem}.fl-ruby.fl-rtl .fl-shine{transform:skewX(20deg)}.fl-ruby.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-ruby{animation:none}.fl-ruby .fl-shine{display:none}} -.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire:last-child{margin-bottom:0}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}} +.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}} .fl-slack{--slack-bg-light:#fff;--slack-bg-dark:#1a1d21;--slack-hover-light:#f8f8f8;--slack-hover-dark:#222529;--slack-text-light:#1d1c1d;--slack-text-secondary-light:#616061;--slack-text-dark:#e0e0e0;--slack-text-secondary-dark:#ababad;--slack-border-light:#e0e0e0;--slack-border-dark:#393a3e;--slack-shadow:0 1px 0 rgba(0,0,0,.1);--slack-shadow-dark:0 1px 0 rgba(0,0,0,.2);--slack-avatar-size:36px;--slack-success:#2bac76;--slack-info:#1264a3;--slack-warning:#e8912d;--slack-error:#e01e5a;--slack-animation-duration:150ms}@keyframes slackFadeIn{0%{opacity:0}to{opacity:1}}.fl-slack{animation:slackFadeIn var(--slack-animation-duration) ease-out;font-family:Lato,Slack-Lato,Helvetica Neue,Helvetica,sans-serif;margin:4px 0;max-width:500px;position:relative;width:100%}.fl-slack .fl-slack-message{align-items:flex-start;background-color:var(--slack-bg-light);border:1px solid var(--slack-border-light);border-radius:4px;box-shadow:var(--slack-shadow);color:var(--slack-text-light);display:flex;padding:8px 20px 8px 8px;transition:background-color .1s ease}.fl-slack .fl-slack-message:hover{background-color:var(--slack-hover-light)}.fl-slack .fl-avatar{align-items:center;background-color:currentColor;border-radius:4px;display:flex;flex-shrink:0;height:var(--slack-avatar-size);justify-content:center;margin-right:8px;width:var(--slack-avatar-size)}.fl-slack .fl-type-icon{color:#fff;font-size:16px;font-weight:700}.fl-slack .fl-message-content{flex:1;min-width:0}.fl-slack .fl-message-text{font-size:15px;line-height:1.46668;word-break:break-word}.fl-slack .fl-actions{opacity:0;position:absolute;right:6px;top:8px;transition:opacity .1s ease;visibility:hidden}.fl-slack .fl-slack-message:hover .fl-actions{opacity:1;visibility:visible}.fl-slack .fl-close{align-items:center;background:none;border:none;border-radius:4px;color:var(--slack-text-secondary-light);cursor:pointer;display:flex;justify-content:center;padding:4px}.fl-slack .fl-close:hover{background-color:var(--slack-hover-light);color:var(--slack-text-light)}.fl-slack.fl-success .fl-avatar{color:var(--slack-success)}.fl-slack.fl-info .fl-avatar{color:var(--slack-info)}.fl-slack.fl-warning .fl-avatar{color:var(--slack-warning)}.fl-slack.fl-error .fl-avatar{color:var(--slack-error)}.fl-slack.fl-rtl{direction:rtl}.fl-slack.fl-rtl .fl-avatar{margin-left:8px;margin-right:0}.fl-slack.fl-rtl .fl-username{margin-left:4px;margin-right:0}.fl-slack.fl-rtl .fl-actions{left:6px;right:auto}.fl-slack.fl-rtl .fl-slack-message{padding:8px 8px 8px 20px}@media (prefers-reduced-motion:reduce){.fl-slack{animation:none}}.fl-slack.fl-auto-dark .fl-slack-message,body.fl-dark .fl-slack .fl-slack-message,html.fl-dark .fl-slack .fl-slack-message{background-color:var(--slack-bg-dark);border-color:var(--slack-border-dark);box-shadow:var(--slack-shadow-dark);color:var(--slack-text-dark)}.fl-slack.fl-auto-dark .fl-slack-message:hover,body.fl-dark .fl-slack .fl-slack-message:hover,html.fl-dark .fl-slack .fl-slack-message:hover{background-color:var(--slack-hover-dark)}.fl-slack.fl-auto-dark .fl-close,body.fl-dark .fl-slack .fl-close,html.fl-dark .fl-slack .fl-close{color:var(--slack-text-secondary-dark)}.fl-slack.fl-auto-dark .fl-close:hover,body.fl-dark .fl-slack .fl-close:hover,html.fl-dark .fl-slack .fl-close:hover{background-color:var(--slack-hover-dark);color:var(--slack-text-dark)} \ No newline at end of file diff --git a/src/Prime/Resources/dist/themes/amber/amber.min.css b/src/Prime/Resources/dist/themes/amber/amber.min.css index 360d5c70..43d38785 100644 --- a/src/Prime/Resources/dist/themes/amber/amber.min.css +++ b/src/Prime/Resources/dist/themes/amber/amber.min.css @@ -1 +1 @@ -.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber:last-child{margin-bottom:0}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)} \ No newline at end of file +.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)} \ No newline at end of file diff --git a/src/Prime/Resources/dist/themes/crystal/crystal.min.css b/src/Prime/Resources/dist/themes/crystal/crystal.min.css index f6d9e00c..363c48a3 100644 --- a/src/Prime/Resources/dist/themes/crystal/crystal.min.css +++ b/src/Prime/Resources/dist/themes/crystal/crystal.min.css @@ -1 +1 @@ -.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal:last-child{margin-bottom:0}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)} \ No newline at end of file +.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)} \ No newline at end of file diff --git a/src/Prime/Resources/dist/themes/facebook/facebook.esm.js b/src/Prime/Resources/dist/themes/facebook/facebook.esm.js index 0a228d28..6e3fe353 100644 --- a/src/Prime/Resources/dist/themes/facebook/facebook.esm.js +++ b/src/Prime/Resources/dist/themes/facebook/facebook.esm.js @@ -7,13 +7,12 @@ import flasher from '@flasher/flasher'; const facebookTheme = { render: (envelope) => { - var _a; const { type, message } = envelope; const isAlert = type === 'error' || type === 'warning'; const role = isAlert ? 'alert' : 'status'; const ariaLive = isAlert ? 'assertive' : 'polite'; - const timestamp = String(((_a = envelope.options) === null || _a === void 0 ? void 0 : _a.timestamp) || '2025-03-02 06:49:21'); - const formattedTime = timestamp.split(' ')[1].substring(0, 5); + const now = new Date(); + const timeString = now.toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' }); const getNotificationIcon = () => { switch (type) { case 'success': @@ -54,7 +53,7 @@ const facebookTheme = { ${message}
    - ${formattedTime} + ${timeString}
    diff --git a/src/Prime/Resources/dist/themes/facebook/facebook.js b/src/Prime/Resources/dist/themes/facebook/facebook.js index 0a88c4ca..0008d977 100644 --- a/src/Prime/Resources/dist/themes/facebook/facebook.js +++ b/src/Prime/Resources/dist/themes/facebook/facebook.js @@ -11,13 +11,12 @@ const facebookTheme = { render: (envelope) => { - var _a; const { type, message } = envelope; const isAlert = type === 'error' || type === 'warning'; const role = isAlert ? 'alert' : 'status'; const ariaLive = isAlert ? 'assertive' : 'polite'; - const timestamp = String(((_a = envelope.options) === null || _a === void 0 ? void 0 : _a.timestamp) || '2025-03-02 06:49:21'); - const formattedTime = timestamp.split(' ')[1].substring(0, 5); + const now = new Date(); + const timeString = now.toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' }); const getNotificationIcon = () => { switch (type) { case 'success': @@ -58,7 +57,7 @@ ${message}
    - ${formattedTime} + ${timeString}
    diff --git a/src/Prime/Resources/dist/themes/facebook/facebook.min.js b/src/Prime/Resources/dist/themes/facebook/facebook.min.js index 631034f4..3e1b35ca 100644 --- a/src/Prime/Resources/dist/themes/facebook/facebook.min.js +++ b/src/Prime/Resources/dist/themes/facebook/facebook.min.js @@ -1 +1 @@ -!function(n,i){"object"==typeof exports&&"undefined"!=typeof module?i(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],i):i((n="undefined"!=typeof globalThis?globalThis:n||self).flasher)}(this,(function(n){"use strict";const i={render:n=>{var i;const{type:s,message:e}=n,l="error"===s||"warning"===s,t=l?"alert":"status",o=l?"assertive":"polite",r=String((null===(i=n.options)||void 0===i?void 0:i.timestamp)||"2025-03-02 06:49:21").split(" ")[1].substring(0,5);return`\n
    \n
    \n
    \n ${(()=>{switch(s){case"success":return'
    \n \n \n \n
    ';case"error":return'
    \n \n \n \n
    ';case"warning":return'
    \n \n \n \n
    ';case"info":return'
    \n \n \n \n
    '}return""})()}\n
    \n
    \n
    \n ${e}\n
    \n
    \n ${r}\n
    \n
    \n
    \n \n
    \n
    \n
    `}};n.addTheme("facebook",i)})); +!function(n,i){"object"==typeof exports&&"undefined"!=typeof module?i(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],i):i((n="undefined"!=typeof globalThis?globalThis:n||self).flasher)}(this,(function(n){"use strict";const i={render:n=>{const{type:i,message:e}=n,s="error"===i||"warning"===i,t=s?"alert":"status",l=s?"assertive":"polite",o=(new Date).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"});return`\n
    \n
    \n
    \n ${(()=>{switch(i){case"success":return'
    \n \n \n \n
    ';case"error":return'
    \n \n \n \n
    ';case"warning":return'
    \n \n \n \n
    ';case"info":return'
    \n \n \n \n
    '}return""})()}\n
    \n
    \n
    \n ${e}\n
    \n
    \n ${o}\n
    \n
    \n
    \n \n
    \n
    \n
    `}};n.addTheme("facebook",i)})); diff --git a/src/Prime/Resources/dist/themes/jade/jade.min.css b/src/Prime/Resources/dist/themes/jade/jade.min.css index 3acc21a0..4c073476 100644 --- a/src/Prime/Resources/dist/themes/jade/jade.min.css +++ b/src/Prime/Resources/dist/themes/jade/jade.min.css @@ -1 +1 @@ -.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade:last-child{margin-bottom:0}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)} \ No newline at end of file +.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)} \ No newline at end of file diff --git a/src/Prime/Resources/dist/themes/minimal/minimal.min.css b/src/Prime/Resources/dist/themes/minimal/minimal.min.css index b0763c21..26797f51 100644 --- a/src/Prime/Resources/dist/themes/minimal/minimal.min.css +++ b/src/Prime/Resources/dist/themes/minimal/minimal.min.css @@ -1 +1 @@ -.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal:last-child{margin-bottom:0}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)} \ No newline at end of file +.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)} \ No newline at end of file diff --git a/src/Prime/Resources/dist/themes/neon/neon.min.css b/src/Prime/Resources/dist/themes/neon/neon.min.css index 3ee7e09c..36d9d64a 100644 --- a/src/Prime/Resources/dist/themes/neon/neon.min.css +++ b/src/Prime/Resources/dist/themes/neon/neon.min.css @@ -1 +1 @@ -.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)} \ No newline at end of file +.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;overflow:hidden;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)} \ No newline at end of file diff --git a/src/Prime/Resources/dist/themes/sapphire/sapphire.min.css b/src/Prime/Resources/dist/themes/sapphire/sapphire.min.css index 8446dbcd..8f5ea7b7 100644 --- a/src/Prime/Resources/dist/themes/sapphire/sapphire.min.css +++ b/src/Prime/Resources/dist/themes/sapphire/sapphire.min.css @@ -1 +1 @@ -.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire:last-child{margin-bottom:0}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}} \ No newline at end of file +.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}} \ No newline at end of file diff --git a/src/Prime/Resources/public/flasher.min.css b/src/Prime/Resources/public/flasher.min.css index 880015b6..f5825c26 100644 --- a/src/Prime/Resources/public/flasher.min.css +++ b/src/Prime/Resources/public/flasher.min.css @@ -1,18 +1,18 @@ :root{--fl-success:#10b981;--fl-info:#3b82f6;--fl-warning:#f59e0b;--fl-error:#ef4444;--fl-success-light:color-mix(in srgb,var(--fl-success) 10%,transparent);--fl-info-light:color-mix(in srgb,var(--fl-info) 10%,transparent);--fl-warning-light:color-mix(in srgb,var(--fl-warning) 10%,transparent);--fl-error-light:color-mix(in srgb,var(--fl-error) 10%,transparent);--fl-white:#fff;--fl-black:#000;--fl-bg-light:var(--fl-white);--fl-bg-dark:#0f172a;--fl-text-light:#4b5563;--fl-text-dark:var(--fl-white);--fl-font:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--fl-border-radius:4px;--fl-shadow:0 4px 12px rgba(0,0,0,.15);--fl-shadow-dark:0 4px 12px rgba(0,0,0,.35);--fl-transition:0.4s cubic-bezier(0.23,1,0.32,1);--background-color:var(--fl-bg-light);--text-color:var(--fl-text-light);--dark-background-color:var(--fl-bg-dark);--dark-text-color:var(--fl-text-dark);--success-color:var(--fl-success);--info-color:var(--fl-info);--warning-color:var(--fl-warning);--error-color:var(--fl-error);--success-color-light:var(--fl-success-light);--info-color-light:var(--fl-info-light);--warning-color-light:var(--fl-warning-light);--error-color-light:var(--fl-error-light)}.fl-wrapper{pointer-events:none;position:fixed;transition:all .4s cubic-bezier(.23,1,.32,1);width:24em;z-index:1000}.fl-wrapper .fl-container{border-radius:var(--fl-border-radius,4px);opacity:0;pointer-events:auto;transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .4s cubic-bezier(.23,1,.32,1)}.fl-wrapper .fl-container.fl-show{opacity:1;transform:translate(0) scale(1)!important}.fl-wrapper.fl-stacked .fl-container:not(:last-child){margin-bottom:.5em}.fl-wrapper[data-position^=top-]{top:.75em}.fl-wrapper[data-position^=bottom-]{bottom:.75em}.fl-wrapper[data-position^=center-]{top:50%}.fl-wrapper[data-position$=-right]{right:.75em}.fl-wrapper[data-position$=-left]{left:.75em}.fl-wrapper[data-position$=-center]{left:50%}.fl-wrapper[data-position=center-left]{transform:translateY(-50%)}.fl-wrapper[data-position=center-left] .fl-container{transform:translateX(-110%)}.fl-wrapper[data-position=center-right]{transform:translateY(-50%)}.fl-wrapper[data-position=center-right] .fl-container{transform:translateX(110%)}.fl-wrapper[data-position=center-center]{transform:translate(-50%,-50%)}.fl-wrapper[data-position=center-center] .fl-container{opacity:0;transform:translate(0) scale(.5);transition:transform .5s cubic-bezier(.23,1,.32,1),opacity .5s cubic-bezier(.23,1,.32,1)}.fl-wrapper[data-position=bottom-center],.fl-wrapper[data-position=top-center]{transform:translateX(-50%)}.fl-wrapper[data-position=top-center] .fl-container{transform:translateY(-150%)}.fl-wrapper[data-position=bottom-center] .fl-container{transform:translateY(150%)}.fl-wrapper[data-position=bottom-right] .fl-container,.fl-wrapper[data-position=top-right] .fl-container{transform:translateX(110%)}.fl-wrapper[data-position=bottom-left] .fl-container,.fl-wrapper[data-position=top-left] .fl-container{transform:translateX(-110%)}@media screen and (max-width:768px){.fl-wrapper{left:7.5%;right:7.5%;width:85%}.fl-wrapper[data-position$=-center],.fl-wrapper[data-position$=-left],.fl-wrapper[data-position$=-right]{left:50%;right:auto}.fl-wrapper[data-position^=top-]{top:.75em;transform:translateX(-50%)}.fl-wrapper[data-position^=bottom-]{bottom:.75em;transform:translateX(-50%)}.fl-wrapper[data-position^=center-]{top:50%;transform:translate(-50%,-50%)}}@media screen and (max-width:480px){.fl-wrapper{left:5%;right:5%;width:90%}}@media (prefers-color-scheme:dark){.fl-wrapper.fl-auto-dark .fl-container{box-shadow:var(--fl-shadow-dark,0 4px 12px rgba(0,0,0,.35))}}.fl-wrapper .fl-container.fl-dismissing{opacity:0;transition:all .3s ease-out}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-right],.fl-wrapper .fl-container.fl-dismissing[data-position=top-right]{transform:translateX(110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-left],.fl-wrapper .fl-container.fl-dismissing[data-position=top-left]{transform:translateX(-110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=top-center]{transform:translateY(-150%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-center]{transform:scale(.5);transition:opacity .4s ease-out,transform .4s ease-out}.fl-wrapper .fl-container.fl-dismissing[data-position=bottom-center]{transform:translateY(150%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-left]{transform:translateX(-110%)}.fl-wrapper .fl-container.fl-dismissing[data-position=center-right]{transform:translateX(110%)}@media (prefers-reduced-motion:reduce){.fl-wrapper,.fl-wrapper .fl-container{transition:none!important}}.fl-container{color:var(--text-color,var(--fl-text-light));opacity:0;transform:translateY(-20px);transition:all .4s cubic-bezier(.23,1,.32,1);will-change:opacity,transform}.fl-container.fl-show{opacity:1;transform:translate(0)!important}.fl-container.fl-rtl{direction:rtl;text-align:right}.fl-progress-bar{bottom:0;display:flex;height:.125em;left:0;overflow:hidden;position:absolute;right:0}.fl-success .fl-progress-bar{background-color:var(--success-color-light,var(--fl-success-light))}.fl-success .fl-progress-bar .fl-progress{background-color:var(--success-color,var(--fl-success));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-info .fl-progress-bar{background-color:var(--info-color-light,var(--fl-info-light))}.fl-info .fl-progress-bar .fl-progress{background-color:var(--info-color,var(--fl-info));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-warning .fl-progress-bar{background-color:var(--warning-color-light,var(--fl-warning-light))}.fl-warning .fl-progress-bar .fl-progress{background-color:var(--warning-color,var(--fl-warning));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-error .fl-progress-bar{background-color:var(--error-color-light,var(--fl-error-light))}.fl-error .fl-progress-bar .fl-progress{background-color:var(--error-color,var(--fl-error));height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-rtl .fl-progress .fl-progress{transform-origin:right center}.fl-icon{border-radius:50%;box-sizing:border-box;color:#fff;display:inline-block;height:1em;margin:0;min-height:1em;min-width:1em;position:relative;transition:transform .2s ease;width:1em}.fl-icon:after,.fl-icon:before{border-width:0;box-sizing:border-box;content:"";position:absolute;transition:inherit}.fl-success .fl-icon:after,.fl-success .fl-icon:before{background-color:currentcolor;border-radius:.1em;height:.6em;left:.35em;top:.6em;transform:rotate(-135deg);transform-origin:.08em .08em;width:.16em}.fl-success .fl-icon:after{height:.16em;width:.4em}.fl-info .fl-icon:after,.fl-info .fl-icon:before{background-color:currentcolor;border-radius:.03em;left:50%;transform:translateX(-50%);width:.15em}.fl-info .fl-icon:before{height:.38em;top:.4em}.fl-info .fl-icon:after{box-shadow:-.06em .19em,-.06em .44em,.06em .44em;height:.13em;top:.21em}.fl-warning .fl-icon:after,.fl-warning .fl-icon:before{background-color:currentcolor;border-radius:.03em;left:50%;transform:translateX(-50%);width:.15em}.fl-warning .fl-icon:before{height:.38em;top:.21em}.fl-warning .fl-icon:after{height:.13em;top:.65em}.fl-error .fl-icon:after,.fl-error .fl-icon:before{background-color:currentcolor;border-radius:.1em;height:.7em;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-135deg);width:.16em}.fl-error .fl-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}.fl-success .fl-icon{background-color:var(--success-color,var(--fl-success))}.fl-info .fl-icon{background-color:var(--info-color,var(--fl-info))}.fl-warning .fl-icon{background-color:var(--warning-color,var(--fl-warning))}.fl-error .fl-icon{background-color:var(--error-color,var(--fl-error))} .fl-amazon{--amazon-bg-light:#fff;--amazon-bg-dark:#202124;--amazon-text-light:#0f1111;--amazon-text-secondary-light:#565959;--amazon-text-dark:#fff;--amazon-text-secondary-dark:#b6b6b6;--amazon-border-light:#ddd;--amazon-border-dark:#3f3f3f;--amazon-yellow:#ffd814;--amazon-orange:#f90;--amazon-success-bg:#f0fff5;--amazon-success-border:#7fda95;--amazon-success-icon:#007600;--amazon-info-bg:#f3f9ff;--amazon-info-border:#7fb4da;--amazon-info-icon:#0066c0;--amazon-warning-bg:#fffcf3;--amazon-warning-border:#ffd996;--amazon-warning-icon:#c45500;--amazon-error-bg:#fff5f5;--amazon-error-border:#ff8f8f;--amazon-error-icon:#c40000;--amazon-success-bg-dark:#082d11;--amazon-success-border-dark:#1e6e2c;--amazon-success-icon-dark:#7fda95;--amazon-info-bg-dark:#0a1c2e;--amazon-info-border-dark:#1a5183;--amazon-info-icon-dark:#7fb4da;--amazon-warning-bg-dark:#342a0a;--amazon-warning-border-dark:#705711;--amazon-warning-icon-dark:#ffd996;--amazon-error-bg-dark:#2b0c0c;--amazon-error-border-dark:#721c1c;--amazon-error-icon-dark:#ff8f8f;--amazon-animation-duration:0.2s}@keyframes amazonSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fl-amazon{animation:amazonSlideDown var(--amazon-animation-duration) ease-out;font-family:Arial,sans-serif;margin:10px 0;max-width:500px;position:relative;width:100%}.fl-amazon .fl-amazon-alert{background-color:var(--amazon-bg-light);border:1px solid;border-left:4px solid;border-radius:8px;box-shadow:0 2px 5px rgba(15,17,17,.15);color:var(--amazon-text-light);display:flex;padding:14px}.fl-amazon .fl-alert-content{align-items:flex-start;display:flex;flex:1}.fl-amazon .fl-icon-container{color:currentColor;flex-shrink:0;margin-right:12px}.fl-amazon .fl-text-content{flex:1;min-width:0}.fl-amazon .fl-alert-title{font-size:16px;font-weight:700;margin-bottom:4px}.fl-amazon .fl-alert-message{color:var(--amazon-text-secondary-light);font-size:14px;line-height:20px}.fl-amazon .fl-alert-actions{margin-left:16px}.fl-amazon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--amazon-text-secondary-light);cursor:pointer;display:flex;height:30px;justify-content:center;padding:0;transition:all .2s;width:30px}.fl-amazon .fl-close:hover{background-color:rgba(0,0,0,.05);color:var(--amazon-text-light)}.fl-amazon.fl-success .fl-amazon-alert{background-color:var(--amazon-success-bg);border-color:var(--amazon-success-border)}.fl-amazon.fl-success .fl-icon-container{color:var(--amazon-success-icon)}.fl-amazon.fl-info .fl-amazon-alert{background-color:var(--amazon-info-bg);border-color:var(--amazon-info-border)}.fl-amazon.fl-info .fl-icon-container{color:var(--amazon-info-icon)}.fl-amazon.fl-warning .fl-amazon-alert{background-color:var(--amazon-warning-bg);border-color:var(--amazon-warning-border)}.fl-amazon.fl-warning .fl-icon-container{color:var(--amazon-warning-icon)}.fl-amazon.fl-error .fl-amazon-alert{background-color:var(--amazon-error-bg);border-color:var(--amazon-error-border)}.fl-amazon.fl-error .fl-icon-container{color:var(--amazon-error-icon)}.fl-amazon.fl-rtl{direction:rtl}.fl-amazon.fl-rtl .fl-icon-container{margin-left:12px;margin-right:0}.fl-amazon.fl-rtl .fl-alert-actions{margin-left:0;margin-right:16px}.fl-amazon.fl-rtl .fl-amazon-alert{border-left-width:1px;border-right-width:4px}@media (prefers-reduced-motion:reduce){.fl-amazon{animation:none}}.fl-amazon.fl-auto-dark .fl-amazon-alert,body.fl-dark .fl-amazon .fl-amazon-alert,html.fl-dark .fl-amazon .fl-amazon-alert{background-color:var(--amazon-bg-dark);border-color:var(--amazon-border-dark);box-shadow:0 2px 5px rgba(0,0,0,.3);color:var(--amazon-text-dark)}.fl-amazon.fl-auto-dark .fl-alert-message,.fl-amazon.fl-auto-dark .fl-close,body.fl-dark .fl-amazon .fl-alert-message,body.fl-dark .fl-amazon .fl-close,html.fl-dark .fl-amazon .fl-alert-message,html.fl-dark .fl-amazon .fl-close{color:var(--amazon-text-secondary-dark)}.fl-amazon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-amazon .fl-close:hover,html.fl-dark .fl-amazon .fl-close:hover{background-color:hsla(0,0%,100%,.1);color:var(--amazon-text-dark)}.fl-amazon.fl-auto-dark.fl-success .fl-amazon-alert,body.fl-dark .fl-amazon.fl-success .fl-amazon-alert,html.fl-dark .fl-amazon.fl-success .fl-amazon-alert{background-color:var(--amazon-success-bg-dark);border-color:var(--amazon-success-border-dark)}.fl-amazon.fl-auto-dark.fl-success .fl-icon-container,body.fl-dark .fl-amazon.fl-success .fl-icon-container,html.fl-dark .fl-amazon.fl-success .fl-icon-container{color:var(--amazon-success-icon-dark)}.fl-amazon.fl-auto-dark.fl-info .fl-amazon-alert,body.fl-dark .fl-amazon.fl-info .fl-amazon-alert,html.fl-dark .fl-amazon.fl-info .fl-amazon-alert{background-color:var(--amazon-info-bg-dark);border-color:var(--amazon-info-border-dark)}.fl-amazon.fl-auto-dark.fl-info .fl-icon-container,body.fl-dark .fl-amazon.fl-info .fl-icon-container,html.fl-dark .fl-amazon.fl-info .fl-icon-container{color:var(--amazon-info-icon-dark)}.fl-amazon.fl-auto-dark.fl-warning .fl-amazon-alert,body.fl-dark .fl-amazon.fl-warning .fl-amazon-alert,html.fl-dark .fl-amazon.fl-warning .fl-amazon-alert{background-color:var(--amazon-warning-bg-dark);border-color:var(--amazon-warning-border-dark)}.fl-amazon.fl-auto-dark.fl-warning .fl-icon-container,body.fl-dark .fl-amazon.fl-warning .fl-icon-container,html.fl-dark .fl-amazon.fl-warning .fl-icon-container{color:var(--amazon-warning-icon-dark)}.fl-amazon.fl-auto-dark.fl-error .fl-amazon-alert,body.fl-dark .fl-amazon.fl-error .fl-amazon-alert,html.fl-dark .fl-amazon.fl-error .fl-amazon-alert{background-color:var(--amazon-error-bg-dark);border-color:var(--amazon-error-border-dark)}.fl-amazon.fl-auto-dark.fl-error .fl-icon-container,body.fl-dark .fl-amazon.fl-error .fl-icon-container,html.fl-dark .fl-amazon.fl-error .fl-icon-container{color:var(--amazon-error-icon-dark)} -.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber:last-child{margin-bottom:0}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)} +.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)} .fl-aurora{--aurora-bg-light:hsla(0,0%,100%,.95);--aurora-bg-dark:rgba(20,20,28,.92);--aurora-text-light:#1e293b;--aurora-text-dark:#f8fafc;--aurora-shadow:0 8px 25px rgba(0,0,0,.08);--aurora-shadow-dark:0 10px 30px rgba(0,0,0,.16);--aurora-border-radius:16px;--aurora-blur:15px;--aurora-success-gradient:linear-gradient(135deg,rgba(16,185,129,.08),rgba(16,185,129,.2));--aurora-info-gradient:linear-gradient(135deg,rgba(59,130,246,.08),rgba(59,130,246,.2));--aurora-warning-gradient:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.2));--aurora-error-gradient:linear-gradient(135deg,rgba(239,68,68,.08),rgba(239,68,68,.2));--aurora-success:#10b981;--aurora-info:#3b82f6;--aurora-warning:#f59e0b;--aurora-error:#ef4444}@keyframes auroraFadeIn{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-aurora{animation:auroraFadeIn .35s cubic-bezier(.21,1.02,.73,1);backdrop-filter:blur(var(--aurora-blur));-webkit-backdrop-filter:blur(var(--aurora-blur));background-color:var(--aurora-bg-light);border-radius:var(--aurora-border-radius);box-shadow:var(--aurora-shadow);color:var(--aurora-text-light);font-family:var(--fl-font),sans-serif;margin:10px 0;overflow:hidden;padding:16px 18px;position:relative;will-change:transform,opacity}.fl-aurora:before{border-radius:inherit;content:"";inset:0;opacity:.8;position:absolute;z-index:0}.fl-aurora .fl-content{align-items:center;display:flex;position:relative;z-index:1}.fl-aurora .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5;margin-right:10px}.fl-aurora .fl-close{align-items:center;background:rgba(0,0,0,.05);border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:28px;justify-content:center;opacity:.7;transition:all .2s ease;width:28px}.fl-aurora .fl-close:focus,.fl-aurora .fl-close:hover{background:rgba(0,0,0,.1);opacity:1}.fl-aurora .fl-progress-bar{border-radius:6px;bottom:2px;height:3px;left:2px;opacity:.7;overflow:hidden;position:absolute;right:2px;z-index:1}.fl-aurora .fl-progress{height:100%;width:100%}.fl-aurora.fl-success:before{background:var(--aurora-success-gradient)}.fl-aurora.fl-success .fl-progress{background-color:var(--aurora-success)}.fl-aurora.fl-info:before{background:var(--aurora-info-gradient)}.fl-aurora.fl-info .fl-progress{background-color:var(--aurora-info)}.fl-aurora.fl-warning:before{background:var(--aurora-warning-gradient)}.fl-aurora.fl-warning .fl-progress{background-color:var(--aurora-warning)}.fl-aurora.fl-error:before{background:var(--aurora-error-gradient)}.fl-aurora.fl-error .fl-progress{background-color:var(--aurora-error)}.fl-aurora.fl-rtl{direction:rtl}.fl-aurora.fl-rtl .fl-message{margin-left:10px;margin-right:0}.fl-aurora.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-aurora{animation:none}}.fl-aurora.fl-auto-dark,body.fl-dark .fl-aurora,html.fl-dark .fl-aurora{background-color:var(--aurora-bg-dark);box-shadow:var(--aurora-shadow-dark);color:var(--aurora-text-dark)}.fl-aurora.fl-auto-dark .fl-close,body.fl-dark .fl-aurora .fl-close,html.fl-dark .fl-aurora .fl-close{background:hsla(0,0%,100%,.1)}.fl-aurora.fl-auto-dark .fl-close:focus,.fl-aurora.fl-auto-dark .fl-close:hover,body.fl-dark .fl-aurora .fl-close:focus,body.fl-dark .fl-aurora .fl-close:hover,html.fl-dark .fl-aurora .fl-close:focus,html.fl-dark .fl-aurora .fl-close:hover{background:hsla(0,0%,100%,.15)}.fl-aurora.fl-auto-dark.fl-success:before,body.fl-dark .fl-aurora.fl-success:before,html.fl-dark .fl-aurora.fl-success:before{background:linear-gradient(135deg,rgba(16,185,129,.1),rgba(16,185,129,.25))}.fl-aurora.fl-auto-dark.fl-info:before,body.fl-dark .fl-aurora.fl-info:before,html.fl-dark .fl-aurora.fl-info:before{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.25))}.fl-aurora.fl-auto-dark.fl-warning:before,body.fl-dark .fl-aurora.fl-warning:before,html.fl-dark .fl-aurora.fl-warning:before{background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(245,158,11,.25))}.fl-aurora.fl-auto-dark.fl-error:before,body.fl-dark .fl-aurora.fl-error:before,html.fl-dark .fl-aurora.fl-error:before{background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.25))} -.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal:last-child{margin-bottom:0}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)} +.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)} .fl-emerald{--emerald-bg-light:hsla(0,0%,100%,.9);--emerald-bg-dark:rgba(30,30,30,.9);--emerald-text-light:#333;--emerald-text-dark:hsla(0,0%,100%,.9);--emerald-shadow:rgba(0,0,0,.1);--emerald-blur:8px;--emerald-success:var(--success-color,#16a085);--emerald-error:var(--error-color,#e74c3c);--emerald-warning:var(--warning-color,#f39c12);--emerald-info:var(--info-color,#3498db)}@keyframes emeraldIn{0%{opacity:0;transform:scale(.5) translateY(20px)}60%{opacity:1;transform:scale(1.1) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.fl-emerald{animation:emeraldIn .5s cubic-bezier(.23,1,.32,1);backdrop-filter:blur(var(--emerald-blur));-webkit-backdrop-filter:blur(var(--emerald-blur));background:var(--emerald-bg-light);border-radius:10px;box-shadow:0 10px 20px var(--emerald-shadow);color:var(--emerald-text-light);font-family:"Inter",var(--fl-font),serif;margin:0 0 .5rem;overflow:hidden;padding:1rem 1.5rem 1rem 1rem;position:relative}.fl-emerald .fl-content{align-items:center;display:flex}.fl-emerald .fl-message{flex:1;font-size:.9rem;font-weight:500;line-height:1.4}.fl-emerald .fl-close{background:transparent;border:none;color:currentColor;cursor:pointer;font-size:1.3rem;margin-left:auto;opacity:.7;transition:opacity .2s ease}.fl-emerald .fl-close:focus,.fl-emerald .fl-close:hover{opacity:1}.fl-emerald.fl-success{color:var(--emerald-success)}.fl-emerald.fl-error{color:var(--emerald-error)}.fl-emerald.fl-warning{color:var(--emerald-warning)}.fl-emerald.fl-info{color:var(--emerald-info)}.fl-emerald.fl-rtl{direction:rtl;padding:1rem 1rem 1rem 1.5rem}.fl-emerald.fl-rtl .fl-content{flex-direction:row-reverse}.fl-emerald.fl-rtl .fl-close{margin-left:0;margin-right:auto}@media (prefers-reduced-motion:reduce){.fl-emerald{animation:none}}.fl-emerald.fl-auto-dark,body.fl-dark .fl-emerald,html.fl-dark .fl-emerald{background:var(--emerald-bg-dark)}.fl-emerald.fl-auto-dark .fl-message,body.fl-dark .fl-emerald .fl-message,html.fl-dark .fl-emerald .fl-message{color:var(--emerald-text-dark)} .fl-facebook{--fb-bg-light:#fff;--fb-bg-dark:#242526;--fb-text-light:#050505;--fb-text-secondary-light:#65676b;--fb-text-dark:#e4e6eb;--fb-text-secondary-dark:#b0b3b8;--fb-hover-light:#f0f2f5;--fb-hover-dark:#3a3b3c;--fb-border-light:#e4e6eb;--fb-border-dark:#3e4042;--fb-blue:#1876f2;--fb-name-color:#050505;--fb-name-color-dark:#e4e6eb;--fb-success:#31a24c;--fb-info:#1876f2;--fb-warning:#f7b928;--fb-error:#e41e3f;--fb-success-bg:#e7f3ff;--fb-info-bg:#e7f3ff;--fb-warning-bg:#fff5cc;--fb-error-bg:#ffebe9;--fb-success-bg-dark:#263c4b;--fb-info-bg-dark:#263c4b;--fb-warning-bg-dark:#3e3c26;--fb-error-bg-dark:#472835;--fb-animation-duration:0.2s}@keyframes fbFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-facebook{animation:fbFadeIn var(--fb-animation-duration) ease-out;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:8px 0;max-width:450px;position:relative;width:100%}.fl-facebook .fl-fb-notification{align-items:flex-start;background-color:var(--fb-bg-light);border-radius:8px;box-shadow:0 1px 2px rgba(0,0,0,.1);color:var(--fb-text-light);display:flex;padding:12px;transition:background-color .1s ease}.fl-facebook .fl-fb-notification:hover{background-color:var(--fb-hover-light)}.fl-facebook .fl-icon-container{flex-shrink:0;margin-right:12px}.fl-facebook .fl-fb-icon{align-items:center;border-radius:50%;display:flex;height:36px;justify-content:center;width:36px}.fl-facebook .fl-fb-icon svg{color:#fff}.fl-facebook .fl-fb-icon-success{background-color:var(--fb-success)}.fl-facebook .fl-fb-icon-info{background-color:var(--fb-info)}.fl-facebook .fl-fb-icon-warning{background-color:var(--fb-warning)}.fl-facebook .fl-fb-icon-error{background-color:var(--fb-error)}.fl-facebook .fl-content{flex:1;min-width:0}.fl-facebook .fl-message{font-size:15px;line-height:1.33;margin-bottom:4px}.fl-facebook .fl-user-name{color:var(--fb-name-color);font-weight:600;margin-right:4px}.fl-facebook .fl-meta{align-items:center;display:flex}.fl-facebook .fl-time{color:var(--fb-text-secondary-light);font-size:13px}.fl-facebook .fl-actions{align-items:center;display:flex;margin-left:12px}.fl-facebook .fl-button{align-items:center;background:var(--fb-hover-light);border:none;border-radius:50%;color:var(--fb-text-secondary-light);cursor:pointer;display:flex;height:32px;justify-content:center;margin-left:8px;transition:background-color .1s;width:32px}.fl-facebook .fl-button:hover{background-color:var(--fb-border-light)}.fl-facebook .fl-button-icon{align-items:center;display:flex;justify-content:center}.fl-facebook.fl-rtl{direction:rtl}.fl-facebook.fl-rtl .fl-icon-container{margin-left:12px;margin-right:0}.fl-facebook.fl-rtl .fl-user-name{margin-left:4px;margin-right:0}.fl-facebook.fl-rtl .fl-actions{margin-left:0;margin-right:12px}.fl-facebook.fl-rtl .fl-button{margin-left:0;margin-right:8px}@media (prefers-reduced-motion:reduce){.fl-facebook{animation:none}}.fl-facebook.fl-auto-dark .fl-fb-notification,body.fl-dark .fl-facebook .fl-fb-notification,html.fl-dark .fl-facebook .fl-fb-notification{background-color:var(--fb-bg-dark);box-shadow:0 1px 2px rgba(0,0,0,.2);color:var(--fb-text-dark)}.fl-facebook.fl-auto-dark .fl-fb-notification:hover,body.fl-dark .fl-facebook .fl-fb-notification:hover,html.fl-dark .fl-facebook .fl-fb-notification:hover{background-color:var(--fb-hover-dark)}.fl-facebook.fl-auto-dark .fl-user-name,body.fl-dark .fl-facebook .fl-user-name,html.fl-dark .fl-facebook .fl-user-name{color:var(--fb-name-color-dark)}.fl-facebook.fl-auto-dark .fl-time,body.fl-dark .fl-facebook .fl-time,html.fl-dark .fl-facebook .fl-time{color:var(--fb-text-secondary-dark)}.fl-facebook.fl-auto-dark .fl-button,body.fl-dark .fl-facebook .fl-button,html.fl-dark .fl-facebook .fl-button{background:var(--fb-hover-dark);color:var(--fb-text-secondary-dark)}.fl-facebook.fl-auto-dark .fl-button:hover,body.fl-dark .fl-facebook .fl-button:hover,html.fl-dark .fl-facebook .fl-button:hover{background-color:var(--fb-border-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-success,body.fl-dark .fl-facebook .fl-fb-icon-success,html.fl-dark .fl-facebook .fl-fb-icon-success{background-color:var(--fb-success-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-success svg,body.fl-dark .fl-facebook .fl-fb-icon-success svg,html.fl-dark .fl-facebook .fl-fb-icon-success svg{color:var(--fb-success)}.fl-facebook.fl-auto-dark .fl-fb-icon-info,body.fl-dark .fl-facebook .fl-fb-icon-info,html.fl-dark .fl-facebook .fl-fb-icon-info{background-color:var(--fb-info-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-info svg,body.fl-dark .fl-facebook .fl-fb-icon-info svg,html.fl-dark .fl-facebook .fl-fb-icon-info svg{color:var(--fb-info)}.fl-facebook.fl-auto-dark .fl-fb-icon-warning,body.fl-dark .fl-facebook .fl-fb-icon-warning,html.fl-dark .fl-facebook .fl-fb-icon-warning{background-color:var(--fb-warning-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-warning svg,body.fl-dark .fl-facebook .fl-fb-icon-warning svg,html.fl-dark .fl-facebook .fl-fb-icon-warning svg{color:var(--fb-warning)}.fl-facebook.fl-auto-dark .fl-fb-icon-error,body.fl-dark .fl-facebook .fl-fb-icon-error,html.fl-dark .fl-facebook .fl-fb-icon-error{background-color:var(--fb-error-bg-dark)}.fl-facebook.fl-auto-dark .fl-fb-icon-error svg,body.fl-dark .fl-facebook .fl-fb-icon-error svg,html.fl-dark .fl-facebook .fl-fb-icon-error svg{color:var(--fb-error)} @keyframes flasherIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.fl-flasher{animation:flasherIn .3s ease-out;background-color:var(--background-color,var(--fl-bg-light));border-bottom:none;box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);color:var(--text-color,var(--fl-text-light));font-family:var(--fl-font),serif;line-height:1.5;margin:.75em 0;padding:.75em;position:relative;transition:transform .2s ease;will-change:transform,opacity;word-break:break-word}.fl-flasher:hover{transform:translateY(-2px)}.fl-flasher.fl-rtl{border-radius:0 .375em .375em 0}.fl-flasher:not(.fl-rtl){border-radius:.375em 0 0 .375em}.fl-flasher .fl-content{align-items:center;display:flex}.fl-flasher .fl-icon{font-size:2.5em}.fl-flasher .fl-message,.fl-flasher .fl-title{display:block;line-height:1.25em;margin-left:1em;margin-right:1em}.fl-flasher .fl-title{font-size:1em;font-weight:600}.fl-flasher .fl-message{font-size:.875em;margin-top:.25em}.fl-flasher .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:opacity .2s ease}.fl-flasher .fl-close:focus,.fl-flasher .fl-close:hover{opacity:1}.fl-flasher.fl-rtl{direction:rtl}.fl-flasher.fl-rtl .fl-content{flex-direction:row-reverse}.fl-flasher.fl-rtl .fl-close{left:.75rem;right:auto}.fl-flasher.fl-success{border-left:.8em solid var(--success-color,var(--fl-success))}.fl-flasher.fl-success.fl-rtl{border-left:none;border-right:.8em solid var(--success-color,var(--fl-success))}.fl-flasher.fl-success:not(.fl-rtl){border-left:.8em solid var(--success-color,var(--fl-success));border-right:none}.fl-flasher.fl-success .fl-close,.fl-flasher.fl-success .fl-title{color:var(--success-color,var(--fl-success))}.fl-flasher.fl-success .fl-close:focus,.fl-flasher.fl-success .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-info{border-left:.8em solid var(--info-color,var(--fl-info))}.fl-flasher.fl-info.fl-rtl{border-left:none;border-right:.8em solid var(--info-color,var(--fl-info))}.fl-flasher.fl-info:not(.fl-rtl){border-left:.8em solid var(--info-color,var(--fl-info));border-right:none}.fl-flasher.fl-info .fl-close,.fl-flasher.fl-info .fl-title{color:var(--info-color,var(--fl-info))}.fl-flasher.fl-info .fl-close:focus,.fl-flasher.fl-info .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-warning{border-left:.8em solid var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning.fl-rtl{border-left:none;border-right:.8em solid var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning:not(.fl-rtl){border-left:.8em solid var(--warning-color,var(--fl-warning));border-right:none}.fl-flasher.fl-warning .fl-close,.fl-flasher.fl-warning .fl-title{color:var(--warning-color,var(--fl-warning))}.fl-flasher.fl-warning .fl-close:focus,.fl-flasher.fl-warning .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher.fl-error{border-left:.8em solid var(--error-color,var(--fl-error))}.fl-flasher.fl-error.fl-rtl{border-left:none;border-right:.8em solid var(--error-color,var(--fl-error))}.fl-flasher.fl-error:not(.fl-rtl){border-left:.8em solid var(--error-color,var(--fl-error));border-right:none}.fl-flasher.fl-error .fl-close,.fl-flasher.fl-error .fl-title{color:var(--error-color,var(--fl-error))}.fl-flasher.fl-error .fl-close:focus,.fl-flasher.fl-error .fl-close:hover{transform:translateY(-50%) scale(1.1)}.fl-flasher .fl-progress-bar{bottom:0;display:flex;height:.125em;left:0;overflow:hidden;position:absolute;right:0}.fl-flasher.fl-success .fl-progress-bar{background-color:var(--success-color-light,var(--fl-success-light))}.fl-flasher.fl-success .fl-progress-bar .fl-progress{background-color:var(--success-color,var(--fl-success));height:100%;width:100%}.fl-flasher.fl-info .fl-progress-bar{background-color:var(--info-color-light,var(--fl-info-light))}.fl-flasher.fl-info .fl-progress-bar .fl-progress{background-color:var(--info-color,var(--fl-info));height:100%;width:100%}.fl-flasher.fl-warning .fl-progress-bar{background-color:var(--warning-color-light,var(--fl-warning-light))}.fl-flasher.fl-warning .fl-progress-bar .fl-progress{background-color:var(--warning-color,var(--fl-warning));height:100%;width:100%}.fl-flasher.fl-error .fl-progress-bar{background-color:var(--error-color-light,var(--fl-error-light))}.fl-flasher.fl-error .fl-progress-bar .fl-progress{background-color:var(--error-color,var(--fl-error));height:100%;width:100%}@media (prefers-color-scheme:dark){.fl-flasher.fl-auto-dark{background-color:var(--dark-background-color,var(--fl-bg-dark));color:var(--dark-text-color,var(--fl-text-dark))}}body.fl-dark .fl-flasher,html.fl-dark .fl-flasher{background-color:var(--dark-background-color,var(--fl-bg-dark));color:var(--dark-text-color,var(--fl-text-dark))}@media (prefers-reduced-motion:reduce){.fl-flasher{animation:none}.fl-flasher:hover{transform:none}.fl-flasher .fl-close:focus,.fl-flasher .fl-close:hover{transform:translateY(-50%)}} .fl-google{--md-bg-light:#fff;--md-bg-dark:#2d2d2d;--md-text-light:rgba(0,0,0,.87);--md-text-secondary-light:rgba(0,0,0,.6);--md-text-dark:hsla(0,0%,100%,.87);--md-text-secondary-dark:hsla(0,0%,100%,.6);--md-elevation:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);--md-elevation-dark:0 3px 5px -1px rgba(0,0,0,.4),0 6px 10px 0 rgba(0,0,0,.28),0 1px 18px 0 rgba(0,0,0,.24);--md-border-radius:4px;--md-success:#43a047;--md-info:#1e88e5;--md-warning:#fb8c00;--md-error:#e53935;--md-animation-duration:0.3s;--md-ripple-duration:0.6s}@keyframes mdSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes mdRipple{to{opacity:0;transform:scale(4)}}.fl-google{animation:mdSlideUp var(--md-animation-duration) cubic-bezier(.4,0,.2,1);font-family:Roboto,Segoe UI,Helvetica,Arial,sans-serif;margin:8px 0;max-width:400px;position:relative;width:100%}.fl-google .fl-md-card{background-color:var(--md-bg-light);border-radius:var(--md-border-radius);box-shadow:var(--md-elevation);color:var(--md-text-light);overflow:hidden}.fl-google .fl-content{align-items:flex-start;display:flex;padding:16px}.fl-google .fl-icon-wrapper{color:var(--md-text-secondary-light);flex-shrink:0;margin-right:16px}.fl-google .fl-text-content{flex:1}.fl-google .fl-title{font-size:1rem;font-weight:500;margin-bottom:4px}.fl-google .fl-message{color:var(--md-text-secondary-light);font-size:.875rem;line-height:1.43}.fl-google .fl-actions{display:flex;justify-content:flex-end;padding:8px}.fl-google .fl-action-button{background:transparent;border:none;border-radius:4px;color:currentColor;cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:500;letter-spacing:.0892857143em;overflow:hidden;padding:8px 12px;position:relative;text-transform:uppercase;transition:background-color .2s}.fl-google .fl-action-button:focus,.fl-google .fl-action-button:hover{background-color:rgba(0,0,0,.04)}.fl-google .fl-action-button:after{background:currentColor;border-radius:50%;content:"";height:5px;opacity:0;pointer-events:none;position:absolute;transform:scale(1);width:5px}.fl-google .fl-action-button:active:after{animation:mdRipple var(--md-ripple-duration) linear;opacity:.3}.fl-google.fl-success .fl-action-button,.fl-google.fl-success .fl-icon-wrapper{color:var(--md-success)}.fl-google.fl-info .fl-action-button,.fl-google.fl-info .fl-icon-wrapper{color:var(--md-info)}.fl-google.fl-warning .fl-action-button,.fl-google.fl-warning .fl-icon-wrapper{color:var(--md-warning)}.fl-google.fl-error .fl-action-button,.fl-google.fl-error .fl-icon-wrapper{color:var(--md-error)}.fl-google .fl-progress-bar{bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-google .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-google.fl-success .fl-progress{background-color:var(--md-success)}.fl-google.fl-info .fl-progress{background-color:var(--md-info)}.fl-google.fl-warning .fl-progress{background-color:var(--md-warning)}.fl-google.fl-error .fl-progress{background-color:var(--md-error)}.fl-google.fl-rtl{direction:rtl}.fl-google.fl-rtl .fl-content{flex-direction:row-reverse}.fl-google.fl-rtl .fl-icon-wrapper{margin-left:16px;margin-right:0}.fl-google.fl-rtl .fl-actions{justify-content:flex-start}.fl-google.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-google,.fl-google .fl-action-button:active:after{animation:none}}.fl-google.fl-auto-dark .fl-md-card,body.fl-dark .fl-google .fl-md-card,html.fl-dark .fl-google .fl-md-card{background-color:var(--md-bg-dark);box-shadow:var(--md-elevation-dark);color:var(--md-text-dark)}.fl-google.fl-auto-dark .fl-message,body.fl-dark .fl-google .fl-message,html.fl-dark .fl-google .fl-message{color:var(--md-text-secondary-dark)}.fl-google.fl-auto-dark .fl-action-button:focus,.fl-google.fl-auto-dark .fl-action-button:hover,body.fl-dark .fl-google .fl-action-button:focus,body.fl-dark .fl-google .fl-action-button:hover,html.fl-dark .fl-google .fl-action-button:focus,html.fl-dark .fl-google .fl-action-button:hover{background-color:hsla(0,0%,100%,.08)} .fl-ios{--ios-bg-light:hsla(0,0%,100%,.85);--ios-bg-dark:rgba(30,30,30,.85);--ios-text-light:#000;--ios-text-secondary-light:#6e6e6e;--ios-text-dark:#fff;--ios-text-secondary-dark:#a8a8a8;--ios-border-radius:13px;--ios-shadow:0 2px 12px rgba(0,0,0,.15);--ios-shadow-dark:0 2px 12px rgba(0,0,0,.35);--ios-icon-size:18px;--ios-blur:30px;--ios-success:#34c759;--ios-info:#007aff;--ios-warning:#ff9500;--ios-error:#ff3b30;--ios-animation-duration:0.4s}@keyframes iosSlideIn{0%{opacity:0;transform:translateY(-15px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes iosExpand{0%{max-height:0;opacity:0}to{max-height:100px;opacity:1}}.fl-ios{animation:iosSlideIn var(--ios-animation-duration) cubic-bezier(.23,1,.32,1);font-family:-apple-system,BlinkMacSystemFont,San Francisco,Helvetica Neue,Helvetica,Arial,sans-serif;margin:10px 0;max-width:400px;position:relative;width:100%;will-change:transform,opacity}.fl-ios .fl-ios-notification{backdrop-filter:blur(var(--ios-blur));-webkit-backdrop-filter:blur(var(--ios-blur));background-color:var(--ios-bg-light);border-radius:var(--ios-border-radius);box-shadow:var(--ios-shadow);color:var(--ios-text-light);padding:12px 15px;position:relative}.fl-ios .fl-header{align-items:center;display:flex;margin-bottom:8px;padding-right:20px}.fl-ios .fl-app-icon{align-items:center;background-color:currentColor;border-radius:5px;display:flex;flex-shrink:0;height:22px;justify-content:center;margin-right:8px;width:22px}.fl-ios .fl-icon-svg{color:#fff;height:14px;width:14px}.fl-ios .fl-app-info{align-items:baseline;display:flex;flex:1;justify-content:space-between}.fl-ios .fl-app-name{font-size:.85rem;font-weight:600}.fl-ios .fl-time{color:var(--ios-text-secondary-light);flex-shrink:0;font-size:.75rem;margin-left:5px}.fl-ios .fl-content{animation:iosExpand .3s forwards;animation-delay:.1s;overflow:hidden}.fl-ios .fl-message{font-size:.95rem;line-height:1.3;margin:0;padding-right:15px}.fl-ios .fl-close{align-items:center;background-color:rgba(0,0,0,.1);border:none;border-radius:50%;color:var(--ios-text-light);cursor:pointer;display:flex;font-size:14px;height:18px;justify-content:center;line-height:1;opacity:.7;padding:0;position:absolute;right:12px;top:10px;transition:opacity .2s;width:18px}.fl-ios .fl-close:focus,.fl-ios .fl-close:hover{opacity:1}.fl-ios.fl-success .fl-app-icon{color:var(--ios-success)}.fl-ios.fl-info .fl-app-icon{color:var(--ios-info)}.fl-ios.fl-warning .fl-app-icon{color:var(--ios-warning)}.fl-ios.fl-error .fl-app-icon{color:var(--ios-error)}.fl-ios.fl-rtl{direction:rtl}.fl-ios.fl-rtl .fl-header{padding-left:20px;padding-right:0}.fl-ios.fl-rtl .fl-app-icon{margin-left:8px;margin-right:0}.fl-ios.fl-rtl .fl-time{margin-left:0;margin-right:5px}.fl-ios.fl-rtl .fl-message{padding-left:15px;padding-right:0}.fl-ios.fl-rtl .fl-close{left:12px;right:auto}@media (prefers-reduced-motion:reduce){.fl-ios{animation:none}.fl-ios .fl-content{animation:none;max-height:none;opacity:1}}@media screen and (max-width:480px){.fl-ios{width:100%}}.fl-ios.fl-auto-dark .fl-ios-notification,body.fl-dark .fl-ios .fl-ios-notification,html.fl-dark .fl-ios .fl-ios-notification{background-color:var(--ios-bg-dark);box-shadow:var(--ios-shadow-dark);color:var(--ios-text-dark)}.fl-ios.fl-auto-dark .fl-time,body.fl-dark .fl-ios .fl-time,html.fl-dark .fl-ios .fl-time{color:var(--ios-text-secondary-dark)}.fl-ios.fl-auto-dark .fl-close,body.fl-dark .fl-ios .fl-close,html.fl-dark .fl-ios .fl-close{background-color:hsla(0,0%,100%,.2);color:var(--ios-text-dark)} -.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade:last-child{margin-bottom:0}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)} +.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)} .fl-material{--md-bg-light:#fff;--md-bg-dark:#2d2d2d;--md-text-light:rgba(0,0,0,.87);--md-text-secondary-light:rgba(0,0,0,.6);--md-text-dark:hsla(0,0%,100%,.87);--md-text-secondary-dark:hsla(0,0%,100%,.6);--md-elevation:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);--md-elevation-dark:0 3px 5px -1px rgba(0,0,0,.4),0 6px 10px 0 rgba(0,0,0,.28),0 1px 18px 0 rgba(0,0,0,.24);--md-border-radius:4px;--md-success:#43a047;--md-info:#1e88e5;--md-warning:#fb8c00;--md-error:#e53935;--md-animation-duration:0.3s;--md-ripple-duration:0.6s}@keyframes mdSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes mdRipple{to{opacity:0;transform:scale(4)}}.fl-material{animation:mdSlideUp var(--md-animation-duration) cubic-bezier(.4,0,.2,1);font-family:Roboto,Segoe UI,Helvetica,Arial,sans-serif;margin:8px 0;max-width:400px;position:relative;width:100%}.fl-material .fl-md-card{background-color:var(--md-bg-light);border-radius:var(--md-border-radius);box-shadow:var(--md-elevation);color:var(--md-text-light);overflow:hidden}.fl-material .fl-content{align-items:flex-start;display:flex;padding:16px}.fl-material .fl-text-content{flex:1}.fl-material .fl-message{color:var(--md-text-secondary-light);font-size:.875rem;line-height:1.43}.fl-material .fl-actions{display:flex;justify-content:flex-end;padding:8px}.fl-material .fl-action-button{background:transparent;border:none;border-radius:4px;color:currentColor;cursor:pointer;font-family:inherit;font-size:.8125rem;font-weight:500;letter-spacing:.0892857143em;overflow:hidden;padding:8px 12px;position:relative;text-transform:uppercase;transition:background-color .2s}.fl-material .fl-action-button:focus,.fl-material .fl-action-button:hover{background-color:rgba(0,0,0,.04)}.fl-material .fl-action-button:after{background:currentColor;border-radius:50%;content:"";height:5px;opacity:0;pointer-events:none;position:absolute;transform:scale(1);width:5px}.fl-material .fl-action-button:active:after{animation:mdRipple var(--md-ripple-duration) linear;opacity:.3}.fl-material.fl-success .fl-action-button,.fl-material.fl-success .fl-icon-wrapper{color:var(--md-success)}.fl-material.fl-info .fl-action-button,.fl-material.fl-info .fl-icon-wrapper{color:var(--md-info)}.fl-material.fl-warning .fl-action-button,.fl-material.fl-warning .fl-icon-wrapper{color:var(--md-warning)}.fl-material.fl-error .fl-action-button,.fl-material.fl-error .fl-icon-wrapper{color:var(--md-error)}.fl-material .fl-progress-bar{bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-material .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-material.fl-success .fl-progress{background-color:var(--md-success)}.fl-material.fl-info .fl-progress{background-color:var(--md-info)}.fl-material.fl-warning .fl-progress{background-color:var(--md-warning)}.fl-material.fl-error .fl-progress{background-color:var(--md-error)}.fl-material.fl-rtl{direction:rtl}.fl-material.fl-rtl .fl-content{flex-direction:row-reverse}.fl-material.fl-rtl .fl-icon-wrapper{margin-left:16px;margin-right:0}.fl-material.fl-rtl .fl-actions{justify-content:flex-start}.fl-material.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-material,.fl-material .fl-action-button:active:after{animation:none}}.fl-material.fl-auto-dark .fl-md-card,body.fl-dark .fl-material .fl-md-card,html.fl-dark .fl-material .fl-md-card{background-color:var(--md-bg-dark);box-shadow:var(--md-elevation-dark);color:var(--md-text-dark)}.fl-material.fl-auto-dark .fl-message,body.fl-dark .fl-material .fl-message,html.fl-dark .fl-material .fl-message{color:var(--md-text-secondary-dark)}.fl-material.fl-auto-dark .fl-action-button:focus,.fl-material.fl-auto-dark .fl-action-button:hover,body.fl-dark .fl-material .fl-action-button:focus,body.fl-dark .fl-material .fl-action-button:hover,html.fl-dark .fl-material .fl-action-button:focus,html.fl-dark .fl-material .fl-action-button:hover{background-color:hsla(0,0%,100%,.08)} -.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal:last-child{margin-bottom:0}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)} -.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)} +.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)} +.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;overflow:hidden;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)} .fl-onyx{--onyx-bg-light:#fff;--onyx-bg-dark:#1e1e1e;--onyx-text-light:#333;--onyx-text-dark:#f5f5f5;--onyx-shadow:0 8px 30px rgba(0,0,0,.12);--onyx-shadow-dark:0 8px 30px rgba(0,0,0,.25);--onyx-border-radius:1rem;--onyx-success:#10b981;--onyx-info:#3b82f6;--onyx-warning:#f59e0b;--onyx-error:#ef4444}@keyframes onyxIn{0%{filter:blur(3px);opacity:0;transform:translateY(15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}.fl-onyx{animation:onyxIn .4s cubic-bezier(.16,1,.3,1);background-color:var(--onyx-bg-light);border-radius:var(--onyx-border-radius);box-shadow:var(--onyx-shadow);color:var(--onyx-text-light);font-family:var(--fl-font),serif;margin:.75rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity,filter}.fl-onyx:after,.fl-onyx:before{border-radius:50%;content:"";height:6px;position:absolute;width:6px;z-index:1}.fl-onyx:before{left:10px;top:10px}.fl-onyx:after{bottom:10px;right:10px}.fl-onyx .fl-content{align-items:center;display:flex;padding-left:.4rem}.fl-onyx .fl-text{flex:1;position:relative}.fl-onyx .fl-message{font-size:.925rem;font-weight:400;letter-spacing:.01rem;line-height:1.5}.fl-onyx .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1.25rem;height:1.75rem;justify-content:center;margin-left:1rem;opacity:.6;padding:.25rem;transition:all .2s ease;width:1.75rem}.fl-onyx .fl-close:focus,.fl-onyx .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-onyx .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-onyx .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-onyx.fl-success .fl-progress-bar .fl-progress,.fl-onyx.fl-success:after,.fl-onyx.fl-success:before{background-color:var(--onyx-success)}.fl-onyx.fl-info .fl-progress-bar .fl-progress,.fl-onyx.fl-info:after,.fl-onyx.fl-info:before{background-color:var(--onyx-info)}.fl-onyx.fl-warning .fl-progress-bar .fl-progress,.fl-onyx.fl-warning:after,.fl-onyx.fl-warning:before{background-color:var(--onyx-warning)}.fl-onyx.fl-error .fl-progress-bar .fl-progress,.fl-onyx.fl-error:after,.fl-onyx.fl-error:before{background-color:var(--onyx-error)}.fl-onyx.fl-rtl{direction:rtl}.fl-onyx.fl-rtl .fl-content{padding-left:0;padding-right:.4rem}.fl-onyx.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-onyx.fl-rtl:before{left:auto;right:10px}.fl-onyx.fl-rtl:after{left:10px;right:auto}.fl-onyx.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-onyx{animation:none}}.fl-onyx.fl-auto-dark,body.fl-dark .fl-onyx,html.fl-dark .fl-onyx{background-color:var(--onyx-bg-dark);box-shadow:var(--onyx-shadow-dark);color:var(--onyx-text-dark)}.fl-onyx.fl-auto-dark .fl-close:focus,.fl-onyx.fl-auto-dark .fl-close:hover,body.fl-dark .fl-onyx .fl-close:focus,body.fl-dark .fl-onyx .fl-close:hover,html.fl-dark .fl-onyx .fl-close:focus,html.fl-dark .fl-onyx .fl-close:hover{background-color:hsla(0,0%,100%,.1)} .fl-ruby{--ruby-text:#fff;--ruby-text-dark:#f8fafc;--ruby-border-radius:1.125rem;--ruby-shadow:0 10px 25px -3px rgba(0,0,0,.2);--ruby-success-gradient:linear-gradient(135deg,#059669,#10b981);--ruby-info-gradient:linear-gradient(135deg,#2563eb,#3b82f6);--ruby-warning-gradient:linear-gradient(135deg,#d97706,#f59e0b);--ruby-error-gradient:linear-gradient(135deg,#b91c1c,#ef4444)}@keyframes rubyShine{0%{left:-100%;opacity:.6}60%{left:100%;opacity:.6}to{left:100%;opacity:0}}@keyframes rubyIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.fl-ruby{animation:rubyIn .35s cubic-bezier(.21,1.02,.73,1);border-radius:var(--ruby-border-radius);box-shadow:var(--ruby-shadow);color:var(--ruby-text);font-family:var(--fl-font),serif;margin:.75rem 0;overflow:hidden;padding:0;position:relative;will-change:transform,opacity}.fl-ruby .fl-shine{animation:rubyShine 6s infinite;animation-delay:1s;background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3) 50%,hsla(0,0%,100%,0));height:100%;left:-100%;position:absolute;top:0;transform:skewX(-20deg);width:50%;z-index:1}.fl-ruby .fl-content{align-items:center;display:flex;padding:.9rem 1.1rem;position:relative;z-index:2}.fl-ruby .fl-icon-circle{align-items:center;background-color:hsla(0,0%,100%,.25);border-radius:50%;display:flex;flex-shrink:0;height:2.25rem;justify-content:center;margin-right:1rem;width:2.25rem}.fl-ruby .fl-icon{background-color:transparent;color:var(--ruby-text);font-size:1rem;margin:0}.fl-ruby .fl-text{flex:1}.fl-ruby .fl-message{font-size:.925rem;font-weight:500;line-height:1.5}.fl-ruby .fl-close{align-items:center;background:hsla(0,0%,100%,.2);border:none;border-radius:50%;color:var(--ruby-text);cursor:pointer;display:flex;flex-shrink:0;font-size:1.1rem;height:1.6rem;justify-content:center;margin-left:.75rem;opacity:.8;padding:.1rem;transition:all .2s;width:1.6rem}.fl-ruby .fl-close:focus,.fl-ruby .fl-close:hover{background:hsla(0,0%,100%,.3);opacity:1;transform:scale(1.05)}.fl-ruby .fl-progress-bar{background-color:rgba(0,0,0,.1);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;right:0;z-index:3}.fl-ruby .fl-progress-bar .fl-progress{background:hsla(0,0%,100%,.4);height:100%;width:100%}.fl-ruby.fl-success{background:var(--ruby-success-gradient)}.fl-ruby.fl-info{background:var(--ruby-info-gradient)}.fl-ruby.fl-warning{background:var(--ruby-warning-gradient)}.fl-ruby.fl-error{background:var(--ruby-error-gradient)}.fl-ruby.fl-rtl{direction:rtl}.fl-ruby.fl-rtl .fl-icon-circle{margin-left:1rem;margin-right:0}.fl-ruby.fl-rtl .fl-close{margin-left:0;margin-right:.75rem}.fl-ruby.fl-rtl .fl-shine{transform:skewX(20deg)}.fl-ruby.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-ruby{animation:none}.fl-ruby .fl-shine{display:none}} -.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire:last-child{margin-bottom:0}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}} +.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}} .fl-slack{--slack-bg-light:#fff;--slack-bg-dark:#1a1d21;--slack-hover-light:#f8f8f8;--slack-hover-dark:#222529;--slack-text-light:#1d1c1d;--slack-text-secondary-light:#616061;--slack-text-dark:#e0e0e0;--slack-text-secondary-dark:#ababad;--slack-border-light:#e0e0e0;--slack-border-dark:#393a3e;--slack-shadow:0 1px 0 rgba(0,0,0,.1);--slack-shadow-dark:0 1px 0 rgba(0,0,0,.2);--slack-avatar-size:36px;--slack-success:#2bac76;--slack-info:#1264a3;--slack-warning:#e8912d;--slack-error:#e01e5a;--slack-animation-duration:150ms}@keyframes slackFadeIn{0%{opacity:0}to{opacity:1}}.fl-slack{animation:slackFadeIn var(--slack-animation-duration) ease-out;font-family:Lato,Slack-Lato,Helvetica Neue,Helvetica,sans-serif;margin:4px 0;max-width:500px;position:relative;width:100%}.fl-slack .fl-slack-message{align-items:flex-start;background-color:var(--slack-bg-light);border:1px solid var(--slack-border-light);border-radius:4px;box-shadow:var(--slack-shadow);color:var(--slack-text-light);display:flex;padding:8px 20px 8px 8px;transition:background-color .1s ease}.fl-slack .fl-slack-message:hover{background-color:var(--slack-hover-light)}.fl-slack .fl-avatar{align-items:center;background-color:currentColor;border-radius:4px;display:flex;flex-shrink:0;height:var(--slack-avatar-size);justify-content:center;margin-right:8px;width:var(--slack-avatar-size)}.fl-slack .fl-type-icon{color:#fff;font-size:16px;font-weight:700}.fl-slack .fl-message-content{flex:1;min-width:0}.fl-slack .fl-message-text{font-size:15px;line-height:1.46668;word-break:break-word}.fl-slack .fl-actions{opacity:0;position:absolute;right:6px;top:8px;transition:opacity .1s ease;visibility:hidden}.fl-slack .fl-slack-message:hover .fl-actions{opacity:1;visibility:visible}.fl-slack .fl-close{align-items:center;background:none;border:none;border-radius:4px;color:var(--slack-text-secondary-light);cursor:pointer;display:flex;justify-content:center;padding:4px}.fl-slack .fl-close:hover{background-color:var(--slack-hover-light);color:var(--slack-text-light)}.fl-slack.fl-success .fl-avatar{color:var(--slack-success)}.fl-slack.fl-info .fl-avatar{color:var(--slack-info)}.fl-slack.fl-warning .fl-avatar{color:var(--slack-warning)}.fl-slack.fl-error .fl-avatar{color:var(--slack-error)}.fl-slack.fl-rtl{direction:rtl}.fl-slack.fl-rtl .fl-avatar{margin-left:8px;margin-right:0}.fl-slack.fl-rtl .fl-username{margin-left:4px;margin-right:0}.fl-slack.fl-rtl .fl-actions{left:6px;right:auto}.fl-slack.fl-rtl .fl-slack-message{padding:8px 8px 8px 20px}@media (prefers-reduced-motion:reduce){.fl-slack{animation:none}}.fl-slack.fl-auto-dark .fl-slack-message,body.fl-dark .fl-slack .fl-slack-message,html.fl-dark .fl-slack .fl-slack-message{background-color:var(--slack-bg-dark);border-color:var(--slack-border-dark);box-shadow:var(--slack-shadow-dark);color:var(--slack-text-dark)}.fl-slack.fl-auto-dark .fl-slack-message:hover,body.fl-dark .fl-slack .fl-slack-message:hover,html.fl-dark .fl-slack .fl-slack-message:hover{background-color:var(--slack-hover-dark)}.fl-slack.fl-auto-dark .fl-close,body.fl-dark .fl-slack .fl-close,html.fl-dark .fl-slack .fl-close{color:var(--slack-text-secondary-dark)}.fl-slack.fl-auto-dark .fl-close:hover,body.fl-dark .fl-slack .fl-close:hover,html.fl-dark .fl-slack .fl-close:hover{background-color:var(--slack-hover-dark);color:var(--slack-text-dark)} \ No newline at end of file diff --git a/src/Prime/Resources/public/themes/amber/amber.min.css b/src/Prime/Resources/public/themes/amber/amber.min.css index 360d5c70..43d38785 100644 --- a/src/Prime/Resources/public/themes/amber/amber.min.css +++ b/src/Prime/Resources/public/themes/amber/amber.min.css @@ -1 +1 @@ -.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber:last-child{margin-bottom:0}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)} \ No newline at end of file +.fl-amber{--amber-bg-light:#fff;--amber-bg-dark:#1e293b;--amber-text-light:#4b5563;--amber-text-dark:#f1f5f9;--amber-shadow:0 5px 15px rgba(0,0,0,.08);--amber-shadow-dark:0 5px 15px rgba(0,0,0,.2);--amber-border-radius:0.4rem;--amber-success:#10b981;--amber-info:#3b82f6;--amber-warning:#f59e0b;--amber-error:#ef4444}@keyframes amberIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.fl-amber{animation:amberIn .3s ease-out;background-color:var(--amber-bg-light);border-radius:var(--amber-border-radius);box-shadow:var(--amber-shadow);color:var(--amber-text-light);font-family:var(--fl-font),serif;margin:.6rem 0;padding:.85rem 1rem;position:relative;will-change:transform,opacity}.fl-amber .fl-content{align-items:center;display:flex}.fl-amber .fl-icon{font-size:1.85em;margin-right:.8rem}.fl-amber .fl-text{flex:1}.fl-amber .fl-message{font-size:.875em;line-height:1.4}.fl-amber .fl-close{background:none;border:none;color:currentColor;cursor:pointer;flex-shrink:0;font-size:1.15rem;margin-left:1rem;opacity:.6;padding:.25rem;touch-action:manipulation;transition:opacity .2s}.fl-amber .fl-close:focus,.fl-amber .fl-close:hover{opacity:1}.fl-amber .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-amber .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-amber.fl-success .fl-close{color:var(--amber-success)}.fl-amber.fl-info .fl-close{color:var(--amber-info)}.fl-amber.fl-warning .fl-close{color:var(--amber-warning)}.fl-amber.fl-error .fl-close{color:var(--amber-error)}.fl-amber.fl-rtl{direction:rtl}.fl-amber.fl-rtl .fl-icon{margin-left:.8rem;margin-right:0}.fl-amber.fl-rtl .fl-close{margin-left:0;margin-right:1rem}.fl-amber.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-amber{animation:none}}.fl-amber.fl-auto-dark,body.fl-dark .fl-amber,html.fl-dark .fl-amber{background-color:var(--amber-bg-dark);box-shadow:var(--amber-shadow-dark);color:var(--amber-text-dark)} \ No newline at end of file diff --git a/src/Prime/Resources/public/themes/crystal/crystal.min.css b/src/Prime/Resources/public/themes/crystal/crystal.min.css index f6d9e00c..363c48a3 100644 --- a/src/Prime/Resources/public/themes/crystal/crystal.min.css +++ b/src/Prime/Resources/public/themes/crystal/crystal.min.css @@ -1 +1 @@ -.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal:last-child{margin-bottom:0}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)} \ No newline at end of file +.fl-crystal{--crystal-bg-light:#fff;--crystal-bg-dark:rgba(30,30,30,.95);--crystal-text-light:#2c3e50;--crystal-text-dark:hsla(0,0%,100%,.95);--crystal-shadow:rgba(0,0,0,.08);--crystal-shadow-dark:rgba(0,0,0,.25)}@keyframes crystalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes crystalPulse{0%{box-shadow:0 2px 8px var(--crystal-shadow)}50%{box-shadow:0 4px 12px var(--crystal-shadow)}to{box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal{animation:crystalIn .3s ease-out;background:var(--crystal-bg-light,var(--fl-bg-light));border-radius:var(--fl-border-radius,4px);box-shadow:0 2px 8px var(--crystal-shadow);font-family:var(--fl-font),serif;margin:0 0 1rem;max-width:380px;position:relative;transition:box-shadow .3s ease;will-change:transform,opacity}.fl-crystal:hover{animation:crystalPulse 2s ease-in-out infinite}.fl-crystal .fl-content{align-items:center;display:flex;gap:.75rem;padding:1rem 2.5rem 1rem 1rem}.fl-crystal .fl-text{flex:1}.fl-crystal .fl-message{color:var(--crystal-text-light,var(--fl-text-light));font-size:.9375rem;line-height:1.4;margin:0}.fl-crystal .fl-close{background:none;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;opacity:.5;padding:.25rem;position:absolute;right:.75rem;top:50%;touch-action:manipulation;transform:translateY(-50%);transition:all .2s ease}.fl-crystal .fl-close:focus,.fl-crystal .fl-close:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.fl-crystal .fl-progress-bar{bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-crystal .fl-progress-bar .fl-progress{height:100%;transform-origin:left center;width:100%}.fl-crystal.fl-success,.fl-crystal.fl-success .fl-message{color:var(--success-color,var(--fl-success))}.fl-crystal.fl-error,.fl-crystal.fl-error .fl-message{color:var(--error-color,var(--fl-error))}.fl-crystal.fl-warning,.fl-crystal.fl-warning .fl-message{color:var(--warning-color,var(--fl-warning))}.fl-crystal.fl-info,.fl-crystal.fl-info .fl-message{color:var(--info-color,var(--fl-info))}.fl-crystal.fl-rtl{direction:rtl}.fl-crystal.fl-rtl .fl-content{padding:1rem 1rem 1rem 2.5rem}.fl-crystal.fl-rtl .fl-close{left:.75rem;right:auto}.fl-crystal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-crystal{animation:none}.fl-crystal:hover{animation:none;box-shadow:0 2px 8px var(--crystal-shadow)}}.fl-crystal.fl-auto-dark,body.fl-dark .fl-crystal,html.fl-dark .fl-crystal{background-color:var(--crystal-bg-dark,var(--fl-bg-dark));box-shadow:0 2px 8px var(--crystal-shadow-dark)}.fl-crystal.fl-auto-dark .fl-message,body.fl-dark .fl-crystal .fl-message,html.fl-dark .fl-crystal .fl-message{color:var(--crystal-text-dark,var(--fl-text-dark))}.fl-crystal.fl-auto-dark:hover,body.fl-dark .fl-crystal:hover,html.fl-dark .fl-crystal:hover{animation:none;box-shadow:0 4px 16px var(--crystal-shadow-dark)} \ No newline at end of file diff --git a/src/Prime/Resources/public/themes/facebook/facebook.min.js b/src/Prime/Resources/public/themes/facebook/facebook.min.js index 631034f4..3e1b35ca 100644 --- a/src/Prime/Resources/public/themes/facebook/facebook.min.js +++ b/src/Prime/Resources/public/themes/facebook/facebook.min.js @@ -1 +1 @@ -!function(n,i){"object"==typeof exports&&"undefined"!=typeof module?i(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],i):i((n="undefined"!=typeof globalThis?globalThis:n||self).flasher)}(this,(function(n){"use strict";const i={render:n=>{var i;const{type:s,message:e}=n,l="error"===s||"warning"===s,t=l?"alert":"status",o=l?"assertive":"polite",r=String((null===(i=n.options)||void 0===i?void 0:i.timestamp)||"2025-03-02 06:49:21").split(" ")[1].substring(0,5);return`\n
    \n
    \n
    \n ${(()=>{switch(s){case"success":return'
    \n \n \n \n
    ';case"error":return'
    \n \n \n \n
    ';case"warning":return'
    \n \n \n \n
    ';case"info":return'
    \n \n \n \n
    '}return""})()}\n
    \n
    \n
    \n ${e}\n
    \n
    \n ${r}\n
    \n
    \n
    \n \n
    \n
    \n
    `}};n.addTheme("facebook",i)})); +!function(n,i){"object"==typeof exports&&"undefined"!=typeof module?i(require("@flasher/flasher")):"function"==typeof define&&define.amd?define(["@flasher/flasher"],i):i((n="undefined"!=typeof globalThis?globalThis:n||self).flasher)}(this,(function(n){"use strict";const i={render:n=>{const{type:i,message:e}=n,s="error"===i||"warning"===i,t=s?"alert":"status",l=s?"assertive":"polite",o=(new Date).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"});return`\n
    \n
    \n
    \n ${(()=>{switch(i){case"success":return'
    \n \n \n \n
    ';case"error":return'
    \n \n \n \n
    ';case"warning":return'
    \n \n \n \n
    ';case"info":return'
    \n \n \n \n
    '}return""})()}\n
    \n
    \n
    \n ${e}\n
    \n
    \n ${o}\n
    \n
    \n
    \n \n
    \n
    \n
    `}};n.addTheme("facebook",i)})); diff --git a/src/Prime/Resources/public/themes/jade/jade.min.css b/src/Prime/Resources/public/themes/jade/jade.min.css index 3acc21a0..4c073476 100644 --- a/src/Prime/Resources/public/themes/jade/jade.min.css +++ b/src/Prime/Resources/public/themes/jade/jade.min.css @@ -1 +1 @@ -.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade:last-child{margin-bottom:0}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)} \ No newline at end of file +.fl-jade{--jade-text-light:#5f6c7b;--jade-text-dark:#e2e8f0;--jade-shadow:0 8px 24px hsla(210,8%,62%,.1);--jade-shadow-dark:0 8px 24px rgba(0,0,0,.2);--jade-border-radius:1rem;--jade-transition:0.3s cubic-bezier(0.4,0,0.2,1);--jade-success-bg:#f0fdf4;--jade-success-color:#16a34a;--jade-info-bg:#eff6ff;--jade-info-color:#3b82f6;--jade-warning-bg:#fffbeb;--jade-warning-color:#f59e0b;--jade-error-bg:#fef2f2;--jade-error-color:#dc2626;--jade-success-bg-dark:rgba(22,163,74,.15);--jade-info-bg-dark:rgba(59,130,246,.15);--jade-warning-bg-dark:rgba(245,158,11,.15);--jade-error-bg-dark:rgba(220,38,38,.15)}@keyframes jadeIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.fl-jade{animation:jadeIn .4s var(--jade-transition);border:1px solid transparent;border-radius:var(--jade-border-radius);box-shadow:var(--jade-shadow);font-family:var(--fl-font),serif;margin:.5rem 0;overflow:hidden;padding:1rem 1.25rem;position:relative;will-change:transform,opacity}.fl-jade .fl-content{align-items:center;display:flex}.fl-jade .fl-message{flex:1;font-size:.875rem;font-weight:500;line-height:1.5;padding-right:.75rem}.fl-jade .fl-close{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1.125rem;height:1.875rem;justify-content:center;opacity:.6;padding:.375rem;transition:all var(--jade-transition);width:1.875rem}.fl-jade .fl-close:focus,.fl-jade .fl-close:hover{background-color:rgba(0,0,0,.05);opacity:1}.fl-jade .fl-progress-bar{border-radius:0 0 var(--jade-border-radius) var(--jade-border-radius);bottom:0;height:3px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-jade .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-jade.fl-success{background-color:var(--jade-success-bg);border-color:rgba(22,163,74,.1)}.fl-jade.fl-success,.fl-jade.fl-success .fl-close{color:var(--jade-success-color)}.fl-jade.fl-success .fl-close:focus,.fl-jade.fl-success .fl-close:hover{background-color:rgba(22,163,74,.1)}.fl-jade.fl-success .fl-progress-bar .fl-progress{background-color:var(--jade-success-color)}.fl-jade.fl-info{background-color:var(--jade-info-bg);border-color:rgba(59,130,246,.1)}.fl-jade.fl-info,.fl-jade.fl-info .fl-close{color:var(--jade-info-color)}.fl-jade.fl-info .fl-close:focus,.fl-jade.fl-info .fl-close:hover{background-color:rgba(59,130,246,.1)}.fl-jade.fl-info .fl-progress-bar .fl-progress{background-color:var(--jade-info-color)}.fl-jade.fl-warning{background-color:var(--jade-warning-bg);border-color:rgba(245,158,11,.1)}.fl-jade.fl-warning,.fl-jade.fl-warning .fl-close{color:var(--jade-warning-color)}.fl-jade.fl-warning .fl-close:focus,.fl-jade.fl-warning .fl-close:hover{background-color:rgba(245,158,11,.1)}.fl-jade.fl-warning .fl-progress-bar .fl-progress{background-color:var(--jade-warning-color)}.fl-jade.fl-error{background-color:var(--jade-error-bg);border-color:rgba(220,38,38,.1)}.fl-jade.fl-error,.fl-jade.fl-error .fl-close{color:var(--jade-error-color)}.fl-jade.fl-error .fl-close:focus,.fl-jade.fl-error .fl-close:hover{background-color:rgba(220,38,38,.1)}.fl-jade.fl-error .fl-progress-bar .fl-progress{background-color:var(--jade-error-color)}.fl-jade.fl-rtl{direction:rtl}.fl-jade.fl-rtl .fl-message{padding-left:.75rem;padding-right:0}.fl-jade.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-jade{animation:none}}.fl-jade.fl-auto-dark,body.fl-dark .fl-jade,html.fl-dark .fl-jade{box-shadow:var(--jade-shadow-dark);color:var(--jade-text-dark)}.fl-jade.fl-auto-dark.fl-success,body.fl-dark .fl-jade.fl-success,html.fl-dark .fl-jade.fl-success{background-color:var(--jade-success-bg-dark);border-color:rgba(22,163,74,.2)}.fl-jade.fl-auto-dark.fl-info,body.fl-dark .fl-jade.fl-info,html.fl-dark .fl-jade.fl-info{background-color:var(--jade-info-bg-dark);border-color:rgba(59,130,246,.2)}.fl-jade.fl-auto-dark.fl-warning,body.fl-dark .fl-jade.fl-warning,html.fl-dark .fl-jade.fl-warning{background-color:var(--jade-warning-bg-dark);border-color:rgba(245,158,11,.2)}.fl-jade.fl-auto-dark.fl-error,body.fl-dark .fl-jade.fl-error,html.fl-dark .fl-jade.fl-error{background-color:var(--jade-error-bg-dark);border-color:rgba(220,38,38,.2)}.fl-jade.fl-auto-dark .fl-close:focus,.fl-jade.fl-auto-dark .fl-close:hover,body.fl-dark .fl-jade .fl-close:focus,body.fl-dark .fl-jade .fl-close:hover,html.fl-dark .fl-jade .fl-close:focus,html.fl-dark .fl-jade .fl-close:hover{background-color:hsla(0,0%,100%,.1)} \ No newline at end of file diff --git a/src/Prime/Resources/public/themes/minimal/minimal.min.css b/src/Prime/Resources/public/themes/minimal/minimal.min.css index b0763c21..26797f51 100644 --- a/src/Prime/Resources/public/themes/minimal/minimal.min.css +++ b/src/Prime/Resources/public/themes/minimal/minimal.min.css @@ -1 +1 @@ -.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal:last-child{margin-bottom:0}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)} \ No newline at end of file +.fl-minimal{--minimal-bg-light:hsla(0,0%,100%,.8);--minimal-bg-dark:rgba(25,25,25,.8);--minimal-text-light:#333;--minimal-text-dark:#f5f5f5;--minimal-shadow:0 2px 8px rgba(0,0,0,.08);--minimal-shadow-dark:0 2px 8px rgba(0,0,0,.15);--minimal-border-radius:6px;--minimal-border-color:rgba(0,0,0,.05);--minimal-border-color-dark:hsla(0,0%,100%,.1);--minimal-success:rgba(34,197,94,.9);--minimal-info:rgba(14,165,233,.9);--minimal-warning:rgba(245,158,11,.9);--minimal-error:rgba(239,68,68,.9)}@keyframes minimalIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.fl-minimal{animation:minimalIn .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background-color:var(--minimal-bg-light);border:1px solid var(--minimal-border-color);border-radius:var(--minimal-border-radius);box-shadow:var(--minimal-shadow);color:var(--minimal-text-light);font-family:-apple-system,BlinkMacSystemFont,var(--fl-font),sans-serif;margin:.5rem 0;max-width:320px;padding:.75rem 1rem;position:relative;will-change:transform,opacity}.fl-minimal .fl-content{align-items:center;display:flex;gap:.75rem}.fl-minimal .fl-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.fl-minimal .fl-message{flex:1;font-size:.875rem;font-weight:450;line-height:1.4;margin:0}.fl-minimal .fl-close{align-items:center;background:none;border:none;color:currentColor;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:1.5rem;justify-content:center;opacity:.5;padding:.25rem;transition:opacity .15s;width:1.5rem}.fl-minimal .fl-close:focus,.fl-minimal .fl-close:hover{opacity:.8}.fl-minimal .fl-progress-bar{border-radius:0 0 var(--minimal-border-radius) var(--minimal-border-radius);bottom:0;height:2px;left:0;opacity:.7;overflow:hidden;position:absolute;right:0}.fl-minimal .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-minimal.fl-success .fl-dot,.fl-minimal.fl-success .fl-progress-bar .fl-progress{background-color:var(--minimal-success)}.fl-minimal.fl-info .fl-dot,.fl-minimal.fl-info .fl-progress-bar .fl-progress{background-color:var(--minimal-info)}.fl-minimal.fl-warning .fl-dot,.fl-minimal.fl-warning .fl-progress-bar .fl-progress{background-color:var(--minimal-warning)}.fl-minimal.fl-error .fl-dot,.fl-minimal.fl-error .fl-progress-bar .fl-progress{background-color:var(--minimal-error)}.fl-minimal.fl-rtl{direction:rtl}.fl-minimal.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-minimal{animation:none}}.fl-minimal.fl-auto-dark,body.fl-dark .fl-minimal,html.fl-dark .fl-minimal{background-color:var(--minimal-bg-dark);border-color:var(--minimal-border-color-dark);box-shadow:var(--minimal-shadow-dark);color:var(--minimal-text-dark)} \ No newline at end of file diff --git a/src/Prime/Resources/public/themes/neon/neon.min.css b/src/Prime/Resources/public/themes/neon/neon.min.css index 3ee7e09c..36d9d64a 100644 --- a/src/Prime/Resources/public/themes/neon/neon.min.css +++ b/src/Prime/Resources/public/themes/neon/neon.min.css @@ -1 +1 @@ -.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)} \ No newline at end of file +.fl-neon{--neon-bg-light:hsla(0,0%,100%,.9);--neon-bg-dark:rgba(15,23,42,.9);--neon-text-light:#334155;--neon-text-dark:#f1f5f9;--neon-shadow:0 8px 30px rgba(0,0,0,.12);--neon-shadow-dark:0 8px 30px rgba(0,0,0,.25);--neon-border-radius:12px;--neon-success:#10b981;--neon-info:#3b82f6;--neon-warning:#f59e0b;--neon-error:#ef4444;--neon-glow-strength:10px;--neon-animation-duration:0.35s}@keyframes neonEntrance{0%{filter:blur(3px);opacity:0;transform:translateY(-15px)}to{filter:blur(0);opacity:1;transform:translateY(0)}}@keyframes neonGlow{0%,to{filter:drop-shadow(0 0 var(--neon-glow-strength) currentColor)}50%{filter:drop-shadow(0 0 calc(var(--neon-glow-strength)*.7) currentColor)}}.fl-neon{animation:neonEntrance var(--neon-animation-duration) ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:var(--neon-bg-light);border-radius:var(--neon-border-radius);box-shadow:var(--neon-shadow);color:var(--neon-text-light);font-family:"Inter",var(--fl-font),sans-serif;margin:12px 0;overflow:hidden;padding:14px 18px;position:relative;will-change:transform,opacity,filter}.fl-neon .fl-icon-box{align-items:center;animation:neonGlow 3s ease-in-out infinite;border-radius:50%;display:flex;height:24px;justify-content:center;left:16px;position:absolute;top:-12px;width:24px}.fl-neon .fl-icon-box:before{border-radius:50%;content:"";height:100%;opacity:.4;position:absolute;width:100%}.fl-neon .fl-icon-box:after{border-radius:50%;content:"";height:10px;position:relative;width:10px;z-index:1}.fl-neon .fl-content{align-items:center;display:flex}.fl-neon .fl-message{flex:1;font-size:.9375rem;font-weight:500;line-height:1.5}.fl-neon .fl-close{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;margin-left:16px;opacity:.6;padding:0;transition:all .2s ease;width:28px}.fl-neon .fl-close:focus,.fl-neon .fl-close:hover{background-color:rgba(0,0,0,.06);opacity:1}.fl-neon .fl-progress-bar{border-radius:0 0 var(--neon-border-radius) var(--neon-border-radius);bottom:0;height:3px;left:0;overflow:hidden;position:absolute;right:0}.fl-neon .fl-progress-bar .fl-progress{height:100%;width:100%}.fl-neon.fl-success .fl-icon-box{color:var(--neon-success)}.fl-neon.fl-success .fl-icon-box:after,.fl-neon.fl-success .fl-icon-box:before,.fl-neon.fl-success .fl-progress{background-color:var(--neon-success)}.fl-neon.fl-info .fl-icon-box{color:var(--neon-info)}.fl-neon.fl-info .fl-icon-box:after,.fl-neon.fl-info .fl-icon-box:before,.fl-neon.fl-info .fl-progress{background-color:var(--neon-info)}.fl-neon.fl-warning .fl-icon-box{color:var(--neon-warning)}.fl-neon.fl-warning .fl-icon-box:after,.fl-neon.fl-warning .fl-icon-box:before,.fl-neon.fl-warning .fl-progress{background-color:var(--neon-warning)}.fl-neon.fl-error .fl-icon-box{color:var(--neon-error)}.fl-neon.fl-error .fl-icon-box:after,.fl-neon.fl-error .fl-icon-box:before,.fl-neon.fl-error .fl-progress{background-color:var(--neon-error)}.fl-neon.fl-rtl{direction:rtl}.fl-neon.fl-rtl .fl-icon-box{left:auto;right:16px}.fl-neon.fl-rtl .fl-close{margin-left:0;margin-right:16px}.fl-neon.fl-rtl .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-neon,.fl-neon .fl-icon-box{animation:none}}.fl-neon.fl-auto-dark,body.fl-dark .fl-neon,html.fl-dark .fl-neon{background-color:var(--neon-bg-dark);box-shadow:var(--neon-shadow-dark);color:var(--neon-text-dark)}.fl-neon.fl-auto-dark .fl-close:focus,.fl-neon.fl-auto-dark .fl-close:hover,body.fl-dark .fl-neon .fl-close:focus,body.fl-dark .fl-neon .fl-close:hover,html.fl-dark .fl-neon .fl-close:focus,html.fl-dark .fl-neon .fl-close:hover{background-color:hsla(0,0%,100%,.1)} \ No newline at end of file diff --git a/src/Prime/Resources/public/themes/sapphire/sapphire.min.css b/src/Prime/Resources/public/themes/sapphire/sapphire.min.css index 8446dbcd..8f5ea7b7 100644 --- a/src/Prime/Resources/public/themes/sapphire/sapphire.min.css +++ b/src/Prime/Resources/public/themes/sapphire/sapphire.min.css @@ -1 +1 @@ -.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire:last-child{margin-bottom:0}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}} \ No newline at end of file +.fl-sapphire{--sapphire-bg-base:rgba(30,30,30,.9);--sapphire-text:#f0f0f0;--sapphire-shadow:rgba(0,0,0,.15);--sapphire-progress-bg:hsla(0,0%,100%,.2);--sapphire-progress-fill:hsla(0,0%,100%,.9);--sapphire-success:rgba(16,185,129,.95);--sapphire-error:rgba(239,68,68,.95);--sapphire-warning:rgba(245,158,11,.95);--sapphire-info:rgba(59,130,246,.95);--sapphire-animation:0.4s cubic-bezier(0.25,0.46,0.45,0.94)}@keyframes sapphireIn{0%{opacity:0;transform:translateY(10px)}60%{transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.fl-sapphire{animation:sapphireIn var(--sapphire-animation);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:var(--sapphire-bg-base);border-radius:.5em;box-shadow:0 6px 16px var(--sapphire-shadow);color:var(--sapphire-text);font-family:Roboto,var(--fl-font),serif;margin:0 0 .75em;min-width:200px;padding:1em 1.5em;position:relative;transition:all .3s ease;will-change:transform,opacity}.fl-sapphire .fl-message{color:var(--sapphire-text);font-size:.925em;line-height:1.4}.fl-sapphire .fl-progress-bar{background-color:var(--sapphire-progress-bg);border-radius:0 0 .375em .375em;bottom:0;height:4px;left:0;overflow:hidden;position:absolute;right:0}.fl-sapphire .fl-progress-bar .fl-progress{background-color:var(--sapphire-progress-fill);height:100%;transform-origin:left center;width:100%;will-change:transform}.fl-sapphire.fl-success{background-color:var(--sapphire-success)}.fl-sapphire.fl-error{background-color:var(--sapphire-error)}.fl-sapphire.fl-warning{background-color:var(--sapphire-warning)}.fl-sapphire.fl-info{background-color:var(--sapphire-info)}.fl-sapphire.fl-rtl{direction:rtl}.fl-sapphire.fl-rtl .fl-progress .fl-progress{transform-origin:right center}@media (prefers-reduced-motion:reduce){.fl-sapphire{animation:none}} \ No newline at end of file