commit 792676e974f2e9f4e6655292b6b19567e6481175 Author: root Date: Sat Oct 3 15:41:23 2026 +0000 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0cffcb3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +config.json \ No newline at end of file diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..f45ca3c --- /dev/null +++ b/.htaccess @@ -0,0 +1,23 @@ + + ExpiresActive On + + ExpiresByType image/avif "access plus 1 year" + ExpiresByType image/webp "access plus 1 year" + ExpiresByType image/jpeg "access plus 1 year" + ExpiresByType image/png "access plus 1 year" + ExpiresByType image/svg+xml "access plus 1 year" + ExpiresByType image/svg "access plus 1 year" + ExpiresByType image/x-icon "access plus 1 year" + + ExpiresByType font/woff2 "access plus 1 year" + ExpiresByType font/woff "access plus 1 year" + + ExpiresByType text/css "access plus 1 month" + ExpiresByType application/javascript "access plus 1 month" + + + + + Header set Cache-Control "max-age=31536000, public, immutable" + + \ No newline at end of file diff --git a/bootstrap.min.c.css b/bootstrap.min.c.css new file mode 100644 index 0000000..684a4b9 --- /dev/null +++ b/bootstrap.min.c.css @@ -0,0 +1,68 @@ +/* Box sizing */ +*, *::before, *::after { box-sizing: border-box; } + +/* Grid & Containers */ +.container { width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } +@media (min-width: 576px) { .container { max-width: 540px; } } +@media (min-width: 768px) { .container { max-width: 720px; } } +@media (min-width: 992px) { .container { max-width: 960px; } } +@media (min-width: 1200px) { .container { max-width: 1140px; } } + +.row { display: flex; flex-wrap: wrap; margin-right: -15px; margin-left: -15px; } +.col-6, .col-md-4, .col-md-5, .col-md-7 { position: relative; width: 100%; padding-right: 15px; padding-left: 15px; } +.col-6 { flex: 0 0 50%; max-width: 50%; } + +@media (min-width: 768px) { + .col-md-4 { flex: 0 0 33.333333%; max-width: 33.333333%; } + .col-md-5 { flex: 0 0 41.666667%; max-width: 41.666667%; } + .col-md-7 { flex: 0 0 58.333333%; max-width: 58.333333%; } + .order-md-1 { order: 1; } + .d-md-none { display: none !important; } + .d-md-flex { display: flex !important; } + .py-md-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } + .mb-md-0 { margin-bottom: 0 !important; } + .text-md-right { text-align: right !important; } +} + +/* Flex & Display */ +.d-none { display: none !important; } +.d-flex { display: flex !important; } +.flex-column { flex-direction: column !important; } +.align-items-center { align-items: center !important; } + +/* Spacing */ +.m-0 { margin: 0 !important; } +.mb-0 { margin-bottom: 0 !important; } +.mb-2 { margin-bottom: 0.5rem !important; } +.mb-3 { margin-bottom: 1rem !important; } +.mb-4 { margin-bottom: 1.5rem !important; } +.mt-4 { margin-top: 1.5rem !important; } +.mr-4 { margin-right: 1.5rem !important; } +.px-0 { padding-left: 0 !important; padding-right: 0 !important; } +.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } +.py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } +.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } +.py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + +/* Typography & Lists */ +.h5 { font-size: 1.25rem; font-weight: 500; line-height: 1.2; margin-bottom: 0.5rem; } +.list-unstyled { padding-left: 0; list-style: none; } + +/* Navbar & Collapse */ +.navbar { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; } +.navbar-brand { display: inline-block; padding-top: 0.3125rem; padding-bottom: 0.3125rem; white-space: nowrap; } +.navbar-toggler { padding: 0.25rem 0.75rem; font-size: 1.25rem; line-height: 1; background: transparent; border: 1px solid rgba(255,255,255,0.1); border-radius: 0.25rem; cursor: pointer; } +.navbar-toggler-icon { display: inline-block; width: 1.5em; height: 1.5em; vertical-align: middle; content: ""; background: no-repeat center center; background-size: 100% 100%; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.7%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } +.navbar-collapse { flex-basis: 100%; flex-grow: 1; align-items: center; } +.collapse:not(.show) { display: none; } + +/* Nav Links & Pills */ +.nav { display: flex; flex-wrap: wrap; padding-left: 0; margin-bottom: 0; list-style: none; } +.nav-link { display: block; padding: 0.5rem 1rem; text-decoration: none; } + +/* Buttons */ +.btn { display: inline-block; font-weight: 400; text-align: center; vertical-align: middle; user-select: none; border: 1px solid transparent; padding: 0.375rem 0.75rem; font-size: 1rem; line-height: 1.5; border-radius: 0.25rem; text-decoration: none; cursor: pointer; } + +/* Progress bar */ +.progress { display: flex; height: 1rem; overflow: hidden; font-size: 0.75rem; background-color: #e9ecef; border-radius: 0.25rem; } +.progress-bar { display: flex; flex-direction: column; justify-content: center; overflow: hidden; color: #fff; text-align: center; white-space: nowrap; background-color: #007bff; transition: width 0.6s ease; } \ No newline at end of file diff --git a/bootstrap.min.css b/bootstrap.min.css new file mode 100644 index 0000000..83a71b1 --- /dev/null +++ b/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.6.2 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:.875em;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.width{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.width{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background-color:transparent;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentcolor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentcolor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/components/examples.php b/components/examples.php new file mode 100644 index 0000000..50b4eb0 --- /dev/null +++ b/components/examples.php @@ -0,0 +1,313 @@ + + +
+ +
+ <?= htmlspecialchars($labelBefore) ?> + + <?= htmlspecialchars($labelAfter) ?> +
+ +
+
+
+ +
" + data-result="" + data-source-mob="" + data-result-mob=""> +
+ + + + Example 1 + + + + + Example <?= $i ?> + + +
+
+ +
+
+ +
+ + \ No newline at end of file diff --git a/components/form.php b/components/form.php new file mode 100644 index 0000000..b0e41a3 --- /dev/null +++ b/components/form.php @@ -0,0 +1,262 @@ + $maxSide, +]); +$errorMessage = Yii::t('app', 'Возникла ошибка'); +$utmJson = json_encode($UTM ?? [], JSON_UNESCAPED_UNICODE); + +$createApiUrl = ($apiHost ?? '') . '/api/images/public/create'; +$redirectUrlBase = $redirect_url_base ?? ''; +$redirectUrlUtm = $redirect_url_utm ?? ''; + +?> + +
+ +
+
+ +
+

+
+
:
+
+
png
+
jpeg
+
jpg
+
webp
+
heic
+
+
+
+ +
+
+ + +
+ + \ No newline at end of file diff --git a/components/preview.php b/components/preview.php new file mode 100644 index 0000000..087c8f6 --- /dev/null +++ b/components/preview.php @@ -0,0 +1,99 @@ + + +
+ + +
+ + +
+ +
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/components/process.php b/components/process.php new file mode 100644 index 0000000..235bbed --- /dev/null +++ b/components/process.php @@ -0,0 +1,140 @@ + \Yii::t('app', 'Загружаем файл на сервер'), + 'stage1' => \Yii::t('app', 'Улучшаем и увеличиваем'), + 'stage2' => \Yii::t('app', 'Загружаем полученный результат'), +]; +$labelsJson = json_encode($labels, JSON_UNESCAPED_UNICODE); + +?> + +
+
+
+
+
+
+
+
+ + + +
+
+ x  px
+
+
+
+ + + +
+
+
+
+
+
+ + + + +
+
+
+
+ + + +
+
+ x  px
+
+
+
+ + + +
+
+ ≈
+
+
+
+ +
+
+
0%
+
+
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/config.json.example b/config.json.example new file mode 100644 index 0000000..aed8278 --- /dev/null +++ b/config.json.example @@ -0,0 +1,55 @@ +{ + "host": "zoomzilla.ru", + + "utm": { + "indpic": { + "weights": { + "1": 0.2, + "2": 0.3 + }, + "default": "1" + }, + "theme": { + "weights": { + "light": 0.5, + "dark": 0.5 + }, + "default": "dark" + }, + "degr": { + "weights": { + "1": 0.7, + "2": 0.3 + }, + "default": "1" + }, + "registration": { + "weights": { + "before": 0.7, + "after": 0.3 + }, + "default": "before" + }, + "bchoice": { + "weights": { + "a": 0.7, + "b": 0.3 + }, + "default": "a" + }, + "chb": { + "weights": { + "a": 0.7, + "b": 0.3 + }, + "default": "a" + }, + "tp": { + "weights": { + "1": 0.7, + "2": 0.3 + }, + "default": "2" + } + } +} \ No newline at end of file diff --git a/docs/logo-alt.svg b/docs/logo-alt.svg new file mode 100644 index 0000000..9126798 --- /dev/null +++ b/docs/logo-alt.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/logo.svg b/docs/logo.svg new file mode 100644 index 0000000..9126798 --- /dev/null +++ b/docs/logo.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/privacy_policy.pdf b/docs/privacy_policy.pdf new file mode 100644 index 0000000..7dbae00 Binary files /dev/null and b/docs/privacy_policy.pdf differ diff --git a/docs/public_offer.pdf b/docs/public_offer.pdf new file mode 100644 index 0000000..f9ce327 Binary files /dev/null and b/docs/public_offer.pdf differ diff --git a/docs/tariffs.pdf b/docs/tariffs.pdf new file mode 100644 index 0000000..33740f2 Binary files /dev/null and b/docs/tariffs.pdf differ diff --git a/docs/user_agreement.pdf b/docs/user_agreement.pdf new file mode 100644 index 0000000..86c8129 Binary files /dev/null and b/docs/user_agreement.pdf differ diff --git a/favicon/android-chrome-192x192.png b/favicon/android-chrome-192x192.png new file mode 100644 index 0000000..ceedec9 Binary files /dev/null and b/favicon/android-chrome-192x192.png differ diff --git a/favicon/android-chrome-512x512.png b/favicon/android-chrome-512x512.png new file mode 100644 index 0000000..83dcb10 Binary files /dev/null and b/favicon/android-chrome-512x512.png differ diff --git a/favicon/apple-touch-icon.png b/favicon/apple-touch-icon.png new file mode 100644 index 0000000..e73cd1d Binary files /dev/null and b/favicon/apple-touch-icon.png differ diff --git a/favicon/favicon-16x16.png b/favicon/favicon-16x16.png new file mode 100644 index 0000000..933f687 Binary files /dev/null and b/favicon/favicon-16x16.png differ diff --git a/favicon/favicon-32x32.png b/favicon/favicon-32x32.png new file mode 100644 index 0000000..fd03c61 Binary files /dev/null and b/favicon/favicon-32x32.png differ diff --git a/favicon/favicon-48x48.png b/favicon/favicon-48x48.png new file mode 100644 index 0000000..1a6f9ee Binary files /dev/null and b/favicon/favicon-48x48.png differ diff --git a/favicon/favicon.ico b/favicon/favicon.ico new file mode 100644 index 0000000..f03da2f Binary files /dev/null and b/favicon/favicon.ico differ diff --git a/favicon/favicon.svg b/favicon/favicon.svg new file mode 100644 index 0000000..2c60f60 --- /dev/null +++ b/favicon/favicon.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/favicon/site.webmanifest b/favicon/site.webmanifest new file mode 100644 index 0000000..19e8c3f --- /dev/null +++ b/favicon/site.webmanifest @@ -0,0 +1,14 @@ +{ + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/fonts/Inter-Medium.woff2 b/fonts/Inter-Medium.woff2 new file mode 100644 index 0000000..bbdf8fe Binary files /dev/null and b/fonts/Inter-Medium.woff2 differ diff --git a/fonts/Inter-Regular.woff2 b/fonts/Inter-Regular.woff2 new file mode 100644 index 0000000..a9cc52b Binary files /dev/null and b/fonts/Inter-Regular.woff2 differ diff --git a/fonts/Inter-SemiBold.woff2 b/fonts/Inter-SemiBold.woff2 new file mode 100644 index 0000000..500f1c5 Binary files /dev/null and b/fonts/Inter-SemiBold.woff2 differ diff --git a/i18n.php b/i18n.php new file mode 100644 index 0000000..9b4ee19 --- /dev/null +++ b/i18n.php @@ -0,0 +1,107 @@ +>> */ + private static array $messages = []; + + /** @var string */ + public static string $language = 'ru'; + + /** @var array */ + public static array $supportedLanguages = ['ru', 'en']; + + /** + * Initialize i18n and mock Yii::$app + * + * @param string $defaultLang + */ + public static function init(string $defaultLang = 'ru'): void + { + $lang = null; + + // // 1. Language from query parameter (e.g. ?lang=en) + // if (!empty($_GET['lang']) && is_string($_GET['lang'])) { + // $candidate = strtolower(trim($_GET['lang'])); + // if (in_array($candidate, self::$supportedLanguages, true)) { + // $lang = $candidate; + // } + // } + + // // 2. Language from cookie + // if ($lang === null && !empty($_COOKIE['lang']) && is_string($_COOKIE['lang'])) { + // $candidate = strtolower(trim($_COOKIE['lang'])); + // if (in_array($candidate, self::$supportedLanguages, true)) { + // $lang = $candidate; + // } + // } + + // // 3. Language from Accept-Language header + // if ($lang === null && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && is_string($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { + // $candidate = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)); + // if (in_array($candidate, self::$supportedLanguages, true)) { + // $lang = $candidate; + // } + // } + + $lang = 'ru'; + + self::$language = $lang ?? $defaultLang; + } + + /** + * Translates a message to the specified language. + * + * @param string $category Message category (e.g. 'app', 'error') + * @param string $message The message to be translated + * @param array $params Parameters to replace in the message + * @param string|null $language Target language, or null for current + * @return string + */ + public static function t(string $category, string $message, array $params = [], ?string $language = null): string + { + $lang = $language ?: self::$language; + + if (!isset(self::$messages[$lang][$category])) { + $file = __DIR__ . '/messages/' . $lang . '/' . $category . '.php'; + if (file_exists($file)) { + self::$messages[$lang][$category] = (array)(require $file); + } else { + self::$messages[$lang][$category] = []; + } + } + + $translation = self::$messages[$lang][$category][$message] ?? $message; + + // Handle Yii2 deprecated/empty marker + if ($translation === '' || (is_string($translation) && strncmp($translation, '@@', 2) === 0)) { + $translation = $message; + } + + if (!empty($params)) { + $replace = []; + foreach ($params as $key => $value) { + $replace['{' . $key . '}'] = (string)$value; + } + $translation = strtr($translation, $replace); + } + + return $translation; + } + } + + /** + * Standalone shorthand helper for translations + */ + if (!function_exists('t')) { + function t(string $category, string $message, array $params = [], ?string $language = null): string + { + return Yii::t($category, $message, $params, $language); + } + } +} \ No newline at end of file diff --git a/images/bg.jpg b/images/bg.jpg new file mode 100644 index 0000000..829d7a7 Binary files /dev/null and b/images/bg.jpg differ diff --git a/images/confused.svg b/images/confused.svg new file mode 100644 index 0000000..4993690 --- /dev/null +++ b/images/confused.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/images/dark-bg.jpg b/images/dark-bg.jpg new file mode 100644 index 0000000..2c82000 Binary files /dev/null and b/images/dark-bg.jpg differ diff --git a/images/demo/1/1/result.avif b/images/demo/1/1/result.avif new file mode 100644 index 0000000..d2c27d0 Binary files /dev/null and b/images/demo/1/1/result.avif differ diff --git a/images/demo/1/1/result.jpg b/images/demo/1/1/result.jpg new file mode 100644 index 0000000..b229193 Binary files /dev/null and b/images/demo/1/1/result.jpg differ diff --git a/images/demo/1/1/result.webp b/images/demo/1/1/result.webp new file mode 100644 index 0000000..c38ae5a Binary files /dev/null and b/images/demo/1/1/result.webp differ diff --git a/images/demo/1/1/result_mob.avif b/images/demo/1/1/result_mob.avif new file mode 100644 index 0000000..51949c7 Binary files /dev/null and b/images/demo/1/1/result_mob.avif differ diff --git a/images/demo/1/1/source.avif b/images/demo/1/1/source.avif new file mode 100644 index 0000000..c5766bb Binary files /dev/null and b/images/demo/1/1/source.avif differ diff --git a/images/demo/1/1/source.jpg b/images/demo/1/1/source.jpg new file mode 100644 index 0000000..70af0fd Binary files /dev/null and b/images/demo/1/1/source.jpg differ diff --git a/images/demo/1/1/source.webp b/images/demo/1/1/source.webp new file mode 100644 index 0000000..ebbc364 Binary files /dev/null and b/images/demo/1/1/source.webp differ diff --git a/images/demo/1/1/source_mob.avif b/images/demo/1/1/source_mob.avif new file mode 100644 index 0000000..1c3f924 Binary files /dev/null and b/images/demo/1/1/source_mob.avif differ diff --git a/images/demo/1/1/thumb.avif b/images/demo/1/1/thumb.avif new file mode 100644 index 0000000..778af1e Binary files /dev/null and b/images/demo/1/1/thumb.avif differ diff --git a/images/demo/1/1/thumb.jpg b/images/demo/1/1/thumb.jpg new file mode 100644 index 0000000..ec0a57b Binary files /dev/null and b/images/demo/1/1/thumb.jpg differ diff --git a/images/demo/1/1/thumb.webp b/images/demo/1/1/thumb.webp new file mode 100644 index 0000000..2be9cfd Binary files /dev/null and b/images/demo/1/1/thumb.webp differ diff --git a/images/demo/1/1/thumb_mob.avif b/images/demo/1/1/thumb_mob.avif new file mode 100644 index 0000000..0551d93 Binary files /dev/null and b/images/demo/1/1/thumb_mob.avif differ diff --git a/images/demo/1/2/result.avif b/images/demo/1/2/result.avif new file mode 100644 index 0000000..6db27fc Binary files /dev/null and b/images/demo/1/2/result.avif differ diff --git a/images/demo/1/2/result.jpg b/images/demo/1/2/result.jpg new file mode 100644 index 0000000..2b61cfc Binary files /dev/null and b/images/demo/1/2/result.jpg differ diff --git a/images/demo/1/2/result.webp b/images/demo/1/2/result.webp new file mode 100644 index 0000000..3ec12c9 Binary files /dev/null and b/images/demo/1/2/result.webp differ diff --git a/images/demo/1/2/result_mob.avif b/images/demo/1/2/result_mob.avif new file mode 100644 index 0000000..f5931f4 Binary files /dev/null and b/images/demo/1/2/result_mob.avif differ diff --git a/images/demo/1/2/source.avif b/images/demo/1/2/source.avif new file mode 100644 index 0000000..9cdb612 Binary files /dev/null and b/images/demo/1/2/source.avif differ diff --git a/images/demo/1/2/source.jpg b/images/demo/1/2/source.jpg new file mode 100644 index 0000000..43b335d Binary files /dev/null and b/images/demo/1/2/source.jpg differ diff --git a/images/demo/1/2/source.webp b/images/demo/1/2/source.webp new file mode 100644 index 0000000..5cfdc3b Binary files /dev/null and b/images/demo/1/2/source.webp differ diff --git a/images/demo/1/2/source_mob.avif b/images/demo/1/2/source_mob.avif new file mode 100644 index 0000000..a1309aa Binary files /dev/null and b/images/demo/1/2/source_mob.avif differ diff --git a/images/demo/1/2/thumb.avif b/images/demo/1/2/thumb.avif new file mode 100644 index 0000000..87b79aa Binary files /dev/null and b/images/demo/1/2/thumb.avif differ diff --git a/images/demo/1/2/thumb.jpg b/images/demo/1/2/thumb.jpg new file mode 100644 index 0000000..58d528f Binary files /dev/null and b/images/demo/1/2/thumb.jpg differ diff --git a/images/demo/1/2/thumb.webp b/images/demo/1/2/thumb.webp new file mode 100644 index 0000000..fe94662 Binary files /dev/null and b/images/demo/1/2/thumb.webp differ diff --git a/images/demo/1/2/thumb_mob.avif b/images/demo/1/2/thumb_mob.avif new file mode 100644 index 0000000..8070e50 Binary files /dev/null and b/images/demo/1/2/thumb_mob.avif differ diff --git a/images/demo/1/3/result.avif b/images/demo/1/3/result.avif new file mode 100644 index 0000000..1f69663 Binary files /dev/null and b/images/demo/1/3/result.avif differ diff --git a/images/demo/1/3/result.jpg b/images/demo/1/3/result.jpg new file mode 100644 index 0000000..42fd4f3 Binary files /dev/null and b/images/demo/1/3/result.jpg differ diff --git a/images/demo/1/3/result.webp b/images/demo/1/3/result.webp new file mode 100644 index 0000000..c303afc Binary files /dev/null and b/images/demo/1/3/result.webp differ diff --git a/images/demo/1/3/result_mob.avif b/images/demo/1/3/result_mob.avif new file mode 100644 index 0000000..741b7d9 Binary files /dev/null and b/images/demo/1/3/result_mob.avif differ diff --git a/images/demo/1/3/source.avif b/images/demo/1/3/source.avif new file mode 100644 index 0000000..30603a2 Binary files /dev/null and b/images/demo/1/3/source.avif differ diff --git a/images/demo/1/3/source.jpg b/images/demo/1/3/source.jpg new file mode 100644 index 0000000..ec5def1 Binary files /dev/null and b/images/demo/1/3/source.jpg differ diff --git a/images/demo/1/3/source.webp b/images/demo/1/3/source.webp new file mode 100644 index 0000000..0ee59c0 Binary files /dev/null and b/images/demo/1/3/source.webp differ diff --git a/images/demo/1/3/source_mob.avif b/images/demo/1/3/source_mob.avif new file mode 100644 index 0000000..628a2bc Binary files /dev/null and b/images/demo/1/3/source_mob.avif differ diff --git a/images/demo/1/3/thumb.avif b/images/demo/1/3/thumb.avif new file mode 100644 index 0000000..00a2325 Binary files /dev/null and b/images/demo/1/3/thumb.avif differ diff --git a/images/demo/1/3/thumb.jpg b/images/demo/1/3/thumb.jpg new file mode 100644 index 0000000..e44fc27 Binary files /dev/null and b/images/demo/1/3/thumb.jpg differ diff --git a/images/demo/1/3/thumb.webp b/images/demo/1/3/thumb.webp new file mode 100644 index 0000000..b4883d0 Binary files /dev/null and b/images/demo/1/3/thumb.webp differ diff --git a/images/demo/1/3/thumb_mob.avif b/images/demo/1/3/thumb_mob.avif new file mode 100644 index 0000000..f3390ff Binary files /dev/null and b/images/demo/1/3/thumb_mob.avif differ diff --git a/images/demo/1/4/result.avif b/images/demo/1/4/result.avif new file mode 100644 index 0000000..5aff98a Binary files /dev/null and b/images/demo/1/4/result.avif differ diff --git a/images/demo/1/4/result.jpg b/images/demo/1/4/result.jpg new file mode 100644 index 0000000..422d45a Binary files /dev/null and b/images/demo/1/4/result.jpg differ diff --git a/images/demo/1/4/result.webp b/images/demo/1/4/result.webp new file mode 100644 index 0000000..8064dbd Binary files /dev/null and b/images/demo/1/4/result.webp differ diff --git a/images/demo/1/4/result_mob.avif b/images/demo/1/4/result_mob.avif new file mode 100644 index 0000000..13d1c98 Binary files /dev/null and b/images/demo/1/4/result_mob.avif differ diff --git a/images/demo/1/4/source.avif b/images/demo/1/4/source.avif new file mode 100644 index 0000000..53d142c Binary files /dev/null and b/images/demo/1/4/source.avif differ diff --git a/images/demo/1/4/source.jpg b/images/demo/1/4/source.jpg new file mode 100644 index 0000000..1f229f7 Binary files /dev/null and b/images/demo/1/4/source.jpg differ diff --git a/images/demo/1/4/source.webp b/images/demo/1/4/source.webp new file mode 100644 index 0000000..f1181cd Binary files /dev/null and b/images/demo/1/4/source.webp differ diff --git a/images/demo/1/4/source_mob.avif b/images/demo/1/4/source_mob.avif new file mode 100644 index 0000000..8c30b85 Binary files /dev/null and b/images/demo/1/4/source_mob.avif differ diff --git a/images/demo/1/4/thumb.avif b/images/demo/1/4/thumb.avif new file mode 100644 index 0000000..6486458 Binary files /dev/null and b/images/demo/1/4/thumb.avif differ diff --git a/images/demo/1/4/thumb.jpg b/images/demo/1/4/thumb.jpg new file mode 100644 index 0000000..f73acbe Binary files /dev/null and b/images/demo/1/4/thumb.jpg differ diff --git a/images/demo/1/4/thumb.webp b/images/demo/1/4/thumb.webp new file mode 100644 index 0000000..6fcc27d Binary files /dev/null and b/images/demo/1/4/thumb.webp differ diff --git a/images/demo/1/4/thumb_mob.avif b/images/demo/1/4/thumb_mob.avif new file mode 100644 index 0000000..066cbb5 Binary files /dev/null and b/images/demo/1/4/thumb_mob.avif differ diff --git a/images/demo/1/5/result.avif b/images/demo/1/5/result.avif new file mode 100644 index 0000000..2f6a605 Binary files /dev/null and b/images/demo/1/5/result.avif differ diff --git a/images/demo/1/5/result.jpg b/images/demo/1/5/result.jpg new file mode 100644 index 0000000..1788ec8 Binary files /dev/null and b/images/demo/1/5/result.jpg differ diff --git a/images/demo/1/5/result.webp b/images/demo/1/5/result.webp new file mode 100644 index 0000000..ef1ee08 Binary files /dev/null and b/images/demo/1/5/result.webp differ diff --git a/images/demo/1/5/result_mob.avif b/images/demo/1/5/result_mob.avif new file mode 100644 index 0000000..ecef905 Binary files /dev/null and b/images/demo/1/5/result_mob.avif differ diff --git a/images/demo/1/5/source.avif b/images/demo/1/5/source.avif new file mode 100644 index 0000000..da5d1d0 Binary files /dev/null and b/images/demo/1/5/source.avif differ diff --git a/images/demo/1/5/source.jpg b/images/demo/1/5/source.jpg new file mode 100644 index 0000000..216da26 Binary files /dev/null and b/images/demo/1/5/source.jpg differ diff --git a/images/demo/1/5/source.webp b/images/demo/1/5/source.webp new file mode 100644 index 0000000..250eb71 Binary files /dev/null and b/images/demo/1/5/source.webp differ diff --git a/images/demo/1/5/source_mob.avif b/images/demo/1/5/source_mob.avif new file mode 100644 index 0000000..3d9140e Binary files /dev/null and b/images/demo/1/5/source_mob.avif differ diff --git a/images/demo/1/5/thumb.avif b/images/demo/1/5/thumb.avif new file mode 100644 index 0000000..99bfc3e Binary files /dev/null and b/images/demo/1/5/thumb.avif differ diff --git a/images/demo/1/5/thumb.jpg b/images/demo/1/5/thumb.jpg new file mode 100644 index 0000000..2af62bd Binary files /dev/null and b/images/demo/1/5/thumb.jpg differ diff --git a/images/demo/1/5/thumb.webp b/images/demo/1/5/thumb.webp new file mode 100644 index 0000000..87e6934 Binary files /dev/null and b/images/demo/1/5/thumb.webp differ diff --git a/images/demo/1/5/thumb_mob.avif b/images/demo/1/5/thumb_mob.avif new file mode 100644 index 0000000..b48d4f1 Binary files /dev/null and b/images/demo/1/5/thumb_mob.avif differ diff --git a/images/demo/2/1/result.avif b/images/demo/2/1/result.avif new file mode 100644 index 0000000..d2c27d0 Binary files /dev/null and b/images/demo/2/1/result.avif differ diff --git a/images/demo/2/1/result.jpg b/images/demo/2/1/result.jpg new file mode 100644 index 0000000..b229193 Binary files /dev/null and b/images/demo/2/1/result.jpg differ diff --git a/images/demo/2/1/result.webp b/images/demo/2/1/result.webp new file mode 100644 index 0000000..c38ae5a Binary files /dev/null and b/images/demo/2/1/result.webp differ diff --git a/images/demo/2/1/result_mob.avif b/images/demo/2/1/result_mob.avif new file mode 100644 index 0000000..8bc9109 Binary files /dev/null and b/images/demo/2/1/result_mob.avif differ diff --git a/images/demo/2/1/source.avif b/images/demo/2/1/source.avif new file mode 100644 index 0000000..c5766bb Binary files /dev/null and b/images/demo/2/1/source.avif differ diff --git a/images/demo/2/1/source.jpg b/images/demo/2/1/source.jpg new file mode 100644 index 0000000..70af0fd Binary files /dev/null and b/images/demo/2/1/source.jpg differ diff --git a/images/demo/2/1/source.webp b/images/demo/2/1/source.webp new file mode 100644 index 0000000..ebbc364 Binary files /dev/null and b/images/demo/2/1/source.webp differ diff --git a/images/demo/2/1/source_mob.avif b/images/demo/2/1/source_mob.avif new file mode 100644 index 0000000..d4a36d5 Binary files /dev/null and b/images/demo/2/1/source_mob.avif differ diff --git a/images/demo/2/1/thumb.avif b/images/demo/2/1/thumb.avif new file mode 100644 index 0000000..778af1e Binary files /dev/null and b/images/demo/2/1/thumb.avif differ diff --git a/images/demo/2/1/thumb.jpg b/images/demo/2/1/thumb.jpg new file mode 100644 index 0000000..ec0a57b Binary files /dev/null and b/images/demo/2/1/thumb.jpg differ diff --git a/images/demo/2/1/thumb.webp b/images/demo/2/1/thumb.webp new file mode 100644 index 0000000..2be9cfd Binary files /dev/null and b/images/demo/2/1/thumb.webp differ diff --git a/images/demo/2/1/thumb_mob.avif b/images/demo/2/1/thumb_mob.avif new file mode 100644 index 0000000..6b77835 Binary files /dev/null and b/images/demo/2/1/thumb_mob.avif differ diff --git a/images/demo/2/2/result.avif b/images/demo/2/2/result.avif new file mode 100644 index 0000000..5aff98a Binary files /dev/null and b/images/demo/2/2/result.avif differ diff --git a/images/demo/2/2/result.jpg b/images/demo/2/2/result.jpg new file mode 100644 index 0000000..422d45a Binary files /dev/null and b/images/demo/2/2/result.jpg differ diff --git a/images/demo/2/2/result.webp b/images/demo/2/2/result.webp new file mode 100644 index 0000000..8064dbd Binary files /dev/null and b/images/demo/2/2/result.webp differ diff --git a/images/demo/2/2/result_mob.avif b/images/demo/2/2/result_mob.avif new file mode 100644 index 0000000..13d1c98 Binary files /dev/null and b/images/demo/2/2/result_mob.avif differ diff --git a/images/demo/2/2/source.avif b/images/demo/2/2/source.avif new file mode 100644 index 0000000..53d142c Binary files /dev/null and b/images/demo/2/2/source.avif differ diff --git a/images/demo/2/2/source.jpg b/images/demo/2/2/source.jpg new file mode 100644 index 0000000..1f229f7 Binary files /dev/null and b/images/demo/2/2/source.jpg differ diff --git a/images/demo/2/2/source.webp b/images/demo/2/2/source.webp new file mode 100644 index 0000000..f1181cd Binary files /dev/null and b/images/demo/2/2/source.webp differ diff --git a/images/demo/2/2/source_mob.avif b/images/demo/2/2/source_mob.avif new file mode 100644 index 0000000..8c30b85 Binary files /dev/null and b/images/demo/2/2/source_mob.avif differ diff --git a/images/demo/2/2/thumb.avif b/images/demo/2/2/thumb.avif new file mode 100644 index 0000000..6486458 Binary files /dev/null and b/images/demo/2/2/thumb.avif differ diff --git a/images/demo/2/2/thumb.jpg b/images/demo/2/2/thumb.jpg new file mode 100644 index 0000000..f73acbe Binary files /dev/null and b/images/demo/2/2/thumb.jpg differ diff --git a/images/demo/2/2/thumb.webp b/images/demo/2/2/thumb.webp new file mode 100644 index 0000000..6fcc27d Binary files /dev/null and b/images/demo/2/2/thumb.webp differ diff --git a/images/demo/2/2/thumb_mob.avif b/images/demo/2/2/thumb_mob.avif new file mode 100644 index 0000000..fc34afe Binary files /dev/null and b/images/demo/2/2/thumb_mob.avif differ diff --git a/images/demo/2/3/result.avif b/images/demo/2/3/result.avif new file mode 100644 index 0000000..6db27fc Binary files /dev/null and b/images/demo/2/3/result.avif differ diff --git a/images/demo/2/3/result.jpg b/images/demo/2/3/result.jpg new file mode 100644 index 0000000..2b61cfc Binary files /dev/null and b/images/demo/2/3/result.jpg differ diff --git a/images/demo/2/3/result.webp b/images/demo/2/3/result.webp new file mode 100644 index 0000000..3ec12c9 Binary files /dev/null and b/images/demo/2/3/result.webp differ diff --git a/images/demo/2/3/result_mob.avif b/images/demo/2/3/result_mob.avif new file mode 100644 index 0000000..f5931f4 Binary files /dev/null and b/images/demo/2/3/result_mob.avif differ diff --git a/images/demo/2/3/source.avif b/images/demo/2/3/source.avif new file mode 100644 index 0000000..9cdb612 Binary files /dev/null and b/images/demo/2/3/source.avif differ diff --git a/images/demo/2/3/source.jpg b/images/demo/2/3/source.jpg new file mode 100644 index 0000000..43b335d Binary files /dev/null and b/images/demo/2/3/source.jpg differ diff --git a/images/demo/2/3/source.webp b/images/demo/2/3/source.webp new file mode 100644 index 0000000..5cfdc3b Binary files /dev/null and b/images/demo/2/3/source.webp differ diff --git a/images/demo/2/3/source_mob.avif b/images/demo/2/3/source_mob.avif new file mode 100644 index 0000000..a1309aa Binary files /dev/null and b/images/demo/2/3/source_mob.avif differ diff --git a/images/demo/2/3/thumb.avif b/images/demo/2/3/thumb.avif new file mode 100644 index 0000000..87b79aa Binary files /dev/null and b/images/demo/2/3/thumb.avif differ diff --git a/images/demo/2/3/thumb.jpg b/images/demo/2/3/thumb.jpg new file mode 100644 index 0000000..58d528f Binary files /dev/null and b/images/demo/2/3/thumb.jpg differ diff --git a/images/demo/2/3/thumb.webp b/images/demo/2/3/thumb.webp new file mode 100644 index 0000000..fe94662 Binary files /dev/null and b/images/demo/2/3/thumb.webp differ diff --git a/images/demo/2/3/thumb_mob.avif b/images/demo/2/3/thumb_mob.avif new file mode 100644 index 0000000..302f2fc Binary files /dev/null and b/images/demo/2/3/thumb_mob.avif differ diff --git a/images/demo/2/4/result.avif b/images/demo/2/4/result.avif new file mode 100644 index 0000000..2f6a605 Binary files /dev/null and b/images/demo/2/4/result.avif differ diff --git a/images/demo/2/4/result.jpg b/images/demo/2/4/result.jpg new file mode 100644 index 0000000..1788ec8 Binary files /dev/null and b/images/demo/2/4/result.jpg differ diff --git a/images/demo/2/4/result.webp b/images/demo/2/4/result.webp new file mode 100644 index 0000000..ef1ee08 Binary files /dev/null and b/images/demo/2/4/result.webp differ diff --git a/images/demo/2/4/result_mob.avif b/images/demo/2/4/result_mob.avif new file mode 100644 index 0000000..ecef905 Binary files /dev/null and b/images/demo/2/4/result_mob.avif differ diff --git a/images/demo/2/4/source.avif b/images/demo/2/4/source.avif new file mode 100644 index 0000000..da5d1d0 Binary files /dev/null and b/images/demo/2/4/source.avif differ diff --git a/images/demo/2/4/source.jpg b/images/demo/2/4/source.jpg new file mode 100644 index 0000000..216da26 Binary files /dev/null and b/images/demo/2/4/source.jpg differ diff --git a/images/demo/2/4/source.webp b/images/demo/2/4/source.webp new file mode 100644 index 0000000..250eb71 Binary files /dev/null and b/images/demo/2/4/source.webp differ diff --git a/images/demo/2/4/source_mob.avif b/images/demo/2/4/source_mob.avif new file mode 100644 index 0000000..3d9140e Binary files /dev/null and b/images/demo/2/4/source_mob.avif differ diff --git a/images/demo/2/4/thumb.avif b/images/demo/2/4/thumb.avif new file mode 100644 index 0000000..99bfc3e Binary files /dev/null and b/images/demo/2/4/thumb.avif differ diff --git a/images/demo/2/4/thumb.jpg b/images/demo/2/4/thumb.jpg new file mode 100644 index 0000000..2af62bd Binary files /dev/null and b/images/demo/2/4/thumb.jpg differ diff --git a/images/demo/2/4/thumb.webp b/images/demo/2/4/thumb.webp new file mode 100644 index 0000000..87e6934 Binary files /dev/null and b/images/demo/2/4/thumb.webp differ diff --git a/images/demo/2/4/thumb_mob.avif b/images/demo/2/4/thumb_mob.avif new file mode 100644 index 0000000..1ba9fbb Binary files /dev/null and b/images/demo/2/4/thumb_mob.avif differ diff --git a/images/demo/2/5/result.avif b/images/demo/2/5/result.avif new file mode 100644 index 0000000..1f69663 Binary files /dev/null and b/images/demo/2/5/result.avif differ diff --git a/images/demo/2/5/result.jpg b/images/demo/2/5/result.jpg new file mode 100644 index 0000000..42fd4f3 Binary files /dev/null and b/images/demo/2/5/result.jpg differ diff --git a/images/demo/2/5/result.webp b/images/demo/2/5/result.webp new file mode 100644 index 0000000..c303afc Binary files /dev/null and b/images/demo/2/5/result.webp differ diff --git a/images/demo/2/5/result_mob.avif b/images/demo/2/5/result_mob.avif new file mode 100644 index 0000000..741b7d9 Binary files /dev/null and b/images/demo/2/5/result_mob.avif differ diff --git a/images/demo/2/5/source.avif b/images/demo/2/5/source.avif new file mode 100644 index 0000000..30603a2 Binary files /dev/null and b/images/demo/2/5/source.avif differ diff --git a/images/demo/2/5/source.jpg b/images/demo/2/5/source.jpg new file mode 100644 index 0000000..ec5def1 Binary files /dev/null and b/images/demo/2/5/source.jpg differ diff --git a/images/demo/2/5/source.webp b/images/demo/2/5/source.webp new file mode 100644 index 0000000..0ee59c0 Binary files /dev/null and b/images/demo/2/5/source.webp differ diff --git a/images/demo/2/5/source_mob.avif b/images/demo/2/5/source_mob.avif new file mode 100644 index 0000000..628a2bc Binary files /dev/null and b/images/demo/2/5/source_mob.avif differ diff --git a/images/demo/2/5/thumb.avif b/images/demo/2/5/thumb.avif new file mode 100644 index 0000000..00a2325 Binary files /dev/null and b/images/demo/2/5/thumb.avif differ diff --git a/images/demo/2/5/thumb.jpg b/images/demo/2/5/thumb.jpg new file mode 100644 index 0000000..e44fc27 Binary files /dev/null and b/images/demo/2/5/thumb.jpg differ diff --git a/images/demo/2/5/thumb.webp b/images/demo/2/5/thumb.webp new file mode 100644 index 0000000..b4883d0 Binary files /dev/null and b/images/demo/2/5/thumb.webp differ diff --git a/images/demo/2/5/thumb_mob.avif b/images/demo/2/5/thumb_mob.avif new file mode 100644 index 0000000..6bba050 Binary files /dev/null and b/images/demo/2/5/thumb_mob.avif differ diff --git a/images/dropzone-bg.svg b/images/dropzone-bg.svg new file mode 100644 index 0000000..479c200 --- /dev/null +++ b/images/dropzone-bg.svg @@ -0,0 +1,12 @@ + +
+ + + + + + + + + +
diff --git a/images/dropzone-icon.svg b/images/dropzone-icon.svg new file mode 100644 index 0000000..d57dc73 --- /dev/null +++ b/images/dropzone-icon.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/images/modal-bg-2.svg b/images/modal-bg-2.svg new file mode 100644 index 0000000..4d9ba9d --- /dev/null +++ b/images/modal-bg-2.svg @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/payment.svg b/images/payment.svg new file mode 100644 index 0000000..7c4b3f7 --- /dev/null +++ b/images/payment.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/sandglass.svg b/images/sandglass.svg new file mode 100644 index 0000000..4199ce8 --- /dev/null +++ b/images/sandglass.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/images/spinner.svg b/images/spinner.svg new file mode 100644 index 0000000..fa75552 --- /dev/null +++ b/images/spinner.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/sprite.svg b/images/sprite.svg new file mode 100644 index 0000000..f881ed1 --- /dev/null +++ b/images/sprite.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/index.php b/index.php new file mode 100644 index 0000000..e01b29f --- /dev/null +++ b/index.php @@ -0,0 +1,108 @@ + $weight) { + $current += (float)$weight; + if ($rand <= $current) { + return (string)$key; + } + } + + $keys = array_keys($weights); + return (string)end($keys); +} + +$get_params = $_GET; + +if (isset($config['utm']) && is_array($config['utm'])) { + foreach ($get_params as $key => $value) { + if (!isset($config['utm'][$key])) { + continue; + } + + if (isset($config['utm'][$key]['weights'][$value])) { + continue; + } + + if ($value !== 'rnd') { + unset($get_params[$key]); + continue; + } + + $weights = $config['utm'][$key]['weights'] ?? []; + $get_params[$key] = getWeightedRandom($weights); + } + + foreach ($config['utm'] as $key => $value) { + if (isset($get_params[$key])) { + continue; + } + + $get_params[$key] = $config['utm'][$key]['default']; + } +} + +$UTM = $get_params; +$host = $config['host'] ?? ($_SERVER['HTTP_HOST'] ?? ''); +$apiHost = $host ? (preg_match('#^https?://#', $host) ? rtrim($host, '/') : 'https://' . rtrim($host, '/')) : ''; + +$redirect_url_base = ($apiHost ? $apiHost : '') . '/public/upscale?id='; +$redirect_url_utm = http_build_query($get_params); + +$assetsUriPrefix = $config['assetsUriPrefix'] ?? ''; +if ($assetsUriPrefix === '' && !is_dir(__DIR__ . '/images') && !empty($apiHost)) { + $assetsUriPrefix = $apiHost; +} + +$fontsUrl = $config['fontsUrl'] ?? ($assetsUriPrefix ? $assetsUriPrefix . '/fonts' : 'fonts'); +$favicon = (object)[ + 'baseUrl' => $config['faviconUrl'] ?? ($assetsUriPrefix ? $assetsUriPrefix . '/favicon' : 'favicon') +]; +$logoAltExt = $config['logoAltExt'] ?? 'svg'; +$spritePath = $config['spritePath'] ?? ($assetsUriPrefix ? $assetsUriPrefix . '/images/sprite.svg' : 'images/sprite.svg'); +$default_title = $config['title'] ?? 'Улучшение изображения'; + +$indpic = isset($UTM['indpic']) && preg_match('/^[a-zA-Z0-9_-]+$/', (string)$UTM['indpic']) + ? (string)$UTM['indpic'] + : ($config['utm']['indpic']['default'] ?? '2'); + +function renderComponent(string $name, array $params = []): void +{ + global $assetsUriPrefix, $fontsUrl, $favicon, $logoAltExt, $spritePath, $UTM, $config, $indpic, $apiHost, $redirect_url_base, $redirect_url_utm; + extract($params, EXTR_SKIP); + $componentFile = __DIR__ . '/components/' . $name . '.php'; + if (file_exists($componentFile)) { + require $componentFile; + } +} + +require_once __DIR__ . '/template.php'; +?> + \ No newline at end of file diff --git a/messages/config.php b/messages/config.php new file mode 100644 index 0000000..7c1883f --- /dev/null +++ b/messages/config.php @@ -0,0 +1,13 @@ + __DIR__ . '/../modules/frontend/views', + 'messagePath' => __DIR__ . '/../messages', + 'languages' => ['ru', 'en'], + 'translator' => 'Yii::t', + 'sort' => true, + 'overwrite' => true, + 'removeUnused' => false, // Не удалять старые, а пометить как @@...@@ + 'only' => ['*.php'], + 'format' => 'php', +]; \ No newline at end of file diff --git a/messages/en/app.php b/messages/en/app.php new file mode 100644 index 0000000..caef2e9 --- /dev/null +++ b/messages/en/app.php @@ -0,0 +1,369 @@ + '... credits', + '... месяц' => '... months', + '... фото х2' => '... image x2', + '... фото х4' => '... image x4', + '1 фото=1 кредит' => '1 image = 1 credit', + '1 фото=2 кредита' => '1 image = 2 credits', + '3 суток' => '3 days', + '4 цифры' => '4 digits', + '500 кредитов' => '500 credits', + '500 кредитов будут начислены при условии активности тарифного плана' => 'The 500 credits will be added while your subscription plan remains active', + 'API тарифы' => 'API Pricing', + 'Drop files here to upload' => 'Drop images here to upload', + 'Email' => 'Email', + 'Email {0} успешно подтверждён' => 'Email address {0} verified', + 'Email добавлен' => 'Email address added', + 'Email не найден. Начните заново.' => 'Email address not found. Please start over.', + 'Generate passwd hash "{0}" from password {1}' => 'Generate password hash "{0}" from password {1}', + 'New Relic' => 'Zoomeo', + 'PIN из письма' => 'Verification code', + 'Pin для верификации отправлен на {0}' => 'Verification code sent to {0}', + 'Toggle navigation' => 'Open menu', + 'auth_key отсутствует — невозможно выполнить оплату' => 'Authorization data is missing. Payment cannot be completed.', + 'download' => 'Download image', + 'meta-description' => 'Online service for automatic AI photo and image quality enhancement.', + 'price_format' => '${price}', + 'remove' => 'Delete image', + 'system.hide.api-pricing' => 'true', + 'system.hide.banks-modal' => 'true', + 'system.hide.footer' => 'true', + 'system.hide.receipts' => 'true', + 'title' => 'Image Enhancement', + '{0} - {1}' => '{0} - {1}', + '{amount} кредитов' => '{amount} credits', + '{count} фото х2' => '{count} images · 2×', + '{count} фото х4' => '{count} images · 4×', + '{credits} кредитов' => '{credits} credits', + 'Автоматическое продление тарифа будет отменено но тариф останется активен' => 'Automatic renewal will be turned off, but your plan will remain active', + 'Автопродление включено' => 'Automatic renewal is on', + 'Аккаунт и доступ' => 'Account & Access', + 'Аккаунт успешно удален' => 'Account deleted', + 'Активационное письмо может идти до 10 минут.' => 'The activation email may take up to 10 minutes to arrive.', + 'Активен' => 'Active', + 'Активный' => 'Active', + 'Активных подписок по карте с маской "{0}" не найдено' => 'No active subscriptions found for card {0}', + 'Альфабанк' => 'Альфабанк', + 'Архивы' => 'Archives', + 'Базовая коррекция резкости, света и общего качества' => 'Basic adjustments to sharpness, lighting, and overall quality', + 'Базовый' => 'Basic', + 'Баланс' => 'Balance', + 'Баланс: {balance}' => 'Balance: {balance}', + 'Банк ВТБ' => 'Банк ВТБ', + 'Бизнес Базовый' => 'Basic', + 'Бизнес Базовый цена' => '$0.08 / image', + 'Бизнес Максимальный' => 'Maximum', + 'Бизнес Максимальный цена' => '$0.32 / image', + 'Бизнес Профессиональный' => 'Professional', + 'Бизнес Профессиональный цена' => '$0.24 / image', + 'Бизнес Расширенный' => 'Advanced', + 'Бизнес Расширенный цена' => '$0.16 / image', + 'Быстрая подготовка фото к публикации' => 'Quickly prepares images for publishing', + 'В Вашей галерее пока нет изображений' => 'There are no images in your gallery yet', + 'Ваш PIN для подтверждения email на {0}' => 'Your verification code for {0}', + 'Ваш баланс' => 'Your Balance', + 'Ваш пароль для {0}' => 'Your password for {0}', + 'Ваш пинкод для {0}' => 'Your verification code for {0}', + 'Ваш тариф' => 'Your Plan', + 'Ваша почта' => 'Your Email', + 'Ваше сообщение
успешно отправлено' => 'Your message was
sent successfully', + 'Ваше сообщение не отправлено!' => 'Your message was not sent', + 'Введен неверный код' => 'Invalid code entered', + 'Введите 4-значный PIN' => 'Enter the 4-digit verification code', + 'Введите PIN' => 'Enter the verification code', + 'Введите PIN, отправленный на email' => 'Enter the verification code sent to your email', + 'Введите email' => 'Enter your email address', + 'Введите email для проверки и отправки PIN' => 'Enter your email to receive a verification code', + 'Введите корректный email' => 'Enter a valid email address', + 'Введите первые 6 и последние 4 цифры номера карты' => 'Enter the first 6 and last 4 digits of your card number', + 'Вернуться на главную' => 'Return to home page', + 'Вернуться назад' => 'Go Back', + 'Возникла ошибка' => 'Something went wrong', + 'Войти' => 'Sign In', + 'Все ваши данные, галереи и активные подписки будут удалены.' => 'All your data, galleries, and active subscriptions will be deleted.', + 'Всего' => 'Total', + 'Вход' => 'Sign In', + 'Вход в личный кабинет' => 'Sign in to your account', + 'Вы не сможете больше пользоваться вашим аккаунтом, но сможете зарегистрировать новый с такими же данными.' => 'You will no longer be able to use this account, but you can create a new one with the same information.', + 'Вы сможете войти снова в любой момент' => 'You can sign back in at any time', + 'Вы сможете пользоваться начисленными кредитами до истечения срока действия тарифного плана' => 'You can use your remaining credits until your plan expires', + 'Вы уверены, что хотите навсегда удалить аккаунт?' => 'Permanently delete your account?', + 'Вы уверены, что хотите удалить ВСЕ изображения?' => 'Delete all images?', + 'Вы уверены, что хотите удалить это изображение?' => 'Delete this image?', + 'Вы успешно вошли' => 'You have successfully logged in', + 'Вы хотите улучшить {count} изображений за {amount} кредитов' => 'Enhance {count} images for {amount} credits?', + 'Выбери до {n} изображений для улучшения' => 'Select up to {n} images
to enhance', + 'Выберите ваш банк' => 'Выберите ваш банк', + 'Выберите другой банк' => 'Выберите другой банк', + 'Выберите подходящий план в разделе тарифов, чтобы начать работу.' => 'Choose a plan to get started.', + 'Выберите тариф перед оплатой' => 'Select a plan before payment', + 'Выбрать тариф' => 'Choose a Plan', + 'Выйти из аккаунта' => 'Sign Out', + 'Выйти из аккаунта?' => 'Sign out?', + 'Выйти из системы' => 'Sign Out', + 'Главная' => 'Home', + 'Дальнейших списаний с вашей карты производится не будет.' => 'Your card will not be charged again.', + 'Данные API будут отправлены на почту.' => 'Your API credentials will be emailed to you.', + 'Детализация подходит для ретуши, печати и промо' => 'Provides enough detail for retouching, printing, and promotional materials', + 'Для бизнеса' => 'For Business', + 'До' => 'Before', + 'Документы' => 'Documents', + 'Другие банки' => 'Другие банки', + 'Забрать подарок' => 'Claim Bonus', + 'Забрать подарок и вернуться в Профиль' => 'Claim Bonus & Return to Profile', + 'Завершите регистрацию' => 'Complete registration', + 'Загружаем полученный результат' => 'Uploading the result', + 'Загружаем файл на сервер' => 'Uploading your file', + 'Загружая изображение, вы соглашаетесь с нашими Условиями и Политикой конфиденциальности' => 'By uploading an image, you agree to our Terms of Use and Privacy Policy', + 'Загружено {count} фото' => '{count} images uploaded', + 'Загрузите изображение' => 'Upload an image', + 'Загрузить' => 'Upload', + 'Загрузить изображение' => 'Upload Image', + 'Загрузка тарифов...' => 'Loading plans...', + 'Загрузка...' => 'Loading...', + 'Запись в историю добавлена!' => 'History entry added', + 'Извините, что-то пошло не так' => 'Sorry, something went wrong', + 'Изменить почту' => 'Change email', + 'Изображение {name} слишком большое ({width}x{height}px). Максимально допустимый размер: {maxSide}px по одной стороне.' => 'Image {name} is too large ({width} × {height} px). Neither side can exceed {maxSide} px.', + 'Изображение слишком большое ({width}x{height}px). Максимальный размер — {maxSide}px по большей стороне.' => 'This image is too large ({width} × {height} px). The longest side cannot exceed {maxSide} px.', + 'Имя_файла_очень_длинн....имя_файла.jpg' => 'file.jpeg', + 'Интернет-магазины' => 'Online Stores', + 'История операций пуста' => 'No transaction history yet', + 'Итог подключения' => 'Connection summary', + 'Как работает подключение' => 'How API Setup Works', + 'Карта используется для списаний за фактически обработанные фотографии.' => 'Your card is charged only for the images you process.', + 'Карточки товаров, портфолио и витрины выглядят детальнее' => 'Adds detail to product listings, portfolios, and storefronts', + 'Каталоги товаров' => 'Product Catalogs', + 'Ключ доступа и краткая инструкция приходят на почту после подключения.' => 'Your API key and a quick-start guide will be emailed to you after setup.', + 'Кому подходит услуга' => 'Who It\'s For', + 'Купить кредиты' => 'Buy Credits', + 'Максимальный' => 'Maximum', + 'Максимальный допустимый размер файла 20 Мб' => 'Maximum file size: 20 MB', + 'Маркетплейсы' => 'Marketplaces', + 'Массовое улучшение и увеличение фотографий через API: для подготовки каталогов, клиентских съёмок, архивных материалов и изображений к печати. Работаем по модели pay as you go: оплата списывается только за фактически обработанные фото.' => 'Enhance and upscale images in bulk via API for product catalogs, client photo shoots, archives, and print-ready files. With pay-as-you-go pricing, you are charged only for the images you process.', + 'Масштаб определяет стоимость обработки одного изображения.' => 'The upscale factor determines the cost per image.', + 'Масштабы' => 'Upscale Options', + 'Моя галерея' => 'My Gallery', + 'Мы обрабатываем сообщения с 09:00 до 21:00 по московскому времени
Ожидайте ответ на почту' => 'Our support team is available from 9:00 AM to 9:00 PM ET.
We will reply by email.', + 'Мы отправили Вам письмо на' => 'We sent a verification code to', + 'Мы рады, что Вы остаётесь' => 'We are glad you are staying', + 'Назад' => 'Back', + 'Нам жаль, что вы уходите :(' => 'Sorry to see you go', + 'Наши реквизиты' => 'Company details', + 'Не активен' => 'Inactive', + 'Не выбран' => 'Not selected', + 'Не удалось получить auth_key после проверки PIN' => 'Failed to obtain auth_key after PIN verification', + 'Не хватает' => 'You need', + 'Недостаточно кредитов для улучшения' => 'Not enough credits to enhance these images', + 'Неуспех' => 'Unsuccessful', + 'Нужно принять условия пользования сервисом и согласится с условиями оплаты' => 'Accept the Terms of Use and payment terms to continue', + 'Нужно принять условия пользования сервисом и согласиться с условиями оплаты' => 'Accept the Terms of Use and payment terms to continue', + 'Обращение в службу поддержки: {0}' => 'Support request: {0}', + 'Ознакомьтесь с тарифной сеткой' => 'Review Pricing', + 'Операция' => 'Transaction', + 'Оплата и возврат' => 'Payments & Refunds', + 'Оплата и доступ' => 'Payment & Access', + 'Оплата пользователем пакета кредитов "{name}" стоимостью {price}{currency}' => 'Payment for the "{name}" credit pack: {currency}{price}', + 'Оплата прошла успешно?' => 'Was your payment successful?', + 'Оплатить' => 'Pay', + 'Оплатить и скачать' => 'Pay & Download', + 'Оптимален для регулярных ежедневных объёмов' => 'Ideal for regular daily volumes', + 'Останьтесь с нами и получите подарок за лояльность' => 'Stay with us and receive a loyalty bonus', + 'Остаток' => 'Remaining', + 'Отказаться от подарка' => 'No Thanks', + 'Отмена подписки' => 'Cancel Subscription', + 'Отмена тарифа' => 'Cancel Plan', + 'Отменен' => 'Canceled', + 'Отменить' => 'Cancel', + 'Отменить подписку' => 'Cancel Subscription', + 'Отменить тариф' => 'Cancel Plan', + 'Отменить тарифный план' => 'Cancel Subscription Plan', + 'Отправить повторно' => 'Resend', + 'Отправить сообщение' => 'Send Message', + 'Оферта рекуррентных платежей' => 'Subscription Terms', + 'Офертой рекуррентных платежей' => 'Subscription Terms', + 'Очистить' => 'Clear', + 'Ошибка авторизации. Попробуйте выйти и войти снова.' => 'Your session could not be verified. Please sign out and sign in again.', + 'Ошибка в ответе от сервера' => 'Error in server response', + 'Ошибка загрузки профиля' => 'Could not load your profile', + 'Ошибка загрузки тарифов' => 'Could not load plans', + 'Ошибка загрузки тарифов:' => 'Error loading plans:', + 'Ошибка загрузки тарифов: {error}' => 'Could not load plans: {error}', + 'Ошибка загрузки: {status}' => 'Upload failed: {status}', + 'Ошибка запроса PIN' => 'PIN request error', + 'Ошибка массового удаления' => 'Could not delete all images', + 'Ошибка обработки запроса. Превышено время ожидания' => 'Request processing error. Timed out', + 'Ошибка обработки изображения.' => 'Image processing error.', + 'Ошибка оплаты' => 'Payment failed', + 'Ошибка оплаты:' => 'Payment error:', + 'Ошибка оплаты: {status} {body}' => 'Payment failed: {status} {body}', + 'Ошибка отмены подписки' => 'Subscription cancellation error', + 'Ошибка подтверждения транзакции' => 'Could not confirm the transaction', + 'Ошибка подтверждения транзакции ({status})' => 'Could not confirm the transaction ({status})', + 'Ошибка при запросе:' => 'Request error:', + 'Ошибка при запросе: {error}' => 'Request failed: {error}', + 'Ошибка при массовом удалении' => 'The images could not be deleted from the server', + 'Ошибка при отмене на сервере' => 'Server error during cancellation', + 'Ошибка при подтверждении оплаты' => 'Could not confirm the payment', + 'Ошибка при поллинге:' => 'Status check failed:', + 'Ошибка при проверке email' => 'We could not verify your email address', + 'Ошибка при создании транзакции' => 'Could not set up the payment', + 'Ошибка при удалении на сервере' => 'The image could not be deleted from the server', + 'Ошибка при удалении:' => 'Could not delete the account:', + 'Ошибка проверки PIN' => 'Could not verify the code', + 'Ошибка регистрации' => 'Could not create your account', + 'Ошибка сервера: {status}' => 'Server error: {status}', + 'Ошибка сети. Проверьте соединение и попробуйте снова.' => 'Network error. Check your connection and try again', + 'Ошибка сохранения истории:' => 'Could not save the history entry:', + 'Ошибка удаления' => 'Could not delete the image', + 'Ошибка: Поле ввода карты не найдено' => 'Error: Card input field not found', + 'Пакет' => 'Pack', + 'Параметры улучшения' => 'Enhancement Settings', + 'Первые 6 и последние 4 цифры номера карты' => 'First 6 and last 4 digits of your card number', + 'Перемещайте область для просмотра' => 'Drag to explore the image', + 'Печать, реставрация и архивные материалы требуют максимум деталей' => 'Maximizes detail for printing, restoration, and archival materials', + 'Пин для входа отправлен на {0}' => 'Sign-in verification code sent to {0}', + 'Письмо с кодом может идти до 10 минут.' => 'The email may take up to 10 minutes to arrive.', + 'По техническим причинам оплата картами Т-Банка временно невозможна' => 'По техническим причинам оплата картами Т-Банка временно невозможна', + 'Поддерживаемые форматы' => 'Supported formats', + 'Поддерживаемые форматы:' => 'Supported formats:', + 'Подключение API' => 'API Setup', + 'Подписка успешно отменена' => 'Subscription successfully canceled', + 'Подтвердить' => 'Confirm', + 'Подтвердить и оплатить' => 'Verify & Pay', + 'Подтверждение не требуется' => 'Verification not required', + 'Подходит для редких фотографий и ценных визуальных материалов' => 'Ideal for rare photos and valuable visual assets', + 'Пожалуйста, заполните все поля номера карты' => 'Please fill in all card number fields', + 'Политика конфиденциальности' => 'Privacy Policy', + 'Политикой конфиденциальности' => 'Privacy Policy', + 'Получите данные API' => 'Get Your API Credentials', + 'Получить письмо' => 'Receive email', + 'Пользователь не найден' => 'User not found', + 'Пользовательским соглашением' => 'Terms of Use', + 'Пользовательское соглашение' => 'Terms of Use', + 'Попробуйте еще раз' => 'Try Again', + 'Попробуйте загрузить ещё раз...' => 'Try uploading
again...', + 'После' => 'After', + 'После подключения можно передавать изображения на обработку по API. Стоимость считается по масштабу улучшения.' => 'After setup, you can submit images for processing through the API. Pricing is based on the upscale factor.', + 'Привяжите карту' => 'Add a Payment Method', + 'Привязать карту' => 'Add a Payment Method', + 'Примеры изображений' => 'Image Examples', + 'Проверьте папку "Спам" и "Корзина".' => 'Check your Spam and Trash folders.', + 'Проверяем PIN и выполняем оплату...' => 'Verifying the code and processing your payment...', + 'Проверяем email...' => 'Checking your email...', + 'Продолжить' => 'Continue', + 'Произошла ошибка при отправке запроса' => 'An error occurred while sending the request', + 'Произошла ошибка при попытке оплаты. Проверьте соединение.' => 'We could not process your payment. Check your connection and try again.', + 'Профессиональный' => 'Professional', + 'Профиль' => 'Profile', + 'Разрешение повышается в два раза' => 'Doubles the image resolution', + 'Расширенный' => 'Advanced', + 'Рекламные агентства' => 'Advertising Agencies', + 'Ретушь и продакшн' => 'Retouching & Production', + 'С вашей карты будет списано 14 рублей, которые могут быть потрачены на улучшение 2х. Дальнейшие списания выполняются по выбранному тарифу за фактически обработанные изображения.' => 'Your card will be charged $0.16, which covers one 2× image enhancement. After that, you will be charged according to your selected tier for the images you process.', + 'Сайт не является публичной офертой' => 'The website is not a public offer', + 'Самый высокий масштаб обработки исходника' => 'The highest available upscale factor', + 'Сбалансирован по качеству, скорости и стоимости' => 'Balanced for quality, speed, and cost', + 'СберБанк' => 'СберБанк', + 'Сервер вернул ошибку. Попробуйте снова.' => 'The server returned an error. Please try again.', + 'Сервис предназначен для клиентов, которым нужна регулярная обработка изображений: фотосессии, каталоги товаров, архивы и материалы для печати.' => 'The service is designed for businesses that regularly process images for photo shoots, product catalogs, archives, and print materials.', + 'Сетевая ошибка' => 'Network error', + 'Скачать все' => 'Download All', + 'Скачать результат' => 'Download Result', + 'Следующее списание {date} на {price}₽' => 'Next charge: ${price} on {date}', + 'Служба поддержки' => 'Support', + 'Согласен с автоматическим продлением' => 'I agree to automatic renewal', + 'Согласен с автоматическим продлением 3-дневного тестового доступа на {duration} за {price}₽ согласно Тарифам.' => 'I authorize Zoomeo to charge my payment method ${price} on a recurring basis after the 3-day trial (billing cycle: {duration}) until canceled, in accordance with the Subscription Terms.', + 'Создаём транзакцию...' => 'Setting up your payment...', + 'Сохраняет важные детали на сложных изображениях' => 'Preserves important details in complex images', + 'Срок действия' => 'Valid Through', + 'Срок действия истек или был отменен.' => 'This plan has expired or been canceled.', + 'Статус' => 'Status', + 'Стоимость' => 'Pricing', + 'Т-Банк (Тинькофф)' => 'Т-Банк (Тинькофф)', + 'Тариф' => 'Plan', + 'Тариф ...' => '... Plan', + 'Тариф {name}' => '{name} Plan', + 'Тариф активен' => 'Plan active', + 'Тариф не активен' => 'Plan inactive', + 'Тариф не выбран' => 'No plan selected', + 'Тарифная сетка по масштабу' => 'Pricing by Upscale Factor', + 'Тарифные планы' => 'Plans', + 'Тарифный план будет отменен' => 'Your plan will be canceled', + 'Тарифы на обработку изображений по API' => 'API Image Enhancement Pricing', + 'Тема вашего сообщения' => 'What can we help with?', + 'Техническая поддержка' => 'Support', + 'Техническая проблема' => 'Technical issue', + 'Типографии' => 'Print Shops', + 'Тут после загрузки будут ваши фото' => 'Your photos will appear here after uploading', + 'У вас есть' => 'You have', + 'У вас нет активного тарифа' => 'You do not have an active plan', + 'Увеличение 4х доступно после регистрации' => '4× Upscale is available after sign-up', + 'Увеличить картинки' => 'Enhance Images', + 'Удалить Ваш аккаунт?' => 'Delete your account?', + 'Удалить аккаунт' => 'Delete Account', + 'Удалить все' => 'Delete All', + 'Улучшаем' => 'Enhancing...', + 'Улучшаем и увеличиваем' => 'Enhancing and upscaling', + 'Улучшить фото ({amount} кредита)' => 'Enhance Images ({amount})', + 'Улучшить фото и видео' => 'Enhance Images', + 'Условиями' => 'Terms of Use', + 'Успех' => 'Success', + 'Фотостудии' => 'Photo Studios', + 'Фотостудии и архивы получают больше запаса по разрешению' => 'Gives photo studios and archives more resolution to work with', + 'Хранение результата' => 'Result Storage', + 'Цена за фото' => 'Price per image', + 'Цена за фото х2' => 'Price per 2× image', + 'Цена зависит от требуемого увеличения. Улучшенное фото хранится в течение 3 суток после обработки.' => 'Pricing depends on the upscale factor. Enhanced images are stored for 3 days after processing.', + 'Чек от {date} {time}' => 'Receipt from {date} at {time}', + 'Чеки' => 'Receipts', + 'Чеки пока отсутствуют' => 'No receipts yet', + 'Что бы хотели узнать?' => 'How can we help?', + 'Чтобы скачать увеличенное изображение -
приобрети кредиты' => 'Buy credits to download
the enhanced image', + 'Чтобы скачать увеличенное изображение - приобретите кредиты' => 'Buy credits to download the enhanced image', + 'Я понимаю что это действие необратимо' => 'I understand that this action cannot be undone', + 'Я согласен с условиями покупки: ' => 'I agree to the following purchase terms: ', + 'активный' => 'active', + 'в подарок' => 'bonus', + 'год' => 'year', + 'года' => 'years', + 'день' => 'day', + 'для улучшения' => 'to enhance it', + 'дней' => 'days', + 'дня' => 'days', + 'до ...' => 'through ...', + 'до {date}' => 'through {date}', + 'кредит' => 'credit', + 'кредита' => 'credits', + 'кредитов' => 'credits', + 'лет' => 'years', + 'месяц' => 'month', + 'месяца' => 'months', + 'месяцев' => 'months', + 'не активный' => 'inactive', + 'от 7 ₽ / фото' => 'Starting at $0.08/image', + 'перейти в галерею' => 'Go to Gallery', + 'фото' => 'image', + 'х2' => '2×', + 'х4' => '4×', + '—' => '—', + '₽' => '$', +]; diff --git a/messages/en/error.php b/messages/en/error.php new file mode 100644 index 0000000..a04324e --- /dev/null +++ b/messages/en/error.php @@ -0,0 +1,33 @@ + 'Email required', + 'Examples dir: {0}' => 'Examples dir: {0}', + 'Generate pin {0} on scenario "{1}"' => 'Generate pin {0} on scenario "{1}"', + 'Invalid password' => 'Invalid password', + 'Invalid validation: {0}' => 'Invalid validation: {0}', + 'Mail send password: {0}' => 'Mail send password: {0}', + 'Not found user with email: {0}' => 'Not found user with email: {0}', + 'Validation error: {0}' => 'Validation error: {0}', + 'Доступ запрещён - не верный PIN' => 'Access denied - invalid PIN', + 'Загружена модель {0} со сценарием {1}' => 'Model {0} loaded with scenario {1}', + 'Клиент OAuth2 неизвестен' => 'OAuth2 client unknown', + 'Не верный PIN' => 'Invalid PIN', + 'Такой email уже зарегистрирован' => 'This email is already registered', +]; diff --git a/messages/ru/app.php b/messages/ru/app.php new file mode 100644 index 0000000..b982dcf --- /dev/null +++ b/messages/ru/app.php @@ -0,0 +1,377 @@ + '... кредитов', + '... месяц' => '... месяц', + '... фото х2' => '... фото х2', + '... фото х4' => '... фото х4', + '/ фото' => '/ фото', + '1 фото=1 кредит' => '1 фото=1 кредит', + '1 фото=2 кредита' => '1 фото=2 кредита', + '14 ₽' => '14 ₽', + '1x' => '1x', + '1x - 4x' => '1x - 4x', + '21 ₽' => '21 ₽', + '28 ₽' => '28 ₽', + '2x' => '2x', + '3 суток' => '3 суток', + '3x' => '3x', + '4 цифры' => '4 цифры', + '4x' => '4x', + '500 кредитов' => '500 кредитов', + '500 кредитов будут начислены при условии активности тарифного плана' => '500 кредитов будут начислены при условии активности тарифного плана', + '7 ₽' => '7 ₽', + 'API тарифы' => 'API тарифы', + 'Drop files here to upload' => 'Drop files here to upload', + 'Email' => 'Email', + 'Email {0} успешно подтверждён' => 'Email {0} успешно подтверждён', + 'Email добавлен' => 'Email добавлен', + 'Email не найден. Начните заново.' => 'Email не найден. Начните заново.', + 'Generate passwd hash "{0}" from password {1}' => 'Generate passwd hash "{0}" from password {1}', + 'New Relic' => 'New Relic', + 'PIN из письма' => 'PIN из письма', + 'Pin для верификации отправлен на {0}' => 'Pin для верификации отправлен на {0}', + 'Toggle navigation' => 'Toggle navigation', + 'auth_key отсутствует — невозможно выполнить оплату' => 'auth_key отсутствует — невозможно выполнить оплату', + 'download' => 'download', + 'meta-description' => 'Онлайн-сервис для автоматического улучшения качества фотографий и изображений с помощью искусственного интеллекта.', + 'price_format' => '{price} ₽', + 'remove' => 'remove', + 'system.hide.api-pricing' => 'false', + 'system.hide.banks-modal' => 'false', + 'system.hide.footer' => 'false', + 'system.hide.receipts' => 'false', + 'title' => 'Улучшение изображения', + '{0} - {1}' => '{0} - {1}', + '{amount} кредитов' => '{amount} кредитов', + '{count} фото х2' => '{count} фото х2', + '{count} фото х4' => '{count} фото х4', + '{credits} кредитов' => '{credits} кредитов', + 'Автоматическое продление тарифа будет отменено но тариф останется активен' => 'Автоматическое продление тарифа будет отменено но тариф останется активен', + 'Автопродление включено' => 'Автопродление включено', + 'Аккаунт и доступ' => 'Аккаунт и доступ', + 'Аккаунт успешно удален' => 'Аккаунт успешно удален', + 'Активационное письмо может идти до 10 минут.' => 'Активационное письмо может идти до 10 минут.', + 'Активен' => 'Активен', + 'Активный' => 'Активный', + 'Активных подписок по карте с маской "{0}" не найдено' => 'Активных подписок по карте с маской "{0}" не найдено', + 'Альфабанк' => 'Альфабанк', + 'Архивы' => 'Архивы', + 'Базовая коррекция резкости, света и общего качества' => 'Базовая коррекция резкости, света и общего качества', + 'Баланс' => 'Баланс', + 'Баланс: {balance}' => 'Баланс: {balance}', + 'Банк ВТБ' => 'Банк ВТБ', + 'Бизнес Базовый' => 'Базовый', + 'Бизнес Базовый цена' => '7 ₽ / фото', + 'Бизнес Максимальный' => 'Максимальный', + 'Бизнес Максимальный цена' => '28 ₽ / фото', + 'Бизнес Профессиональный' => 'Профессиональный', + 'Бизнес Профессиональный цена' => '21 ₽ / фото', + 'Бизнес Расширенный' => 'Расширенный', + 'Бизнес Расширенный цена' => '14 ₽ / фото', + 'Быстрая подготовка фото к публикации' => 'Быстрая подготовка фото к публикации', + 'В Вашей галерее пока нет изображений' => 'В Вашей галерее пока нет изображений', + 'Ваш PIN для подтверждения email на {0}' => 'Ваш PIN для подтверждения email на {0}', + 'Ваш баланс' => 'Ваш баланс', + 'Ваш пароль для {0}' => 'Ваш пароль для {0}', + 'Ваш пинкод для {0}' => 'Ваш пинкод для {0}', + 'Ваш тариф' => 'Ваш тариф', + 'Ваша почта' => 'Ваша почта', + 'Ваше сообщение
успешно отправлено' => 'Ваше сообщение
успешно отправлено', + 'Ваше сообщение не отправлено!' => 'Ваше сообщение не отправлено!', + 'Введен неверный код' => 'Введен неверный код', + 'Введите 4-значный PIN' => 'Введите 4-значный PIN', + 'Введите PIN' => 'Введите PIN', + 'Введите PIN, отправленный на email' => 'Введите PIN, отправленный на email', + 'Введите email' => 'Введите email', + 'Введите email для проверки и отправки PIN' => 'Введите email для проверки и отправки PIN', + 'Введите корректный email' => 'Введите корректный email', + 'Введите первые 6 и последние 4 цифры номера карты' => 'Введите первые 6 и последние 4 цифры номера карты', + 'Вернуться на главную' => 'Вернуться на главную', + 'Вернуться назад' => 'Вернуться назад', + 'Возникла ошибка' => 'Возникла ошибка', + 'Войти' => 'Войти', + 'Все ваши данные, галереи и активные подписки будут удалены.' => 'Все ваши данные, галереи и активные подписки будут удалены.', + 'Всего' => 'Всего', + 'Вход' => 'Вход', + 'Вход в личный кабинет' => 'Вход в личный кабинет', + 'Вы не сможете больше пользоваться вашим аккаунтом, но сможете зарегистрировать новый с такими же данными.' => 'Вы не сможете больше пользоваться вашим аккаунтом, но сможете зарегистрировать новый с такими же данными.', + 'Вы сможете войти снова в любой момент' => 'Вы сможете войти снова в любой момент', + 'Вы сможете пользоваться начисленными кредитами до истечения срока действия тарифного плана' => 'Вы сможете пользоваться начисленными кредитами до истечения срока действия тарифного плана', + 'Вы уверены, что хотите навсегда удалить аккаунт?' => 'Вы уверены, что хотите навсегда удалить аккаунт?', + 'Вы уверены, что хотите удалить ВСЕ изображения?' => 'Вы уверены, что хотите удалить ВСЕ изображения?', + 'Вы уверены, что хотите удалить это изображение?' => 'Вы уверены, что хотите удалить это изображение?', + 'Вы успешно вошли' => 'Вы успешно вошли', + 'Вы хотите улучшить {count} изображений за {amount} кредитов' => 'Вы хотите улучшить {count} изображений за {amount} кредитов', + 'Выбери до {n} изображений для улучшения' => 'Выбери до {n} изображений
для улучшения', + 'Выберите ваш банк' => 'Выберите ваш банк', + 'Выберите другой банк' => 'Выберите другой банк', + 'Выберите подходящий план в разделе тарифов, чтобы начать работу.' => 'Выберите подходящий план в разделе тарифов, чтобы начать работу.', + 'Выберите тариф перед оплатой' => 'Выберите тариф перед оплатой', + 'Выбрать тариф' => 'Выбрать тариф', + 'Выйти из аккаунта' => 'Выйти из аккаунта', + 'Выйти из аккаунта?' => 'Выйти из аккаунта?', + 'Выйти из системы' => 'Выйти из системы', + 'Главная' => 'Главная', + 'Дальнейших списаний с вашей карты производится не будет.' => 'Дальнейших списаний с вашей карты производится не будет.', + 'Данные API будут отправлены на почту.' => 'Данные API будут отправлены на почту.', + 'Детализация подходит для ретуши, печати и промо' => 'Детализация подходит для ретуши, печати и промо', + 'Для бизнеса' => 'Для бизнеса', + 'До' => 'До', + 'Документы' => 'Документы', + 'Другие банки' => 'Другие банки', + 'Забрать подарок' => 'Забрать подарок', + 'Забрать подарок и вернуться в Профиль' => 'Забрать подарок и вернуться в Профиль', + 'Завершите регистрацию' => 'Завершите регистрацию', + 'Загружаем полученный результат' => 'Загружаем результат', + 'Загружаем файл на сервер' => 'Загружаем файл на сервер', + 'Загружая изображение, вы соглашаетесь с нашими Условиями и Политикой конфиденциальности' => 'Загружая изображение, вы соглашаетесь с нашими Условиями и Политикой конфиденциальности', + 'Загружено {count} фото' => 'Загружено {count} фото', + 'Загрузите изображение' => 'Загрузите изображение', + 'Загрузить' => 'Загрузить', + 'Загрузить изображение' => 'Загрузить изображение', + 'Загрузка тарифов...' => 'Загрузка тарифов...', + 'Загрузка...' => 'Загрузка...', + 'Запись в историю добавлена!' => 'Запись в историю добавлена!', + 'Извините, что-то пошло не так' => 'Извините, что-то пошло не так', + 'Изменить почту' => 'Изменить почту', + 'Изображение {name} слишком большое ({width}x{height}px). Максимально допустимый размер: {maxSide}px по одной стороне.' => 'Изображение {name} слишком большое ({width}x{height}px). Максимально допустимый размер: {maxSide}px по одной стороне.', + 'Изображение слишком большое ({width}x{height}px). Максимальный размер — {maxSide}px по большей стороне.' => 'Изображение слишком большое ({width}x{height}px). Максимальный размер — {maxSide}px по большей стороне.', + 'Имя_файла_очень_длинн....имя_файла.jpg' => 'Имя_файла_очень_длинн....имя_файла.jpg', + 'Интернет-магазины' => 'Интернет-магазины', + 'История операций пуста' => 'История операций пуста', + 'Итог подключения' => 'Итог подключения', + 'Как работает подключение' => 'Как работает подключение', + 'Карта используется для списаний за фактически обработанные фотографии.' => 'Карта используется для списаний за фактически обработанные фотографии.', + 'Карточки товаров, портфолио и витрины выглядят детальнее' => 'Карточки товаров, портфолио и витрины выглядят детальнее', + 'Каталоги товаров' => 'Каталоги товаров', + 'Ключ доступа и краткая инструкция приходят на почту после подключения.' => 'Ключ доступа и краткая инструкция приходят на почту после подключения.', + 'Кому подходит услуга' => 'Кому подходит услуга', + 'Купить кредиты' => 'Купить кредиты', + 'Максимальный' => 'Максимальный', + 'Максимальный допустимый размер файла 20 Мб' => 'Максимальный допустимый размер файла 20 Мб', + 'Маркетплейсы' => 'Маркетплейсы', + 'Массовое улучшение и увеличение фотографий через API: для подготовки каталогов, клиентских съёмок, архивных материалов и изображений к печати. Работаем по модели pay as you go: оплата списывается только за фактически обработанные фото.' => 'Массовое улучшение и увеличение фотографий через API: для подготовки каталогов, клиентских съёмок, архивных материалов и изображений к печати. Работаем по модели pay as you go: оплата списывается только за фактически обработанные фото.', + 'Масштаб определяет стоимость обработки одного изображения.' => 'Масштаб определяет стоимость обработки одного изображения.', + 'Масштабы' => 'Масштабы', + 'Моя галерея' => 'Моя галерея', + 'Мы обрабатываем сообщения с 09:00 до 21:00 по московскому времени
Ожидайте ответ на почту' => 'Мы обрабатываем сообщения с 09:00 до 21:00 по московскому времени
Ожидайте ответ на почту', + 'Мы отправили Вам письмо на' => 'Мы отправили Вам письмо на', + 'Мы рады, что Вы остаётесь' => 'Мы рады, что Вы остаётесь', + 'Назад' => 'Назад', + 'Нам жаль, что вы уходите :(' => 'Нам жаль, что вы уходите :(', + 'Наши реквизиты' => 'Наши реквизиты', + 'Не активен' => 'Не активен', + 'Не выбран' => 'Не выбран', + 'Не удалось получить auth_key после проверки PIN' => 'Не удалось получить auth_key после проверки PIN', + 'Не хватает' => 'Не хватает', + 'Недостаточно кредитов для улучшения' => 'Недостаточно кредитов для улучшения', + 'Неуспех' => 'Неуспех', + 'Нужно принять условия пользования сервисом и согласится с условиями оплаты' => 'Нужно принять условия пользования сервисом и согласится с условиями оплаты', + 'Нужно принять условия пользования сервисом и согласиться с условиями оплаты' => 'Нужно принять условия пользования сервисом и согласиться с условиями оплаты', + 'Обращение в службу поддержки: {0}' => 'Обращение в службу поддержки: {0}', + 'Ознакомьтесь с тарифной сеткой' => 'Ознакомьтесь с тарифной сеткой', + 'Операция' => 'Операция', + 'Оплата и возврат' => 'Оплата и возврат', + 'Оплата и доступ' => 'Оплата и доступ', + 'Оплата пользователем пакета кредитов "{name}" стоимостью {price}{currency}' => 'Оплата пользователем пакета кредитов "{name}" стоимостью {price}{currency}', + 'Оплата прошла успешно?' => 'Оплата прошла успешно?', + 'Оплатить' => 'Оплатить', + 'Оплатить и скачать' => 'Оплатить и скачать', + 'Оптимален для регулярных ежедневных объёмов' => 'Оптимален для регулярных ежедневных объёмов', + 'Останьтесь с нами и получите подарок за лояльность' => 'Останьтесь с нами и получите подарок за лояльность', + 'Остаток' => 'Остаток', + 'Отказаться от подарка' => 'Отказаться от подарка', + 'Отмена подписки' => 'Отмена подписки', + 'Отмена тарифа' => 'Отмена тарифа', + 'Отменен' => 'Отменен', + 'Отменить' => 'Отменить', + 'Отменить подписку' => 'Отменить подписку', + 'Отменить тариф' => 'Отменить тариф', + 'Отменить тарифный план' => 'Отменить тарифный план', + 'Отправить повторно' => 'Отправить повторно', + 'Отправить сообщение' => 'Отправить сообщение', + 'Оферта рекуррентных платежей' => 'Оферта рекуррентных платежей', + 'Офертой рекуррентных платежей' => 'Офертой рекуррентных платежей', + 'Очистить' => 'Очистить', + 'Ошибка авторизации. Попробуйте выйти и войти снова.' => 'Ошибка авторизации. Попробуйте выйти и войти снова.', + 'Ошибка в ответе от сервера' => 'Ошибка в ответе от сервера', + 'Ошибка загрузки профиля' => 'Ошибка загрузки профиля', + 'Ошибка загрузки тарифов' => 'Ошибка загрузки тарифов', + 'Ошибка загрузки тарифов:' => 'Ошибка загрузки тарифов:', + 'Ошибка загрузки тарифов: {error}' => 'Ошибка загрузки тарифов: {error}', + 'Ошибка загрузки: {status}' => 'Ошибка загрузки: {status}', + 'Ошибка запроса PIN' => 'Ошибка запроса PIN', + 'Ошибка массового удаления' => 'Ошибка массового удаления', + 'Ошибка обработки запроса. Превышено время ожидания' => 'Ошибка обработки запроса. Превышено время ожидания', + 'Ошибка обработки изображения.' => 'Ошибка обработки изображения.', + 'Ошибка оплаты' => 'Ошибка оплаты', + 'Ошибка оплаты:' => 'Ошибка оплаты:', + 'Ошибка оплаты: {status} {body}' => 'Ошибка оплаты: {status} {body}', + 'Ошибка отмены подписки' => 'Ошибка отмены подписки', + 'Ошибка подтверждения транзакции' => 'Ошибка подтверждения транзакции', + 'Ошибка подтверждения транзакции ({status})' => 'Ошибка подтверждения транзакции ({status})', + 'Ошибка при запросе:' => 'Ошибка при запросе:', + 'Ошибка при запросе: {error}' => 'Ошибка при запросе: {error}', + 'Ошибка при массовом удалении' => 'Ошибка при массовом удалении', + 'Ошибка при отмене на сервере' => 'Ошибка при отмене на сервере', + 'Ошибка при подтверждении оплаты' => 'Ошибка при подтверждении оплаты', + 'Ошибка при поллинге:' => 'Ошибка при поллинге:', + 'Ошибка при проверке email' => 'Ошибка при проверке email', + 'Ошибка при создании транзакции' => 'Ошибка при создании транзакции', + 'Ошибка при удалении на сервере' => 'Ошибка при удалении на сервере', + 'Ошибка при удалении:' => 'Ошибка при удалении:', + 'Ошибка проверки PIN' => 'Ошибка проверки PIN', + 'Ошибка регистрации' => 'Ошибка регистрации', + 'Ошибка сервера: {status}' => 'Ошибка сервера: {status}', + 'Ошибка сети. Проверьте соединение и попробуйте снова' => 'Ошибка сети. Проверьте соединение и попробуйте снова', + 'Ошибка сети. Проверьте соединение и попробуйте снова.' => 'Ошибка сети. Проверьте соединение и попробуйте снова.', + 'Ошибка сохранения истории:' => 'Ошибка сохранения истории:', + 'Ошибка удаления' => 'Ошибка удаления', + 'Ошибка: Поле ввода карты не найдено' => 'Ошибка: Поле ввода карты не найдено', + 'Пакет' => 'Пакет', + 'Параметры улучшения' => 'Параметры улучшения', + 'Первые 6 и последние 4 цифры номера карты' => 'Первые 6 и последние 4 цифры номера карты', + 'Перемещайте область для просмотра' => 'Перемещайте область для просмотра', + 'Печать, реставрация и архивные материалы требуют максимум деталей' => 'Печать, реставрация и архивные материалы требуют максимум деталей', + 'Пин для входа отправлен на {0}' => 'Пин для входа отправлен на {0}', + 'Письмо с кодом может идти до 10 минут.' => 'Письмо с кодом может идти до 10 минут.', + 'По техническим причинам оплата картами Т-Банка временно невозможна' => 'По техническим причинам оплата картами Т-Банка временно невозможна', + 'Поддерживаемые форматы' => 'Поддерживаемые форматы', + 'Поддерживаемые форматы:' => 'Поддерживаемые форматы:', + 'Подключение API' => 'Подключение API', + 'Подписка успешно отменена' => 'Подписка успешно отменена', + 'Подтвердить' => 'Подтвердить', + 'Подтвердить и оплатить' => 'Подтвердить и оплатить', + 'Подтверждение не требуется' => 'Подтверждение не требуется', + 'Подходит для редких фотографий и ценных визуальных материалов' => 'Подходит для редких фотографий и ценных визуальных материалов', + 'Пожалуйста, заполните все поля номера карты' => 'Пожалуйста, заполните все поля номера карты', + 'Политика конфиденциальности' => 'Политика конфиденциальности', + 'Политикой конфиденциальности' => 'Политикой конфиденциальности', + 'Получите данные API' => 'Получите данные API', + 'Получить письмо' => 'Получить письмо', + 'Пользователь не найден' => 'Пользователь не найден', + 'Пользовательским соглашением' => 'Пользовательским соглашением', + 'Пользовательское соглашение' => 'Пользовательское соглашение', + 'Попробуйте еще раз' => 'Попробуйте еще раз', + 'Попробуйте загрузить ещё раз...' => 'Попробуйте загрузить
ещё раз...', + 'После' => 'После', + 'После подключения можно передавать изображения на обработку по API. Стоимость считается по масштабу улучшения.' => 'После подключения можно передавать изображения на обработку по API. Стоимость считается по масштабу улучшения.', + 'Привяжите карту' => 'Привяжите карту', + 'Привязать карту' => 'Привязать карту', + 'Примеры изображений' => 'Примеры изображений', + 'Проверьте папку "Спам" и "Корзина".' => 'Проверьте папку "Спам" и "Корзина".', + 'Проверяем PIN и выполняем оплату...' => 'Проверяем PIN и выполняем оплату...', + 'Проверяем email...' => 'Проверяем email...', + 'Продолжить' => 'Продолжить', + 'Произошла ошибка при отправке запроса' => 'Произошла ошибка при отправке запроса', + 'Произошла ошибка при попытке оплаты. Проверьте соединение.' => 'Произошла ошибка при попытке оплаты. Проверьте соединение.', + 'Профиль' => 'Профиль', + 'Разрешение повышается в два раза' => 'Разрешение повышается в два раза', + 'Рекламные агентства' => 'Рекламные агентства', + 'Ретушь и продакшн' => 'Ретушь и продакшн', + 'С вашей карты будет списано 14 рублей, которые могут быть потрачены на улучшение 2х. Дальнейшие списания выполняются по выбранному тарифу за фактически обработанные изображения.' => 'С вашей карты будет списано 14 рублей, которые могут быть потрачены на улучшение 2х. Дальнейшие списания выполняются по выбранному тарифу за фактически обработанные изображения.', + 'Сайт не является публичной офертой' => 'Сайт не является публичной офертой', + 'Самый высокий масштаб обработки исходника' => 'Самый высокий масштаб обработки исходника', + 'Сбалансирован по качеству, скорости и стоимости' => 'Сбалансирован по качеству, скорости и стоимости', + 'СберБанк' => 'СберБанк', + 'Сервер вернул ошибку. Попробуйте снова.' => 'Сервер вернул ошибку. Попробуйте снова.', + 'Сервис предназначен для клиентов, которым нужна регулярная обработка изображений: фотосессии, каталоги товаров, архивы и материалы для печати.' => 'Сервис предназначен для клиентов, которым нужна регулярная обработка изображений: фотосессии, каталоги товаров, архивы и материалы для печати.', + 'Сетевая ошибка' => 'Сетевая ошибка', + 'Скачать все' => 'Скачать все', + 'Скачать результат' => 'Скачать результат', + 'Следующее списание {date} на {price}₽' => 'Следующее списание {date} на {price}₽', + 'Служба поддержки' => 'Служба поддержки', + 'Согласен с автоматическим продлением' => 'Согласен с автоматическим продлением', + 'Согласен с автоматическим продлением 3-дневного тестового доступа на {duration} за {price}₽ согласно Тарифам.' => 'Согласен с автоматическим продлением 3-дневного тестового доступа на {duration} за {price}₽ согласно Тарифам.', + 'Создаём транзакцию...' => 'Создаём транзакцию...', + 'Сохраняет важные детали на сложных изображениях' => 'Сохраняет важные детали на сложных изображениях', + 'Срок действия' => 'Срок действия', + 'Срок действия истек или был отменен.' => 'Срок действия истек или был отменен.', + 'Статус' => 'Статус', + 'Стоимость' => 'Стоимость', + 'Т-Банк (Тинькофф)' => 'Т-Банк (Тинькофф)', + 'Тариф' => 'Тариф', + 'Тариф ...' => 'Тариф ...', + 'Тариф {name}' => 'Тариф {name}', + 'Тариф активен' => 'Тариф активен', + 'Тариф не активен' => 'Тариф не активен', + 'Тариф не выбран' => 'Тариф не выбран', + 'Тарифная сетка по масштабу' => 'Тарифная сетка по масштабу', + 'Тарифные планы' => 'Тарифные планы', + 'Тарифный план будет отменен' => 'Тарифный план будет отменен', + 'Тарифы на обработку изображений по API' => 'Тарифы на обработку изображений по API', + 'Тема вашего сообщения' => 'Тема вашего сообщения', + 'Техническая поддержка' => 'Техническая поддержка', + 'Техническая проблема' => 'Техническая проблема', + 'Типографии' => 'Типографии', + 'Тут после загрузки будут ваши фото' => 'Тут после загрузки будут ваши фото', + 'У вас есть' => 'У вас есть', + 'У вас нет активного тарифа' => 'У вас нет активного тарифа', + 'Увеличение 4х доступно после регистрации' => 'Увеличение 4х доступно после регистрации', + 'Увеличить картинки' => 'Улучшить изображения', + 'Удалить Ваш аккаунт?' => 'Удалить Ваш аккаунт?', + 'Удалить аккаунт' => 'Удалить аккаунт', + 'Удалить все' => 'Удалить все', + 'Улучшаем' => 'Улучшаем...', + 'Улучшаем и увеличиваем' => 'Улучшаем и увеличиваем', + 'Улучшить фото ({amount} кредита)' => 'Улучшить фото ({amount})', + 'Улучшить фото и видео' => 'Улучшить изображения', + 'Условиями' => 'Условиями', + 'Успех' => 'Успех', + 'Фотостудии' => 'Фотостудии', + 'Фотостудии и архивы получают больше запаса по разрешению' => 'Фотостудии и архивы получают больше запаса по разрешению', + 'Хранение результата' => 'Хранение результата', + 'Цена за фото' => 'Цена за фото', + 'Цена за фото х2' => 'Цена за фото х2', + 'Цена зависит от требуемого увеличения. Улучшенное фото хранится в течение 3 суток после обработки.' => 'Цена зависит от требуемого увеличения. Улучшенное фото хранится в течение 3 суток после обработки.', + 'Чек от {date} {time}' => 'Чек от {date} {time}', + 'Чеки' => 'Чеки', + 'Чеки пока отсутствуют' => 'Чеки пока отсутствуют', + 'Что бы хотели узнать?' => 'Что бы хотели узнать?', + 'Чтобы скачать увеличенное изображение -
приобрети кредиты' => 'Чтобы скачать увеличенное изображение -
приобрети кредиты', + 'Чтобы скачать увеличенное изображение - приобретите кредиты' => 'Чтобы скачать увеличенное изображение - приобретите кредиты', + 'Я понимаю что это действие необратимо' => 'Я понимаю что это действие необратимо', + 'Я согласен с условиями покупки: ' => 'Я согласен с условиями покупки: ', + 'активный' => 'активный', + 'в подарок' => 'в подарок', + 'год' => 'год', + 'года' => 'года', + 'день' => 'день', + 'для улучшения' => 'для улучшения', + 'дней' => 'дней', + 'дня' => 'дня', + 'до ...' => 'до ...', + 'до {date}' => 'до {date}', + 'кредит' => 'кредит', + 'кредита' => 'кредита', + 'кредитов' => 'кредитов', + 'лет' => 'лет', + 'месяц' => 'месяц', + 'месяца' => 'месяца', + 'месяцев' => 'месяцев', + 'не активный' => 'не активный', + 'от 7 ₽ / фото' => 'от 7 ₽ / фото', + 'перейти в галерею' => 'перейти в галерею', + 'фото' => 'фото', + 'х2' => 'х2', + 'х4' => 'х4', + '—' => '—', + '₽' => '₽', +]; diff --git a/messages/ru/error.php b/messages/ru/error.php new file mode 100644 index 0000000..a04324e --- /dev/null +++ b/messages/ru/error.php @@ -0,0 +1,33 @@ + 'Email required', + 'Examples dir: {0}' => 'Examples dir: {0}', + 'Generate pin {0} on scenario "{1}"' => 'Generate pin {0} on scenario "{1}"', + 'Invalid password' => 'Invalid password', + 'Invalid validation: {0}' => 'Invalid validation: {0}', + 'Mail send password: {0}' => 'Mail send password: {0}', + 'Not found user with email: {0}' => 'Not found user with email: {0}', + 'Validation error: {0}' => 'Validation error: {0}', + 'Доступ запрещён - не верный PIN' => 'Access denied - invalid PIN', + 'Загружена модель {0} со сценарием {1}' => 'Model {0} loaded with scenario {1}', + 'Клиент OAuth2 неизвестен' => 'OAuth2 client unknown', + 'Не верный PIN' => 'Invalid PIN', + 'Такой email уже зарегистрирован' => 'This email is already registered', +]; diff --git a/requisites.html b/requisites.html new file mode 100644 index 0000000..e69de29 diff --git a/style.css b/style.css new file mode 100644 index 0000000..97ac215 --- /dev/null +++ b/style.css @@ -0,0 +1,2773 @@ +body { + font-family: "Inter", sans-serif; + + /* fix WBE70 */ + padding: unset !important; + overflow: auto !important; +} + +.btn.disabled { + opacity: 1; +} + +.wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + background: url(../images/bg.jpg) center/cover no-repeat; +} + +.site { + flex-grow: 1; + padding-top: 90px; +} + +.list-unstyled a { + color: #56CCF2; +} + +.navbar-brand img:nth-child(2) { + display: none; +} + +.footer-logo img:nth-child(2) { + display: none; +} + +.main-section:not(.main-section-alt) { + display: flex; + flex-direction: column; + justify-content: center; + min-height: calc(100vh - 88px); + box-sizing: border-box; +} + +.main-section:not(.main-section-alt).main-section-top { + justify-content: flex-start; +} + +.main-section.main-section-alt2 { + display: flex; + flex-direction: column; + justify-content: flex-start; + min-height: calc(100vh - 88px); + box-sizing: border-box; +} + +.main-section-centered { + display: flex; + justify-content: center; + text-align: center; +} + +.main-content-wrapper { + height: 100%; + box-sizing: border-box; + display: flex; + flex-direction: column; +} + +.main-content-wrapper .main-section { + flex-grow: 1; +} + +.main-content-wrapper.main-content-wrapper-top { + height: auto; +} + +.header { + background-color: rgba(255, 255, 255, 0.6); +} + +.header .navbar { + border-bottom: 1px solid #E5E5E7; +} + +.btn-header { + gap: 8px; + border: 1px solid #990694; + border-radius: 16px; + font-size: 16px; + padding-top: 0.9rem; + padding-bottom: 0.9rem; + padding-left: 24px; + padding-right: 24px; + color: #990694; +} + +.btn-header:hover { + color: #990694; +} + +.navbar-toggler { + border-radius: 16px; + width: 56px; + height: 56px; + background: linear-gradient(to bottom, #3D87E3, #990694); + color: #F9F9F9; + border: none; +} + +.theme-toggle { + align-items: center; + background-color: #F8F9FB; + border: 1px solid #E5E5E7; + padding: 4px; + box-sizing: border-box; + border-radius: 16px; +} + +.theme-toggle .btn { + padding: 0; + border: none; + border-radius: 0; + background-color: transparent; + display: flex; + justify-content: center; + align-items: center; + width: 32px; + height: 32px; + outline: none !important; + box-shadow: none; + color: #728490; +} + +.theme-toggle .btn:not(.dark) { + color: #990694; +} + +.theme-toggle .btn svg { + width: 20px; + height: 20px; +} + +.image-compare { + border-radius: 24px; +} + +.image-compare .icv__label { + bottom: auto; + top: 1rem; + font-size: 12px; + background-color: rgba(255, 255, 255, 0.4); + color: #525D6A; + border: 1px solid #FAFBFC; + border-radius: 8px; + padding: 4px 10px; + box-sizing: border-box; +} + +.preview-full .icv__label { + position: absolute; + bottom: auto; + top: 1rem; + font-size: 12px; + background-color: rgba(255, 255, 255, 0.4); + color: #525D6A; + border: 1px solid #FAFBFC; + border-radius: 8px; + padding: 4px 10px; + box-sizing: border-box; + z-index: 9; + left: 1rem; +} +.preview-full .preview-zoom-item { + position: relative; +} + +.image-compare:not(.icv) { + position: relative; + display: flex; + overflow: hidden; + aspect-ratio: 1696 / 920; +} + +.image-examples { + margin-top: 16px; + display: flex; + gap: 16px; + align-items: center; +} + +.image-examples-label { + flex-shrink: 0; +} + +.image-examples-list { + display: flex; + gap: 2px; + flex-grow: 1; +} + +.image-examples-item { + flex-basis: calc((100% - 8px) / 5); +} + +.image-examples-image { + position: relative; + padding-bottom: 100%; +} + +.image-examples-image img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + display: block; + border-radius: 8px; +} + +.footer { + background-color: rgba(255, 255, 255, 0.75); + padding-top: 50px; +} + +.footer-bottom { + border-top: 1px solid #323539; + font-size: 12px; + color: #979AA0; +} + +.footer-main ul { + font-size: 14px; +} + +.footer-main p { + font-size: 14px; +} + +.footer-main a { + color: currentColor; +} + +.image-loading img { + max-width: 100%; +} + +.dz-preview { + display: none !important; +} + +.image-loading img { + border-radius: 24px; +} + +.image-loading-progress { + position: relative; +} + +.image-loading-progress::before { + content: ""; + display: block; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-color: rgba(0, 0, 0, 0.4); + z-index: 2; + + background-image: var(--source); + filter: blur(15px) brightness(0.7); + background-size: cover; + background-position: center; + transform: scale(1.1); +} +.image-loading-progress img { + position: relative; + z-index: 1; +} + +.image-loading-icon { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 3; +} + +.image-loading-icon img.sandglass { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 40px; + height: 40px; + -o-object-fit: contain; + object-fit: contain; +} + +.image-loading-icon img.spinner { + width: 140px; + height: 140px; + -o-object-fit: contain; + object-fit: contain; +} +.image-loading-icon img.spinner-opt { + width: 140px; + height: 140px; + object-fit: contain; + + animation: gpu-spin 0.8s steps(16, end) infinite; + will-change: transform; +} + +@keyframes gpu-spin { + to { + transform: rotate(360deg); + } +} + +.image-loading-progress:has(.image-loading-error)::before { + background-color: rgba(0, 0, 0, 0.7); +} + +.image-loading-error { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + max-width: 400px; + width: 100%; + padding: 16px; + box-sizing: border-box; + text-align: center; + z-index: 4; +} + +.image-loading-error-icon { + margin-bottom: 8px; +} + +.image-loading-error-icon img { + width: 64px; + height: 64px; + -o-object-fit: contain; + object-fit: contain; +} + +.image-loading-error-title { + font-size: 24px; +} + +.image-loading-error-text { + font-size: 14px; + margin-top: 10px; + color: rgb(151, 154, 160); +} + + +.badge { + text-transform: uppercase; + font-size: 14px; + font-weight: 400; + padding: 0.7em 1em; + border-radius: 16px; +} + +.badge.badge-success { + background-color: #2EBF43; +} + +.preview-zoom-row { + display: flex; + flex-direction: column; + gap: 16px; +} + +.preview-zoom-image { + position: relative; + padding-bottom: 48%; + overflow: hidden; + border-radius: 24px; +} + +.preview-zoom-image img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + z-index: 1; + pointer-events: none; +} + +.preview-full-image { + position: relative; + padding-bottom: 70%; + overflow: hidden; + border-radius: 24px; +} + +.preview-full-image img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + z-index: 1; + pointer-events: none; +} + +.preview-full-handle { + position: absolute; + z-index: 2; + top: calc(50% - (97px / 2)); + left: calc(50% - (212px / 2)); + background-color: rgba(15, 15, 15, 0.4); + border-radius: 16px; + border: 1px solid #323539; + width: 212px; + height: 97px; + color: #fff; + display: flex; + gap: 8px; + align-items: center; + font-size: 14px; + font-weight: 500; + line-height: 1.5; + padding: 10px; + box-sizing: border-box; + border: 1px solid white; +} + +.preview-full-handle svg { + width: 24px; + height: 24px; + flex-shrink: 0; + transform: translateY(-10px); +} + +.containment-wrapper { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.img-zoom-lens { + position: absolute; + border: 1px solid #d4d4d4; + /*set the size of the lens:*/ + width: 40px; + height: 40px; + z-index: 20; +} + +.button-gradient { + background: #728490 linear-gradient(to bottom, #3D87E3, #990694); + border-radius: 16px; + height: 48px; + gap: 6px; + padding-left: 24px; + padding-right: 24px; + justify-content: center; + color: #fff; + border: none; + outline: none; + box-shadow: none; + display: inline-flex; + align-items: center; +} + +.button-gradient.disabled { + background-image: none; +} + +.button-outline { + display: inline-flex; + outline: none; + display: inline-flex; + align-items: center; + border: 1px solid #000; + padding-left: 24px; + padding-right: 24px; + border-radius: 16px; + height: 48px; + gap: 6px; + box-sizing: border-box; + background-color: rgba(255, 255, 255, 0.19); + color: #000; +} + +.button-outline.bg-transparent { + background: transparent; +} + +.button-outline.btn.border-none { + border: none; + color: #979AA0; +} + +.button-success { + height: 48px; + display: inline-flex; + align-items: center; + border-radius: 16px; + gap: 8px; + padding-left: 24px; + padding-right: 24px; + background-color: #2EBF43; + color: #fff; +} + +.button-danger { + height: 48px; + display: inline-flex; + align-items: center; + border-radius: 16px; + gap: 8px; + padding-left: 24px; + padding-right: 24px; + background-color: #E33B32; + color: #fff; +} + +.button-danger.btn.bg-transparent { + background: transparent; + color: #E33B32; +} + +#v-pills-tariff .dashboard-message ul { + color: #fff; +} + +.dashboard-message-gift { + text-align: center; +} + +.dashboard-message-gift-image img { + display: block; + margin-left: auto; + margin-right: auto; + max-width: 100%; + border-radius: 16px; +} + +.dashboard-message-title { + font-size: 36px; + font-weight: 600; +} + +.dashboard-message-text { + font-size: 24px; +} + +.header { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 60; +} + +.header .navbar-collapse { + background-color: rgba(255, 255, 255, 0.6); +} + +.header-navbar { + max-width: 448px; + margin-left: auto; + padding-top: 8px; + padding-bottom: 24px; +} + +.header-navbar .nav-link { + color: currentColor; + transition: 0.2s; + background-color: transparent !important; +} + +.header-navbar .nav-link span { + flex-grow: 1; +} + +.header-navbar .nav-link svg { + flex-shrink: 0; +} + +.header-navbar .nav-link:hover { + background-color: rgba(255, 255, 255, 0.6) !important; + color: #871EA3; +} + +.navbar-toggler .navbar-toggler-icon { + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.navbar-toggler:not(.collapsed) .navbar-toggler-icon { + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-width='2' d='M6 6L24 23.9999M6 24L24 6.00015'/%3e%3c/svg%3e"); +} + +.theme-dark .link-icon { + color: currentColor; +} + +.link-icon { + font-size: 14px; + color: #990694; + display: flex; + align-items: center; + gap: 6px; +} + +.link-icon svg { + width: 16px; + height: 16px; +} + +.dashboard .tab-content { + height: 100%; +} + +.dashboard .tab-pane { + background: rgba(255, 255, 255, 0.6); + border-radius: 16px; + border: 1px solid #E5E5E7; + height: 100%; +} + +.dashboard-nav { + text-align: left; +} + +.dashboard-nav .nav-link { + display: inline-flex; + align-items: center; + gap: 6px; + text-align: left; + padding: 0.8rem 1rem; + background: rgba(255, 255, 255, 0.6); +} + +.dashboard-nav .nav-link img { + flex-shrink: 0; +} + +.dashboard-nav .nav-link.border { + border-color: #E5E5E7 !important; +} + +.dashboard-nav .nav-link.rounded { + border-radius: 16px !important; +} + +.dashboard-nav .nav-link.active { + color: #000; + border: 1px solid #990694 !important; + background: rgba(255, 255, 255, 0.6); +} + +.dashboard-message { + display: flex; + justify-content: center; + align-items: center; + height: 100%; +} + +.dashboard-message-content { + text-align: center; + max-width: 553px; +} + +.dashboard-message-content ul { + color: #979AA0; +} + +.dashboard-message-checkbox { + margin-top: 24px; +} + +.dashboard-message-checkbox label { + display: inline-flex; + gap: 16px; + font-size: 14px; + line-height: 1.5; +} + +.dashboard-message-checkbox label input { + flex-shrink: 0; +} + +.dashboard-message-checkbox label span { + color: #979AA0; +} + +.dashboard-message-buttons { + margin-top: 24px; + display: flex; + gap: 24px; + flex-wrap: wrap; + justify-content: center; +} + +.tab-pane .h2 { + font-size: 28px; +} + +.tab-pane .h3 { + font-size: 22px; + margin-top: 24px; +} + +.profile-tab-content { + display: flex; + flex-direction: column; + height: 100%; +} + +.profile-tab-content-top { + flex-grow: 1; +} + +.profile-tab-content-bottom { + flex-shrink: 0; +} + +.list-grey { + padding-left: 20px; + color: #979AA0; + font-size: 14px; +} + +.dashboard-upload-placeholder { + border: #323539; + background-color: rgba(0, 0, 0, 0.5); + text-align: center; + display: flex; + flex-direction: column; + justify-content: center; + padding: 87px; + box-sizing: border-box; + border-radius: 24px; + border: 1px solid #323539; +} + +.dashboard-upload-placeholder-text { + margin-bottom: 40px; + font-size: 22px; + font-weight: 600; +} + +.dashboard-upload-placeholder-image img { + max-width: 382px; + width: 100%; + opacity: 0.5; + height: auto; +} + +.profile { + display: flex; + gap: 24px; + flex-wrap: wrap; +} + +.profile-item { + flex-basis: calc((100% - 24px) / 2); + padding: 24px 16px; + box-sizing: border-box; + border: 1px solid #E5E5E7; + border-radius: 16px; + display: flex; + gap: 24px; +} + +.profile-item.profile-item-success { + border-color: #2EBF43; +} + +.profile-item.profile-item-success .profile-message { + color: #2EBF43; +} + +.profile-item.profile-item-alert { + border-color: #E33B32; +} + +.profile-item.profile-item-alert .profile-message { + color: #E33B32; +} + +.profile-icon { + flex-shrink: 0; +} + +.profile-icon img { + width: 56px; + height: 56px; + display: block; +} + +.profile-label { + font-size: 16px; + color: #979AA0; +} + +.profile-value { + font-size: 20px; + font-weight: 500; + margin-top: 4px; +} + +.profile-message { + margin-top: 16px; + line-height: 1.5; +} + +.profile-note { + margin-top: 16px; + line-height: 1.5; +} + +.message { + max-width: 400px; + width: 100%; +} + +.message-icon { + display: flex; + justify-content: center; + margin-bottom: 24px; + color: #2EBF43; +} + +.message-icon img { + width: 80px; + height: 80px; + -o-object-fit: contain; + object-fit: contain; +} + +.message-icon svg { + width: 80px; + height: 80px; +} + +.message-icon.error { + color: #E33B32; +} + +.message-title { + font-size: 28px; + font-weight: 600; +} + +.message-text { + font-size: 18px; + margin-top: 12px; +} + +.message-buttons { + display: flex; + gap: 24px; + justify-content: center; + margin-top: 24px; + flex-wrap: wrap; +} + +.message-buttons .btn { + height: 56px; + display: inline-flex; + align-items: center; + border-radius: 16px; + gap: 8px; + padding-left: 24px; + padding-right: 24px; +} + +.message-list { + list-style: none; + padding: 0; + margin: 0; + text-align: left; + margin-top: 24px; +} + +.message-list a { + display: inline-flex; + gap: 10px; + color: currentColor; + text-align: none; +} + +.message-form { + margin-top: 24px; +} + +.message-form .form-control { + background-color: #F8F9FB; + color: #000; + border-color: #E5E5E7; + height: 56px; + box-sizing: border-box; + border-radius: 16px; +} + +.message-form .input-group-text { + background-color: #F8F9FB; + color: #000; + border-color: #E5E5E7; + border-radius: 16px; +} + +.message-form .custom-select { + background-color: #F8F9FB; + color: #000; + border-color: #E5E5E7; + height: 56px; + box-sizing: border-box; + border-radius: 16px; +} + +.message-form .dashboard-message-checkbox { + text-align: left; +} + +.message-form textarea.form-control { + padding: 16px; + padding-left: 62px; + min-height: 216px; +} + +.message-form .textarea-icon { + position: relative; +} + +.message-form .textarea-icon::before { + content: ""; + width: 24px; + height: 24px; + position: absolute; + left: 14px; + top: 16px; + background: url(../fonts/message.svg) center/contain no-repeat; + display: block; + z-index: 4; +} + +.message-form .is-invalid.input-group .form-control { + background-image: none; + border-color: #dc3545 !important; +} + +.message-form .is-invalid.input-group .input-group-text { + border-color: #dc3545 !important; +} + +.message-form .invalid-feedback { + text-align: left; + font-size: 12px; + background: #FDDDDC; + border-radius: 100px; + padding: 4px; + display: flex; + align-items: center; + gap: 4px; + margin-top: 12px; +} + +.message-form .invalid-feedback svg { + width: 16px; + height: 16px; + flex-shrink: 0; +} + +.custom-checkbox .custom-control-label::before { + background-color: transparent !important; + border-color: #323539 !important; + border-width: 2px !important; + box-shadow: none !important; + outline: none !important; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23000' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} + +.message-centered-list { + display: flex; + flex-direction: column; + align-items: center; + font-size: 16px; + padding: 0; +} + +.message-valid { + margin-top: 24px; + display: flex; + gap: 6px; + align-items: center; + font-size: 20px; + color: #2EBF43; +} + +.message-valid svg { + width: 24px; + height: 24px; +} + +.subscription-text { + color: #56CCF2; +} + +.subscription-card { + display: flex; + justify-content: center; + margin-top: 24px; +} + +.subscription-card-wrapper { + width: 348px; + height: 212px; + position: relative; +} + +.subscription-card-wrapper img { + width: 100%; + height: 100%; + -o-object-fit: contain; + object-fit: contain; +} + +.subscription-card-form { + display: flex; + align-items: center; + position: absolute; + left: 20px; + bottom: 56px; +} + +.subscription-card-input { + display: flex; +} + +.subscription-card-input input { + width: 18px; + font-size: 22px; + background: transparent; + border: none; + outline: none; + text-align: center; + font-weight: 400; + height: 35px; + line-height: 1; + color: #fff; +} + +.subscription-card-input input::-moz-placeholder { + color: #fff; +} + +.subscription-card-input input:-ms-input-placeholder { + color: #fff; +} + +.subscription-card-input input::placeholder { + color: #fff; +} + +.subscription-card-input input:disabled::-moz-placeholder { + color: rgba(255, 255, 255, 0.25); +} + +.subscription-card-input input:disabled:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.25); +} + +.subscription-card-input input:disabled::placeholder { + color: rgba(255, 255, 255, 0.25); +} + +.subscription-card-input-border { + border: 1px solid #F7FAFE; + border-radius: 8px; +} + +.subscription-card-input-mr-1 { + margin-left: 10px; +} + +.modal-header { + border: none; +} + +.modal-footer { + border: none; +} + +.modal-payment .modal-content { + background: #484848 linear-gradient(to bottom, rgba(61, 135, 227, 0.25) 0%, rgba(153, 6, 148, 0.25) 100%); + color: #fff; + border-radius: 24px; +} + +.payment-modal { + margin: 0 auto; + max-width: 300px; +} + +.payment-modal-title { + font-size: 22px; + font-weight: 500; + margin-bottom: 24px; +} + +.payment-modal-list { + list-style: none; + padding: 0; + margin: 0; +} + +.payment-modal-list-item:not(:last-child) { + margin-bottom: 8px; +} + +.payment-modal-link { + background: rgba(11, 11, 16, 0.9); + border-radius: 10px; + text-decoration: none; + color: #fff; + display: flex; + align-items: center; + gap: 16px; + padding: 8px 16px; + box-sizing: border-box; + min-height: 62px; +} + +.payment-modal-link img { + width: 30px; + height: 30px; + -o-object-fit: cover; + object-fit: cover; +} + +.payment-modal-link:hover { + color: #fff; + text-decoration: none; +} + +.payment-modal-message { + display: flex; + gap: 8px; + margin-bottom: 8px; +} + +.payment-modal-message-icon { + flex-shrink: 0; +} + +.payment-modal-message-icon svg { + width: 24px; + height: 24px; +} + +.payment-modal-message-text { + font-size: 14px; + line-height: 1.2; +} + +.payment-modal-message-text span { + margin-top: 8px; + display: block; + color: #E5E5E7; +} + +.modal-not-enough { + text-align: center; +} + +.modal-not-enough .payment-modal-title { + line-height: 1.2; + margin-bottom: 12px; +} + +.modal-not-enough .modal-content { + background: url(../images/modal-bg-2.svg) center/cover no-repeat; +} + +.modal-not-enough-info { + margin-top: 24px; + display: flex; + gap: 24px; + max-width: 264px; + margin-left: auto; + margin-right: auto; + justify-content: center; +} + +.modal-not-enough-info-label.green { + color: #2AA63C; +} + +.modal-not-enough-info-label.red { + color: #C8322B; +} + +.modal-not-enough-info-value { + font-size: 52px; + font-weight: 600; + line-height: 1.2; +} + +.modal-button { + margin-top: 24px; +} + +.pin-container { + display: flex; + gap: 8px; + justify-content: center; +} + +.pin-container.valid .pin-digit { + color: #2EBF43; + border-color: #2EBF43 !important; +} + +.pin-container.invalid .pin-digit { + color: #E33B32; + border-color: #E33B32 !important; +} + +.pin-digit { + width: 62px; + height: 56px; + font-size: 16px; + text-align: center; + border: 1px solid #000; + border-radius: 4px; + background-color: rgba(255, 255, 255, 0.07); + color: #000; +} + +.pin-digit::-moz-placeholder { + color: #000; +} + +.pin-digit:-ms-input-placeholder { + color: #000; +} + +.pin-digit::placeholder { + color: #000; +} + +.pin-digit:focus { + border-color: #000; + outline: none; +} + +.pin-container-invalid { + background-color: #FDDDDC; + color: #EB5757; + display: inline-flex; + align-items: center; + gap: 4px; + font-size: 16px; + padding: 4px 16px; + box-sizing: border-box; + border-radius: 1px; + margin-top: 12px; +} + +.gallery-item { + border: 1px solid #323539; + box-sizing: border-box; + border-radius: 24px; +} + +.gallery-item-image { + padding-bottom: 64%; + position: relative; + overflow: hidden; +} + +.gallery-item-image::before { + content: ""; + display: block; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-color: rgba(0, 0, 0, 0.4); + z-index: 0; + + background-color: rgba(0, 0, 0, 0.35); /* Мягкие 35% затемнения */ + background-image: var(--source); + background-size: cover; + background-position: center; + background-blend-mode: multiply; +} + +.gallery-item-image .source { + position: absolute; + -o-object-fit: contain; + object-fit: contain; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 24px; + flex-shrink: 0; +} + +.gallery-item-content { + text-align: center; + padding: 16px; +} + +.gallery-item-title { + color: #979AA0; + font-size: 14px; + min-width: 0; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.gallery-item-info { + margin-top: 16px; + text-align: left; +} + +.gallery-item-info.collapsed .gallery-item-info-row { + justify-content: center; +} + +.gallery-item-info.collapsed .gallery-item-info-col { + display: flex; + gap: 16px; + justify-content: center; + align-items: center; +} + +.gallery-item-info.collapsed .gallery-item-info-col .gallery-item-info-item:not(:last-child) { + margin-bottom: 0; +} + +.gallery-item-info.collapsed .gallery-item-info-col-arrow { + display: none !important; +} + +.gallery-item-info.collapsed .gallery-item-info-col-result { + display: none !important; +} + +.gallery-item-info-row { + display: flex; + justify-content: space-between; + align-items: center; +} + +.gallery-item-info-col-arrow { + flex-shrink: 0; +} + +.gallery-item-info-col-arrow svg { + width: 37px; + height: 24px; +} + +.gallery-item-info-item { + font-size: 14px; +} + +.gallery-item-info-item svg { + width: 24px; + height: 24px; + flex-shrink: 0; +} + +.gallery-item-info-item span { + color: #979AA0; +} + +.gallery-item-info-item:not(:last-child) { + margin-bottom: 8px; +} + +.gallery-item-button { + position: absolute; + top: 16px; + display: flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + background-color: #fff; + z-index: 10; + border-radius: 50%; +} + +.gallery-item-button.download { + left: 16px; +} + +.gallery-item-button.remove { + right: 16px; + color: #E33B32; +} + +.gallery-item-button svg { + width: 24px; + height: 24px; +} + +.gallery-item-progress { + position: absolute; + z-index: 3; + bottom: 0; + left: 0; + width: 100%; + height: 29px; + border-top: 1px solid #3D87E3; + border-bottom: 1px solid #990694; + background-color: #000; + overflow: hidden; +} + +.gallery-item-progress-bar { + height: 100%; + background: linear-gradient(to bottom, #3D87E3 0%, #990694 100%), url(../fonts/progress-bg.svg) left center/27px 100% repeat-x; + background: url(../fonts/progress-bg.svg) left center/27px 100% repeat-x, linear-gradient(to bottom, #3D87E3 0%, #990694 100%); + border-radius: 0 100px 100px 0; +} + +.page-item.active .page-link { + color: #fff; + background: #728490 linear-gradient(to bottom, #3D87E3, #990694); +} + +.page-item.disabled .page-link { + background: unset; +} + +.page-link { + padding: 0; + box-sizing: border-box; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + color: #979AA0; + border: none; + background-color: transparent; + border-radius: 10px; +} + +.page-link:hover { + background-color: transparent; + color: #979AA0; +} + +.dropzone .dropzone-form-inner { + pointer-events: none; +} + +.dropzone-form { + border-radius: 3px; + /*background: transparent url(../fonts/dropzone-bg-2.svg) center/contain no-repeat;*/ + background: transparent; + border: none; + padding: 20px 20px; +} + +.dropzone-form-inner { + text-align: center; + padding-top: 76px; + padding-bottom: 76px; +} + +.dropzone-form-icon { + display: flex; + justify-content: center; +} + +.dropzone-form-icon img { + max-width: 100%; + height: auto; +} + +.dropzone-form-text { + font-size: 18px; + line-height: 1.5; + margin-top: 18px; +} + +.dropzone-form-format { + margin-top: 24px; + display: flex; + color: #979AA0; + font-size: 12px; + gap: 12px; + flex-wrap: wrap; + align-items: center; + justify-content: center; +} + +.dropzone-form-format-label { + color: #2B2D2F; +} + +.dropzone-form-format-list { + display: flex; + gap: 8px; + flex-wrap: wrap; +} + +.dropzone-form-format-item { + display: inline-flex; + align-items: center; + padding: 4px 8px; + border: 1px solid #E5E5E7; + border-radius: 8px; + background-color: #F8F9FB; + color: #596574; +} + +.dropzone-form-action { + margin-top: 24px; +} + +.dropzone-form-button { + display: inline-flex; + padding: 0 24px; + height: 48px; + align-items: center; + justify-content: center; + text-align: center; + gap: 6px; + border: none; + box-sizing: border-box; + background: linear-gradient(to bottom, #3D87E3, #990694); + color: #fff; + font-weight: 600; + border-radius: 16px; +} + +.dropzone-form-button svg { + width: 20px; + height: 20px; +} + +.dz-default { + display: none; +} + +.dropzone-form-loading .dropzone-form-inner { + pointer-events: auto; + padding: 86px 16px; +} + +.dropzone-form-filename { + font-size: 16px; + color: #979AA0; + margin-top: 10px; +} + +.dropzone-form-loading-info { + margin-top: 24px; + display: flex; + align-items: center; + justify-content: space-between; +} + +.dropzone-form-loading-info-item { + display: flex; + gap: 8px; +} + +.dropzone-form-loading-info-item:not(:last-child) { + margin-bottom: 8px; +} + +.dropzone-form-loading-info-icon { + flex-shrink: 0; +} + +.dropzone-form-loading-info-icon svg { + width: 24px; + height: 24px; +} + +.dropzone-form-loading-info-text { + font-size: 14px; + line-height: 1.5; + text-align: left; +} + +.dropzone-form-loading-info-arrow { + flex-basis: 54px; +} + +.dropzone-form-loading-info-arrow svg { + width: 37px; + height: 24px; +} + +.dropzone-form-loading-progress { + margin-top: 24px; + max-width: 368px; + margin-left: auto; + margin-right: auto; +} + +.dropzone-form-loading-progress .progress { + height: 29px; + border-radius: 100px; + background-color: transparent; + border: 1px solid #fff; + position: relative; +} + +.dropzone-form-loading-progress .progress-bar { + border-radius: 100px; + background: linear-gradient(to bottom, #3D87E3, #990694); + font-size: 16px; +} + +.dropzone-form-loading-progress .progress-label { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: currentColor; +} + +.dropzone-form-note { + margin-top: 24px; + font-size: 16px; + color: #979AA0; + font-weight: 500; +} + +.dropzone-options { + padding-left: 24px; + padding-right: 24px; + box-sizing: border-box; +} + +.dropzone-options-title { + font-size: 28px; + font-weight: 600; +} + +.dropzone-options-text { + margin-top: 10px; + font-size: 18px; + line-height: 1.5; +} + +.dropzone-options-row { + margin-top: 24px; + display: flex; + gap: 24px; +} + +.dropzone-options-col { + flex-basis: calc((100% - 24px) / 2); +} + +.dropzone-options-radio { + display: flex; + gap: 12px; + text-align: left; + align-items: flex-start; +} + +.dropzone-options-radio-button { + background-color: transparent; + border: none; + outline: none; + cursor: pointer; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + transform: translateY(14px); +} + +.dropzone-options-radio-button svg { + width: 24px; + height: 24px; +} + +.dropzone-options-radio-button:not(.active) .dot { + display: none; +} + +.dropzone-options-radio-label { + font-size: 32px; + font-weight: 600; + line-height: 1.2; +} + +.dropzone-options-radio-description { + font-size: 16px; + color: #C1C3C7; +} + +.dropzone-options-buttons { + margin-top: 24px; + display: flex; + flex-direction: column; + align-items: center; + gap: 24px; +} + +.dropzone-options-buttons .button-outline { + background-color: transparent; + border-color: #990694 !important; +} + +.dropzone-form-options .dropzone-form-inner { + padding-top: 62px; + padding-bottom: 62px; +} + +.dropzone-agreement { + text-align: center; + font-size: 12px; + color: #979AA0; + line-height: 1.5; + margin-top: 16px; + max-width: 368px; + margin-left: auto; + margin-right: auto; +} + +.dropzone-agreement a { + color: #fff; + text-decoration: underline; +} + +.tab-pane.balance { + border-radius: 0; + border: none; + background-color: transparent; +} + +.balance-stats { + background-color: rgba(255, 255, 255, 0.6); + border: 1px solid #E5E5E7; + border-radius: 16px; + padding: 24px; + display: flex; + gap: 14px; +} + +.balance-stats:not(:last-child) { + margin-bottom: 16px; +} + +.balance-stats-col { + flex-basis: calc((100% - 28px) / 3); +} + +.balance-stats-col.color-success .balance-stats-label { + color: #2EBF43; +} + +.balance-stats-col.color-success .balance-stats-value { + color: #2EBF43; +} + +.balance-stats-label { + font-size: 13px; + color: #728490; + line-height: 1.5; +} + +.balance-stats-label:not(:last-child) { + margin-bottom: 4px; +} + +.balance-stats-value { + color: #000; + font-weight: 600; + font-size: 16px; + line-height: 1.2; +} + +.balance-stats-value:not(:last-child) { + margin-bottom: 4px; +} + +.balance-history-item { + background-color: rgba(255, 255, 255, 0.6); + border-bottom: 1px solid #E5E5E7; + padding: 8px; + box-sizing: border-box; +} + +.balance-history-title { + font-size: 14px; + font-weight: 500; + margin-bottom: 8px; + line-height: 1.5; +} + +.balance-history-bottom { + display: flex; + gap: 8px; +} + +.balance-history-media { + flex-shrink: 0; + flex-basis: 70px; +} + +.balance-history-image { + padding-bottom: 57%; + position: relative; + display: block; +} + +.balance-history-image img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + border-radius: 6px; +} + +.balance-history-info { + flex-grow: 1; + font-size: 13px; + color: #728490; + line-height: 1.5; +} + +.balance-history-value span { + color: #fff; +} + +.balance-history-change { + flex-shrink: 0; + align-self: center; + font-size: 14px; + color: #2EBF43; +} + +.balance-history-change.color-danger { + color: #EB5757; +} + +.balance-history .pagination { + margin-top: 16px; +} + +.tariffs-description p { + color: #979AA0; + font-size: 18px; +} + +.tariffs-row { + display: flex; + gap: 24px; + flex-wrap: wrap; +} + +.tariffs-item { + flex-basis: calc((100% - 24px) / 2); + position: relative; + background-color: rgba(255, 255, 255, 0.9); + border: 2px solid #E5E5E7; + padding: 40px 24px; + box-sizing: border-box; + border-radius: 16px; + cursor: pointer; + transition: 0.3s; +} + +.tariffs-item:not(.active) .tariffs-check .dot { + display: none; +} + +.tariffs-item.active { + border-color: #990694 !important; + box-shadow: 0 0 60px -10px #6831E1; +} + +.tariffs-item.active .tariffs-badge { + background: linear-gradient(to bottom, #3D87E3, #990694); + border: none; + color: #fff; +} + +.tariffs-badge { + font-size: 16px; + font-weight: 500; + display: inline-flex; + align-items: center; + justify-content: center; + text-align: center; + padding: 3px 12px; + box-sizing: border-box; + border-radius: 100px; + border: 1px solid #990694; + text-transform: uppercase; + position: absolute; + top: 8px; + right: 8px; + color: #990694; +} + +.tariffs-item-main { + padding-bottom: 40px; +} + +.tariffs-main-row { + display: flex; + gap: 12px; +} + +.tariffs-check { + flex-shrink: 0; + transform: translateY(12px); +} + +.tariffs-check svg { + width: 24px; + height: 24px; +} + +.tariffs-price-value { + font-size: 40px; + font-weight: 600; +} + +.tariffs-price-value sup { + font-size: 22px; + color: #2B2D2F; + text-decoration: line-through; + font-weight: 400; +} + +.tariffs-price-label { + font-size: 20px; + color: #2B2D2F; +} + +.tariffs-info { + border-top: 1px solid #323539; + padding-top: 24px; + display: flex; + gap: 24px; +} + +.tariffs-info-item { + flex-basis: calc((100% - 24px) / 2); + display: flex; + gap: 12px; +} + +.tariffs-info-icon { + flex-shrink: 0; +} + +.tariffs-info-icon svg { + width: 24px; + height: 24px; +} + +.tariffs-info-label { + font-size: 14px; + color: #979AA0; +} + +.tariffs-info-value p { + margin: 0; +} + +.tariffs-info-value span { + color: #B4B4B4; +} + +.tariffs-action { + margin-top: 40px; + display: flex; + gap: 24px; +} + +.tariffs-button { + flex-shrink: 0; +} + +.tariffs-btn { + background: #728490 linear-gradient(to bottom, #3D87E3, #990694); + border-radius: 16px; + height: 48px; + gap: 6px; + padding-left: 24px; + padding-right: 24px; + justify-content: center; + color: #fff; + border: none; + outline: none; + box-shadow: none; +} + +.tariffs-btn.disable { + background: #728490; + background-image: none; +} + +.tariffs-notification { + display: flex; + gap: 10px; +} + +.tariffs-notification-icon { + flex-shrink: 0; +} + +.tariffs-notification-icon svg { + width: 24px; + height: 24px; +} + +.tariffs-notification-text { + font-size: 16px; + line-height: 1.5; +} + +.tariffs-conditions { + margin-top: 24px; +} + +.tariffs-conditions-item { + display: flex; + align-items: flex-start; + gap: 16px; + font-size: 13px; + color: #979AA0; +} + +.tariffs-conditions-item:not(:last-child) { + margin-bottom: 24px; +} + +.tariffs-conditions-item input { + flex-shrink: 0; + transform: translateY(4px); +} + +.gradient-dashed-border { + position: relative; + border-radius: 24px; +} + +.gradient-dashed-border::before { + content: ""; + position: absolute; + z-index: 10; + inset: 0; + border-radius: inherit; + pointer-events: none; + background: linear-gradient(135deg, #168cff 0%, #705cff 50%, #ed00c8 100%); + -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Crect x='0.5' y='0.5' width='99' height='99' rx='6' ry='6' fill='none' stroke='white' stroke-width='1.5' stroke-dasharray='7 8' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat; + mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Crect x='0.5' y='0.5' width='99' height='99' rx='6' ry='6' fill='none' stroke='white' stroke-width='1.5' stroke-dasharray='7 8' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat; +} + +body:not(.theme-dark) .theme-light-hidden { + display: none; +} + +.theme-dark { + color: #F9F9F9; +} + +.theme-dark button { + color: #F9F9F9; +} + +.theme-dark .theme-dark-hidden { + display: none; +} + +.theme-dark .btn { + color: #F9F9F9; +} + +.theme-dark .wrapper { + background-image: url(../images/dark-bg.jpg); +} + +.theme-dark .theme-toggle { + background-color: #0B0B10; + border-color: #323539; +} + +.theme-dark .theme-toggle .btn:not(.dark) { + color: #323539; +} + +.theme-dark .btn-header { + border-color: #fff; + color: #fff; +} + +.theme-dark .btn-header:hover { + color: #fff; +} + +.theme-dark .navbar-brand img:nth-child(1) { + display: none; +} + +.theme-dark .navbar-brand img:nth-child(2) { + display: block; +} + +.theme-dark .footer-logo img:nth-child(1) { + display: none; +} + +.theme-dark .footer-logo img:nth-child(2) { + display: block; +} + +.theme-dark .header { + background-color: transparent; +} + +.theme-dark .header .navbar { + border-color: #323539; +} + +.theme-dark .header .navbar-collapse { + background-color: rgba(1, 1, 3, 0.9); +} + +.theme-dark .header .header-navbar .nav-link:hover { + background-color: #0B0B10 !important; +} + +.theme-dark .dropzone-form-format-label { + color: #979AA0; +} + +.theme-dark .dropzone-form-format-item { + border-color: #323539; + background-color: #0B0B10; + color: #979AA0; +} + +.theme-dark .footer { + background-color: rgba(2, 2, 3, 0.5); +} + +.theme-dark .footer-main a { + color: currentColor; +} + +.theme-dark .tariffs-item { + background-color: rgba(11, 11, 16, 0.9); + border-color: #323539; +} + +.theme-dark .tariffs-price-value sup { + color: #C1C3C7; +} + +.theme-dark .tariffs-price-label { + color: #C1C3C7; +} + +.theme-dark .tariffs-badge { + color: #fff; +} + +.theme-dark .dashboard .tab-pane { + background: rgba(11, 11, 16, 0.6); +} + +.theme-dark .dashboard-nav .nav-link { + background: rgba(11, 11, 16, 0.6); +} + +.theme-dark .dashboard-nav .nav-link.active { + color: #F9F9F9; + border: 1px solid #990694 !important; + background-color: transparent; +} + +.theme-dark .profile-value { + color: #FFFFFF; +} + +.theme-dark .message-form .form-control { + background-color: #0B0B10; + color: #fff; + border-color: #323539; +} + +.theme-dark .message-form .input-group-text { + background-color: #0B0B10; + color: #fff; + border-color: #323539; +} + +.theme-dark .message-form .custom-select { + background-color: #0B0B10; + color: #fff; + border-color: #323539; +} + +.theme-dark .button-outline { + border: 1px solid #fff; + color: #fff; +} + +.theme-dark .custom-checkbox .custom-control-input:checked ~ .custom-control-label::before { + border-color: #fff !important; +} + +.theme-dark .custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} + +.theme-dark .pin-digit { + border: 1px solid #323539; + background-color: rgba(255, 255, 255, 0.07); + color: #F9F9F9; +} + +.theme-dark .pin-digit::-moz-placeholder { + color: #F9F9F9; +} + +.theme-dark .pin-digit:-ms-input-placeholder { + color: #F9F9F9; +} + +.theme-dark .pin-digit::placeholder { + color: #F9F9F9; +} + +.theme-dark .pin-digit:focus { + border-color: #F9F9F9; +} + +.theme-dark .dashboard .tab-pane { + background-color: transparent; +} + +.theme-dark .balance-stats { + background-color: rgba(11, 11, 16, 0.6); + border-color: #323539; +} + +.theme-dark .balance-stats-value { + color: #F9F9F9; +} + +.theme-dark .balance-history-item { + background-color: rgba(11, 11, 16, 0.6); + border-color: #323539; +} + +@media (min-width: 1200px) { + .container { + max-width: 1300px; + } +} + +@media (max-width: 1199.98px) { + .profile-item { + flex-basis: 100%; + } + + .dropzone-options-title { + font-size: 20px; + } + + .dropzone-options-text { + font-size: 16px; + } + + .dropzone-form-options .dropzone-form-inner { + padding-top: 24px; + padding-bottom: 24px; + } + + .dropzone-options-radio-label { + font-size: 24px; + } + + .dropzone-options-buttons { + gap: 16px; + margin-top: 16px; + } + + .dropzone-options-row { + margin-top: 16px; + } +} + +.nav-link-auth { + display: none !important; +} + +@media (max-width: 767.98px) { + .nav-link-auth { + display: inline-flex !important; + } + .site { + padding-top: 60px; + } + + .navbar-toggler { + width: 40px; + height: 40px; + padding: 0; + border-radius: 8px; + } + + .theme-toggle { + border-radius: 8px; + } + + .image-examples { + display: block; + text-align: center; + } + + .image-examples-label { + margin-bottom: 16px; + } + + .image-loading-error-title { + font-size: 18px; + } + + .image-loading-error-text { + margin-top: 8px; + font-size: 13px; + } + + .dropzone-form-inner { + padding-top: 0; + padding-bottom: 0; + } + + .dropzone-form-text { + font-size: 16px; + margin-top: 8px; + } + + .dropzone-form-format { + margin-top: 8px; + row-gap: 8px; + } + + .dropzone-form-action { + margin-top: 8px; + } + + #dropzone-form, #preview { + margin-top: 16px; + } + + .footer { + padding-top: 0px; + } + + .navbar-brand img { + max-width: 130px; + } + + .footer-main ul { + font-size: 13px; + } + + .footer-main p { + font-size: 13px; + } + + .footer-main h5 { + font-size: 16px; + } + + .image-examples-image img { + border-radius: 8px; + } + + .footer-bottom { + font-size: 10px; + } + + .preview-zoom-row { + flex-direction: row; + gap: 4px; + margin-top: 4px; + } + + .preview-zoom-item { + flex-basis: calc((100% - 4px) / 2); + } + + .preview-zoom-image { + padding-bottom: 65%; + } + + .preview-full-handle { + width: 89px; + height: 59px; + + top: calc(50% - (59px / 2)); + left: calc(50% - (89px / 2)); + font-size: 0; + } + + .preview-full-handle svg { + position: absolute; + right: 4px; + bottom: 4px; + transform: none; + } + + .dashboard-message-content { + text-align: left; + } + + .dashboard-message-buttons { + gap: 10px; + } + + .dashboard-message-buttons .btn { + flex-basis: 100%; + } + + .profile-tab-content { + min-height: 0; + } + + .dashboard-upload-placeholder { + padding: 40px 24px; + margin-top: 24px; + } + + .dashboard-upload-placeholder-text { + font-size: 16px; + } + + .profile { + gap: 10px; + } + + .profile-item { + gap: 16px; + padding: 10px; + } + + .profile-icon img { + width: 40px; + height: 40px; + } + + .profile-value { + font-size: 18px; + } + + .message-centered-list { + padding-left: 20px; + font-size: 13px; + } + + .message-valid { + font-size: 16px; + } + + .payment-modal-title { + font-size: 18px; + margin-bottom: 16px; + } + + .payment-modal-link { + min-height: 46px; + } + + .dropzone-form-button { + font-size: 14px; + padding-left: 14px; + padding-right: 14px; + width: 100%; + } + + .dropzone-form-loading .dropzone-form-inner { + /*padding-top: 44px;*/ + padding-top: 0px; + padding-bottom: 44px; + padding-bottom: 0px; + } + + .dropzone-form-loading-info { + margin: 0 5%; + } + + .main-section:not(.main-section-alt) { + justify-content: unset; + } + + .dropzone-form-filename { + font-size: 14px; + } + + .dropzone-form-loading-info-text { + font-size: 13px; + } + + .dropzone-form-note { + font-size: 14px; + } + + .dropzone-options-title { + font-size: 18px; + } + + .dropzone-options { + max-width: 370px; + margin-left: auto; + margin-right: auto; + } + + .dropzone-options-radio-description { + font-size: 13px; + } + + .tariffs-item { + flex-basis: 100%; + padding: 16px; + } + + .tariffs-badge { + font-size: 14px; + } + + .tariffs-item-main { + padding-bottom: 16px; + } + + .tariffs-main-row { + gap: 8px; + } + + .tariffs-price-value sup { + font-size: 18px; + } + + .tariffs-price-value { + font-size: 24px; + } + + .tariffs-price-label { + font-size: 14px; + } + + .tariffs-info { + padding-top: 16px; + } + + .tariffs-info-item { + gap: 8px; + } + + .tariffs-info-label { + font-size: 13px; + } + + .tariffs-info-value { + font-size: 14px; + } + + .tariffs-action { + flex-wrap: wrap; + margin-top: 16px; + gap: 16px; + } + + .tariffs-button { + width: 100%; + } + + .tariffs-btn { + width: 100%; + } + + .tariffs-notification-text { + font-size: 13px; + } + + .tariffs-conditions-item { + font-size: 13px; + } + + .gradient-dashed-border { + border-radius: 10px; + } +} + +.subscription-card-real-field { + position: absolute; + left: 20px; + bottom: 56px; +} + +.subscription-card-hidden-input { + position: absolute; + width: 1px; + height: 1px; + opacity: 0; + pointer-events: none; +} + +.subscription-card-visual { + display: flex; + align-items: center; + gap: 12px; +} + +.subscription-card-group { + display: flex; + align-items: center; + gap: 3px; +} + +.subscription-card-group-active { + border: 1px solid rgba(255, 255, 255, 0.8); + border-radius: 6px; + padding: 4px 6px; +} + +.subscription-card-group span { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 14px; + height: 24px; + color: #fff; + font-size: 22px; + line-height: 1; + cursor: pointer; + position: relative; +} + +.subscription-card-group-disabled span { + color: rgba(255, 255, 255, 0.25); + cursor: default; +} + +.subscription-card-group span.is-empty { + color: rgba(255, 255, 255, 0.35); +} + +.subscription-card-group span.is-active::after { + content: ""; + position: absolute; + left: 1px; + right: 1px; + bottom: -2px; + height: 2px; + background: #fff; + border-radius: 2px; +} + + + +@media (max-width: 480px) { + .subscription-card-visual { + gap: 6px; + } + + .subscription-card-group { + gap: 2px; + } + + .subscription-card-group span { + font-size: 16px; + min-width: 12px; + } +} + +.form-control:-webkit-autofill, +.form-control:-webkit-autofill:hover, +.form-control:-webkit-autofill:focus, +.form-control:-webkit-autofill:active { + -webkit-box-shadow: unset !important; + + -webkit-text-fill-color: #ffffff !important; + + transition: background-color 5000s ease-in-out 0s; +} + +.preview-full-image, +.containment-wrapper, +#draggable { + touch-action: none; +} + +#preview-source { + display: none; +} + +@media (orientation: portrait) { + .hide-on-pc { + display: block; + } + .hide-on-mob { + display: none; + } +} + +@media (orientation: landscape) { + .hide-on-pc { + display: none !important; + } + .hide-on-mob { + display: block; + } +} + +@media (orientation: portrait), (max-aspect-ratio: 1/1) { + + .image-examples { + max-width: calc(100dvh / 3); + margin: 0 auto; + } + + #dropzone-form { + padding: 2dvh 2.75dvh; + } + + .dropzone-form-icon { + max-height: 8dvh; + } + + .dropzone-form-text, .image-examples-label { + font-size: 2.45dvh; + } + .dropzone-form-format-label, .dropzone-form-format-item { + font-size: 1.8dvh; + } + + .main-section { + padding-top: 2dvh !important; + } +} \ No newline at end of file diff --git a/style.min.c.css b/style.min.c.css new file mode 100644 index 0000000..e83c52b --- /dev/null +++ b/style.min.c.css @@ -0,0 +1,779 @@ +/* ========================================================================== + +MINIMAL BOOTSTRAP REBOOT & GRID SUBSYYSTEM +========================================================================== */ +*, *::before, *::after { +box-sizing: border-box; +} + +body { +margin: 0; +font-family: "Inter", sans-serif; +padding: unset !important; +overflow: auto !important; +} + +/* Container */ +.container { +width: 100%; +padding-right: 15px; +padding-left: 15px; +margin-right: auto; +margin-left: auto; +} +@media (min-width: 576px) { .container { max-width: 540px; } } +@media (min-width: 768px) { .container { max-width: 720px; } } +@media (min-width: 992px) { .container { max-width: 960px; } } +@media (min-width: 1200px) { .container { max-width: 1300px; } } + +/* Grid Row & Cols */ +.row { +display: flex; +flex-wrap: wrap; +margin-right: -15px; +margin-left: -15px; +} + +.col-6, .col-md-4, .col-md-5, .col-md-7 { +position: relative; +width: 100%; +padding-right: 15px; +padding-left: 15px; +} + +.col-6 { +flex: 0 0 50%; +max-width: 50%; +} + +@media (min-width: 768px) { +.col-md-4 { +flex: 0 0 33.333333%; +max-width: 33.333333%; +} +.col-md-5 { +flex: 0 0 41.666667%; +max-width: 41.666667%; +} +.col-md-7 { +flex: 0 0 58.333333%; +max-width: 58.333333%; +} +.order-md-1 { +order: 1; +} +.d-md-none { +display: none !important; +} +.d-md-flex { +display: flex !important; +} +.py-md-3 { +padding-top: 1rem !important; +padding-bottom: 1rem !important; +} +.mb-md-0 { +margin-bottom: 0 !important; +} +.text-md-right { +text-align: right !important; +} +} + +/* Flex utilities */ +.d-none { display: none !important; } +.d-flex { display: flex !important; } +.flex-column { flex-direction: column !important; } +.align-items-center { align-items: center !important; } + +/* Spacing */ +.m-0 { margin: 0 !important; } +.mb-0 { margin-bottom: 0 !important; } +.mb-2 { margin-bottom: 0.5rem !important; } +.mb-3 { margin-bottom: 1rem !important; } +.mb-4 { margin-bottom: 1.5rem !important; } +.mt-4 { margin-top: 1.5rem !important; } +.mr-4 { margin-right: 1.5rem !important; } +.px-0 { padding-left: 0 !important; padding-right: 0 !important; } +.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; } +.py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } +.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } +.py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; } + +/* Typography & Lists */ +.h5 { +font-size: 1.25rem; +font-weight: 500; +line-height: 1.2; +} +.list-unstyled { +padding-left: 0; +list-style: none; +} +.list-unstyled a { +color: #56CCF2; +text-decoration: none; +} + +/* Buttons */ +.btn { +display: inline-flex; +align-items: center; +justify-content: center; +font-weight: 400; +text-align: center; +vertical-align: middle; +user-select: none; +border: 1px solid transparent; +padding: 0.375rem 0.75rem; +font-size: 1rem; +line-height: 1.5; +border-radius: 0.25rem; +text-decoration: none; +cursor: pointer; +background-color: transparent; +} +.btn.disabled { +opacity: 1; +} + +/* Progress Component */ +.progress { +display: flex; +height: 1rem; +overflow: hidden; +font-size: 0.75rem; +background-color: transparent; +border-radius: 0.25rem; +} +.progress-bar { +display: flex; +flex-direction: column; +justify-content: center; +overflow: hidden; +color: #fff; +text-align: center; +white-space: nowrap; +transition: width 0.6s ease; +} + +/* Navbar & Collapse */ +.navbar { +position: relative; +display: flex; +flex-wrap: wrap; +align-items: center; +justify-content: space-between; +} +.navbar-brand { +display: inline-block; +padding-top: 0.3125rem; +padding-bottom: 0.3125rem; +white-space: nowrap; +} +.navbar-collapse { +flex-basis: 100%; +flex-grow: 1; +align-items: center; +} +.collapse:not(.show) { +display: none; +} + +/* Nav links */ +.nav { +display: flex; +flex-wrap: wrap; +padding-left: 0; +margin-bottom: 0; +list-style: none; +} +.nav-link { +display: block; +padding: 0.5rem 1rem; +text-decoration: none; +} + +/* ========================================================================== +2. APPLICATION & LAYOUT STYLES +========================================================================== */ +.wrapper { +display: flex; +flex-direction: column; +min-height: 100vh; +background: url(../images/bg.jpg) center/cover no-repeat; +} + +.site { +flex-grow: 1; +padding-top: 90px; +} + +.main-section { +display: flex; +flex-direction: column; +justify-content: center; +min-height: calc(100vh - 88px); +} + +.navbar-brand img:nth-child(2), +.footer-logo img:nth-child(2) { +display: none; +} + +/* Header */ +.header { +position: absolute; +top: 0; +left: 0; +width: 100%; +z-index: 60; +background-color: rgba(255, 255, 255, 0.6); +} +.header .navbar { +border-bottom: 1px solid #E5E5E7; +} +.header .navbar-collapse { +background-color: rgba(255, 255, 255, 0.6); +} + +.btn-header { +gap: 8px; +border: 1px solid #990694; +border-radius: 16px; +font-size: 16px; +padding: 0.9rem 24px; +color: #990694; +} +.btn-header:hover { +color: #990694; +} + +.navbar-toggler { +border-radius: 16px; +width: 56px; +height: 56px; +background: linear-gradient(to bottom, #3D87E3, #990694); +color: #F9F9F9; +border: none; +cursor: pointer; +display: inline-flex; +align-items: center; +justify-content: center; +} +.navbar-toggler .navbar-toggler-icon { +width: 30px; +height: 30px; +display: inline-block; +background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") center/contain no-repeat; +} +.navbar-toggler:not(.collapsed) .navbar-toggler-icon { +background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-width='2' d='M6 6L24 23.9999M6 24L24 6.00015'/%3e%3c/svg%3e"); +} + +.header-navbar { +max-width: 448px; +margin-left: auto; +padding-top: 8px; +padding-bottom: 24px; +} +.header-navbar .nav-link { +color: currentColor; +transition: 0.2s; +background-color: transparent !important; +display: flex; +align-items: center; +gap: 8px; +} +.header-navbar .nav-link span { +flex-grow: 1; +} +.header-navbar .nav-link svg { +flex-shrink: 0; +} +.header-navbar .nav-link:hover { +background-color: rgba(255, 255, 255, 0.6) !important; +color: #871EA3; +} +.nav-link-auth { +display: none !important; +} + +/* ========================================================================== +3. COMPONENTS (FORM, DROPZONE, PREVIEW, EXAMPLES) +========================================================================= / +/ Gradient Dashed Border */ +.gradient-dashed-border { +position: relative; +border-radius: 24px; +} +.gradient-dashed-border::before { +content: ""; +position: absolute; +z-index: 10; +inset: 0; +border-radius: inherit; +pointer-events: none; +background: linear-gradient(135deg, #168cff 0%, #705cff 50%, #ed00c8 100%); +-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Crect x='0.5' y='0.5' width='99' height='99' rx='6' ry='6' fill='none' stroke='white' stroke-width='1.5' stroke-dasharray='7 8' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat; +mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Crect x='0.5' y='0.5' width='99' height='99' rx='6' ry='6' fill='none' stroke='white' stroke-width='1.5' stroke-dasharray='7 8' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat; +} + +/* Dropzone Form */ +.dropzone-form { +border-radius: 3px; +background: transparent; +border: none; +padding: 20px; +} +.dropzone-form-inner { +text-align: center; +padding-top: 76px; +padding-bottom: 76px; +} +.dropzone-form-icon { +display: flex; +justify-content: center; +} +.dropzone-form-icon img { +max-width: 100%; +height: auto; +} +.dropzone-form-text { +font-size: 18px; +line-height: 1.5; +margin-top: 18px; +} +.dropzone-form-format { +margin-top: 24px; +display: flex; +color: #979AA0; +font-size: 12px; +gap: 12px; +flex-wrap: wrap; +align-items: center; +justify-content: center; +} +.dropzone-form-format-label { +color: #2B2D2F; +} +.dropzone-form-format-list { +display: flex; +gap: 8px; +flex-wrap: wrap; +} +.dropzone-form-format-item { +display: inline-flex; +align-items: center; +padding: 4px 8px; +border: 1px solid #E5E5E7; +border-radius: 8px; +background-color: #F8F9FB; +color: #596574; +} +.dropzone-form-action { +margin-top: 24px; +} +.dropzone-form-button { +display: inline-flex; +padding: 0 24px; +height: 48px; +align-items: center; +justify-content: center; +text-align: center; +gap: 6px; +border: none; +background: linear-gradient(to bottom, #3D87E3, #990694); +color: #fff; +font-weight: 600; +border-radius: 16px; +cursor: pointer; +} +.dropzone-form-button svg { +width: 20px; +height: 20px; +} + +/* Loading & Process Stage */ +.dropzone-form-loading .dropzone-form-inner { +padding: 86px 16px; +} +.dropzone-form-filename { +font-size: 16px; +color: #979AA0; +margin-top: 10px; +} +.dropzone-form-loading-info { +margin-top: 24px; +display: flex; +align-items: center; +justify-content: space-between; +} +.dropzone-form-loading-info-item { +display: flex; +gap: 8px; +} +.dropzone-form-loading-info-item:not(:last-child) { +margin-bottom: 8px; +} +.dropzone-form-loading-info-icon { +flex-shrink: 0; +} +.dropzone-form-loading-info-icon svg { +width: 24px; +height: 24px; +} +.dropzone-form-loading-info-text { +font-size: 14px; +line-height: 1.5; +text-align: left; +} +.dropzone-form-loading-info-arrow { +flex-basis: 54px; +} +.dropzone-form-loading-info-arrow svg { +width: 37px; +height: 24px; +} +.dropzone-form-loading-progress { +margin-top: 24px; +max-width: 368px; +margin-left: auto; +margin-right: auto; +} +.dropzone-form-loading-progress .progress { +height: 29px; +border-radius: 100px; +background-color: transparent; +border: 1px solid #fff; +position: relative; +} +.dropzone-form-loading-progress .progress-bar { +border-radius: 100px; +background: linear-gradient(to bottom, #3D87E3, #990694); +font-size: 16px; +} +.dropzone-form-loading-progress .progress-label { +position: absolute; +top: 50%; +left: 50%; +transform: translate(-50%, -50%); +color: currentColor; +} +.dropzone-form-note { +margin-top: 24px; +font-size: 16px; +color: #979AA0; +font-weight: 500; +} + +/* Image Examples Grid */ +.image-examples { +margin-top: 16px; +display: flex; +gap: 16px; +align-items: center; +} +.image-examples-label { +flex-shrink: 0; +} +.image-examples-list { +display: flex; +gap: 2px; +flex-grow: 1; +} +.image-examples-item { +flex-basis: calc((100% - 8px) / 5); +cursor: pointer; +} +.image-examples-image { +position: relative; +padding-bottom: 100%; +} +.image-examples-image img { +position: absolute; +top: 0; +left: 0; +width: 100%; +height: 100%; +object-fit: cover; +display: block; +border-radius: 8px; +} + +/* Preview Component */ +.image-loading img { +max-width: 100%; +border-radius: 24px; +} +.image-loading-progress { +position: relative; +} +.image-loading-progress::before { +content: ""; +display: block; +width: 100%; +height: 100%; +position: absolute; +top: 0; +left: 0; +background-color: rgba(0, 0, 0, 0.4); +z-index: 2; +background-image: var(--source); +filter: blur(15px) brightness(0.7); +background-size: cover; +background-position: center; +transform: scale(1.1); +} +.image-loading-progress img { +position: relative; +z-index: 1; +} +.image-loading-icon { +position: absolute; +top: 50%; +left: 50%; +transform: translate(-50%, -50%); +z-index: 3; +} +.image-loading-icon img.sandglass { +position: absolute; +top: 50%; +left: 50%; +transform: translate(-50%, -50%); +width: 40px; +height: 40px; +object-fit: contain; +} +.image-loading-icon img.spinner { +width: 140px; +height: 140px; +object-fit: contain; +} +.image-loading-error { +position: absolute; +top: 50%; +left: 50%; +transform: translate(-50%, -50%); +max-width: 400px; +width: 100%; +padding: 16px; +text-align: center; +z-index: 4; +} +.image-loading-error-icon { +margin-bottom: 8px; +} +.image-loading-error-icon img { +width: 64px; +height: 64px; +object-fit: contain; +} +.image-loading-error-title { +font-size: 24px; +} +.image-loading-error-text { +font-size: 14px; +margin-top: 10px; +color: rgb(151, 154, 160); +} + +/* ========================================================================== +4. FOOTER +========================================================================== */ +.footer { +background-color: rgba(255, 255, 255, 0.75); +padding-top: 50px; +} +.footer-main ul, +.footer-main p { +font-size: 14px; +} +.footer-main a { +color: currentColor; +text-decoration: none; +} +.footer-bottom { +border-top: 1px solid #323539; +font-size: 12px; +color: #979AA0; +} + +/* ========================================================================== +5. THEME DARK +========================================================================== */ +.theme-dark { +color: #F9F9F9; +} +.theme-dark .btn { +color: #F9F9F9; +} +.theme-dark .wrapper { +background-image: url(../images/dark-bg.jpg); +} +.theme-dark .btn-header { +border-color: #fff; +color: #fff; +} +.theme-dark .btn-header:hover { +color: #fff; +} +.theme-dark .navbar-brand img:nth-child(1), +.theme-dark .footer-logo img:nth-child(1) { +display: none; +} +.theme-dark .navbar-brand img:nth-child(2), +.theme-dark .footer-logo img:nth-child(2) { +display: block; +} +.theme-dark .header { +background-color: transparent; +} +.theme-dark .header .navbar { +border-color: #323539; +} +.theme-dark .header .navbar-collapse { +background-color: rgba(1, 1, 3, 0.9); +} +.theme-dark .header .header-navbar .nav-link:hover { +background-color: #0B0B10 !important; +} +.theme-dark .dropzone-form-format-label { +color: #979AA0; +} +.theme-dark .dropzone-form-format-item { +border-color: #323539; +background-color: #0B0B10; +color: #979AA0; +} +.theme-dark .footer { +background-color: rgba(2, 2, 3, 0.5); +} + +/* ========================================================================== +6. RESPONSIVE & MOBILE ADAPTATION +========================================================================== */ +@media (max-width: 767.98px) { +.nav-link-auth { +display: inline-flex !important; +} +.site { +padding-top: 60px; +} +.navbar-toggler { +width: 40px; +height: 40px; +padding: 0; +border-radius: 8px; +} +.image-examples { +display: block; +text-align: center; +} +.image-examples-label { +margin-bottom: 16px; +} +.image-loading-error-title { +font-size: 18px; +} +.image-loading-error-text { +margin-top: 8px; +font-size: 13px; +} +.dropzone-form-inner { +padding-top: 0; +padding-bottom: 0; +} +.dropzone-form-text { +font-size: 16px; +margin-top: 8px; +} +.dropzone-form-format { +margin-top: 8px; +row-gap: 8px; +} +.dropzone-form-action { +margin-top: 8px; +} +#dropzone-form, #preview { +margin-top: 16px; +} +.footer { +padding-top: 0px; +} +.navbar-brand img { +max-width: 130px; +} +.footer-main ul, +.footer-main p { +font-size: 13px; +} +.footer-main .h5 { +font-size: 16px; +} +.footer-bottom { +font-size: 10px; +} +.dropzone-form-button { +font-size: 14px; +padding-left: 14px; +padding-right: 14px; +width: 100%; +} +.dropzone-form-loading .dropzone-form-inner { +padding-top: 0; +padding-bottom: 0; +} +.dropzone-form-loading-info { +margin: 0 5%; +} +.main-section { +justify-content: unset; +} +.dropzone-form-filename { +font-size: 14px; +} +.dropzone-form-loading-info-text { +font-size: 13px; +} +.dropzone-form-note { +font-size: 14px; +} +.gradient-dashed-border { +border-radius: 10px; +} +} + +@media (orientation: portrait) { +.hide-on-pc { display: block; } +.hide-on-mob { display: none; } +} + +@media (orientation: landscape) { +.hide-on-pc { display: none !important; } +.hide-on-mob { display: block; } +} + +@media (orientation: portrait), (max-aspect-ratio: 1/1) { +.image-examples { +max-width: calc(100dvh / 3); +margin: 0 auto; +} +#dropzone-form { +padding: 2dvh 2.75dvh; +} +.dropzone-form-icon { +max-height: 8dvh; +} +.dropzone-form-text, +.image-examples-label { +font-size: 2.45dvh; +} +.dropzone-form-format-label, +.dropzone-form-format-item { +font-size: 1.8dvh; +} +.main-section { +padding-top: 2dvh !important; +} +} \ No newline at end of file diff --git a/style.min.css b/style.min.css new file mode 100644 index 0000000..ed3c400 --- /dev/null +++ b/style.min.css @@ -0,0 +1 @@ +.col-6,.col-md-4,.col-md-5,.col-md-7,.container{padding-right:15px;padding-left:15px;width:100%}.btn,.progress{background-color:transparent}.progress,.progress-bar{overflow:hidden;display:flex}.btn,.footer-main a,.list-unstyled a,.nav-link{text-decoration:none}*,::after,::before{box-sizing:border-box}body{margin:0;font-family:Inter,sans-serif;padding:unset!important;overflow:auto!important}.container{margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.order-md-1{order:1}.d-md-none{display:none!important}.d-md-flex{display:flex!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.mb-md-0{margin-bottom:0!important}.text-md-right{text-align:right!important}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1300px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-6,.col-md-4,.col-md-5,.col-md-7{position:relative}.col-6{flex:0 0 50%;max-width:50%}.d-none,.nav-link-auth{display:none!important}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.align-items-center{align-items:center!important}.btn,.navbar-toggler{align-items:center;cursor:pointer}.m-0{margin:0!important}.mb-0{margin-bottom:0!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mt-4{margin-top:1.5rem!important}.mr-4{margin-right:1.5rem!important}.px-0{padding-left:0!important;padding-right:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.h5{font-size:1.25rem;font-weight:500;line-height:1.2}.list-unstyled{padding-left:0;list-style:none}.list-unstyled a{color:#56ccf2}.btn{display:inline-flex;justify-content:center;font-weight:400;text-align:center;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem}.btn.disabled{opacity:1}.progress{height:1rem;font-size:.75rem;border-radius:.25rem}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;transition:width .6s}.btn-header,.btn-header:hover{color:#990694}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;white-space:nowrap}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.collapse:not(.show),.footer-logo img:nth-child(2),.navbar-brand img:nth-child(2),.theme-dark .footer-logo img:first-child,.theme-dark .navbar-brand img:first-child{display:none}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.wrapper{display:flex;flex-direction:column;min-height:100vh;background:url(../images/bg.jpg) center/cover no-repeat}.header,.header .navbar-collapse{background-color:rgba(255,255,255,.6)}.site{flex-grow:1;padding-top:90px}.main-section{display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 88px)}.header{position:absolute;top:0;left:0;width:100%;z-index:60}.dropzone-form-loading-progress .progress-label,.image-loading-error,.image-loading-icon,.image-loading-icon img.sandglass{top:50%;left:50%;transform:translate(-50%,-50%)}.header .navbar{border-bottom:1px solid #e5e5e7}.btn-header{gap:8px;border:1px solid #990694;border-radius:16px;font-size:16px;padding:.9rem 24px}.navbar-toggler{border-radius:16px;width:56px;height:56px;background:linear-gradient(to bottom,#3d87e3,#990694);color:#f9f9f9;border:none;display:inline-flex;justify-content:center}.navbar-toggler .navbar-toggler-icon{width:30px;height:30px;display:inline-block;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") center/contain no-repeat}.navbar-toggler:not(.collapsed) .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 1%29' stroke-linecap='round' stroke-width='2' d='M6 6L24 23.9999M6 24L24 6.00015'/%3e%3c/svg%3e")}.header-navbar{max-width:448px;margin-left:auto;padding-top:8px;padding-bottom:24px}.header-navbar .nav-link{color:currentColor;transition:.2s;background-color:transparent!important;display:flex;align-items:center;gap:8px}.header-navbar .nav-link span{flex-grow:1}.dropzone-form-loading-info-icon,.header-navbar .nav-link svg,.image-examples-label{flex-shrink:0}.header-navbar .nav-link:hover{background-color:rgba(255,255,255,.6)!important;color:#871ea3}.gradient-dashed-border{position:relative;border-radius:24px}.gradient-dashed-border::before{content:"";position:absolute;z-index:10;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#168cff 0,#705cff 50%,#ed00c8 100%);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Crect x='0.5' y='0.5' width='99' height='99' rx='6' ry='6' fill='none' stroke='white' stroke-width='1.5' stroke-dasharray='7 8' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Crect x='0.5' y='0.5' width='99' height='99' rx='6' ry='6' fill='none' stroke='white' stroke-width='1.5' stroke-dasharray='7 8' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat}.dropzone-form{border-radius:3px;background:0 0;border:none;padding:20px}.dropzone-form-inner{text-align:center;padding-top:76px;padding-bottom:76px}.dropzone-form-icon{display:flex;justify-content:center}.dropzone-form-icon img{max-width:100%;height:auto}.dropzone-form-text{font-size:18px;line-height:1.5;margin-top:18px}.dropzone-form-format{margin-top:24px;display:flex;color:#979aa0;font-size:12px;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center}.dropzone-form-format-label{color:#2b2d2f}.dropzone-form-format-list{display:flex;gap:8px;flex-wrap:wrap}.dropzone-form-format-item{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid #e5e5e7;border-radius:8px;background-color:#f8f9fb;color:#596574}.dropzone-form-action{margin-top:24px}.dropzone-form-button{display:inline-flex;padding:0 24px;height:48px;align-items:center;justify-content:center;text-align:center;gap:6px;border:none;background:linear-gradient(to bottom,#3d87e3,#990694);color:#fff;font-weight:600;border-radius:16px;cursor:pointer}.dropzone-form-button svg{width:20px;height:20px}.dropzone-form-loading .dropzone-form-inner{padding:86px 16px}.dropzone-form-filename{font-size:16px;color:#979aa0;margin-top:10px}.dropzone-form-loading-info{margin-top:24px;display:flex;align-items:center;justify-content:space-between}.dropzone-form-loading-info-item{display:flex;gap:8px}.dropzone-form-loading-info-item:not(:last-child),.image-loading-error-icon{margin-bottom:8px}.dropzone-form-loading-info-icon svg{width:24px;height:24px}.dropzone-form-loading-info-text{font-size:14px;line-height:1.5;text-align:left}.dropzone-form-loading-info-arrow{flex-basis:54px}.dropzone-form-loading-info-arrow svg{width:37px;height:24px}.dropzone-form-loading-progress{margin-top:24px;max-width:368px;margin-left:auto;margin-right:auto}.dropzone-form-loading-progress .progress{height:29px;border-radius:100px;background-color:transparent;border:1px solid #fff;position:relative}.dropzone-form-loading-progress .progress-bar{border-radius:100px;background:linear-gradient(to bottom,#3d87e3,#990694);font-size:16px}.dropzone-form-loading-progress .progress-label{position:absolute;color:currentColor}.dropzone-form-note{margin-top:24px;font-size:16px;color:#979aa0;font-weight:500}.image-examples{margin-top:16px;display:flex;gap:16px;align-items:center}.image-examples-list{display:flex;gap:2px;flex-grow:1}.image-examples-item{flex-basis:calc((100% - 8px)/ 5);cursor:pointer}.image-examples-image{position:relative;padding-bottom:100%}.image-examples-image img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;border-radius:8px}.image-loading img{max-width:100%;border-radius:24px}.image-loading-progress{position:relative}.image-loading-progress::before{content:"";display:block;width:100%;height:100%;position:absolute;top:0;left:0;background-color:rgba(0,0,0,.4);z-index:2;background-image:var(--source);filter:blur(15px) brightness(.7);background-size:cover;background-position:center;transform:scale(1.1)}.image-loading-progress img{position:relative;z-index:1}.image-loading-icon{position:absolute;z-index:3}.image-loading-icon img.sandglass{position:absolute;width:40px;height:40px;object-fit:contain}.image-loading-icon img.spinner{width:140px;height:140px;object-fit:contain}.image-loading-error{position:absolute;max-width:400px;width:100%;padding:16px;text-align:center;z-index:4}.image-loading-error-icon img{width:64px;height:64px;object-fit:contain}.image-loading-error-title{font-size:24px}.image-loading-error-text{font-size:14px;margin-top:10px;color:#979aa0}.footer{background-color:rgba(255,255,255,.75);padding-top:50px}.footer-main p,.footer-main ul{font-size:14px}.footer-main a{color:currentColor}.footer-bottom{border-top:1px solid #323539;font-size:12px;color:#979aa0}.theme-dark,.theme-dark .btn{color:#f9f9f9}.theme-dark .wrapper{background-image:url(../images/dark-bg.jpg)}.theme-dark .btn-header{border-color:#fff;color:#fff}.theme-dark .btn-header:hover{color:#fff}.theme-dark .footer-logo img:nth-child(2),.theme-dark .navbar-brand img:nth-child(2){display:block}.theme-dark .header{background-color:transparent}.theme-dark .header .navbar{border-color:#323539}.theme-dark .header .navbar-collapse{background-color:rgba(1,1,3,.9)}.theme-dark .header .header-navbar .nav-link:hover{background-color:#0b0b10!important}.theme-dark .dropzone-form-format-label{color:#979aa0}.theme-dark .dropzone-form-format-item{border-color:#323539;background-color:#0b0b10;color:#979aa0}.theme-dark .footer{background-color:rgba(2,2,3,.5)}@media (max-width:767.98px){.nav-link-auth{display:inline-flex!important}.site{padding-top:60px}.navbar-toggler{width:40px;height:40px;padding:0;border-radius:8px}.image-examples{display:block;text-align:center}.image-examples-label{margin-bottom:16px}.image-loading-error-title{font-size:18px}.image-loading-error-text{margin-top:8px;font-size:13px}.dropzone-form-inner,.dropzone-form-loading .dropzone-form-inner{padding-top:0;padding-bottom:0}.dropzone-form-text{font-size:16px;margin-top:8px}.dropzone-form-format{margin-top:8px;row-gap:8px}.dropzone-form-action{margin-top:8px}#dropzone-form,#preview{margin-top:16px}.footer{padding-top:0}.navbar-brand img{max-width:130px}.dropzone-form-loading-info-text,.footer-main p,.footer-main ul{font-size:13px}.footer-main .h5{font-size:16px}.footer-bottom{font-size:10px}.dropzone-form-button{font-size:14px;padding-left:14px;padding-right:14px;width:100%}.dropzone-form-loading-info{margin:0 5%}.main-section{justify-content:unset}.dropzone-form-filename,.dropzone-form-note{font-size:14px}.gradient-dashed-border{border-radius:10px}}@media (orientation:portrait){.hide-on-pc{display:block}.hide-on-mob{display:none}}@media (orientation:landscape){.hide-on-pc{display:none!important}.hide-on-mob{display:block}}@media (orientation:portrait),(max-aspect-ratio:1/1){.image-examples{max-width:calc(100dvh / 3);margin:0 auto}#dropzone-form{padding:2dvh 2.75dvh}.dropzone-form-icon{max-height:8dvh}.dropzone-form-text,.image-examples-label{font-size:2.45dvh}.dropzone-form-format-item,.dropzone-form-format-label{font-size:1.8dvh}.main-section{padding-top:2dvh!important}}.native-icv .icv__handle-circle::after,.native-icv .icv__handle-circle::before{content:'';display:inline-block;width:14px;height:14px;background-repeat:no-repeat;background-position:center;background-size:contain}.image-compare.native-icv{position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:pan-y;cursor:ew-resize;aspect-ratio:1696/920;border-radius:24px}.native-icv .icv__before-wrap{position:absolute;top:0;left:0;height:100%;width:50%;overflow:hidden;z-index:2}.native-icv .icv__after-img,.native-icv .icv__before-wrap img{left:0;width:100%;top:0;position:absolute;pointer-events:none;height:100%;object-fit:cover}.native-icv .icv__after-img{display:block}.native-icv .icv__handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;z-index:3;transform:translateX(-50%);box-shadow:0 0 10px rgba(0,0,0,.5)}.native-icv .icv__handle-circle{position:absolute;top:50%;left:50%;width:38px;height:38px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center}.native-icv .icv__handle-circle::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'%3E%3C/polyline%3E%3C/svg%3E")}.native-icv .icv__handle-circle::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333333' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E")}.native-icv .icv__label{position:absolute;top:1rem;z-index:4;font-size:12px;background-color:rgba(255,255,255,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#333;border:1px solid rgba(255,255,255,.7);border-radius:8px;padding:4px 10px;pointer-events:none;font-weight:500}.native-icv .icv__label-before{left:1rem}.native-icv .icv__label-after{right:1rem}#image-compare:not(.native-icv):not(.icv){position:relative;display:flex;overflow:hidden;aspect-ratio:1696/920;border-radius:24px}#image-compare:not(.native-icv):not(.icv) img:first-of-type{width:50%;height:100%;object-fit:cover;object-position:left}#image-compare:not(.native-icv):not(.icv) img:last-of-type{width:50%;height:100%;object-fit:cover;object-position:right}.image-examples-item.active{border-color:#007bff}.deferred-thumb{transition:opacity .25s ease-in}.deferred-thumb:not([src]){opacity:0} \ No newline at end of file diff --git a/template.php b/template.php new file mode 100644 index 0000000..4213769 --- /dev/null +++ b/template.php @@ -0,0 +1,161 @@ + + + + + + + <?= $page_title ?? $default_title ?> + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+
+
+
+ +
+ $assetsUriPrefix, 'indpic' => $indpic]); ?> + $assetsUriPrefix, 'show' => false]); ?> +
+ +
+ $assetsUriPrefix]); ?> + $assetsUriPrefix, 'show' => false]); ?> +
+ +
+
+
+
+ +
+ +
+ + +
+ +
+
+ + + + \ No newline at end of file