@keyframes spin{0%{transform:translateZ(0) rotate(0deg)}100%{transform:translateZ(0) rotate(360deg)}}.abp-block-area{position:fixed;top:0;left:0;width:100%;height:100%;z-index:102;background-color:#fff;opacity:.8;transition:opacity .25s}.abp-block-area.abp-block-area-disappearing{opacity:0}.abp-block-area.abp-block-area-busy:after{content:attr(data-text);display:block;max-width:125px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:20px;font-family:sans-serif;color:#343a40;text-align:center;text-transform:uppercase}.abp-block-area.abp-block-area-busy:before{content:"";display:block;width:150px;height:150px;border-radius:50%;border-width:2px;border-style:solid;border-color:transparent #228ae6 #228ae6 #228ae6;position:absolute;top:calc(50% - 75px);left:calc(50% - 75px);will-change:transform;animation:spin .75s infinite ease-in-out}/*!
 * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
.fa,.fas,.far,.fal,.fad,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fas.fa-pull-left,.far.fa-pull-left,.fal.fa-pull-left,.fab.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fas.fa-pull-right,.far.fa-pull-right,.fal.fa-pull-right,.fab.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-flip-both{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:""}.fa-accessible-icon:before{content:""}.fa-accusoft:before{content:""}.fa-acquisitions-incorporated:before{content:""}.fa-ad:before{content:""}.fa-address-book:before{content:""}.fa-address-card:before{content:""}.fa-adjust:before{content:""}.fa-adn:before{content:""}.fa-adversal:before{content:""}.fa-affiliatetheme:before{content:""}.fa-air-freshener:before{content:""}.fa-airbnb:before{content:""}.fa-algolia:before{content:""}.fa-align-center:before{content:""}.fa-align-justify:before{content:""}.fa-align-left:before{content:""}.fa-align-right:before{content:""}.fa-alipay:before{content:""}.fa-allergies:before{content:""}.fa-amazon:before{content:""}.fa-amazon-pay:before{content:""}.fa-ambulance:before{content:""}.fa-american-sign-language-interpreting:before{content:""}.fa-amilia:before{content:""}.fa-anchor:before{content:""}.fa-android:before{content:""}.fa-angellist:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angry:before{content:""}.fa-angrycreative:before{content:""}.fa-angular:before{content:""}.fa-ankh:before{content:""}.fa-app-store:before{content:""}.fa-app-store-ios:before{content:""}.fa-apper:before{content:""}.fa-apple:before{content:""}.fa-apple-alt:before{content:""}.fa-apple-pay:before{content:""}.fa-archive:before{content:""}.fa-archway:before{content:""}.fa-arrow-alt-circle-down:before{content:""}.fa-arrow-alt-circle-left:before{content:""}.fa-arrow-alt-circle-right:before{content:""}.fa-arrow-alt-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-down:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrows-alt:before{content:""}.fa-arrows-alt-h:before{content:""}.fa-arrows-alt-v:before{content:""}.fa-artstation:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asterisk:before{content:""}.fa-asymmetrik:before{content:""}.fa-at:before{content:""}.fa-atlas:before{content:""}.fa-atlassian:before{content:""}.fa-atom:before{content:""}.fa-audible:before{content:""}.fa-audio-description:before{content:""}.fa-autoprefixer:before{content:""}.fa-avianex:before{content:""}.fa-aviato:before{content:""}.fa-award:before{content:""}.fa-aws:before{content:""}.fa-baby:before{content:""}.fa-baby-carriage:before{content:""}.fa-backspace:before{content:""}.fa-backward:before{content:""}.fa-bacon:before{content:""}.fa-bacteria:before{content:""}.fa-bacterium:before{content:""}.fa-bahai:before{content:""}.fa-balance-scale:before{content:""}.fa-balance-scale-left:before{content:""}.fa-balance-scale-right:before{content:""}.fa-ban:before{content:""}.fa-band-aid:before{content:""}.fa-bandcamp:before{content:""}.fa-barcode:before{content:""}.fa-bars:before{content:""}.fa-baseball-ball:before{content:""}.fa-basketball-ball:before{content:""}.fa-bath:before{content:""}.fa-battery-empty:before{content:""}.fa-battery-full:before{content:""}.fa-battery-half:before{content:""}.fa-battery-quarter:before{content:""}.fa-battery-three-quarters:before{content:""}.fa-battle-net:before{content:""}.fa-bed:before{content:""}.fa-beer:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-bell:before{content:""}.fa-bell-slash:before{content:""}.fa-bezier-curve:before{content:""}.fa-bible:before{content:""}.fa-bicycle:before{content:""}.fa-biking:before{content:""}.fa-bimobject:before{content:""}.fa-binoculars:before{content:""}.fa-biohazard:before{content:""}.fa-birthday-cake:before{content:""}.fa-bitbucket:before{content:""}.fa-bitcoin:before{content:""}.fa-bity:before{content:""}.fa-black-tie:before{content:""}.fa-blackberry:before{content:""}.fa-blender:before{content:""}.fa-blender-phone:before{content:""}.fa-blind:before{content:""}.fa-blog:before{content:""}.fa-blogger:before{content:""}.fa-blogger-b:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-bold:before{content:""}.fa-bolt:before{content:""}.fa-bomb:before{content:""}.fa-bone:before{content:""}.fa-bong:before{content:""}.fa-book:before{content:""}.fa-book-dead:before{content:""}.fa-book-medical:before{content:""}.fa-book-open:before{content:""}.fa-book-reader:before{content:""}.fa-bookmark:before{content:""}.fa-bootstrap:before{content:""}.fa-border-all:before{content:""}.fa-border-none:before{content:""}.fa-border-style:before{content:""}.fa-bowling-ball:before{content:""}.fa-box:before{content:""}.fa-box-open:before{content:""}.fa-box-tissue:before{content:""}.fa-boxes:before{content:""}.fa-braille:before{content:""}.fa-brain:before{content:""}.fa-bread-slice:before{content:""}.fa-briefcase:before{content:""}.fa-briefcase-medical:before{content:""}.fa-broadcast-tower:before{content:""}.fa-broom:before{content:""}.fa-brush:before{content:""}.fa-btc:before{content:""}.fa-buffer:before{content:""}.fa-bug:before{content:""}.fa-building:before{content:""}.fa-bullhorn:before{content:""}.fa-bullseye:before{content:""}.fa-burn:before{content:""}.fa-buromobelexperte:before{content:""}.fa-bus:before{content:""}.fa-bus-alt:before{content:""}.fa-business-time:before{content:""}.fa-buy-n-large:before{content:""}.fa-buysellads:before{content:""}.fa-calculator:before{content:""}.fa-calendar:before{content:""}.fa-calendar-alt:before{content:""}.fa-calendar-check:before{content:""}.fa-calendar-day:before{content:""}.fa-calendar-minus:before{content:""}.fa-calendar-plus:before{content:""}.fa-calendar-times:before{content:""}.fa-calendar-week:before{content:""}.fa-camera:before{content:""}.fa-camera-retro:before{content:""}.fa-campground:before{content:""}.fa-canadian-maple-leaf:before{content:""}.fa-candy-cane:before{content:""}.fa-cannabis:before{content:""}.fa-capsules:before{content:""}.fa-car:before{content:""}.fa-car-alt:before{content:""}.fa-car-battery:before{content:""}.fa-car-crash:before{content:""}.fa-car-side:before{content:""}.fa-caravan:before{content:""}.fa-caret-down:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-caret-square-down:before{content:""}.fa-caret-square-left:before{content:""}.fa-caret-square-right:before{content:""}.fa-caret-square-up:before{content:""}.fa-caret-up:before{content:""}.fa-carrot:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-cart-plus:before{content:""}.fa-cash-register:before{content:""}.fa-cat:before{content:""}.fa-cc-amazon-pay:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-apple-pay:before{content:""}.fa-cc-diners-club:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-cc-visa:before{content:""}.fa-centercode:before{content:""}.fa-centos:before{content:""}.fa-certificate:before{content:""}.fa-chair:before{content:""}.fa-chalkboard:before{content:""}.fa-chalkboard-teacher:before{content:""}.fa-charging-station:before{content:""}.fa-chart-area:before{content:""}.fa-chart-bar:before{content:""}.fa-chart-line:before{content:""}.fa-chart-pie:before{content:""}.fa-check:before{content:""}.fa-check-circle:before{content:""}.fa-check-double:before{content:""}.fa-check-square:before{content:""}.fa-cheese:before{content:""}.fa-chess:before{content:""}.fa-chess-bishop:before{content:""}.fa-chess-board:before{content:""}.fa-chess-king:before{content:""}.fa-chess-knight:before{content:""}.fa-chess-pawn:before{content:""}.fa-chess-queen:before{content:""}.fa-chess-rook:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-down:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-chevron-up:before{content:""}.fa-child:before{content:""}.fa-chrome:before{content:""}.fa-chromecast:before{content:""}.fa-church:before{content:""}.fa-circle:before{content:""}.fa-circle-notch:before{content:""}.fa-city:before{content:""}.fa-clinic-medical:before{content:""}.fa-clipboard:before{content:""}.fa-clipboard-check:before{content:""}.fa-clipboard-list:before{content:""}.fa-clock:before{content:""}.fa-clone:before{content:""}.fa-closed-captioning:before{content:""}.fa-cloud:before{content:""}.fa-cloud-download-alt:before{content:""}.fa-cloud-meatball:before{content:""}.fa-cloud-moon:before{content:""}.fa-cloud-moon-rain:before{content:""}.fa-cloud-rain:before{content:""}.fa-cloud-showers-heavy:before{content:""}.fa-cloud-sun:before{content:""}.fa-cloud-sun-rain:before{content:""}.fa-cloud-upload-alt:before{content:""}.fa-cloudflare:before{content:""}.fa-cloudscale:before{content:""}.fa-cloudsmith:before{content:""}.fa-cloudversify:before{content:""}.fa-cocktail:before{content:""}.fa-code:before{content:""}.fa-code-branch:before{content:""}.fa-codepen:before{content:""}.fa-codiepie:before{content:""}.fa-coffee:before{content:""}.fa-cog:before{content:""}.fa-cogs:before{content:""}.fa-coins:before{content:""}.fa-columns:before{content:""}.fa-comment:before{content:""}.fa-comment-alt:before{content:""}.fa-comment-dollar:before{content:""}.fa-comment-dots:before{content:""}.fa-comment-medical:before{content:""}.fa-comment-slash:before{content:""}.fa-comments:before{content:""}.fa-comments-dollar:before{content:""}.fa-compact-disc:before{content:""}.fa-compass:before{content:""}.fa-compress:before{content:""}.fa-compress-alt:before{content:""}.fa-compress-arrows-alt:before{content:""}.fa-concierge-bell:before{content:""}.fa-confluence:before{content:""}.fa-connectdevelop:before{content:""}.fa-contao:before{content:""}.fa-cookie:before{content:""}.fa-cookie-bite:before{content:""}.fa-copy:before{content:""}.fa-copyright:before{content:""}.fa-cotton-bureau:before{content:""}.fa-couch:before{content:""}.fa-cpanel:before{content:""}.fa-creative-commons:before{content:""}.fa-creative-commons-by:before{content:""}.fa-creative-commons-nc:before{content:""}.fa-creative-commons-nc-eu:before{content:""}.fa-creative-commons-nc-jp:before{content:""}.fa-creative-commons-nd:before{content:""}.fa-creative-commons-pd:before{content:""}.fa-creative-commons-pd-alt:before{content:""}.fa-creative-commons-remix:before{content:""}.fa-creative-commons-sa:before{content:""}.fa-creative-commons-sampling:before{content:""}.fa-creative-commons-sampling-plus:before{content:""}.fa-creative-commons-share:before{content:""}.fa-creative-commons-zero:before{content:""}.fa-credit-card:before{content:""}.fa-critical-role:before{content:""}.fa-crop:before{content:""}.fa-crop-alt:before{content:""}.fa-cross:before{content:""}.fa-crosshairs:before{content:""}.fa-crow:before{content:""}.fa-crown:before{content:""}.fa-crutch:before{content:""}.fa-css3:before{content:""}.fa-css3-alt:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-cut:before{content:""}.fa-cuttlefish:before{content:""}.fa-d-and-d:before{content:""}.fa-d-and-d-beyond:before{content:""}.fa-dailymotion:before{content:""}.fa-dashcube:before{content:""}.fa-database:before{content:""}.fa-deaf:before{content:""}.fa-deezer:before{content:""}.fa-delicious:before{content:""}.fa-democrat:before{content:""}.fa-deploydog:before{content:""}.fa-deskpro:before{content:""}.fa-desktop:before{content:""}.fa-dev:before{content:""}.fa-deviantart:before{content:""}.fa-dharmachakra:before{content:""}.fa-dhl:before{content:""}.fa-diagnoses:before{content:""}.fa-diaspora:before{content:""}.fa-dice:before{content:""}.fa-dice-d20:before{content:""}.fa-dice-d6:before{content:""}.fa-dice-five:before{content:""}.fa-dice-four:before{content:""}.fa-dice-one:before{content:""}.fa-dice-six:before{content:""}.fa-dice-three:before{content:""}.fa-dice-two:before{content:""}.fa-digg:before{content:""}.fa-digital-ocean:before{content:""}.fa-digital-tachograph:before{content:""}.fa-directions:before{content:""}.fa-discord:before{content:""}.fa-discourse:before{content:""}.fa-disease:before{content:""}.fa-divide:before{content:""}.fa-dizzy:before{content:""}.fa-dna:before{content:""}.fa-dochub:before{content:""}.fa-docker:before{content:""}.fa-dog:before{content:""}.fa-dollar-sign:before{content:""}.fa-dolly:before{content:""}.fa-dolly-flatbed:before{content:""}.fa-donate:before{content:""}.fa-door-closed:before{content:""}.fa-door-open:before{content:""}.fa-dot-circle:before{content:""}.fa-dove:before{content:""}.fa-download:before{content:""}.fa-draft2digital:before{content:""}.fa-drafting-compass:before{content:""}.fa-dragon:before{content:""}.fa-draw-polygon:before{content:""}.fa-dribbble:before{content:""}.fa-dribbble-square:before{content:""}.fa-dropbox:before{content:""}.fa-drum:before{content:""}.fa-drum-steelpan:before{content:""}.fa-drumstick-bite:before{content:""}.fa-drupal:before{content:""}.fa-dumbbell:before{content:""}.fa-dumpster:before{content:""}.fa-dumpster-fire:before{content:""}.fa-dungeon:before{content:""}.fa-dyalog:before{content:""}.fa-earlybirds:before{content:""}.fa-ebay:before{content:""}.fa-edge:before{content:""}.fa-edge-legacy:before{content:""}.fa-edit:before{content:""}.fa-egg:before{content:""}.fa-eject:before{content:""}.fa-elementor:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-ello:before{content:""}.fa-ember:before{content:""}.fa-empire:before{content:""}.fa-envelope:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-text:before{content:""}.fa-envelope-square:before{content:""}.fa-envira:before{content:""}.fa-equals:before{content:""}.fa-eraser:before{content:""}.fa-erlang:before{content:""}.fa-ethereum:before{content:""}.fa-ethernet:before{content:""}.fa-etsy:before{content:""}.fa-euro-sign:before{content:""}.fa-evernote:before{content:""}.fa-exchange-alt:before{content:""}.fa-exclamation:before{content:""}.fa-exclamation-circle:before{content:""}.fa-exclamation-triangle:before{content:""}.fa-expand:before{content:""}.fa-expand-alt:before{content:""}.fa-expand-arrows-alt:before{content:""}.fa-expeditedssl:before{content:""}.fa-external-link-alt:before{content:""}.fa-external-link-square-alt:before{content:""}.fa-eye:before{content:""}.fa-eye-dropper:before{content:""}.fa-eye-slash:before{content:""}.fa-facebook:before{content:""}.fa-facebook-f:before{content:""}.fa-facebook-messenger:before{content:""}.fa-facebook-square:before{content:""}.fa-fan:before{content:""}.fa-fantasy-flight-games:before{content:""}.fa-fast-backward:before{content:""}.fa-fast-forward:before{content:""}.fa-faucet:before{content:""}.fa-fax:before{content:""}.fa-feather:before{content:""}.fa-feather-alt:before{content:""}.fa-fedex:before{content:""}.fa-fedora:before{content:""}.fa-female:before{content:""}.fa-fighter-jet:before{content:""}.fa-figma:before{content:""}.fa-file:before{content:""}.fa-file-alt:before{content:""}.fa-file-archive:before{content:""}.fa-file-audio:before{content:""}.fa-file-code:before{content:""}.fa-file-contract:before{content:""}.fa-file-csv:before{content:""}.fa-file-download:before{content:""}.fa-file-excel:before{content:""}.fa-file-export:before{content:""}.fa-file-image:before{content:""}.fa-file-import:before{content:""}.fa-file-invoice:before{content:""}.fa-file-invoice-dollar:before{content:""}.fa-file-medical:before{content:""}.fa-file-medical-alt:before{content:""}.fa-file-pdf:before{content:""}.fa-file-powerpoint:before{content:""}.fa-file-prescription:before{content:""}.fa-file-signature:before{content:""}.fa-file-upload:before{content:""}.fa-file-video:before{content:""}.fa-file-word:before{content:""}.fa-fill:before{content:""}.fa-fill-drip:before{content:""}.fa-film:before{content:""}.fa-filter:before{content:""}.fa-fingerprint:before{content:""}.fa-fire:before{content:""}.fa-fire-alt:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-firefox:before{content:""}.fa-firefox-browser:before{content:""}.fa-first-aid:before{content:""}.fa-first-order:before{content:""}.fa-first-order-alt:before{content:""}.fa-firstdraft:before{content:""}.fa-fish:before{content:""}.fa-fist-raised:before{content:""}.fa-flag:before{content:""}.fa-flag-checkered:before{content:""}.fa-flag-usa:before{content:""}.fa-flask:before{content:""}.fa-flickr:before{content:""}.fa-flipboard:before{content:""}.fa-flushed:before{content:""}.fa-fly:before{content:""}.fa-folder:before{content:""}.fa-folder-minus:before{content:""}.fa-folder-open:before{content:""}.fa-folder-plus:before{content:""}.fa-font:before{content:""}.fa-font-awesome:before{content:""}.fa-font-awesome-alt:before{content:""}.fa-font-awesome-flag:before{content:""}.fa-font-awesome-logo-full:before{content:""}.fa-fonticons:before{content:""}.fa-fonticons-fi:before{content:""}.fa-football-ball:before{content:""}.fa-fort-awesome:before{content:""}.fa-fort-awesome-alt:before{content:""}.fa-forumbee:before{content:""}.fa-forward:before{content:""}.fa-foursquare:before{content:""}.fa-free-code-camp:before{content:""}.fa-freebsd:before{content:""}.fa-frog:before{content:""}.fa-frown:before{content:""}.fa-frown-open:before{content:""}.fa-fulcrum:before{content:""}.fa-funnel-dollar:before{content:""}.fa-futbol:before{content:""}.fa-galactic-republic:before{content:""}.fa-galactic-senate:before{content:""}.fa-gamepad:before{content:""}.fa-gas-pump:before{content:""}.fa-gavel:before{content:""}.fa-gem:before{content:""}.fa-genderless:before{content:""}.fa-get-pocket:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-ghost:before{content:""}.fa-gift:before{content:""}.fa-gifts:before{content:""}.fa-git:before{content:""}.fa-git-alt:before{content:""}.fa-git-square:before{content:""}.fa-github:before{content:""}.fa-github-alt:before{content:""}.fa-github-square:before{content:""}.fa-gitkraken:before{content:""}.fa-gitlab:before{content:""}.fa-gitter:before{content:""}.fa-glass-cheers:before{content:""}.fa-glass-martini:before{content:""}.fa-glass-martini-alt:before{content:""}.fa-glass-whiskey:before{content:""}.fa-glasses:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-globe:before{content:""}.fa-globe-africa:before{content:""}.fa-globe-americas:before{content:""}.fa-globe-asia:before{content:""}.fa-globe-europe:before{content:""}.fa-gofore:before{content:""}.fa-golf-ball:before{content:""}.fa-goodreads:before{content:""}.fa-goodreads-g:before{content:""}.fa-google:before{content:""}.fa-google-drive:before{content:""}.fa-google-pay:before{content:""}.fa-google-play:before{content:""}.fa-google-plus:before{content:""}.fa-google-plus-g:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-wallet:before{content:""}.fa-gopuram:before{content:""}.fa-graduation-cap:before{content:""}.fa-gratipay:before{content:""}.fa-grav:before{content:""}.fa-greater-than:before{content:""}.fa-greater-than-equal:before{content:""}.fa-grimace:before{content:""}.fa-grin:before{content:""}.fa-grin-alt:before{content:""}.fa-grin-beam:before{content:""}.fa-grin-beam-sweat:before{content:""}.fa-grin-hearts:before{content:""}.fa-grin-squint:before{content:""}.fa-grin-squint-tears:before{content:""}.fa-grin-stars:before{content:""}.fa-grin-tears:before{content:""}.fa-grin-tongue:before{content:""}.fa-grin-tongue-squint:before{content:""}.fa-grin-tongue-wink:before{content:""}.fa-grin-wink:before{content:""}.fa-grip-horizontal:before{content:""}.fa-grip-lines:before{content:""}.fa-grip-lines-vertical:before{content:""}.fa-grip-vertical:before{content:""}.fa-gripfire:before{content:""}.fa-grunt:before{content:""}.fa-guilded:before{content:""}.fa-guitar:before{content:""}.fa-gulp:before{content:""}.fa-h-square:before{content:""}.fa-hacker-news:before{content:""}.fa-hacker-news-square:before{content:""}.fa-hackerrank:before{content:""}.fa-hamburger:before{content:""}.fa-hammer:before{content:""}.fa-hamsa:before{content:""}.fa-hand-holding:before{content:""}.fa-hand-holding-heart:before{content:""}.fa-hand-holding-medical:before{content:""}.fa-hand-holding-usd:before{content:""}.fa-hand-holding-water:before{content:""}.fa-hand-lizard:before{content:""}.fa-hand-middle-finger:before{content:""}.fa-hand-paper:before{content:""}.fa-hand-peace:before{content:""}.fa-hand-point-down:before{content:""}.fa-hand-point-left:before{content:""}.fa-hand-point-right:before{content:""}.fa-hand-point-up:before{content:""}.fa-hand-pointer:before{content:""}.fa-hand-rock:before{content:""}.fa-hand-scissors:before{content:""}.fa-hand-sparkles:before{content:""}.fa-hand-spock:before{content:""}.fa-hands:before{content:""}.fa-hands-helping:before{content:""}.fa-hands-wash:before{content:""}.fa-handshake:before{content:""}.fa-handshake-alt-slash:before{content:""}.fa-handshake-slash:before{content:""}.fa-hanukiah:before{content:""}.fa-hard-hat:before{content:""}.fa-hashtag:before{content:""}.fa-hat-cowboy:before{content:""}.fa-hat-cowboy-side:before{content:""}.fa-hat-wizard:before{content:""}.fa-hdd:before{content:""}.fa-head-side-cough:before{content:""}.fa-head-side-cough-slash:before{content:""}.fa-head-side-mask:before{content:""}.fa-head-side-virus:before{content:""}.fa-heading:before{content:""}.fa-headphones:before{content:""}.fa-headphones-alt:before{content:""}.fa-headset:before{content:""}.fa-heart:before{content:""}.fa-heart-broken:before{content:""}.fa-heartbeat:before{content:""}.fa-helicopter:before{content:""}.fa-highlighter:before{content:""}.fa-hiking:before{content:""}.fa-hippo:before{content:""}.fa-hips:before{content:""}.fa-hire-a-helper:before{content:""}.fa-history:before{content:""}.fa-hive:before{content:""}.fa-hockey-puck:before{content:""}.fa-holly-berry:before{content:""}.fa-home:before{content:""}.fa-hooli:before{content:""}.fa-hornbill:before{content:""}.fa-horse:before{content:""}.fa-horse-head:before{content:""}.fa-hospital:before{content:""}.fa-hospital-alt:before{content:""}.fa-hospital-symbol:before{content:""}.fa-hospital-user:before{content:""}.fa-hot-tub:before{content:""}.fa-hotdog:before{content:""}.fa-hotel:before{content:""}.fa-hotjar:before{content:""}.fa-hourglass:before{content:""}.fa-hourglass-end:before{content:""}.fa-hourglass-half:before{content:""}.fa-hourglass-start:before{content:""}.fa-house-damage:before{content:""}.fa-house-user:before{content:""}.fa-houzz:before{content:""}.fa-hryvnia:before{content:""}.fa-html5:before{content:""}.fa-hubspot:before{content:""}.fa-i-cursor:before{content:""}.fa-ice-cream:before{content:""}.fa-icicles:before{content:""}.fa-icons:before{content:""}.fa-id-badge:before{content:""}.fa-id-card:before{content:""}.fa-id-card-alt:before{content:""}.fa-ideal:before{content:""}.fa-igloo:before{content:""}.fa-image:before{content:""}.fa-images:before{content:""}.fa-imdb:before{content:""}.fa-inbox:before{content:""}.fa-indent:before{content:""}.fa-industry:before{content:""}.fa-infinity:before{content:""}.fa-info:before{content:""}.fa-info-circle:before{content:""}.fa-innosoft:before{content:""}.fa-instagram:before{content:""}.fa-instagram-square:before{content:""}.fa-instalod:before{content:""}.fa-intercom:before{content:""}.fa-internet-explorer:before{content:""}.fa-invision:before{content:""}.fa-ioxhost:before{content:""}.fa-italic:before{content:""}.fa-itch-io:before{content:""}.fa-itunes:before{content:""}.fa-itunes-note:before{content:""}.fa-java:before{content:""}.fa-jedi:before{content:""}.fa-jedi-order:before{content:""}.fa-jenkins:before{content:""}.fa-jira:before{content:""}.fa-joget:before{content:""}.fa-joint:before{content:""}.fa-joomla:before{content:""}.fa-journal-whills:before{content:""}.fa-js:before{content:""}.fa-js-square:before{content:""}.fa-jsfiddle:before{content:""}.fa-kaaba:before{content:""}.fa-kaggle:before{content:""}.fa-key:before{content:""}.fa-keybase:before{content:""}.fa-keyboard:before{content:""}.fa-keycdn:before{content:""}.fa-khanda:before{content:""}.fa-kickstarter:before{content:""}.fa-kickstarter-k:before{content:""}.fa-kiss:before{content:""}.fa-kiss-beam:before{content:""}.fa-kiss-wink-heart:before{content:""}.fa-kiwi-bird:before{content:""}.fa-korvue:before{content:""}.fa-landmark:before{content:""}.fa-language:before{content:""}.fa-laptop:before{content:""}.fa-laptop-code:before{content:""}.fa-laptop-house:before{content:""}.fa-laptop-medical:before{content:""}.fa-laravel:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-laugh:before{content:""}.fa-laugh-beam:before{content:""}.fa-laugh-squint:before{content:""}.fa-laugh-wink:before{content:""}.fa-layer-group:before{content:""}.fa-leaf:before{content:""}.fa-leanpub:before{content:""}.fa-lemon:before{content:""}.fa-less:before{content:""}.fa-less-than:before{content:""}.fa-less-than-equal:before{content:""}.fa-level-down-alt:before{content:""}.fa-level-up-alt:before{content:""}.fa-life-ring:before{content:""}.fa-lightbulb:before{content:""}.fa-line:before{content:""}.fa-link:before{content:""}.fa-linkedin:before{content:""}.fa-linkedin-in:before{content:""}.fa-linode:before{content:""}.fa-linux:before{content:""}.fa-lira-sign:before{content:""}.fa-list:before{content:""}.fa-list-alt:before{content:""}.fa-list-ol:before{content:""}.fa-list-ul:before{content:""}.fa-location-arrow:before{content:""}.fa-lock:before{content:""}.fa-lock-open:before{content:""}.fa-long-arrow-alt-down:before{content:""}.fa-long-arrow-alt-left:before{content:""}.fa-long-arrow-alt-right:before{content:""}.fa-long-arrow-alt-up:before{content:""}.fa-low-vision:before{content:""}.fa-luggage-cart:before{content:""}.fa-lungs:before{content:""}.fa-lungs-virus:before{content:""}.fa-lyft:before{content:""}.fa-magento:before{content:""}.fa-magic:before{content:""}.fa-magnet:before{content:""}.fa-mail-bulk:before{content:""}.fa-mailchimp:before{content:""}.fa-male:before{content:""}.fa-mandalorian:before{content:""}.fa-map:before{content:""}.fa-map-marked:before{content:""}.fa-map-marked-alt:before{content:""}.fa-map-marker:before{content:""}.fa-map-marker-alt:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-markdown:before{content:""}.fa-marker:before{content:""}.fa-mars:before{content:""}.fa-mars-double:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mask:before{content:""}.fa-mastodon:before{content:""}.fa-maxcdn:before{content:""}.fa-mdb:before{content:""}.fa-medal:before{content:""}.fa-medapps:before{content:""}.fa-medium:before{content:""}.fa-medium-m:before{content:""}.fa-medkit:before{content:""}.fa-medrt:before{content:""}.fa-meetup:before{content:""}.fa-megaport:before{content:""}.fa-meh:before{content:""}.fa-meh-blank:before{content:""}.fa-meh-rolling-eyes:before{content:""}.fa-memory:before{content:""}.fa-mendeley:before{content:""}.fa-menorah:before{content:""}.fa-mercury:before{content:""}.fa-meteor:before{content:""}.fa-microblog:before{content:""}.fa-microchip:before{content:""}.fa-microphone:before{content:""}.fa-microphone-alt:before{content:""}.fa-microphone-alt-slash:before{content:""}.fa-microphone-slash:before{content:""}.fa-microscope:before{content:""}.fa-microsoft:before{content:""}.fa-minus:before{content:""}.fa-minus-circle:before{content:""}.fa-minus-square:before{content:""}.fa-mitten:before{content:""}.fa-mix:before{content:""}.fa-mixcloud:before{content:""}.fa-mixer:before{content:""}.fa-mizuni:before{content:""}.fa-mobile:before{content:""}.fa-mobile-alt:before{content:""}.fa-modx:before{content:""}.fa-monero:before{content:""}.fa-money-bill:before{content:""}.fa-money-bill-alt:before{content:""}.fa-money-bill-wave:before{content:""}.fa-money-bill-wave-alt:before{content:""}.fa-money-check:before{content:""}.fa-money-check-alt:before{content:""}.fa-monument:before{content:""}.fa-moon:before{content:""}.fa-mortar-pestle:before{content:""}.fa-mosque:before{content:""}.fa-motorcycle:before{content:""}.fa-mountain:before{content:""}.fa-mouse:before{content:""}.fa-mouse-pointer:before{content:""}.fa-mug-hot:before{content:""}.fa-music:before{content:""}.fa-napster:before{content:""}.fa-neos:before{content:""}.fa-network-wired:before{content:""}.fa-neuter:before{content:""}.fa-newspaper:before{content:""}.fa-nimblr:before{content:""}.fa-node:before{content:""}.fa-node-js:before{content:""}.fa-not-equal:before{content:""}.fa-notes-medical:before{content:""}.fa-npm:before{content:""}.fa-ns8:before{content:""}.fa-nutritionix:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-octopus-deploy:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-oil-can:before{content:""}.fa-old-republic:before{content:""}.fa-om:before{content:""}.fa-opencart:before{content:""}.fa-openid:before{content:""}.fa-opera:before{content:""}.fa-optin-monster:before{content:""}.fa-orcid:before{content:""}.fa-osi:before{content:""}.fa-otter:before{content:""}.fa-outdent:before{content:""}.fa-page4:before{content:""}.fa-pagelines:before{content:""}.fa-pager:before{content:""}.fa-paint-brush:before{content:""}.fa-paint-roller:before{content:""}.fa-palette:before{content:""}.fa-palfed:before{content:""}.fa-pallet:before{content:""}.fa-paper-plane:before{content:""}.fa-paperclip:before{content:""}.fa-parachute-box:before{content:""}.fa-paragraph:before{content:""}.fa-parking:before{content:""}.fa-passport:before{content:""}.fa-pastafarianism:before{content:""}.fa-paste:before{content:""}.fa-patreon:before{content:""}.fa-pause:before{content:""}.fa-pause-circle:before{content:""}.fa-paw:before{content:""}.fa-paypal:before{content:""}.fa-peace:before{content:""}.fa-pen:before{content:""}.fa-pen-alt:before{content:""}.fa-pen-fancy:before{content:""}.fa-pen-nib:before{content:""}.fa-pen-square:before{content:""}.fa-pencil-alt:before{content:""}.fa-pencil-ruler:before{content:""}.fa-penny-arcade:before{content:""}.fa-people-arrows:before{content:""}.fa-people-carry:before{content:""}.fa-pepper-hot:before{content:""}.fa-perbyte:before{content:""}.fa-percent:before{content:""}.fa-percentage:before{content:""}.fa-periscope:before{content:""}.fa-person-booth:before{content:""}.fa-phabricator:before{content:""}.fa-phoenix-framework:before{content:""}.fa-phoenix-squadron:before{content:""}.fa-phone:before{content:""}.fa-phone-alt:before{content:""}.fa-phone-slash:before{content:""}.fa-phone-square:before{content:""}.fa-phone-square-alt:before{content:""}.fa-phone-volume:before{content:""}.fa-photo-video:before{content:""}.fa-php:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-pied-piper-hat:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-square:before{content:""}.fa-piggy-bank:before{content:""}.fa-pills:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-p:before{content:""}.fa-pinterest-square:before{content:""}.fa-pizza-slice:before{content:""}.fa-place-of-worship:before{content:""}.fa-plane:before{content:""}.fa-plane-arrival:before{content:""}.fa-plane-departure:before{content:""}.fa-plane-slash:before{content:""}.fa-play:before{content:""}.fa-play-circle:before{content:""}.fa-playstation:before{content:""}.fa-plug:before{content:""}.fa-plus:before{content:""}.fa-plus-circle:before{content:""}.fa-plus-square:before{content:""}.fa-podcast:before{content:""}.fa-poll:before{content:""}.fa-poll-h:before{content:""}.fa-poo:before{content:""}.fa-poo-storm:before{content:""}.fa-poop:before{content:""}.fa-portrait:before{content:""}.fa-pound-sign:before{content:""}.fa-power-off:before{content:""}.fa-pray:before{content:""}.fa-praying-hands:before{content:""}.fa-prescription:before{content:""}.fa-prescription-bottle:before{content:""}.fa-prescription-bottle-alt:before{content:""}.fa-print:before{content:""}.fa-procedures:before{content:""}.fa-product-hunt:before{content:""}.fa-project-diagram:before{content:""}.fa-pump-medical:before{content:""}.fa-pump-soap:before{content:""}.fa-pushed:before{content:""}.fa-puzzle-piece:before{content:""}.fa-python:before{content:""}.fa-qq:before{content:""}.fa-qrcode:before{content:""}.fa-question:before{content:""}.fa-question-circle:before{content:""}.fa-quidditch:before{content:""}.fa-quinscape:before{content:""}.fa-quora:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-quran:before{content:""}.fa-r-project:before{content:""}.fa-radiation:before{content:""}.fa-radiation-alt:before{content:""}.fa-rainbow:before{content:""}.fa-random:before{content:""}.fa-raspberry-pi:before{content:""}.fa-ravelry:before{content:""}.fa-react:before{content:""}.fa-reacteurope:before{content:""}.fa-readme:before{content:""}.fa-rebel:before{content:""}.fa-receipt:before{content:""}.fa-record-vinyl:before{content:""}.fa-recycle:before{content:""}.fa-red-river:before{content:""}.fa-reddit:before{content:""}.fa-reddit-alien:before{content:""}.fa-reddit-square:before{content:""}.fa-redhat:before{content:""}.fa-redo:before{content:""}.fa-redo-alt:before{content:""}.fa-registered:before{content:""}.fa-remove-format:before{content:""}.fa-renren:before{content:""}.fa-reply:before{content:""}.fa-reply-all:before{content:""}.fa-replyd:before{content:""}.fa-republican:before{content:""}.fa-researchgate:before{content:""}.fa-resolving:before{content:""}.fa-restroom:before{content:""}.fa-retweet:before{content:""}.fa-rev:before{content:""}.fa-ribbon:before{content:""}.fa-ring:before{content:""}.fa-road:before{content:""}.fa-robot:before{content:""}.fa-rocket:before{content:""}.fa-rocketchat:before{content:""}.fa-rockrms:before{content:""}.fa-route:before{content:""}.fa-rss:before{content:""}.fa-rss-square:before{content:""}.fa-ruble-sign:before{content:""}.fa-ruler:before{content:""}.fa-ruler-combined:before{content:""}.fa-ruler-horizontal:before{content:""}.fa-ruler-vertical:before{content:""}.fa-running:before{content:""}.fa-rupee-sign:before{content:""}.fa-rust:before{content:""}.fa-sad-cry:before{content:""}.fa-sad-tear:before{content:""}.fa-safari:before{content:""}.fa-salesforce:before{content:""}.fa-sass:before{content:""}.fa-satellite:before{content:""}.fa-satellite-dish:before{content:""}.fa-save:before{content:""}.fa-schlix:before{content:""}.fa-school:before{content:""}.fa-screwdriver:before{content:""}.fa-scribd:before{content:""}.fa-scroll:before{content:""}.fa-sd-card:before{content:""}.fa-search:before{content:""}.fa-search-dollar:before{content:""}.fa-search-location:before{content:""}.fa-search-minus:before{content:""}.fa-search-plus:before{content:""}.fa-searchengin:before{content:""}.fa-seedling:before{content:""}.fa-sellcast:before{content:""}.fa-sellsy:before{content:""}.fa-server:before{content:""}.fa-servicestack:before{content:""}.fa-shapes:before{content:""}.fa-share:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-share-square:before{content:""}.fa-shekel-sign:before{content:""}.fa-shield-alt:before{content:""}.fa-shield-virus:before{content:""}.fa-ship:before{content:""}.fa-shipping-fast:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-shoe-prints:before{content:""}.fa-shopify:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-shopping-cart:before{content:""}.fa-shopware:before{content:""}.fa-shower:before{content:""}.fa-shuttle-van:before{content:""}.fa-sign:before{content:""}.fa-sign-in-alt:before{content:""}.fa-sign-language:before{content:""}.fa-sign-out-alt:before{content:""}.fa-signal:before{content:""}.fa-signature:before{content:""}.fa-sim-card:before{content:""}.fa-simplybuilt:before{content:""}.fa-sink:before{content:""}.fa-sistrix:before{content:""}.fa-sitemap:before{content:""}.fa-sith:before{content:""}.fa-skating:before{content:""}.fa-sketch:before{content:""}.fa-skiing:before{content:""}.fa-skiing-nordic:before{content:""}.fa-skull:before{content:""}.fa-skull-crossbones:before{content:""}.fa-skyatlas:before{content:""}.fa-skype:before{content:""}.fa-slack:before{content:""}.fa-slack-hash:before{content:""}.fa-slash:before{content:""}.fa-sleigh:before{content:""}.fa-sliders-h:before{content:""}.fa-slideshare:before{content:""}.fa-smile:before{content:""}.fa-smile-beam:before{content:""}.fa-smile-wink:before{content:""}.fa-smog:before{content:""}.fa-smoking:before{content:""}.fa-smoking-ban:before{content:""}.fa-sms:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-snowboarding:before{content:""}.fa-snowflake:before{content:""}.fa-snowman:before{content:""}.fa-snowplow:before{content:""}.fa-soap:before{content:""}.fa-socks:before{content:""}.fa-solar-panel:before{content:""}.fa-sort:before{content:""}.fa-sort-alpha-down:before{content:""}.fa-sort-alpha-down-alt:before{content:""}.fa-sort-alpha-up:before{content:""}.fa-sort-alpha-up-alt:before{content:""}.fa-sort-amount-down:before{content:""}.fa-sort-amount-down-alt:before{content:""}.fa-sort-amount-up:before{content:""}.fa-sort-amount-up-alt:before{content:""}.fa-sort-down:before{content:""}.fa-sort-numeric-down:before{content:""}.fa-sort-numeric-down-alt:before{content:""}.fa-sort-numeric-up:before{content:""}.fa-sort-numeric-up-alt:before{content:""}.fa-sort-up:before{content:""}.fa-soundcloud:before{content:""}.fa-sourcetree:before{content:""}.fa-spa:before{content:""}.fa-space-shuttle:before{content:""}.fa-speakap:before{content:""}.fa-speaker-deck:before{content:""}.fa-spell-check:before{content:""}.fa-spider:before{content:""}.fa-spinner:before{content:""}.fa-splotch:before{content:""}.fa-spotify:before{content:""}.fa-spray-can:before{content:""}.fa-square:before{content:""}.fa-square-full:before{content:""}.fa-square-root-alt:before{content:""}.fa-squarespace:before{content:""}.fa-stack-exchange:before{content:""}.fa-stack-overflow:before{content:""}.fa-stackpath:before{content:""}.fa-stamp:before{content:""}.fa-star:before{content:""}.fa-star-and-crescent:before{content:""}.fa-star-half:before{content:""}.fa-star-half-alt:before{content:""}.fa-star-of-david:before{content:""}.fa-star-of-life:before{content:""}.fa-staylinked:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-steam-symbol:before{content:""}.fa-step-backward:before{content:""}.fa-step-forward:before{content:""}.fa-stethoscope:before{content:""}.fa-sticker-mule:before{content:""}.fa-sticky-note:before{content:""}.fa-stop:before{content:""}.fa-stop-circle:before{content:""}.fa-stopwatch:before{content:""}.fa-stopwatch-20:before{content:""}.fa-store:before{content:""}.fa-store-alt:before{content:""}.fa-store-alt-slash:before{content:""}.fa-store-slash:before{content:""}.fa-strava:before{content:""}.fa-stream:before{content:""}.fa-street-view:before{content:""}.fa-strikethrough:before{content:""}.fa-stripe:before{content:""}.fa-stripe-s:before{content:""}.fa-stroopwafel:before{content:""}.fa-studiovinari:before{content:""}.fa-stumbleupon:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-subscript:before{content:""}.fa-subway:before{content:""}.fa-suitcase:before{content:""}.fa-suitcase-rolling:before{content:""}.fa-sun:before{content:""}.fa-superpowers:before{content:""}.fa-superscript:before{content:""}.fa-supple:before{content:""}.fa-surprise:before{content:""}.fa-suse:before{content:""}.fa-swatchbook:before{content:""}.fa-swift:before{content:""}.fa-swimmer:before{content:""}.fa-swimming-pool:before{content:""}.fa-symfony:before{content:""}.fa-synagogue:before{content:""}.fa-sync:before{content:""}.fa-sync-alt:before{content:""}.fa-syringe:before{content:""}.fa-table:before{content:""}.fa-table-tennis:before{content:""}.fa-tablet:before{content:""}.fa-tablet-alt:before{content:""}.fa-tablets:before{content:""}.fa-tachometer-alt:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-tape:before{content:""}.fa-tasks:before{content:""}.fa-taxi:before{content:""}.fa-teamspeak:before{content:""}.fa-teeth:before{content:""}.fa-teeth-open:before{content:""}.fa-telegram:before{content:""}.fa-telegram-plane:before{content:""}.fa-temperature-high:before{content:""}.fa-temperature-low:before{content:""}.fa-tencent-weibo:before{content:""}.fa-tenge:before{content:""}.fa-terminal:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-th:before{content:""}.fa-th-large:before{content:""}.fa-th-list:before{content:""}.fa-the-red-yeti:before{content:""}.fa-theater-masks:before{content:""}.fa-themeco:before{content:""}.fa-themeisle:before{content:""}.fa-thermometer:before{content:""}.fa-thermometer-empty:before{content:""}.fa-thermometer-full:before{content:""}.fa-thermometer-half:before{content:""}.fa-thermometer-quarter:before{content:""}.fa-thermometer-three-quarters:before{content:""}.fa-think-peaks:before{content:""}.fa-thumbs-down:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbtack:before{content:""}.fa-ticket-alt:before{content:""}.fa-tiktok:before{content:""}.fa-times:before{content:""}.fa-times-circle:before{content:""}.fa-tint:before{content:""}.fa-tint-slash:before{content:""}.fa-tired:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-toilet:before{content:""}.fa-toilet-paper:before{content:""}.fa-toilet-paper-slash:before{content:""}.fa-toolbox:before{content:""}.fa-tools:before{content:""}.fa-tooth:before{content:""}.fa-torah:before{content:""}.fa-torii-gate:before{content:""}.fa-tractor:before{content:""}.fa-trade-federation:before{content:""}.fa-trademark:before{content:""}.fa-traffic-light:before{content:""}.fa-trailer:before{content:""}.fa-train:before{content:""}.fa-tram:before{content:""}.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-trash:before{content:""}.fa-trash-alt:before{content:""}.fa-trash-restore:before{content:""}.fa-trash-restore-alt:before{content:""}.fa-tree:before{content:""}.fa-trello:before{content:""}.fa-trophy:before{content:""}.fa-truck:before{content:""}.fa-truck-loading:before{content:""}.fa-truck-monster:before{content:""}.fa-truck-moving:before{content:""}.fa-truck-pickup:before{content:""}.fa-tshirt:before{content:""}.fa-tty:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-tv:before{content:""}.fa-twitch:before{content:""}.fa-twitter:before{content:""}.fa-twitter-square:before{content:""}.fa-typo3:before{content:""}.fa-uber:before{content:""}.fa-ubuntu:before{content:""}.fa-uikit:before{content:""}.fa-umbraco:before{content:""}.fa-umbrella:before{content:""}.fa-umbrella-beach:before{content:""}.fa-uncharted:before{content:""}.fa-underline:before{content:""}.fa-undo:before{content:""}.fa-undo-alt:before{content:""}.fa-uniregistry:before{content:""}.fa-unity:before{content:""}.fa-universal-access:before{content:""}.fa-university:before{content:""}.fa-unlink:before{content:""}.fa-unlock:before{content:""}.fa-unlock-alt:before{content:""}.fa-unsplash:before{content:""}.fa-untappd:before{content:""}.fa-upload:before{content:""}.fa-ups:before{content:""}.fa-usb:before{content:""}.fa-user:before{content:""}.fa-user-alt:before{content:""}.fa-user-alt-slash:before{content:""}.fa-user-astronaut:before{content:""}.fa-user-check:before{content:""}.fa-user-circle:before{content:""}.fa-user-clock:before{content:""}.fa-user-cog:before{content:""}.fa-user-edit:before{content:""}.fa-user-friends:before{content:""}.fa-user-graduate:before{content:""}.fa-user-injured:before{content:""}.fa-user-lock:before{content:""}.fa-user-md:before{content:""}.fa-user-minus:before{content:""}.fa-user-ninja:before{content:""}.fa-user-nurse:before{content:""}.fa-user-plus:before{content:""}.fa-user-secret:before{content:""}.fa-user-shield:before{content:""}.fa-user-slash:before{content:""}.fa-user-tag:before{content:""}.fa-user-tie:before{content:""}.fa-user-times:before{content:""}.fa-users:before{content:""}.fa-users-cog:before{content:""}.fa-users-slash:before{content:""}.fa-usps:before{content:""}.fa-ussunnah:before{content:""}.fa-utensil-spoon:before{content:""}.fa-utensils:before{content:""}.fa-vaadin:before{content:""}.fa-vector-square:before{content:""}.fa-venus:before{content:""}.fa-venus-double:before{content:""}.fa-venus-mars:before{content:""}.fa-vest:before{content:""}.fa-vest-patches:before{content:""}.fa-viacoin:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-vial:before{content:""}.fa-vials:before{content:""}.fa-viber:before{content:""}.fa-video:before{content:""}.fa-video-slash:before{content:""}.fa-vihara:before{content:""}.fa-vimeo:before{content:""}.fa-vimeo-square:before{content:""}.fa-vimeo-v:before{content:""}.fa-vine:before{content:""}.fa-virus:before{content:""}.fa-virus-slash:before{content:""}.fa-viruses:before{content:""}.fa-vk:before{content:""}.fa-vnv:before{content:""}.fa-voicemail:before{content:""}.fa-volleyball-ball:before{content:""}.fa-volume-down:before{content:""}.fa-volume-mute:before{content:""}.fa-volume-off:before{content:""}.fa-volume-up:before{content:""}.fa-vote-yea:before{content:""}.fa-vr-cardboard:before{content:""}.fa-vuejs:before{content:""}.fa-walking:before{content:""}.fa-wallet:before{content:""}.fa-warehouse:before{content:""}.fa-watchman-monitoring:before{content:""}.fa-water:before{content:""}.fa-wave-square:before{content:""}.fa-waze:before{content:""}.fa-weebly:before{content:""}.fa-weibo:before{content:""}.fa-weight:before{content:""}.fa-weight-hanging:before{content:""}.fa-weixin:before{content:""}.fa-whatsapp:before{content:""}.fa-whatsapp-square:before{content:""}.fa-wheelchair:before{content:""}.fa-whmcs:before{content:""}.fa-wifi:before{content:""}.fa-wikipedia-w:before{content:""}.fa-wind:before{content:""}.fa-window-close:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-windows:before{content:""}.fa-wine-bottle:before{content:""}.fa-wine-glass:before{content:""}.fa-wine-glass-alt:before{content:""}.fa-wix:before{content:""}.fa-wizards-of-the-coast:before{content:""}.fa-wodu:before{content:""}.fa-wolf-pack-battalion:before{content:""}.fa-won-sign:before{content:""}.fa-wordpress:before{content:""}.fa-wordpress-simple:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpexplorer:before{content:""}.fa-wpforms:before{content:""}.fa-wpressr:before{content:""}.fa-wrench:before{content:""}.fa-x-ray:before{content:""}.fa-xbox:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-y-combinator:before{content:""}.fa-yahoo:before{content:""}.fa-yammer:before{content:""}.fa-yandex:before{content:""}.fa-yandex-international:before{content:""}.fa-yarn:before{content:""}.fa-yelp:before{content:""}.fa-yen-sign:before{content:""}.fa-yin-yang:before{content:""}.fa-yoast:before{content:""}.fa-youtube:before{content:""}.fa-youtube-square:before{content:""}.fa-zhihu:before{content:""}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url("../libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot");src:url("../libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2") format("woff2"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff") format("woff"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf") format("truetype"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.svg#fontawesome") format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url("../libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot");src:url("../libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2") format("woff2"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff") format("woff"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf") format("truetype"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg#fontawesome") format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url("../libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot");src:url("../libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2") format("woff2"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff") format("woff"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf") format("truetype"),url("../libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg#fontawesome") format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}/*!
 * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
.fa.fa-glass:before{content:""}.fa.fa-meetup{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-star-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-o:before{content:""}.fa.fa-remove:before{content:""}.fa.fa-close:before{content:""}.fa.fa-gear:before{content:""}.fa.fa-trash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-trash-o:before{content:""}.fa.fa-file-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-o:before{content:""}.fa.fa-clock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-clock-o:before{content:""}.fa.fa-arrow-circle-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-down:before{content:""}.fa.fa-arrow-circle-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-up:before{content:""}.fa.fa-play-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-play-circle-o:before{content:""}.fa.fa-repeat:before{content:""}.fa.fa-rotate-right:before{content:""}.fa.fa-refresh:before{content:""}.fa.fa-list-alt{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dedent:before{content:""}.fa.fa-video-camera:before{content:""}.fa.fa-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-picture-o:before{content:""}.fa.fa-photo{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-photo:before{content:""}.fa.fa-image{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-image:before{content:""}.fa.fa-pencil:before{content:""}.fa.fa-map-marker:before{content:""}.fa.fa-pencil-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pencil-square-o:before{content:""}.fa.fa-share-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-share-square-o:before{content:""}.fa.fa-check-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-square-o:before{content:""}.fa.fa-arrows:before{content:""}.fa.fa-times-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-circle-o:before{content:""}.fa.fa-check-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-check-circle-o:before{content:""}.fa.fa-mail-forward:before{content:""}.fa.fa-expand:before{content:""}.fa.fa-compress:before{content:""}.fa.fa-eye{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eye-slash{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-warning:before{content:""}.fa.fa-calendar:before{content:""}.fa.fa-arrows-v:before{content:""}.fa.fa-arrows-h:before{content:""}.fa.fa-bar-chart{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart:before{content:""}.fa.fa-bar-chart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bar-chart-o:before{content:""}.fa.fa-twitter-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gears:before{content:""}.fa.fa-thumbs-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-up:before{content:""}.fa.fa-thumbs-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-thumbs-o-down:before{content:""}.fa.fa-heart-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-heart-o:before{content:""}.fa.fa-sign-out:before{content:""}.fa.fa-linkedin-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin-square:before{content:""}.fa.fa-thumb-tack:before{content:""}.fa.fa-external-link:before{content:""}.fa.fa-sign-in:before{content:""}.fa.fa-github-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lemon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lemon-o:before{content:""}.fa.fa-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-square-o:before{content:""}.fa.fa-bookmark-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bookmark-o:before{content:""}.fa.fa-twitter{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook:before{content:""}.fa.fa-facebook-f{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-f:before{content:""}.fa.fa-github{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-feed:before{content:""}.fa.fa-hdd-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hdd-o:before{content:""}.fa.fa-hand-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-right:before{content:""}.fa.fa-hand-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-left:before{content:""}.fa.fa-hand-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-up:before{content:""}.fa.fa-hand-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-o-down:before{content:""}.fa.fa-arrows-alt:before{content:""}.fa.fa-group:before{content:""}.fa.fa-chain:before{content:""}.fa.fa-scissors:before{content:""}.fa.fa-files-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-files-o:before{content:""}.fa.fa-floppy-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-floppy-o:before{content:""}.fa.fa-navicon:before{content:""}.fa.fa-reorder:before{content:""}.fa.fa-pinterest{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pinterest-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus:before{content:""}.fa.fa-money{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-money:before{content:""}.fa.fa-unsorted:before{content:""}.fa.fa-sort-desc:before{content:""}.fa.fa-sort-asc:before{content:""}.fa.fa-linkedin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linkedin:before{content:""}.fa.fa-rotate-left:before{content:""}.fa.fa-legal:before{content:""}.fa.fa-tachometer:before{content:""}.fa.fa-dashboard:before{content:""}.fa.fa-comment-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comment-o:before{content:""}.fa.fa-comments-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-comments-o:before{content:""}.fa.fa-flash:before{content:""}.fa.fa-clipboard{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paste:before{content:""}.fa.fa-lightbulb-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-lightbulb-o:before{content:""}.fa.fa-exchange:before{content:""}.fa.fa-cloud-download:before{content:""}.fa.fa-cloud-upload:before{content:""}.fa.fa-bell-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-o:before{content:""}.fa.fa-cutlery:before{content:""}.fa.fa-file-text-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-text-o:before{content:""}.fa.fa-building-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-building-o:before{content:""}.fa.fa-hospital-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hospital-o:before{content:""}.fa.fa-tablet:before{content:""}.fa.fa-mobile:before{content:""}.fa.fa-mobile-phone:before{content:""}.fa.fa-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-o:before{content:""}.fa.fa-mail-reply:before{content:""}.fa.fa-github-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-folder-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-o:before{content:""}.fa.fa-folder-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-folder-open-o:before{content:""}.fa.fa-smile-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-smile-o:before{content:""}.fa.fa-frown-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-frown-o:before{content:""}.fa.fa-meh-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-meh-o:before{content:""}.fa.fa-keyboard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-keyboard-o:before{content:""}.fa.fa-flag-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-flag-o:before{content:""}.fa.fa-mail-reply-all:before{content:""}.fa.fa-star-half-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-o:before{content:""}.fa.fa-star-half-empty{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-empty:before{content:""}.fa.fa-star-half-full{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-star-half-full:before{content:""}.fa.fa-code-fork:before{content:""}.fa.fa-chain-broken:before{content:""}.fa.fa-shield:before{content:""}.fa.fa-calendar-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-o:before{content:""}.fa.fa-maxcdn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-html5{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-css3{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ticket:before{content:""}.fa.fa-minus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-minus-square-o:before{content:""}.fa.fa-level-up:before{content:""}.fa.fa-level-down:before{content:""}.fa.fa-pencil-square:before{content:""}.fa.fa-external-link-square:before{content:""}.fa.fa-compass{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-down:before{content:""}.fa.fa-toggle-down{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-down:before{content:""}.fa.fa-caret-square-o-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-up:before{content:""}.fa.fa-toggle-up{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-up:before{content:""}.fa.fa-caret-square-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-right:before{content:""}.fa.fa-toggle-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-right:before{content:""}.fa.fa-eur:before{content:""}.fa.fa-euro:before{content:""}.fa.fa-gbp:before{content:""}.fa.fa-usd:before{content:""}.fa.fa-dollar:before{content:""}.fa.fa-inr:before{content:""}.fa.fa-rupee:before{content:""}.fa.fa-jpy:before{content:""}.fa.fa-cny:before{content:""}.fa.fa-rmb:before{content:""}.fa.fa-yen:before{content:""}.fa.fa-rub:before{content:""}.fa.fa-ruble:before{content:""}.fa.fa-rouble:before{content:""}.fa.fa-krw:before{content:""}.fa.fa-won:before{content:""}.fa.fa-btc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitcoin:before{content:""}.fa.fa-file-text:before{content:""}.fa.fa-sort-alpha-asc:before{content:""}.fa.fa-sort-alpha-desc:before{content:""}.fa.fa-sort-amount-asc:before{content:""}.fa.fa-sort-amount-desc:before{content:""}.fa.fa-sort-numeric-asc:before{content:""}.fa.fa-sort-numeric-desc:before{content:""}.fa.fa-youtube-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-xing-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-youtube-play:before{content:""}.fa.fa-dropbox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-overflow{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-instagram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-flickr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-adn{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bitbucket-square:before{content:""}.fa.fa-tumblr{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tumblr-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-long-arrow-down:before{content:""}.fa.fa-long-arrow-up:before{content:""}.fa.fa-long-arrow-left:before{content:""}.fa.fa-long-arrow-right:before{content:""}.fa.fa-apple{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-windows{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-android{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-linux{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dribbble{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skype{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-foursquare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-trello{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gratipay{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gittip:before{content:""}.fa.fa-sun-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sun-o:before{content:""}.fa.fa-moon-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-moon-o:before{content:""}.fa.fa-vk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-renren{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pagelines{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stack-exchange{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-arrow-circle-o-right{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-right:before{content:""}.fa.fa-arrow-circle-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-arrow-circle-o-left:before{content:""}.fa.fa-caret-square-o-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-caret-square-o-left:before{content:""}.fa.fa-toggle-left{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-toggle-left:before{content:""}.fa.fa-dot-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-dot-circle-o:before{content:""}.fa.fa-vimeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-try:before{content:""}.fa.fa-turkish-lira:before{content:""}.fa.fa-plus-square-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-plus-square-o:before{content:""}.fa.fa-slack{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wordpress{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-openid{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-institution:before{content:""}.fa.fa-bank:before{content:""}.fa.fa-mortar-board:before{content:""}.fa.fa-yahoo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-stumbleupon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-delicious{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-digg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-pp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-drupal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-joomla{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-spoon:before{content:""}.fa.fa-behance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-behance-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-steam-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-automobile:before{content:""}.fa.fa-envelope-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-o:before{content:""}.fa.fa-spotify{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-deviantart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-soundcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-file-pdf-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-pdf-o:before{content:""}.fa.fa-file-word-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-word-o:before{content:""}.fa.fa-file-excel-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-excel-o:before{content:""}.fa.fa-file-powerpoint-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-powerpoint-o:before{content:""}.fa.fa-file-image-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-image-o:before{content:""}.fa.fa-file-photo-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-photo-o:before{content:""}.fa.fa-file-picture-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-picture-o:before{content:""}.fa.fa-file-archive-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-archive-o:before{content:""}.fa.fa-file-zip-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-zip-o:before{content:""}.fa.fa-file-audio-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-audio-o:before{content:""}.fa.fa-file-sound-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-sound-o:before{content:""}.fa.fa-file-video-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-video-o:before{content:""}.fa.fa-file-movie-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-movie-o:before{content:""}.fa.fa-file-code-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-file-code-o:before{content:""}.fa.fa-vine{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-codepen{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-jsfiddle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-life-ring{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-bouy:before{content:""}.fa.fa-life-buoy{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-buoy:before{content:""}.fa.fa-life-saver{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-life-saver:before{content:""}.fa.fa-support{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-support:before{content:""}.fa.fa-circle-o-notch:before{content:""}.fa.fa-rebel{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ra:before{content:""}.fa.fa-resistance{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-resistance:before{content:""}.fa.fa-empire{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ge:before{content:""}.fa.fa-git-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-git{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hacker-news{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator-square:before{content:""}.fa.fa-yc-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc-square:before{content:""}.fa.fa-tencent-weibo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-qq{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-weixin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wechat:before{content:""}.fa.fa-send:before{content:""}.fa.fa-paper-plane-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-paper-plane-o:before{content:""}.fa.fa-send-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-send-o:before{content:""}.fa.fa-circle-thin{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-circle-thin:before{content:""}.fa.fa-header:before{content:""}.fa.fa-sliders:before{content:""}.fa.fa-futbol-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-futbol-o:before{content:""}.fa.fa-soccer-ball-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-soccer-ball-o:before{content:""}.fa.fa-slideshare{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-twitch{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yelp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-newspaper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-newspaper-o:before{content:""}.fa.fa-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-wallet{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-visa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-mastercard{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-discover{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-amex{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-paypal{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-stripe{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bell-slash-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-bell-slash-o:before{content:""}.fa.fa-trash:before{content:""}.fa.fa-copyright{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-eyedropper:before{content:""}.fa.fa-area-chart:before{content:""}.fa.fa-pie-chart:before{content:""}.fa.fa-line-chart:before{content:""}.fa.fa-lastfm{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-lastfm-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ioxhost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-angellist{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-cc:before{content:""}.fa.fa-ils:before{content:""}.fa.fa-shekel:before{content:""}.fa.fa-sheqel:before{content:""}.fa.fa-meanpath{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-meanpath:before{content:""}.fa.fa-buysellads{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-connectdevelop{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-dashcube{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-forumbee{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-leanpub{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-sellsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-shirtsinbulk{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-simplybuilt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-skyatlas{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-diamond{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-diamond:before{content:""}.fa.fa-intersex:before{content:""}.fa.fa-facebook-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-facebook-official:before{content:""}.fa.fa-pinterest-p{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-whatsapp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-hotel:before{content:""}.fa.fa-viacoin{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-medium{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-y-combinator{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yc:before{content:""}.fa.fa-optin-monster{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opencart{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-expeditedssl{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-battery-4:before{content:""}.fa.fa-battery:before{content:""}.fa.fa-battery-3:before{content:""}.fa.fa-battery-2:before{content:""}.fa.fa-battery-1:before{content:""}.fa.fa-battery-0:before{content:""}.fa.fa-object-group{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-object-ungroup{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-sticky-note-o:before{content:""}.fa.fa-cc-jcb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cc-diners-club{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-clone{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hourglass-o:before{content:""}.fa.fa-hourglass-1:before{content:""}.fa.fa-hourglass-2:before{content:""}.fa.fa-hourglass-3:before{content:""}.fa.fa-hand-rock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-rock-o:before{content:""}.fa.fa-hand-grab-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-grab-o:before{content:""}.fa.fa-hand-paper-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-paper-o:before{content:""}.fa.fa-hand-stop-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-stop-o:before{content:""}.fa.fa-hand-scissors-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-scissors-o:before{content:""}.fa.fa-hand-lizard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-lizard-o:before{content:""}.fa.fa-hand-spock-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-spock-o:before{content:""}.fa.fa-hand-pointer-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-pointer-o:before{content:""}.fa.fa-hand-peace-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-hand-peace-o:before{content:""}.fa.fa-registered{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-creative-commons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gg-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-tripadvisor{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-odnoklassniki-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-get-pocket{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wikipedia-w{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-safari{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-chrome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-firefox{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-opera{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-internet-explorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-television:before{content:""}.fa.fa-contao{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-500px{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-amazon{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-calendar-plus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-plus-o:before{content:""}.fa.fa-calendar-minus-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-minus-o:before{content:""}.fa.fa-calendar-times-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-times-o:before{content:""}.fa.fa-calendar-check-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-calendar-check-o:before{content:""}.fa.fa-map-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-map-o:before{content:""}.fa.fa-commenting:before{content:""}.fa.fa-commenting-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-commenting-o:before{content:""}.fa.fa-houzz{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-vimeo:before{content:""}.fa.fa-black-tie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fonticons{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-reddit-alien{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-edge{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-credit-card-alt:before{content:""}.fa.fa-codiepie{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-modx{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fort-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-usb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-product-hunt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-mixcloud{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-scribd{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pause-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-pause-circle-o:before{content:""}.fa.fa-stop-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-stop-circle-o:before{content:""}.fa.fa-bluetooth{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-bluetooth-b{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-gitlab{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpbeginner{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpforms{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-envira{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wheelchair-alt:before{content:""}.fa.fa-question-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-question-circle-o:before{content:""}.fa.fa-volume-control-phone:before{content:""}.fa.fa-asl-interpreting:before{content:""}.fa.fa-deafness:before{content:""}.fa.fa-hard-of-hearing:before{content:""}.fa.fa-glide{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-glide-g{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-signing:before{content:""}.fa.fa-viadeo{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-viadeo-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-ghost{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-snapchat-square{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-pied-piper{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-first-order{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-yoast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-themeisle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-official:before{content:""}.fa.fa-google-plus-circle{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-google-plus-circle:before{content:""}.fa.fa-font-awesome{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-fa:before{content:""}.fa.fa-handshake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-handshake-o:before{content:""}.fa.fa-envelope-open-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-envelope-open-o:before{content:""}.fa.fa-linode{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-address-book-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-book-o:before{content:""}.fa.fa-vcard:before{content:""}.fa.fa-address-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-address-card-o:before{content:""}.fa.fa-vcard-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-vcard-o:before{content:""}.fa.fa-user-circle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-circle-o:before{content:""}.fa.fa-user-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-user-o:before{content:""}.fa.fa-id-badge{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license:before{content:""}.fa.fa-id-card-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-id-card-o:before{content:""}.fa.fa-drivers-license-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-drivers-license-o:before{content:""}.fa.fa-quora{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-free-code-camp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-telegram{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-thermometer-4:before{content:""}.fa.fa-thermometer:before{content:""}.fa.fa-thermometer-3:before{content:""}.fa.fa-thermometer-2:before{content:""}.fa.fa-thermometer-1:before{content:""}.fa.fa-thermometer-0:before{content:""}.fa.fa-bathtub:before{content:""}.fa.fa-s15:before{content:""}.fa.fa-window-maximize{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-restore{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle:before{content:""}.fa.fa-window-close-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-window-close-o:before{content:""}.fa.fa-times-rectangle-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-times-rectangle-o:before{content:""}.fa.fa-bandcamp{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-grav{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-etsy{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-imdb{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-ravelry{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-eercast:before{content:""}.fa.fa-snowflake-o{font-family:'Font Awesome 5 Free';font-weight:400}.fa.fa-snowflake-o:before{content:""}.fa.fa-superpowers{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-wpexplorer{font-family:'Font Awesome 5 Brands';font-weight:400}.fa.fa-cab:before{content:""}.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#FFF}.toast-message a:hover{color:#CCC;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#FFF;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);line-height:1}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}.rtl .toast-close-button{left:-.3em;float:left;right:.3em}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#FFF;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>div.rtl{direction:rtl;padding:15px 50px 15px 15px;background-position:right 15px center}#toast-container>div:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51A351}.toast-error{background-color:#BD362F}.toast-info{background-color:#2F96B4}.toast-warning{background-color:#F89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
.mCustomScrollbar{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:0;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside>.mCSB_container{margin-right:30px}.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container{margin-right:0;margin-left:30px}.mCS-dir-rtl>.mCSB_inside>.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-left:0}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0}.mCSB_outside+.mCSB_scrollTools{right:-26px}.mCS-dir-rtl>.mCSB_inside>.mCSB_scrollTools,.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{right:auto;left:0}.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{left:-26px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools a+.mCSB_draggerContainer{margin:20px 0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;text-align:center}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:12px}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:8px}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown{display:block;position:absolute;height:20px;width:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools .mCSB_buttonDown{bottom:0}.mCSB_horizontal.mCSB_inside>.mCSB_container{margin-right:0;margin-bottom:30px}.mCSB_horizontal.mCSB_outside>.mCSB_container{min-height:100%}.mCSB_horizontal>.mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:16px;top:auto;right:0;bottom:0;left:0}.mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:-26px}.mCSB_scrollTools.mCSB_scrollTools_horizontal a+.mCSB_draggerContainer{margin:0 20px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:12px;margin:2px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:8px;margin:4px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCSB_container_wrapper{position:absolute;height:auto;width:auto;overflow:hidden;top:0;left:0;right:0;bottom:0;margin-right:30px;margin-bottom:30px}.mCSB_container_wrapper>.mCSB_container{padding-right:30px;padding-bottom:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:20px}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:20px}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden+.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:0}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:20px}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container_wrapper{margin-right:0;margin-left:30px}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden>.mCSB_container{padding-right:0}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden>.mCSB_container{padding-bottom:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0;margin-left:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{-webkit-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;transition:opacity .2s ease-in-out,background-color .2s ease-in-out}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail{-webkit-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out}.mCSB_scrollTools{opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCS-autoHide>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide>.mCustomScrollBox~.mCSB_scrollTools{opacity:0;filter:"alpha(opacity=0)";-ms-filter:"alpha(opacity=0)"}.mCustomScrollbar>.mCustomScrollBox>.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollbar>.mCustomScrollBox~.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollBox:hover>.mCSB_scrollTools,.mCustomScrollBox:hover~.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox~.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=100)";-ms-filter:"alpha(opacity=100)"}.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.4);filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75);filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85);filter:"alpha(opacity=85)";-ms-filter:"alpha(opacity=85)"}.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9);filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight{background-image:url(../libs/malihu-custom-scrollbar-plugin/mCSB_buttons.png);background-repeat:no-repeat;opacity:.4;filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_buttonUp{background-position:0 0}.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -20px}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools .mCSB_buttonUp:hover,.mCSB_scrollTools .mCSB_buttonDown:hover,.mCSB_scrollTools .mCSB_buttonLeft:hover,.mCSB_scrollTools .mCSB_buttonRight:hover{opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_buttonUp:active,.mCSB_scrollTools .mCSB_buttonDown:active,.mCSB_scrollTools .mCSB_buttonLeft:active,.mCSB_scrollTools .mCSB_buttonRight:active{opacity:.9;filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCS-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:rgba(0,0,0,.85)}.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:rgba(0,0,0,.9)}.mCS-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:4px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px 0}.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -20px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -40px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px 0}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -20px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -40px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -56px}.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail,.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px 0}.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:6px;margin:5px auto}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px 0}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -20px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -40px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px 0}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -20px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -40px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -56px}.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.1)}.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:2px}.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%}.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:2px;margin:7px auto}.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.15)}.mCS-rounded.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger{height:14px}.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:14px;margin:0 1px}.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger{width:14px}.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:14px;margin:1px 0}.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:16px;height:16px;margin:-1px 0}.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:4px}.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:16px;width:16px;margin:0 -1px}.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:4px;margin:6px 0}.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{background-position:0 -72px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -92px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -112px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -128px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px -72px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -92px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -112px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -128px}.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail{width:4px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{background-color:transparent;background-position:center}.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg==");background-repeat:repeat-y;opacity:.3;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{height:4px;margin:6px 0;background-repeat:repeat-x}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px -72px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -92px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -112px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=")}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px -72px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -92px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -112px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -128px}.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-y;background-image:-moz-linear-gradient(left,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,right top,color-stop(0%,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(left,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(left,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%);background-image:linear-gradient(to right,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%)}.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-x;background-image:-moz-linear-gradient(top,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(top,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(top,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%);background-image:linear-gradient(to bottom,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 100%)}.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger{height:70px}.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger{width:70px}.mCS-3d.mCSB_scrollTools,.mCS-3d-dark.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCS-3d.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{width:8px;background-color:#000;background-color:rgba(0,0,0,.2);box-shadow:inset 1px 0 1px rgba(0,0,0,.5),inset -1px 0 1px rgba(255,255,255,.2)}.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#555}.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:8px}.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:8px;margin:4px 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.5),inset 0 -1px 1px rgba(255,255,255,.2)}.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:8px;margin:4px auto}.mCS-3d.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);box-shadow:inset 1px 0 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-3d-thick.mCSB_scrollTools,.mCS-3d-thick-dark.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-thick.mCSB_scrollTools,.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mCSB_inside+.mCS-3d-thick.mCSB_scrollTools_vertical,.mCSB_inside+.mCS-3d-thick-dark.mCSB_scrollTools_vertical{right:1px}.mCS-3d-thick.mCSB_scrollTools_vertical,.mCS-3d-thick-dark.mCSB_scrollTools_vertical{box-shadow:inset 1px 0 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick.mCSB_scrollTools_horizontal,.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{bottom:1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 1px 0 0 rgba(255,255,255,.4);width:12px;margin:2px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#555}.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:12px;width:auto}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{background-color:#000;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-thick-dark.mCSB_scrollTools{box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 1px 0 0 rgba(255,255,255,.4),inset -1px 0 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#777}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{background-color:#fff;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical,.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical{right:0;margin:12px 0}.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:0;margin:0 12px}.mCS-dir-rtl>.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical,.mCS-dir-rtl>.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical{left:0;right:auto}.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger{height:50px}.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger{width:50px}.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{width:6px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px}.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:6px;margin:5px 0}.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:12px}.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:12px;margin:2px 0}.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-inset.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{width:12px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;margin:3px 5px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:6px;margin:5px 3px;position:absolute;width:auto;top:0;bottom:0;left:0;right:0}.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:12px;margin:2px 0}.mCS-inset.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-inset.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-inset.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent;border-width:1px;border-style:solid;border-color:#fff;border-color:rgba(255,255,255,.2);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{border-color:#000;border-color:rgba(0,0,0,.2)}.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.6)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.6)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}@charset "UTF-8";:root{--dt-row-selected:13,110,253;--dt-row-selected-text:255,255,255;--dt-row-selected-link:9,10,11;--dt-row-stripe:0,0,0;--dt-row-hover:0,0,0;--dt-column-ordering:0,0,0;--dt-html-background:white}:root.dark{--dt-html-background:#212529}table.dataTable td.dt-control{text-align:center;cursor:pointer}table.dataTable td.dt-control:before{display:inline-block;color:rgba(0,0,0,.5);content:"►"}table.dataTable tr.dt-hasChild td.dt-control:before{content:"▼"}html.dark table.dataTable td.dt-control:before{color:rgba(255,255,255,.5)}html.dark table.dataTable tr.dt-hasChild td.dt-control:before{color:rgba(255,255,255,.5)}table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting_asc_disabled,table.dataTable thead>tr>th.sorting_desc_disabled,table.dataTable thead>tr>td.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting_asc_disabled,table.dataTable thead>tr>td.sorting_desc_disabled{cursor:pointer;position:relative;padding-right:26px}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after{position:absolute;display:block;opacity:.125;right:10px;line-height:9px;font-size:.8em}table.dataTable thead>tr>th.sorting:before,table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:before,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>th.sorting_desc_disabled:before,table.dataTable thead>tr>td.sorting:before,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:before,table.dataTable thead>tr>td.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:before{bottom:50%;content:"▲";content:"▲"/""}table.dataTable thead>tr>th.sorting:after,table.dataTable thead>tr>th.sorting_asc:after,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>th.sorting_asc_disabled:after,table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting:after,table.dataTable thead>tr>td.sorting_asc:after,table.dataTable thead>tr>td.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc_disabled:after,table.dataTable thead>tr>td.sorting_desc_disabled:after{top:50%;content:"▼";content:"▼"/""}table.dataTable thead>tr>th.sorting_asc:before,table.dataTable thead>tr>th.sorting_desc:after,table.dataTable thead>tr>td.sorting_asc:before,table.dataTable thead>tr>td.sorting_desc:after{opacity:.6}table.dataTable thead>tr>th.sorting_desc_disabled:after,table.dataTable thead>tr>th.sorting_asc_disabled:before,table.dataTable thead>tr>td.sorting_desc_disabled:after,table.dataTable thead>tr>td.sorting_asc_disabled:before{display:none}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:0}div.dataTables_scrollBody>table.dataTable>thead>tr>th:before,div.dataTables_scrollBody>table.dataTable>thead>tr>th:after,div.dataTables_scrollBody>table.dataTable>thead>tr>td:before,div.dataTables_scrollBody>table.dataTable>thead>tr>td:after{display:none}div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:2px}div.dataTables_processing>div:last-child{position:relative;width:80px;height:15px;margin:1em auto}div.dataTables_processing>div:last-child>div{position:absolute;top:0;width:13px;height:13px;border-radius:50%;background:#0d6efd;background:rgb(var(--dt-row-selected));animation-timing-function:cubic-bezier(0,1,1,0)}div.dataTables_processing>div:last-child>div:nth-child(1){left:8px;animation:datatables-loader-1 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(2){left:8px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(3){left:32px;animation:datatables-loader-2 .6s infinite}div.dataTables_processing>div:last-child>div:nth-child(4){left:56px;animation:datatables-loader-3 .6s infinite}@keyframes datatables-loader-1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes datatables-loader-3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes datatables-loader-2{0%{transform:translate(0,0)}100%{transform:translate(24px,0)}}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th,table.dataTable thead td,table.dataTable tfoot th,table.dataTable tfoot td{text-align:left}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}
/*! Bootstrap 5 integration for DataTables
 *
 * ©2020 SpryMedia Ltd, all rights reserved.
 * License: MIT datatables.net/license/mit
 */
table.dataTable{clear:both;margin-top:6px!important;margin-bottom:6px!important;max-width:none!important;border-collapse:separate!important;border-spacing:0}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.table-striped>tbody>tr:nth-of-type(2n+1)>*{box-shadow:none}table.dataTable>tbody>tr{background-color:transparent}table.dataTable>tbody>tr.selected>*{box-shadow:inset 0 0 0 9999px #0d6efd;box-shadow:inset 0 0 0 9999px rgb(var(--dt-row-selected));color:#fff;color:rgb(var(--dt-row-selected-text))}table.dataTable>tbody>tr.selected a{color:#090a0b;color:rgb(var(--dt-row-selected-link))}table.dataTable.table-striped>tbody>tr.odd>*{box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-stripe),.05)}table.dataTable.table-striped>tbody>tr.odd.selected>*{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.95);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.95)}table.dataTable.table-hover>tbody>tr:hover>*{box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-hover),.075)}table.dataTable.table-hover>tbody>tr.selected:hover>*{box-shadow:inset 0 0 0 9999px rgba(13,110,253,.975);box-shadow:inset 0 0 0 9999px rgba(var(--dt-row-selected),.975)}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:auto;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:.85em}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap;justify-content:flex-end}div.dataTables_wrapper div.dt-row{position:relative}div.dataTables_scrollHead table.dataTable{margin-bottom:0!important}div.dataTables_scrollBody>table{border-top:0;margin-top:0!important;margin-bottom:0!important}div.dataTables_scrollBody>table>thead .sorting:before,div.dataTables_scrollBody>table>thead .sorting_asc:before,div.dataTables_scrollBody>table>thead .sorting_desc:before,div.dataTables_scrollBody>table>thead .sorting:after,div.dataTables_scrollBody>table>thead .sorting_asc:after,div.dataTables_scrollBody>table>thead .sorting_desc:after{display:none}div.dataTables_scrollBody>table>tbody tr:first-child th,div.dataTables_scrollBody>table>tbody tr:first-child td{border-top:0}div.dataTables_scrollFoot>.dataTables_scrollFootInner{box-sizing:content-box}div.dataTables_scrollFoot>.dataTables_scrollFootInner>table{margin-top:0!important;border-top:0}@media screen and (max-width:767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}div.dataTables_wrapper div.dataTables_paginate ul.pagination{justify-content:center!important}}table.dataTable.table-sm>thead>tr>th:not(.sorting_disabled){padding-right:20px}table.table-bordered.dataTable{border-right-width:0}table.table-bordered.dataTable thead tr:first-child th,table.table-bordered.dataTable thead tr:first-child td{border-top-width:1px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:first-child,table.table-bordered.dataTable th:first-child,table.table-bordered.dataTable td:first-child,table.table-bordered.dataTable td:first-child{border-left-width:1px}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:1px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-bottom-width:1px}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^=col-]:last-child{padding-right:0}:root[data-bs-theme=dark]{--dt-row-hover:255,255,255;--dt-row-stripe:255,255,255;--dt-column-ordering:255,255,255}/*!
 * Datepicker for Bootstrap v1.10.0 (https://github.com/uxsolutions/bootstrap-datepicker)
 *
 * Licensed under the Apache License v2.0 (https://www.apache.org/licenses/LICENSE-2.0)
 */

.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px}.daterangepicker{position:absolute;color:inherit;background-color:#fff;border-radius:4px;border:1px solid #ddd;width:278px;max-width:none;padding:0;margin-top:7px;top:100px;left:20px;z-index:3001;display:none;font-family:arial;font-size:15px;line-height:1em}.daterangepicker:before,.daterangepicker:after{position:absolute;display:inline-block;border-bottom-color:rgba(0,0,0,.2);content:''}.daterangepicker:before{top:-7px;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid #ccc}.daterangepicker:after{top:-6px;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}.daterangepicker.opensleft:before{right:9px}.daterangepicker.opensleft:after{right:10px}.daterangepicker.openscenter:before{left:0;right:0;width:0;margin-left:auto;margin-right:auto}.daterangepicker.openscenter:after{left:0;right:0;width:0;margin-left:auto;margin-right:auto}.daterangepicker.opensright:before{left:9px}.daterangepicker.opensright:after{left:10px}.daterangepicker.drop-up{margin-top:-7px}.daterangepicker.drop-up:before{top:initial;bottom:-7px;border-bottom:initial;border-top:7px solid #ccc}.daterangepicker.drop-up:after{top:initial;bottom:-6px;border-bottom:initial;border-top:6px solid #fff}.daterangepicker.single .daterangepicker .ranges,.daterangepicker.single .drp-calendar{float:none}.daterangepicker.single .drp-selected{display:none}.daterangepicker.show-calendar .drp-calendar{display:block}.daterangepicker.show-calendar .drp-buttons{display:block}.daterangepicker.auto-apply .drp-buttons{display:none}.daterangepicker .drp-calendar{display:none;max-width:270px}.daterangepicker .drp-calendar.left{padding:8px 0 8px 8px}.daterangepicker .drp-calendar.right{padding:8px}.daterangepicker .drp-calendar.single .calendar-table{border:0}.daterangepicker .calendar-table .next span,.daterangepicker .calendar-table .prev span{color:#fff;border:solid #000;border-width:0 2px 2px 0;border-radius:0;display:inline-block;padding:3px}.daterangepicker .calendar-table .next span{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}.daterangepicker .calendar-table .prev span{transform:rotate(135deg);-webkit-transform:rotate(135deg)}.daterangepicker .calendar-table th,.daterangepicker .calendar-table td{white-space:nowrap;text-align:center;vertical-align:middle;min-width:32px;width:32px;height:24px;line-height:24px;font-size:12px;border-radius:4px;border:1px solid transparent;white-space:nowrap;cursor:pointer}.daterangepicker .calendar-table{border:1px solid #fff;border-radius:4px;background-color:#fff}.daterangepicker .calendar-table table{width:100%;margin:0;border-spacing:0;border-collapse:collapse}.daterangepicker td.available:hover,.daterangepicker th.available:hover{background-color:#eee;border-color:transparent;color:inherit}.daterangepicker td.week,.daterangepicker th.week{font-size:80%;color:#ccc}.daterangepicker td.off,.daterangepicker td.off.in-range,.daterangepicker td.off.start-date,.daterangepicker td.off.end-date{background-color:#fff;border-color:transparent;color:#999}.daterangepicker td.in-range{background-color:#ebf4f8;border-color:transparent;color:#000;border-radius:0}.daterangepicker td.start-date{border-radius:4px 0 0 4px}.daterangepicker td.end-date{border-radius:0 4px 4px 0}.daterangepicker td.start-date.end-date{border-radius:4px}.daterangepicker td.active,.daterangepicker td.active:hover{background-color:#357ebd;border-color:transparent;color:#fff}.daterangepicker th.month{width:auto}.daterangepicker td.disabled,.daterangepicker option.disabled{color:#999;cursor:not-allowed;text-decoration:line-through}.daterangepicker select.monthselect,.daterangepicker select.yearselect{font-size:12px;padding:1px;height:auto;margin:0;cursor:default}.daterangepicker select.monthselect{margin-right:2%;width:56%}.daterangepicker select.yearselect{width:40%}.daterangepicker select.hourselect,.daterangepicker select.minuteselect,.daterangepicker select.secondselect,.daterangepicker select.ampmselect{width:50px;margin:0 auto;background:#eee;border:1px solid #eee;padding:2px;outline:0;font-size:12px}.daterangepicker .calendar-time{text-align:center;margin:4px auto 0 auto;line-height:30px;position:relative}.daterangepicker .calendar-time select.disabled{color:#ccc;cursor:not-allowed}.daterangepicker .drp-buttons{clear:both;text-align:right;padding:8px;border-top:1px solid #ddd;display:none;line-height:12px;vertical-align:middle}.daterangepicker .drp-selected{display:inline-block;font-size:12px;padding-right:8px}.daterangepicker .drp-buttons .btn{margin-left:8px;font-size:12px;font-weight:bold;padding:4px 8px}.daterangepicker.show-ranges.single.rtl .drp-calendar.left{border-right:1px solid #ddd}.daterangepicker.show-ranges.single.ltr .drp-calendar.left{border-left:1px solid #ddd}.daterangepicker.show-ranges.rtl .drp-calendar.right{border-right:1px solid #ddd}.daterangepicker.show-ranges.ltr .drp-calendar.left{border-left:1px solid #ddd}.daterangepicker .ranges{float:none;text-align:left;margin:0}.daterangepicker.show-calendar .ranges{margin-top:8px}.daterangepicker .ranges ul{list-style:none;margin:0 auto;padding:0;width:100%}.daterangepicker .ranges li{font-size:12px;padding:8px 12px;cursor:pointer}.daterangepicker .ranges li:hover{background-color:#eee}.daterangepicker .ranges li.active{background-color:#08c;color:#fff}@media(min-width:564px){.daterangepicker{width:auto}.daterangepicker .ranges ul{width:140px}.daterangepicker.single .ranges ul{width:100%}.daterangepicker.single .drp-calendar.left{clear:none}.daterangepicker.single .ranges,.daterangepicker.single .drp-calendar{float:left}.daterangepicker{direction:ltr;text-align:left}.daterangepicker .drp-calendar.left{clear:left;margin-right:0}.daterangepicker .drp-calendar.left .calendar-table{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.daterangepicker .drp-calendar.right{margin-left:0}.daterangepicker .drp-calendar.right .calendar-table{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.daterangepicker .drp-calendar.left .calendar-table{padding-right:8px}.daterangepicker .ranges,.daterangepicker .drp-calendar{float:left}}@media(min-width:730px){.daterangepicker .ranges{width:auto}.daterangepicker .ranges{float:left}.daterangepicker.rtl .ranges{float:right}.daterangepicker .drp-calendar.left{clear:none!important}}.dataTable{width:100%!important;border-spacing:0!important}.table td,.table th{padding:8px 10px}.dataTable tbody tr td button{cursor:pointer}.dataTable tbody tr td div.dropdown ul.dropdown-menu li{cursor:pointer}.daterangepicker .calendar-table th,.daterangepicker .calendar-table td{color:#1b1b1b}.daterangepicker td.active,.daterangepicker td.active:hover{color:#fff}.daterangepicker td.off,.daterangepicker td.off.in-range,.daterangepicker td.off.start-date,.daterangepicker td.off.end-date{color:#999}/*!
 * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)
 *
 * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)
 */

.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px}@font-face{font-family:"bootstrap-icons";src:url("../Themes/LeptonX/Global/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2?30af91bf14e37666a085fb8a161ff36d") format("woff2"),url("../Themes/LeptonX/Global/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff?30af91bf14e37666a085fb8a161ff36d") format("woff")}.bi::before,[class^="bi-"]::before,[class*=" bi-"]::before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.bi-123::before{content:""}.bi-alarm-fill::before{content:""}.bi-alarm::before{content:""}.bi-align-bottom::before{content:""}.bi-align-center::before{content:""}.bi-align-end::before{content:""}.bi-align-middle::before{content:""}.bi-align-start::before{content:""}.bi-align-top::before{content:""}.bi-alt::before{content:""}.bi-app-indicator::before{content:""}.bi-app::before{content:""}.bi-archive-fill::before{content:""}.bi-archive::before{content:""}.bi-arrow-90deg-down::before{content:""}.bi-arrow-90deg-left::before{content:""}.bi-arrow-90deg-right::before{content:""}.bi-arrow-90deg-up::before{content:""}.bi-arrow-bar-down::before{content:""}.bi-arrow-bar-left::before{content:""}.bi-arrow-bar-right::before{content:""}.bi-arrow-bar-up::before{content:""}.bi-arrow-clockwise::before{content:""}.bi-arrow-counterclockwise::before{content:""}.bi-arrow-down-circle-fill::before{content:""}.bi-arrow-down-circle::before{content:""}.bi-arrow-down-left-circle-fill::before{content:""}.bi-arrow-down-left-circle::before{content:""}.bi-arrow-down-left-square-fill::before{content:""}.bi-arrow-down-left-square::before{content:""}.bi-arrow-down-left::before{content:""}.bi-arrow-down-right-circle-fill::before{content:""}.bi-arrow-down-right-circle::before{content:""}.bi-arrow-down-right-square-fill::before{content:""}.bi-arrow-down-right-square::before{content:""}.bi-arrow-down-right::before{content:""}.bi-arrow-down-short::before{content:""}.bi-arrow-down-square-fill::before{content:""}.bi-arrow-down-square::before{content:""}.bi-arrow-down-up::before{content:""}.bi-arrow-down::before{content:""}.bi-arrow-left-circle-fill::before{content:""}.bi-arrow-left-circle::before{content:""}.bi-arrow-left-right::before{content:""}.bi-arrow-left-short::before{content:""}.bi-arrow-left-square-fill::before{content:""}.bi-arrow-left-square::before{content:""}.bi-arrow-left::before{content:""}.bi-arrow-repeat::before{content:""}.bi-arrow-return-left::before{content:""}.bi-arrow-return-right::before{content:""}.bi-arrow-right-circle-fill::before{content:""}.bi-arrow-right-circle::before{content:""}.bi-arrow-right-short::before{content:""}.bi-arrow-right-square-fill::before{content:""}.bi-arrow-right-square::before{content:""}.bi-arrow-right::before{content:""}.bi-arrow-up-circle-fill::before{content:""}.bi-arrow-up-circle::before{content:""}.bi-arrow-up-left-circle-fill::before{content:""}.bi-arrow-up-left-circle::before{content:""}.bi-arrow-up-left-square-fill::before{content:""}.bi-arrow-up-left-square::before{content:""}.bi-arrow-up-left::before{content:""}.bi-arrow-up-right-circle-fill::before{content:""}.bi-arrow-up-right-circle::before{content:""}.bi-arrow-up-right-square-fill::before{content:""}.bi-arrow-up-right-square::before{content:""}.bi-arrow-up-right::before{content:""}.bi-arrow-up-short::before{content:""}.bi-arrow-up-square-fill::before{content:""}.bi-arrow-up-square::before{content:""}.bi-arrow-up::before{content:""}.bi-arrows-angle-contract::before{content:""}.bi-arrows-angle-expand::before{content:""}.bi-arrows-collapse::before{content:""}.bi-arrows-expand::before{content:""}.bi-arrows-fullscreen::before{content:""}.bi-arrows-move::before{content:""}.bi-aspect-ratio-fill::before{content:""}.bi-aspect-ratio::before{content:""}.bi-asterisk::before{content:""}.bi-at::before{content:""}.bi-award-fill::before{content:""}.bi-award::before{content:""}.bi-back::before{content:""}.bi-backspace-fill::before{content:""}.bi-backspace-reverse-fill::before{content:""}.bi-backspace-reverse::before{content:""}.bi-backspace::before{content:""}.bi-badge-3d-fill::before{content:""}.bi-badge-3d::before{content:""}.bi-badge-4k-fill::before{content:""}.bi-badge-4k::before{content:""}.bi-badge-8k-fill::before{content:""}.bi-badge-8k::before{content:""}.bi-badge-ad-fill::before{content:""}.bi-badge-ad::before{content:""}.bi-badge-ar-fill::before{content:""}.bi-badge-ar::before{content:""}.bi-badge-cc-fill::before{content:""}.bi-badge-cc::before{content:""}.bi-badge-hd-fill::before{content:""}.bi-badge-hd::before{content:""}.bi-badge-tm-fill::before{content:""}.bi-badge-tm::before{content:""}.bi-badge-vo-fill::before{content:""}.bi-badge-vo::before{content:""}.bi-badge-vr-fill::before{content:""}.bi-badge-vr::before{content:""}.bi-badge-wc-fill::before{content:""}.bi-badge-wc::before{content:""}.bi-bag-check-fill::before{content:""}.bi-bag-check::before{content:""}.bi-bag-dash-fill::before{content:""}.bi-bag-dash::before{content:""}.bi-bag-fill::before{content:""}.bi-bag-plus-fill::before{content:""}.bi-bag-plus::before{content:""}.bi-bag-x-fill::before{content:""}.bi-bag-x::before{content:""}.bi-bag::before{content:""}.bi-bar-chart-fill::before{content:""}.bi-bar-chart-line-fill::before{content:""}.bi-bar-chart-line::before{content:""}.bi-bar-chart-steps::before{content:""}.bi-bar-chart::before{content:""}.bi-basket-fill::before{content:""}.bi-basket::before{content:""}.bi-basket2-fill::before{content:""}.bi-basket2::before{content:""}.bi-basket3-fill::before{content:""}.bi-basket3::before{content:""}.bi-battery-charging::before{content:""}.bi-battery-full::before{content:""}.bi-battery-half::before{content:""}.bi-battery::before{content:""}.bi-bell-fill::before{content:""}.bi-bell::before{content:""}.bi-bezier::before{content:""}.bi-bezier2::before{content:""}.bi-bicycle::before{content:""}.bi-binoculars-fill::before{content:""}.bi-binoculars::before{content:""}.bi-blockquote-left::before{content:""}.bi-blockquote-right::before{content:""}.bi-book-fill::before{content:""}.bi-book-half::before{content:""}.bi-book::before{content:""}.bi-bookmark-check-fill::before{content:""}.bi-bookmark-check::before{content:""}.bi-bookmark-dash-fill::before{content:""}.bi-bookmark-dash::before{content:""}.bi-bookmark-fill::before{content:""}.bi-bookmark-heart-fill::before{content:""}.bi-bookmark-heart::before{content:""}.bi-bookmark-plus-fill::before{content:""}.bi-bookmark-plus::before{content:""}.bi-bookmark-star-fill::before{content:""}.bi-bookmark-star::before{content:""}.bi-bookmark-x-fill::before{content:""}.bi-bookmark-x::before{content:""}.bi-bookmark::before{content:""}.bi-bookmarks-fill::before{content:""}.bi-bookmarks::before{content:""}.bi-bookshelf::before{content:""}.bi-bootstrap-fill::before{content:""}.bi-bootstrap-reboot::before{content:""}.bi-bootstrap::before{content:""}.bi-border-all::before{content:""}.bi-border-bottom::before{content:""}.bi-border-center::before{content:""}.bi-border-inner::before{content:""}.bi-border-left::before{content:""}.bi-border-middle::before{content:""}.bi-border-outer::before{content:""}.bi-border-right::before{content:""}.bi-border-style::before{content:""}.bi-border-top::before{content:""}.bi-border-width::before{content:""}.bi-border::before{content:""}.bi-bounding-box-circles::before{content:""}.bi-bounding-box::before{content:""}.bi-box-arrow-down-left::before{content:""}.bi-box-arrow-down-right::before{content:""}.bi-box-arrow-down::before{content:""}.bi-box-arrow-in-down-left::before{content:""}.bi-box-arrow-in-down-right::before{content:""}.bi-box-arrow-in-down::before{content:""}.bi-box-arrow-in-left::before{content:""}.bi-box-arrow-in-right::before{content:""}.bi-box-arrow-in-up-left::before{content:""}.bi-box-arrow-in-up-right::before{content:""}.bi-box-arrow-in-up::before{content:""}.bi-box-arrow-left::before{content:""}.bi-box-arrow-right::before{content:""}.bi-box-arrow-up-left::before{content:""}.bi-box-arrow-up-right::before{content:""}.bi-box-arrow-up::before{content:""}.bi-box-seam::before{content:""}.bi-box::before{content:""}.bi-braces::before{content:""}.bi-bricks::before{content:""}.bi-briefcase-fill::before{content:""}.bi-briefcase::before{content:""}.bi-brightness-alt-high-fill::before{content:""}.bi-brightness-alt-high::before{content:""}.bi-brightness-alt-low-fill::before{content:""}.bi-brightness-alt-low::before{content:""}.bi-brightness-high-fill::before{content:""}.bi-brightness-high::before{content:""}.bi-brightness-low-fill::before{content:""}.bi-brightness-low::before{content:""}.bi-broadcast-pin::before{content:""}.bi-broadcast::before{content:""}.bi-brush-fill::before{content:""}.bi-brush::before{content:""}.bi-bucket-fill::before{content:""}.bi-bucket::before{content:""}.bi-bug-fill::before{content:""}.bi-bug::before{content:""}.bi-building::before{content:""}.bi-bullseye::before{content:""}.bi-calculator-fill::before{content:""}.bi-calculator::before{content:""}.bi-calendar-check-fill::before{content:""}.bi-calendar-check::before{content:""}.bi-calendar-date-fill::before{content:""}.bi-calendar-date::before{content:""}.bi-calendar-day-fill::before{content:""}.bi-calendar-day::before{content:""}.bi-calendar-event-fill::before{content:""}.bi-calendar-event::before{content:""}.bi-calendar-fill::before{content:""}.bi-calendar-minus-fill::before{content:""}.bi-calendar-minus::before{content:""}.bi-calendar-month-fill::before{content:""}.bi-calendar-month::before{content:""}.bi-calendar-plus-fill::before{content:""}.bi-calendar-plus::before{content:""}.bi-calendar-range-fill::before{content:""}.bi-calendar-range::before{content:""}.bi-calendar-week-fill::before{content:""}.bi-calendar-week::before{content:""}.bi-calendar-x-fill::before{content:""}.bi-calendar-x::before{content:""}.bi-calendar::before{content:""}.bi-calendar2-check-fill::before{content:""}.bi-calendar2-check::before{content:""}.bi-calendar2-date-fill::before{content:""}.bi-calendar2-date::before{content:""}.bi-calendar2-day-fill::before{content:""}.bi-calendar2-day::before{content:""}.bi-calendar2-event-fill::before{content:""}.bi-calendar2-event::before{content:""}.bi-calendar2-fill::before{content:""}.bi-calendar2-minus-fill::before{content:""}.bi-calendar2-minus::before{content:""}.bi-calendar2-month-fill::before{content:""}.bi-calendar2-month::before{content:""}.bi-calendar2-plus-fill::before{content:""}.bi-calendar2-plus::before{content:""}.bi-calendar2-range-fill::before{content:""}.bi-calendar2-range::before{content:""}.bi-calendar2-week-fill::before{content:""}.bi-calendar2-week::before{content:""}.bi-calendar2-x-fill::before{content:""}.bi-calendar2-x::before{content:""}.bi-calendar2::before{content:""}.bi-calendar3-event-fill::before{content:""}.bi-calendar3-event::before{content:""}.bi-calendar3-fill::before{content:""}.bi-calendar3-range-fill::before{content:""}.bi-calendar3-range::before{content:""}.bi-calendar3-week-fill::before{content:""}.bi-calendar3-week::before{content:""}.bi-calendar3::before{content:""}.bi-calendar4-event::before{content:""}.bi-calendar4-range::before{content:""}.bi-calendar4-week::before{content:""}.bi-calendar4::before{content:""}.bi-camera-fill::before{content:""}.bi-camera-reels-fill::before{content:""}.bi-camera-reels::before{content:""}.bi-camera-video-fill::before{content:""}.bi-camera-video-off-fill::before{content:""}.bi-camera-video-off::before{content:""}.bi-camera-video::before{content:""}.bi-camera::before{content:""}.bi-camera2::before{content:""}.bi-capslock-fill::before{content:""}.bi-capslock::before{content:""}.bi-card-checklist::before{content:""}.bi-card-heading::before{content:""}.bi-card-image::before{content:""}.bi-card-list::before{content:""}.bi-card-text::before{content:""}.bi-caret-down-fill::before{content:""}.bi-caret-down-square-fill::before{content:""}.bi-caret-down-square::before{content:""}.bi-caret-down::before{content:""}.bi-caret-left-fill::before{content:""}.bi-caret-left-square-fill::before{content:""}.bi-caret-left-square::before{content:""}.bi-caret-left::before{content:""}.bi-caret-right-fill::before{content:""}.bi-caret-right-square-fill::before{content:""}.bi-caret-right-square::before{content:""}.bi-caret-right::before{content:""}.bi-caret-up-fill::before{content:""}.bi-caret-up-square-fill::before{content:""}.bi-caret-up-square::before{content:""}.bi-caret-up::before{content:""}.bi-cart-check-fill::before{content:""}.bi-cart-check::before{content:""}.bi-cart-dash-fill::before{content:""}.bi-cart-dash::before{content:""}.bi-cart-fill::before{content:""}.bi-cart-plus-fill::before{content:""}.bi-cart-plus::before{content:""}.bi-cart-x-fill::before{content:""}.bi-cart-x::before{content:""}.bi-cart::before{content:""}.bi-cart2::before{content:""}.bi-cart3::before{content:""}.bi-cart4::before{content:""}.bi-cash-stack::before{content:""}.bi-cash::before{content:""}.bi-cast::before{content:""}.bi-chat-dots-fill::before{content:""}.bi-chat-dots::before{content:""}.bi-chat-fill::before{content:""}.bi-chat-left-dots-fill::before{content:""}.bi-chat-left-dots::before{content:""}.bi-chat-left-fill::before{content:""}.bi-chat-left-quote-fill::before{content:""}.bi-chat-left-quote::before{content:""}.bi-chat-left-text-fill::before{content:""}.bi-chat-left-text::before{content:""}.bi-chat-left::before{content:""}.bi-chat-quote-fill::before{content:""}.bi-chat-quote::before{content:""}.bi-chat-right-dots-fill::before{content:""}.bi-chat-right-dots::before{content:""}.bi-chat-right-fill::before{content:""}.bi-chat-right-quote-fill::before{content:""}.bi-chat-right-quote::before{content:""}.bi-chat-right-text-fill::before{content:""}.bi-chat-right-text::before{content:""}.bi-chat-right::before{content:""}.bi-chat-square-dots-fill::before{content:""}.bi-chat-square-dots::before{content:""}.bi-chat-square-fill::before{content:""}.bi-chat-square-quote-fill::before{content:""}.bi-chat-square-quote::before{content:""}.bi-chat-square-text-fill::before{content:""}.bi-chat-square-text::before{content:""}.bi-chat-square::before{content:""}.bi-chat-text-fill::before{content:""}.bi-chat-text::before{content:""}.bi-chat::before{content:""}.bi-check-all::before{content:""}.bi-check-circle-fill::before{content:""}.bi-check-circle::before{content:""}.bi-check-square-fill::before{content:""}.bi-check-square::before{content:""}.bi-check::before{content:""}.bi-check2-all::before{content:""}.bi-check2-circle::before{content:""}.bi-check2-square::before{content:""}.bi-check2::before{content:""}.bi-chevron-bar-contract::before{content:""}.bi-chevron-bar-down::before{content:""}.bi-chevron-bar-expand::before{content:""}.bi-chevron-bar-left::before{content:""}.bi-chevron-bar-right::before{content:""}.bi-chevron-bar-up::before{content:""}.bi-chevron-compact-down::before{content:""}.bi-chevron-compact-left::before{content:""}.bi-chevron-compact-right::before{content:""}.bi-chevron-compact-up::before{content:""}.bi-chevron-contract::before{content:""}.bi-chevron-double-down::before{content:""}.bi-chevron-double-left::before{content:""}.bi-chevron-double-right::before{content:""}.bi-chevron-double-up::before{content:""}.bi-chevron-down::before{content:""}.bi-chevron-expand::before{content:""}.bi-chevron-left::before{content:""}.bi-chevron-right::before{content:""}.bi-chevron-up::before{content:""}.bi-circle-fill::before{content:""}.bi-circle-half::before{content:""}.bi-circle-square::before{content:""}.bi-circle::before{content:""}.bi-clipboard-check::before{content:""}.bi-clipboard-data::before{content:""}.bi-clipboard-minus::before{content:""}.bi-clipboard-plus::before{content:""}.bi-clipboard-x::before{content:""}.bi-clipboard::before{content:""}.bi-clock-fill::before{content:""}.bi-clock-history::before{content:""}.bi-clock::before{content:""}.bi-cloud-arrow-down-fill::before{content:""}.bi-cloud-arrow-down::before{content:""}.bi-cloud-arrow-up-fill::before{content:""}.bi-cloud-arrow-up::before{content:""}.bi-cloud-check-fill::before{content:""}.bi-cloud-check::before{content:""}.bi-cloud-download-fill::before{content:""}.bi-cloud-download::before{content:""}.bi-cloud-drizzle-fill::before{content:""}.bi-cloud-drizzle::before{content:""}.bi-cloud-fill::before{content:""}.bi-cloud-fog-fill::before{content:""}.bi-cloud-fog::before{content:""}.bi-cloud-fog2-fill::before{content:""}.bi-cloud-fog2::before{content:""}.bi-cloud-hail-fill::before{content:""}.bi-cloud-hail::before{content:""}.bi-cloud-haze-1::before{content:""}.bi-cloud-haze-fill::before{content:""}.bi-cloud-haze::before{content:""}.bi-cloud-haze2-fill::before{content:""}.bi-cloud-lightning-fill::before{content:""}.bi-cloud-lightning-rain-fill::before{content:""}.bi-cloud-lightning-rain::before{content:""}.bi-cloud-lightning::before{content:""}.bi-cloud-minus-fill::before{content:""}.bi-cloud-minus::before{content:""}.bi-cloud-moon-fill::before{content:""}.bi-cloud-moon::before{content:""}.bi-cloud-plus-fill::before{content:""}.bi-cloud-plus::before{content:""}.bi-cloud-rain-fill::before{content:""}.bi-cloud-rain-heavy-fill::before{content:""}.bi-cloud-rain-heavy::before{content:""}.bi-cloud-rain::before{content:""}.bi-cloud-slash-fill::before{content:""}.bi-cloud-slash::before{content:""}.bi-cloud-sleet-fill::before{content:""}.bi-cloud-sleet::before{content:""}.bi-cloud-snow-fill::before{content:""}.bi-cloud-snow::before{content:""}.bi-cloud-sun-fill::before{content:""}.bi-cloud-sun::before{content:""}.bi-cloud-upload-fill::before{content:""}.bi-cloud-upload::before{content:""}.bi-cloud::before{content:""}.bi-clouds-fill::before{content:""}.bi-clouds::before{content:""}.bi-cloudy-fill::before{content:""}.bi-cloudy::before{content:""}.bi-code-slash::before{content:""}.bi-code-square::before{content:""}.bi-code::before{content:""}.bi-collection-fill::before{content:""}.bi-collection-play-fill::before{content:""}.bi-collection-play::before{content:""}.bi-collection::before{content:""}.bi-columns-gap::before{content:""}.bi-columns::before{content:""}.bi-command::before{content:""}.bi-compass-fill::before{content:""}.bi-compass::before{content:""}.bi-cone-striped::before{content:""}.bi-cone::before{content:""}.bi-controller::before{content:""}.bi-cpu-fill::before{content:""}.bi-cpu::before{content:""}.bi-credit-card-2-back-fill::before{content:""}.bi-credit-card-2-back::before{content:""}.bi-credit-card-2-front-fill::before{content:""}.bi-credit-card-2-front::before{content:""}.bi-credit-card-fill::before{content:""}.bi-credit-card::before{content:""}.bi-crop::before{content:""}.bi-cup-fill::before{content:""}.bi-cup-straw::before{content:""}.bi-cup::before{content:""}.bi-cursor-fill::before{content:""}.bi-cursor-text::before{content:""}.bi-cursor::before{content:""}.bi-dash-circle-dotted::before{content:""}.bi-dash-circle-fill::before{content:""}.bi-dash-circle::before{content:""}.bi-dash-square-dotted::before{content:""}.bi-dash-square-fill::before{content:""}.bi-dash-square::before{content:""}.bi-dash::before{content:""}.bi-diagram-2-fill::before{content:""}.bi-diagram-2::before{content:""}.bi-diagram-3-fill::before{content:""}.bi-diagram-3::before{content:""}.bi-diamond-fill::before{content:""}.bi-diamond-half::before{content:""}.bi-diamond::before{content:""}.bi-dice-1-fill::before{content:""}.bi-dice-1::before{content:""}.bi-dice-2-fill::before{content:""}.bi-dice-2::before{content:""}.bi-dice-3-fill::before{content:""}.bi-dice-3::before{content:""}.bi-dice-4-fill::before{content:""}.bi-dice-4::before{content:""}.bi-dice-5-fill::before{content:""}.bi-dice-5::before{content:""}.bi-dice-6-fill::before{content:""}.bi-dice-6::before{content:""}.bi-disc-fill::before{content:""}.bi-disc::before{content:""}.bi-discord::before{content:""}.bi-display-fill::before{content:""}.bi-display::before{content:""}.bi-distribute-horizontal::before{content:""}.bi-distribute-vertical::before{content:""}.bi-door-closed-fill::before{content:""}.bi-door-closed::before{content:""}.bi-door-open-fill::before{content:""}.bi-door-open::before{content:""}.bi-dot::before{content:""}.bi-download::before{content:""}.bi-droplet-fill::before{content:""}.bi-droplet-half::before{content:""}.bi-droplet::before{content:""}.bi-earbuds::before{content:""}.bi-easel-fill::before{content:""}.bi-easel::before{content:""}.bi-egg-fill::before{content:""}.bi-egg-fried::before{content:""}.bi-egg::before{content:""}.bi-eject-fill::before{content:""}.bi-eject::before{content:""}.bi-emoji-angry-fill::before{content:""}.bi-emoji-angry::before{content:""}.bi-emoji-dizzy-fill::before{content:""}.bi-emoji-dizzy::before{content:""}.bi-emoji-expressionless-fill::before{content:""}.bi-emoji-expressionless::before{content:""}.bi-emoji-frown-fill::before{content:""}.bi-emoji-frown::before{content:""}.bi-emoji-heart-eyes-fill::before{content:""}.bi-emoji-heart-eyes::before{content:""}.bi-emoji-laughing-fill::before{content:""}.bi-emoji-laughing::before{content:""}.bi-emoji-neutral-fill::before{content:""}.bi-emoji-neutral::before{content:""}.bi-emoji-smile-fill::before{content:""}.bi-emoji-smile-upside-down-fill::before{content:""}.bi-emoji-smile-upside-down::before{content:""}.bi-emoji-smile::before{content:""}.bi-emoji-sunglasses-fill::before{content:""}.bi-emoji-sunglasses::before{content:""}.bi-emoji-wink-fill::before{content:""}.bi-emoji-wink::before{content:""}.bi-envelope-fill::before{content:""}.bi-envelope-open-fill::before{content:""}.bi-envelope-open::before{content:""}.bi-envelope::before{content:""}.bi-eraser-fill::before{content:""}.bi-eraser::before{content:""}.bi-exclamation-circle-fill::before{content:""}.bi-exclamation-circle::before{content:""}.bi-exclamation-diamond-fill::before{content:""}.bi-exclamation-diamond::before{content:""}.bi-exclamation-octagon-fill::before{content:""}.bi-exclamation-octagon::before{content:""}.bi-exclamation-square-fill::before{content:""}.bi-exclamation-square::before{content:""}.bi-exclamation-triangle-fill::before{content:""}.bi-exclamation-triangle::before{content:""}.bi-exclamation::before{content:""}.bi-exclude::before{content:""}.bi-eye-fill::before{content:""}.bi-eye-slash-fill::before{content:""}.bi-eye-slash::before{content:""}.bi-eye::before{content:""}.bi-eyedropper::before{content:""}.bi-eyeglasses::before{content:""}.bi-facebook::before{content:""}.bi-file-arrow-down-fill::before{content:""}.bi-file-arrow-down::before{content:""}.bi-file-arrow-up-fill::before{content:""}.bi-file-arrow-up::before{content:""}.bi-file-bar-graph-fill::before{content:""}.bi-file-bar-graph::before{content:""}.bi-file-binary-fill::before{content:""}.bi-file-binary::before{content:""}.bi-file-break-fill::before{content:""}.bi-file-break::before{content:""}.bi-file-check-fill::before{content:""}.bi-file-check::before{content:""}.bi-file-code-fill::before{content:""}.bi-file-code::before{content:""}.bi-file-diff-fill::before{content:""}.bi-file-diff::before{content:""}.bi-file-earmark-arrow-down-fill::before{content:""}.bi-file-earmark-arrow-down::before{content:""}.bi-file-earmark-arrow-up-fill::before{content:""}.bi-file-earmark-arrow-up::before{content:""}.bi-file-earmark-bar-graph-fill::before{content:""}.bi-file-earmark-bar-graph::before{content:""}.bi-file-earmark-binary-fill::before{content:""}.bi-file-earmark-binary::before{content:""}.bi-file-earmark-break-fill::before{content:""}.bi-file-earmark-break::before{content:""}.bi-file-earmark-check-fill::before{content:""}.bi-file-earmark-check::before{content:""}.bi-file-earmark-code-fill::before{content:""}.bi-file-earmark-code::before{content:""}.bi-file-earmark-diff-fill::before{content:""}.bi-file-earmark-diff::before{content:""}.bi-file-earmark-easel-fill::before{content:""}.bi-file-earmark-easel::before{content:""}.bi-file-earmark-excel-fill::before{content:""}.bi-file-earmark-excel::before{content:""}.bi-file-earmark-fill::before{content:""}.bi-file-earmark-font-fill::before{content:""}.bi-file-earmark-font::before{content:""}.bi-file-earmark-image-fill::before{content:""}.bi-file-earmark-image::before{content:""}.bi-file-earmark-lock-fill::before{content:""}.bi-file-earmark-lock::before{content:""}.bi-file-earmark-lock2-fill::before{content:""}.bi-file-earmark-lock2::before{content:""}.bi-file-earmark-medical-fill::before{content:""}.bi-file-earmark-medical::before{content:""}.bi-file-earmark-minus-fill::before{content:""}.bi-file-earmark-minus::before{content:""}.bi-file-earmark-music-fill::before{content:""}.bi-file-earmark-music::before{content:""}.bi-file-earmark-person-fill::before{content:""}.bi-file-earmark-person::before{content:""}.bi-file-earmark-play-fill::before{content:""}.bi-file-earmark-play::before{content:""}.bi-file-earmark-plus-fill::before{content:""}.bi-file-earmark-plus::before{content:""}.bi-file-earmark-post-fill::before{content:""}.bi-file-earmark-post::before{content:""}.bi-file-earmark-ppt-fill::before{content:""}.bi-file-earmark-ppt::before{content:""}.bi-file-earmark-richtext-fill::before{content:""}.bi-file-earmark-richtext::before{content:""}.bi-file-earmark-ruled-fill::before{content:""}.bi-file-earmark-ruled::before{content:""}.bi-file-earmark-slides-fill::before{content:""}.bi-file-earmark-slides::before{content:""}.bi-file-earmark-spreadsheet-fill::before{content:""}.bi-file-earmark-spreadsheet::before{content:""}.bi-file-earmark-text-fill::before{content:""}.bi-file-earmark-text::before{content:""}.bi-file-earmark-word-fill::before{content:""}.bi-file-earmark-word::before{content:""}.bi-file-earmark-x-fill::before{content:""}.bi-file-earmark-x::before{content:""}.bi-file-earmark-zip-fill::before{content:""}.bi-file-earmark-zip::before{content:""}.bi-file-earmark::before{content:""}.bi-file-easel-fill::before{content:""}.bi-file-easel::before{content:""}.bi-file-excel-fill::before{content:""}.bi-file-excel::before{content:""}.bi-file-fill::before{content:""}.bi-file-font-fill::before{content:""}.bi-file-font::before{content:""}.bi-file-image-fill::before{content:""}.bi-file-image::before{content:""}.bi-file-lock-fill::before{content:""}.bi-file-lock::before{content:""}.bi-file-lock2-fill::before{content:""}.bi-file-lock2::before{content:""}.bi-file-medical-fill::before{content:""}.bi-file-medical::before{content:""}.bi-file-minus-fill::before{content:""}.bi-file-minus::before{content:""}.bi-file-music-fill::before{content:""}.bi-file-music::before{content:""}.bi-file-person-fill::before{content:""}.bi-file-person::before{content:""}.bi-file-play-fill::before{content:""}.bi-file-play::before{content:""}.bi-file-plus-fill::before{content:""}.bi-file-plus::before{content:""}.bi-file-post-fill::before{content:""}.bi-file-post::before{content:""}.bi-file-ppt-fill::before{content:""}.bi-file-ppt::before{content:""}.bi-file-richtext-fill::before{content:""}.bi-file-richtext::before{content:""}.bi-file-ruled-fill::before{content:""}.bi-file-ruled::before{content:""}.bi-file-slides-fill::before{content:""}.bi-file-slides::before{content:""}.bi-file-spreadsheet-fill::before{content:""}.bi-file-spreadsheet::before{content:""}.bi-file-text-fill::before{content:""}.bi-file-text::before{content:""}.bi-file-word-fill::before{content:""}.bi-file-word::before{content:""}.bi-file-x-fill::before{content:""}.bi-file-x::before{content:""}.bi-file-zip-fill::before{content:""}.bi-file-zip::before{content:""}.bi-file::before{content:""}.bi-files-alt::before{content:""}.bi-files::before{content:""}.bi-film::before{content:""}.bi-filter-circle-fill::before{content:""}.bi-filter-circle::before{content:""}.bi-filter-left::before{content:""}.bi-filter-right::before{content:""}.bi-filter-square-fill::before{content:""}.bi-filter-square::before{content:""}.bi-filter::before{content:""}.bi-flag-fill::before{content:""}.bi-flag::before{content:""}.bi-flower1::before{content:""}.bi-flower2::before{content:""}.bi-flower3::before{content:""}.bi-folder-check::before{content:""}.bi-folder-fill::before{content:""}.bi-folder-minus::before{content:""}.bi-folder-plus::before{content:""}.bi-folder-symlink-fill::before{content:""}.bi-folder-symlink::before{content:""}.bi-folder-x::before{content:""}.bi-folder::before{content:""}.bi-folder2-open::before{content:""}.bi-folder2::before{content:""}.bi-fonts::before{content:""}.bi-forward-fill::before{content:""}.bi-forward::before{content:""}.bi-front::before{content:""}.bi-fullscreen-exit::before{content:""}.bi-fullscreen::before{content:""}.bi-funnel-fill::before{content:""}.bi-funnel::before{content:""}.bi-gear-fill::before{content:""}.bi-gear-wide-connected::before{content:""}.bi-gear-wide::before{content:""}.bi-gear::before{content:""}.bi-gem::before{content:""}.bi-geo-alt-fill::before{content:""}.bi-geo-alt::before{content:""}.bi-geo-fill::before{content:""}.bi-geo::before{content:""}.bi-gift-fill::before{content:""}.bi-gift::before{content:""}.bi-github::before{content:""}.bi-globe::before{content:""}.bi-globe2::before{content:""}.bi-google::before{content:""}.bi-graph-down::before{content:""}.bi-graph-up::before{content:""}.bi-grid-1x2-fill::before{content:""}.bi-grid-1x2::before{content:""}.bi-grid-3x2-gap-fill::before{content:""}.bi-grid-3x2-gap::before{content:""}.bi-grid-3x2::before{content:""}.bi-grid-3x3-gap-fill::before{content:""}.bi-grid-3x3-gap::before{content:""}.bi-grid-3x3::before{content:""}.bi-grid-fill::before{content:""}.bi-grid::before{content:""}.bi-grip-horizontal::before{content:""}.bi-grip-vertical::before{content:""}.bi-hammer::before{content:""}.bi-hand-index-fill::before{content:""}.bi-hand-index-thumb-fill::before{content:""}.bi-hand-index-thumb::before{content:""}.bi-hand-index::before{content:""}.bi-hand-thumbs-down-fill::before{content:""}.bi-hand-thumbs-down::before{content:""}.bi-hand-thumbs-up-fill::before{content:""}.bi-hand-thumbs-up::before{content:""}.bi-handbag-fill::before{content:""}.bi-handbag::before{content:""}.bi-hash::before{content:""}.bi-hdd-fill::before{content:""}.bi-hdd-network-fill::before{content:""}.bi-hdd-network::before{content:""}.bi-hdd-rack-fill::before{content:""}.bi-hdd-rack::before{content:""}.bi-hdd-stack-fill::before{content:""}.bi-hdd-stack::before{content:""}.bi-hdd::before{content:""}.bi-headphones::before{content:""}.bi-headset::before{content:""}.bi-heart-fill::before{content:""}.bi-heart-half::before{content:""}.bi-heart::before{content:""}.bi-heptagon-fill::before{content:""}.bi-heptagon-half::before{content:""}.bi-heptagon::before{content:""}.bi-hexagon-fill::before{content:""}.bi-hexagon-half::before{content:""}.bi-hexagon::before{content:""}.bi-hourglass-bottom::before{content:""}.bi-hourglass-split::before{content:""}.bi-hourglass-top::before{content:""}.bi-hourglass::before{content:""}.bi-house-door-fill::before{content:""}.bi-house-door::before{content:""}.bi-house-fill::before{content:""}.bi-house::before{content:""}.bi-hr::before{content:""}.bi-hurricane::before{content:""}.bi-image-alt::before{content:""}.bi-image-fill::before{content:""}.bi-image::before{content:""}.bi-images::before{content:""}.bi-inbox-fill::before{content:""}.bi-inbox::before{content:""}.bi-inboxes-fill::before{content:""}.bi-inboxes::before{content:""}.bi-info-circle-fill::before{content:""}.bi-info-circle::before{content:""}.bi-info-square-fill::before{content:""}.bi-info-square::before{content:""}.bi-info::before{content:""}.bi-input-cursor-text::before{content:""}.bi-input-cursor::before{content:""}.bi-instagram::before{content:""}.bi-intersect::before{content:""}.bi-journal-album::before{content:""}.bi-journal-arrow-down::before{content:""}.bi-journal-arrow-up::before{content:""}.bi-journal-bookmark-fill::before{content:""}.bi-journal-bookmark::before{content:""}.bi-journal-check::before{content:""}.bi-journal-code::before{content:""}.bi-journal-medical::before{content:""}.bi-journal-minus::before{content:""}.bi-journal-plus::before{content:""}.bi-journal-richtext::before{content:""}.bi-journal-text::before{content:""}.bi-journal-x::before{content:""}.bi-journal::before{content:""}.bi-journals::before{content:""}.bi-joystick::before{content:""}.bi-justify-left::before{content:""}.bi-justify-right::before{content:""}.bi-justify::before{content:""}.bi-kanban-fill::before{content:""}.bi-kanban::before{content:""}.bi-key-fill::before{content:""}.bi-key::before{content:""}.bi-keyboard-fill::before{content:""}.bi-keyboard::before{content:""}.bi-ladder::before{content:""}.bi-lamp-fill::before{content:""}.bi-lamp::before{content:""}.bi-laptop-fill::before{content:""}.bi-laptop::before{content:""}.bi-layer-backward::before{content:""}.bi-layer-forward::before{content:""}.bi-layers-fill::before{content:""}.bi-layers-half::before{content:""}.bi-layers::before{content:""}.bi-layout-sidebar-inset-reverse::before{content:""}.bi-layout-sidebar-inset::before{content:""}.bi-layout-sidebar-reverse::before{content:""}.bi-layout-sidebar::before{content:""}.bi-layout-split::before{content:""}.bi-layout-text-sidebar-reverse::before{content:""}.bi-layout-text-sidebar::before{content:""}.bi-layout-text-window-reverse::before{content:""}.bi-layout-text-window::before{content:""}.bi-layout-three-columns::before{content:""}.bi-layout-wtf::before{content:""}.bi-life-preserver::before{content:""}.bi-lightbulb-fill::before{content:""}.bi-lightbulb-off-fill::before{content:""}.bi-lightbulb-off::before{content:""}.bi-lightbulb::before{content:""}.bi-lightning-charge-fill::before{content:""}.bi-lightning-charge::before{content:""}.bi-lightning-fill::before{content:""}.bi-lightning::before{content:""}.bi-link-45deg::before{content:""}.bi-link::before{content:""}.bi-linkedin::before{content:""}.bi-list-check::before{content:""}.bi-list-nested::before{content:""}.bi-list-ol::before{content:""}.bi-list-stars::before{content:""}.bi-list-task::before{content:""}.bi-list-ul::before{content:""}.bi-list::before{content:""}.bi-lock-fill::before{content:""}.bi-lock::before{content:""}.bi-mailbox::before{content:""}.bi-mailbox2::before{content:""}.bi-map-fill::before{content:""}.bi-map::before{content:""}.bi-markdown-fill::before{content:""}.bi-markdown::before{content:""}.bi-mask::before{content:""}.bi-megaphone-fill::before{content:""}.bi-megaphone::before{content:""}.bi-menu-app-fill::before{content:""}.bi-menu-app::before{content:""}.bi-menu-button-fill::before{content:""}.bi-menu-button-wide-fill::before{content:""}.bi-menu-button-wide::before{content:""}.bi-menu-button::before{content:""}.bi-menu-down::before{content:""}.bi-menu-up::before{content:""}.bi-mic-fill::before{content:""}.bi-mic-mute-fill::before{content:""}.bi-mic-mute::before{content:""}.bi-mic::before{content:""}.bi-minecart-loaded::before{content:""}.bi-minecart::before{content:""}.bi-moisture::before{content:""}.bi-moon-fill::before{content:""}.bi-moon-stars-fill::before{content:""}.bi-moon-stars::before{content:""}.bi-moon::before{content:""}.bi-mouse-fill::before{content:""}.bi-mouse::before{content:""}.bi-mouse2-fill::before{content:""}.bi-mouse2::before{content:""}.bi-mouse3-fill::before{content:""}.bi-mouse3::before{content:""}.bi-music-note-beamed::before{content:""}.bi-music-note-list::before{content:""}.bi-music-note::before{content:""}.bi-music-player-fill::before{content:""}.bi-music-player::before{content:""}.bi-newspaper::before{content:""}.bi-node-minus-fill::before{content:""}.bi-node-minus::before{content:""}.bi-node-plus-fill::before{content:""}.bi-node-plus::before{content:""}.bi-nut-fill::before{content:""}.bi-nut::before{content:""}.bi-octagon-fill::before{content:""}.bi-octagon-half::before{content:""}.bi-octagon::before{content:""}.bi-option::before{content:""}.bi-outlet::before{content:""}.bi-paint-bucket::before{content:""}.bi-palette-fill::before{content:""}.bi-palette::before{content:""}.bi-palette2::before{content:""}.bi-paperclip::before{content:""}.bi-paragraph::before{content:""}.bi-patch-check-fill::before{content:""}.bi-patch-check::before{content:""}.bi-patch-exclamation-fill::before{content:""}.bi-patch-exclamation::before{content:""}.bi-patch-minus-fill::before{content:""}.bi-patch-minus::before{content:""}.bi-patch-plus-fill::before{content:""}.bi-patch-plus::before{content:""}.bi-patch-question-fill::before{content:""}.bi-patch-question::before{content:""}.bi-pause-btn-fill::before{content:""}.bi-pause-btn::before{content:""}.bi-pause-circle-fill::before{content:""}.bi-pause-circle::before{content:""}.bi-pause-fill::before{content:""}.bi-pause::before{content:""}.bi-peace-fill::before{content:""}.bi-peace::before{content:""}.bi-pen-fill::before{content:""}.bi-pen::before{content:""}.bi-pencil-fill::before{content:""}.bi-pencil-square::before{content:""}.bi-pencil::before{content:""}.bi-pentagon-fill::before{content:""}.bi-pentagon-half::before{content:""}.bi-pentagon::before{content:""}.bi-people-fill::before{content:""}.bi-people::before{content:""}.bi-percent::before{content:""}.bi-person-badge-fill::before{content:""}.bi-person-badge::before{content:""}.bi-person-bounding-box::before{content:""}.bi-person-check-fill::before{content:""}.bi-person-check::before{content:""}.bi-person-circle::before{content:""}.bi-person-dash-fill::before{content:""}.bi-person-dash::before{content:""}.bi-person-fill::before{content:""}.bi-person-lines-fill::before{content:""}.bi-person-plus-fill::before{content:""}.bi-person-plus::before{content:""}.bi-person-square::before{content:""}.bi-person-x-fill::before{content:""}.bi-person-x::before{content:""}.bi-person::before{content:""}.bi-phone-fill::before{content:""}.bi-phone-landscape-fill::before{content:""}.bi-phone-landscape::before{content:""}.bi-phone-vibrate-fill::before{content:""}.bi-phone-vibrate::before{content:""}.bi-phone::before{content:""}.bi-pie-chart-fill::before{content:""}.bi-pie-chart::before{content:""}.bi-pin-angle-fill::before{content:""}.bi-pin-angle::before{content:""}.bi-pin-fill::before{content:""}.bi-pin::before{content:""}.bi-pip-fill::before{content:""}.bi-pip::before{content:""}.bi-play-btn-fill::before{content:""}.bi-play-btn::before{content:""}.bi-play-circle-fill::before{content:""}.bi-play-circle::before{content:""}.bi-play-fill::before{content:""}.bi-play::before{content:""}.bi-plug-fill::before{content:""}.bi-plug::before{content:""}.bi-plus-circle-dotted::before{content:""}.bi-plus-circle-fill::before{content:""}.bi-plus-circle::before{content:""}.bi-plus-square-dotted::before{content:""}.bi-plus-square-fill::before{content:""}.bi-plus-square::before{content:""}.bi-plus::before{content:""}.bi-power::before{content:""}.bi-printer-fill::before{content:""}.bi-printer::before{content:""}.bi-puzzle-fill::before{content:""}.bi-puzzle::before{content:""}.bi-question-circle-fill::before{content:""}.bi-question-circle::before{content:""}.bi-question-diamond-fill::before{content:""}.bi-question-diamond::before{content:""}.bi-question-octagon-fill::before{content:""}.bi-question-octagon::before{content:""}.bi-question-square-fill::before{content:""}.bi-question-square::before{content:""}.bi-question::before{content:""}.bi-rainbow::before{content:""}.bi-receipt-cutoff::before{content:""}.bi-receipt::before{content:""}.bi-reception-0::before{content:""}.bi-reception-1::before{content:""}.bi-reception-2::before{content:""}.bi-reception-3::before{content:""}.bi-reception-4::before{content:""}.bi-record-btn-fill::before{content:""}.bi-record-btn::before{content:""}.bi-record-circle-fill::before{content:""}.bi-record-circle::before{content:""}.bi-record-fill::before{content:""}.bi-record::before{content:""}.bi-record2-fill::before{content:""}.bi-record2::before{content:""}.bi-reply-all-fill::before{content:""}.bi-reply-all::before{content:""}.bi-reply-fill::before{content:""}.bi-reply::before{content:""}.bi-rss-fill::before{content:""}.bi-rss::before{content:""}.bi-rulers::before{content:""}.bi-save-fill::before{content:""}.bi-save::before{content:""}.bi-save2-fill::before{content:""}.bi-save2::before{content:""}.bi-scissors::before{content:""}.bi-screwdriver::before{content:""}.bi-search::before{content:""}.bi-segmented-nav::before{content:""}.bi-server::before{content:""}.bi-share-fill::before{content:""}.bi-share::before{content:""}.bi-shield-check::before{content:""}.bi-shield-exclamation::before{content:""}.bi-shield-fill-check::before{content:""}.bi-shield-fill-exclamation::before{content:""}.bi-shield-fill-minus::before{content:""}.bi-shield-fill-plus::before{content:""}.bi-shield-fill-x::before{content:""}.bi-shield-fill::before{content:""}.bi-shield-lock-fill::before{content:""}.bi-shield-lock::before{content:""}.bi-shield-minus::before{content:""}.bi-shield-plus::before{content:""}.bi-shield-shaded::before{content:""}.bi-shield-slash-fill::before{content:""}.bi-shield-slash::before{content:""}.bi-shield-x::before{content:""}.bi-shield::before{content:""}.bi-shift-fill::before{content:""}.bi-shift::before{content:""}.bi-shop-window::before{content:""}.bi-shop::before{content:""}.bi-shuffle::before{content:""}.bi-signpost-2-fill::before{content:""}.bi-signpost-2::before{content:""}.bi-signpost-fill::before{content:""}.bi-signpost-split-fill::before{content:""}.bi-signpost-split::before{content:""}.bi-signpost::before{content:""}.bi-sim-fill::before{content:""}.bi-sim::before{content:""}.bi-skip-backward-btn-fill::before{content:""}.bi-skip-backward-btn::before{content:""}.bi-skip-backward-circle-fill::before{content:""}.bi-skip-backward-circle::before{content:""}.bi-skip-backward-fill::before{content:""}.bi-skip-backward::before{content:""}.bi-skip-end-btn-fill::before{content:""}.bi-skip-end-btn::before{content:""}.bi-skip-end-circle-fill::before{content:""}.bi-skip-end-circle::before{content:""}.bi-skip-end-fill::before{content:""}.bi-skip-end::before{content:""}.bi-skip-forward-btn-fill::before{content:""}.bi-skip-forward-btn::before{content:""}.bi-skip-forward-circle-fill::before{content:""}.bi-skip-forward-circle::before{content:""}.bi-skip-forward-fill::before{content:""}.bi-skip-forward::before{content:""}.bi-skip-start-btn-fill::before{content:""}.bi-skip-start-btn::before{content:""}.bi-skip-start-circle-fill::before{content:""}.bi-skip-start-circle::before{content:""}.bi-skip-start-fill::before{content:""}.bi-skip-start::before{content:""}.bi-slack::before{content:""}.bi-slash-circle-fill::before{content:""}.bi-slash-circle::before{content:""}.bi-slash-square-fill::before{content:""}.bi-slash-square::before{content:""}.bi-slash::before{content:""}.bi-sliders::before{content:""}.bi-smartwatch::before{content:""}.bi-snow::before{content:""}.bi-snow2::before{content:""}.bi-snow3::before{content:""}.bi-sort-alpha-down-alt::before{content:""}.bi-sort-alpha-down::before{content:""}.bi-sort-alpha-up-alt::before{content:""}.bi-sort-alpha-up::before{content:""}.bi-sort-down-alt::before{content:""}.bi-sort-down::before{content:""}.bi-sort-numeric-down-alt::before{content:""}.bi-sort-numeric-down::before{content:""}.bi-sort-numeric-up-alt::before{content:""}.bi-sort-numeric-up::before{content:""}.bi-sort-up-alt::before{content:""}.bi-sort-up::before{content:""}.bi-soundwave::before{content:""}.bi-speaker-fill::before{content:""}.bi-speaker::before{content:""}.bi-speedometer::before{content:""}.bi-speedometer2::before{content:""}.bi-spellcheck::before{content:""}.bi-square-fill::before{content:""}.bi-square-half::before{content:""}.bi-square::before{content:""}.bi-stack::before{content:""}.bi-star-fill::before{content:""}.bi-star-half::before{content:""}.bi-star::before{content:""}.bi-stars::before{content:""}.bi-stickies-fill::before{content:""}.bi-stickies::before{content:""}.bi-sticky-fill::before{content:""}.bi-sticky::before{content:""}.bi-stop-btn-fill::before{content:""}.bi-stop-btn::before{content:""}.bi-stop-circle-fill::before{content:""}.bi-stop-circle::before{content:""}.bi-stop-fill::before{content:""}.bi-stop::before{content:""}.bi-stoplights-fill::before{content:""}.bi-stoplights::before{content:""}.bi-stopwatch-fill::before{content:""}.bi-stopwatch::before{content:""}.bi-subtract::before{content:""}.bi-suit-club-fill::before{content:""}.bi-suit-club::before{content:""}.bi-suit-diamond-fill::before{content:""}.bi-suit-diamond::before{content:""}.bi-suit-heart-fill::before{content:""}.bi-suit-heart::before{content:""}.bi-suit-spade-fill::before{content:""}.bi-suit-spade::before{content:""}.bi-sun-fill::before{content:""}.bi-sun::before{content:""}.bi-sunglasses::before{content:""}.bi-sunrise-fill::before{content:""}.bi-sunrise::before{content:""}.bi-sunset-fill::before{content:""}.bi-sunset::before{content:""}.bi-symmetry-horizontal::before{content:""}.bi-symmetry-vertical::before{content:""}.bi-table::before{content:""}.bi-tablet-fill::before{content:""}.bi-tablet-landscape-fill::before{content:""}.bi-tablet-landscape::before{content:""}.bi-tablet::before{content:""}.bi-tag-fill::before{content:""}.bi-tag::before{content:""}.bi-tags-fill::before{content:""}.bi-tags::before{content:""}.bi-telegram::before{content:""}.bi-telephone-fill::before{content:""}.bi-telephone-forward-fill::before{content:""}.bi-telephone-forward::before{content:""}.bi-telephone-inbound-fill::before{content:""}.bi-telephone-inbound::before{content:""}.bi-telephone-minus-fill::before{content:""}.bi-telephone-minus::before{content:""}.bi-telephone-outbound-fill::before{content:""}.bi-telephone-outbound::before{content:""}.bi-telephone-plus-fill::before{content:""}.bi-telephone-plus::before{content:""}.bi-telephone-x-fill::before{content:""}.bi-telephone-x::before{content:""}.bi-telephone::before{content:""}.bi-terminal-fill::before{content:""}.bi-terminal::before{content:""}.bi-text-center::before{content:""}.bi-text-indent-left::before{content:""}.bi-text-indent-right::before{content:""}.bi-text-left::before{content:""}.bi-text-paragraph::before{content:""}.bi-text-right::before{content:""}.bi-textarea-resize::before{content:""}.bi-textarea-t::before{content:""}.bi-textarea::before{content:""}.bi-thermometer-half::before{content:""}.bi-thermometer-high::before{content:""}.bi-thermometer-low::before{content:""}.bi-thermometer-snow::before{content:""}.bi-thermometer-sun::before{content:""}.bi-thermometer::before{content:""}.bi-three-dots-vertical::before{content:""}.bi-three-dots::before{content:""}.bi-toggle-off::before{content:""}.bi-toggle-on::before{content:""}.bi-toggle2-off::before{content:""}.bi-toggle2-on::before{content:""}.bi-toggles::before{content:""}.bi-toggles2::before{content:""}.bi-tools::before{content:""}.bi-tornado::before{content:""}.bi-trash-fill::before{content:""}.bi-trash::before{content:""}.bi-trash2-fill::before{content:""}.bi-trash2::before{content:""}.bi-tree-fill::before{content:""}.bi-tree::before{content:""}.bi-triangle-fill::before{content:""}.bi-triangle-half::before{content:""}.bi-triangle::before{content:""}.bi-trophy-fill::before{content:""}.bi-trophy::before{content:""}.bi-tropical-storm::before{content:""}.bi-truck-flatbed::before{content:""}.bi-truck::before{content:""}.bi-tsunami::before{content:""}.bi-tv-fill::before{content:""}.bi-tv::before{content:""}.bi-twitch::before{content:""}.bi-twitter::before{content:""}.bi-type-bold::before{content:""}.bi-type-h1::before{content:""}.bi-type-h2::before{content:""}.bi-type-h3::before{content:""}.bi-type-italic::before{content:""}.bi-type-strikethrough::before{content:""}.bi-type-underline::before{content:""}.bi-type::before{content:""}.bi-ui-checks-grid::before{content:""}.bi-ui-checks::before{content:""}.bi-ui-radios-grid::before{content:""}.bi-ui-radios::before{content:""}.bi-umbrella-fill::before{content:""}.bi-umbrella::before{content:""}.bi-union::before{content:""}.bi-unlock-fill::before{content:""}.bi-unlock::before{content:""}.bi-upc-scan::before{content:""}.bi-upc::before{content:""}.bi-upload::before{content:""}.bi-vector-pen::before{content:""}.bi-view-list::before{content:""}.bi-view-stacked::before{content:""}.bi-vinyl-fill::before{content:""}.bi-vinyl::before{content:""}.bi-voicemail::before{content:""}.bi-volume-down-fill::before{content:""}.bi-volume-down::before{content:""}.bi-volume-mute-fill::before{content:""}.bi-volume-mute::before{content:""}.bi-volume-off-fill::before{content:""}.bi-volume-off::before{content:""}.bi-volume-up-fill::before{content:""}.bi-volume-up::before{content:""}.bi-vr::before{content:""}.bi-wallet-fill::before{content:""}.bi-wallet::before{content:""}.bi-wallet2::before{content:""}.bi-watch::before{content:""}.bi-water::before{content:""}.bi-whatsapp::before{content:""}.bi-wifi-1::before{content:""}.bi-wifi-2::before{content:""}.bi-wifi-off::before{content:""}.bi-wifi::before{content:""}.bi-wind::before{content:""}.bi-window-dock::before{content:""}.bi-window-sidebar::before{content:""}.bi-window::before{content:""}.bi-wrench::before{content:""}.bi-x-circle-fill::before{content:""}.bi-x-circle::before{content:""}.bi-x-diamond-fill::before{content:""}.bi-x-diamond::before{content:""}.bi-x-octagon-fill::before{content:""}.bi-x-octagon::before{content:""}.bi-x-square-fill::before{content:""}.bi-x-square::before{content:""}.bi-x::before{content:""}.bi-youtube::before{content:""}.bi-zoom-in::before{content:""}.bi-zoom-out::before{content:""}.bi-bank::before{content:""}.bi-bank2::before{content:""}.bi-bell-slash-fill::before{content:""}.bi-bell-slash::before{content:""}.bi-cash-coin::before{content:""}.bi-check-lg::before{content:""}.bi-coin::before{content:""}.bi-currency-bitcoin::before{content:""}.bi-currency-dollar::before{content:""}.bi-currency-euro::before{content:""}.bi-currency-exchange::before{content:""}.bi-currency-pound::before{content:""}.bi-currency-yen::before{content:""}.bi-dash-lg::before{content:""}.bi-exclamation-lg::before{content:""}.bi-file-earmark-pdf-fill::before{content:""}.bi-file-earmark-pdf::before{content:""}.bi-file-pdf-fill::before{content:""}.bi-file-pdf::before{content:""}.bi-gender-ambiguous::before{content:""}.bi-gender-female::before{content:""}.bi-gender-male::before{content:""}.bi-gender-trans::before{content:""}.bi-headset-vr::before{content:""}.bi-info-lg::before{content:""}.bi-mastodon::before{content:""}.bi-messenger::before{content:""}.bi-piggy-bank-fill::before{content:""}.bi-piggy-bank::before{content:""}.bi-pin-map-fill::before{content:""}.bi-pin-map::before{content:""}.bi-plus-lg::before{content:""}.bi-question-lg::before{content:""}.bi-recycle::before{content:""}.bi-reddit::before{content:""}.bi-safe-fill::before{content:""}.bi-safe2-fill::before{content:""}.bi-safe2::before{content:""}.bi-sd-card-fill::before{content:""}.bi-sd-card::before{content:""}.bi-skype::before{content:""}.bi-slash-lg::before{content:""}.bi-translate::before{content:""}.bi-x-lg::before{content:""}.bi-safe::before{content:""}.bi-apple::before{content:""}.bi-microsoft::before{content:""}.bi-windows::before{content:""}.bi-behance::before{content:""}.bi-dribbble::before{content:""}.bi-line::before{content:""}.bi-medium::before{content:""}.bi-paypal::before{content:""}.bi-pinterest::before{content:""}.bi-signal::before{content:""}.bi-snapchat::before{content:""}.bi-spotify::before{content:""}.bi-stack-overflow::before{content:""}.bi-strava::before{content:""}.bi-wordpress::before{content:""}.bi-vimeo::before{content:""}.bi-activity::before{content:""}.bi-easel2-fill::before{content:""}.bi-easel2::before{content:""}.bi-easel3-fill::before{content:""}.bi-easel3::before{content:""}.bi-fan::before{content:""}.bi-fingerprint::before{content:""}.bi-graph-down-arrow::before{content:""}.bi-graph-up-arrow::before{content:""}.bi-hypnotize::before{content:""}.bi-magic::before{content:""}.bi-person-rolodex::before{content:""}.bi-person-video::before{content:""}.bi-person-video2::before{content:""}.bi-person-video3::before{content:""}.bi-person-workspace::before{content:""}.bi-radioactive::before{content:""}.bi-webcam-fill::before{content:""}.bi-webcam::before{content:""}.bi-yin-yang::before{content:""}.bi-bandaid-fill::before{content:""}.bi-bandaid::before{content:""}.bi-bluetooth::before{content:""}.bi-body-text::before{content:""}.bi-boombox::before{content:""}.bi-boxes::before{content:""}.bi-dpad-fill::before{content:""}.bi-dpad::before{content:""}.bi-ear-fill::before{content:""}.bi-ear::before{content:""}.bi-envelope-check-1::before{content:""}.bi-envelope-check-fill::before{content:""}.bi-envelope-check::before{content:""}.bi-envelope-dash-1::before{content:""}.bi-envelope-dash-fill::before{content:""}.bi-envelope-dash::before{content:""}.bi-envelope-exclamation-1::before{content:""}.bi-envelope-exclamation-fill::before{content:""}.bi-envelope-exclamation::before{content:""}.bi-envelope-plus-fill::before{content:""}.bi-envelope-plus::before{content:""}.bi-envelope-slash-1::before{content:""}.bi-envelope-slash-fill::before{content:""}.bi-envelope-slash::before{content:""}.bi-envelope-x-1::before{content:""}.bi-envelope-x-fill::before{content:""}.bi-envelope-x::before{content:""}.bi-explicit-fill::before{content:""}.bi-explicit::before{content:""}.bi-git::before{content:""}.bi-infinity::before{content:""}.bi-list-columns-reverse::before{content:""}.bi-list-columns::before{content:""}.bi-meta::before{content:""}.bi-mortorboard-fill::before{content:""}.bi-mortorboard::before{content:""}.bi-nintendo-switch::before{content:""}.bi-pc-display-horizontal::before{content:""}.bi-pc-display::before{content:""}.bi-pc-horizontal::before{content:""}.bi-pc::before{content:""}.bi-playstation::before{content:""}.bi-plus-slash-minus::before{content:""}.bi-projector-fill::before{content:""}.bi-projector::before{content:""}.bi-qr-code-scan::before{content:""}.bi-qr-code::before{content:""}.bi-quora::before{content:""}.bi-quote::before{content:""}.bi-robot::before{content:""}.bi-send-check-fill::before{content:""}.bi-send-check::before{content:""}.bi-send-dash-fill::before{content:""}.bi-send-dash::before{content:""}.bi-send-exclamation-1::before{content:""}.bi-send-exclamation-fill::before{content:""}.bi-send-exclamation::before{content:""}.bi-send-fill::before{content:""}.bi-send-plus-fill::before{content:""}.bi-send-plus::before{content:""}.bi-send-slash-fill::before{content:""}.bi-send-slash::before{content:""}.bi-send-x-fill::before{content:""}.bi-send-x::before{content:""}.bi-send::before{content:""}.bi-steam::before{content:""}.bi-terminal-dash-1::before{content:""}.bi-terminal-dash::before{content:""}.bi-terminal-plus::before{content:""}.bi-terminal-split::before{content:""}.bi-ticket-detailed-fill::before{content:""}.bi-ticket-detailed::before{content:""}.bi-ticket-fill::before{content:""}.bi-ticket-perforated-fill::before{content:""}.bi-ticket-perforated::before{content:""}.bi-ticket::before{content:""}.bi-tiktok::before{content:""}.bi-window-dash::before{content:""}.bi-window-desktop::before{content:""}.bi-window-fullscreen::before{content:""}.bi-window-plus::before{content:""}.bi-window-split::before{content:""}.bi-window-stack::before{content:""}.bi-window-x::before{content:""}.bi-xbox::before{content:""}.bi-ethernet::before{content:""}.bi-hdmi-fill::before{content:""}.bi-hdmi::before{content:""}.bi-usb-c-fill::before{content:""}.bi-usb-c::before{content:""}.bi-usb-fill::before{content:""}.bi-usb-plug-fill::before{content:""}.bi-usb-plug::before{content:""}.bi-usb-symbol::before{content:""}.bi-usb::before{content:""}.bi-boombox-fill::before{content:""}.bi-displayport-1::before{content:""}.bi-displayport::before{content:""}.bi-gpu-card::before{content:""}.bi-memory::before{content:""}.bi-modem-fill::before{content:""}.bi-modem::before{content:""}.bi-motherboard-fill::before{content:""}.bi-motherboard::before{content:""}.bi-optical-audio-fill::before{content:""}.bi-optical-audio::before{content:""}.bi-pci-card::before{content:""}.bi-router-fill::before{content:""}.bi-router::before{content:""}.bi-ssd-fill::before{content:""}.bi-ssd::before{content:""}.bi-thunderbolt-fill::before{content:""}.bi-thunderbolt::before{content:""}.bi-usb-drive-fill::before{content:""}.bi-usb-drive::before{content:""}.bi-usb-micro-fill::before{content:""}.bi-usb-micro::before{content:""}.bi-usb-mini-fill::before{content:""}.bi-usb-mini::before{content:""}.bi-cloud-haze2::before{content:""}.bi-device-hdd-fill::before{content:""}.bi-device-hdd::before{content:""}.bi-device-ssd-fill::before{content:""}.bi-device-ssd::before{content:""}.bi-displayport-fill::before{content:""}.bi-mortarboard-fill::before{content:""}.bi-mortarboard::before{content:""}.bi-terminal-x::before{content:""}table.dataTable{width:100%}table.dataTable thead .dt-orderable:after,table.dataTable thead .dt-orderable-asc:after,table.dataTable thead .dt-orderable-desc:after,table.dataTable thead .dt-orderable-asc:after,table.dataTable thead .dt-orderable-desc:after{display:inline-block!important;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 5px;transition:color .3s;position:relative!important;bottom:0!important;left:.125rem!important;display:none!important}table.dataTable thead .dt-orderable:before,table.dataTable thead .dt-orderable-asc:before,table.dataTable thead .dt-orderable-desc:before,table.dataTable thead .dt-orderable-asc:before,table.dataTable thead .dt-orderable-desc:before{display:none!important}table.dataTable thead .dt-orderable:after{content:""!important;color:var(--lpx-content-text)!important}table.dataTable thead .dt-orderable-asc:after{content:""!important;color:var(--lpx-brand)!important;opacity:1!important}table.dataTable thead .dt-orderable-desc:after{content:""!important;color:var(--lpx-brand)!important;opacity:1!important}table.dataTable thead .dt-orderable-asc-none:before,table.dataTable thead .dt-orderable-desc-none:before,table.dataTable thead .dt-orderable-asc-none:after,table.dataTable thead .dt-orderable-desc-none:after{content:""!important;color:var(--lpx-content-text)!important;opacity:.15!important}table.dataTable thead .sorting{cursor:pointer!important}table.dataTable thead th{border-bottom:1px solid var(--lpx-border-color);padding-left:.75rem!important;padding-right:1.5rem!important;padding-top:.5rem;padding-bottom:.5rem;font-weight:400;color:rgba(var(--lpx-content-text-rgb),.65);transition:color .3s;text-transform:uppercase;font-size:.875em;letter-spacing:.75px}table.dataTable thead th .dt-column-order{right:5px!important}table.dataTable thead th.sorting:hover,table.dataTable thead th.sorting.dt-orderable-asc,table.dataTable thead th.sorting.dt-orderable-desc{color:var(--lpx-content-text)}table.dataTable thead th .form-check-input{width:18px;height:18px}table.dataTable thead td{padding:.5rem 1rem!important;border-bottom:1px solid var(--lpx-border-color)}table.dataTable thead .dt-orderable,table.dataTable thead .dt-orderable-asc,table.dataTable thead .dt-orderable-desc,table.dataTable thead .dt-orderable-asc-none,table.dataTable thead .dt-orderable-desc-none{cursor:pointer!important;*cursor:hand!important;background:none!important}table.dataTable tfoot th,table.dataTable tfoot td{border-top:1px solid var(--lpx-border-color);padding:.5rem .75rem;font-weight:400;opacity:.5;transition:opacity .3s,color .3s;text-transform:uppercase;font-size:.875em;letter-spacing:.75px}table.dataTable tbody tr{background-color:var(--lpx-card-bg)}table.dataTable tbody tr.selected{background-color:var(--lpx-content-bg)}table.dataTable tbody tr th,table.dataTable tbody tr td{border-color:var(--lpx-border-color);padding:.875rem .75rem}table.dataTable tbody tr th .btn,table.dataTable tbody tr td .btn{padding:.375rem .75rem;font-size:.875em}table.dataTable tbody tr td i.fa.fa-check{color:var(--lpx-success)}table.dataTable tbody tr td i.fa.fa-times{color:var(--lpx-danger)}table.dataTable td.dt-control{cursor:pointer}table.dataTable td.dt-control:before{background-color:var(--lpx-success);color:var(--lpx-content-text);border:.15em solid var(--lpx-border-color);border-radius:var(--lpx-radius);box-shadow:var(--lpx-shadow)}table.dataTable tr.dt-hasChild td.dt-control:before{content:"-";background-color:var(--lpx-danger)}table.dataTable.row-border tbody tr{transition:background-color .2s}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td{border-top:0}table.dataTable.row-border tbody tr th,table.dataTable.row-border tbody tr td{border-top:1px solid var(--lpx-border-color);transition:background-color .2s}table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid var(--lpx-border-color)}table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:0}table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background:none;font-weight:400;color:var(--lpx-card-title-text-color)}table.dataTable.display tbody tr:hover{background-color:var(--lpx-content-bg)!important}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.display tbody tr:hover>.sorting_3{background:none;color:var(--lpx-card-title-text-color)}table.dataTable.display tbody tr:hover.selected{background-color:var(--lpx-content-bg)!important}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.display tbody tr:hover.selected>.sorting_3{background:none;color:var(--lpx-card-title-text-color)}table.dataTable.display tbody tr.odd{background-color:rgba(var(--lpx-content-bg-rgb),.35)}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.display tbody tr.odd>.sorting_3{background:none;color:var(--lpx-card-title-text-color)}table.dataTable.display tbody tr.odd.selected{background-color:rgba(var(--lpx-content-bg-rgb),.65)}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.display tbody tr.odd.selected>.sorting_3{background:none;color:var(--lpx-card-title-text-color)}table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background:none;color:var(--lpx-card-title-text-color)}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.display tbody tr.even>.sorting_3{background:none;color:var(--lpx-card-title-text-color)}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.display tbody tr.even.selected>.sorting_3{background:none;color:var(--lpx-card-title-text-color)}table.dataTable.cell-border tbody tr th,table.dataTable.cell-border tbody tr td{border-top:1px solid var(--lpx-border-color);border-right:1px solid var(--lpx-border-color)}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid var(--lpx-border-color)}table.dataTable.stripe tbody tr.odd{background-color:rgba(var(--lpx-content-bg-rgb),.35)}table.dataTable.stripe tbody tr.odd.selected{background-color:rgba(var(--lpx-content-bg-rgb),.35)}table.dataTable.hover tbody tr:hover{background-color:rgba(var(--lpx-content-bg-rgb),.35)}table.dataTable.hover tbody tr:hover.selected{background-color:var(--lpx-content-bg)}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3{background-color:var(--lpx-card-bg)}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:var(--lpx-content-bg)}table.dataTable.order-column.stripe tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:rgba(var(--lpx-content-bg-rgb),.35)}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:rgba(var(--lpx-content-bg-rgb),.5)}table.dataTable.order-column.stripe tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:var(--lpx-card-bg)}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:rgba(var(--lpx-content-bg-rgb),.5)}table.dataTable.order-column.hover tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:rgba(var(--lpx-content-bg-rgb),.35)}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:rgba(var(--lpx-content-bg-rgb),.5)}table.dataTable.dt-empty-footer{border-bottom:1px solid var(--lpx-border-color)}table.dataTable.compact thead th,table.dataTable.compact thead td,table.dataTable.compact tfoot th,table.dataTable.compact tfoot td,table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:.5rem .75rem}.dt-container{border-radius:var(--lpx-radius);background:var(--lpx-card-bg);box-shadow:var(--lpx-shadow);padding:1.5rem!important;width:100%}.dt-container .dt-length{color:var(--lpx-content-text)}.dt-container .dt-length select{background-color:var(--lpx-content-bg);border-radius:var(--lpx-radius);transition:background-color .2s,border-color .4s;border-color:var(--lpx-content-bg);padding:.375rem 3rem .375rem .75rem!important}.dt-container .dt-length select:hover,.dt-container .dt-length select:focus{border-color:var(--lpx-border-color)}.dt-container .dt-length label{font-size:.875em}.dt-container .dataTables_filter{color:var(--lpx-content-text);margin-bottom:0}.dt-container .dataTables_filter input{background-color:var(--lpx-content-bg);border-radius:var(--lpx-radius);transition:background-color .2s,border-color .4s;border-color:var(--lpx-content-bg);padding:.375rem .75rem!important}.dt-container .dataTables_filter input:hover,.dt-container .dataTables_filter input:focus{border-color:var(--lpx-border-color)}.dt-container .dt-info{clear:both;float:left;padding:.5rem 1rem!important;color:var(--lpx-content-text);opacity:.65;font-size:.875em}.dt-container .dt-paging{float:right;text-align:right;padding-top:0;color:var(--lpx-content-text)}.dt-container .dt-paging .dt-paging-button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none!important;cursor:pointer;*cursor:hand;color:var(--lpx-content-text);border:1px solid transparent;border-radius:var(--lpx-radius)}.dt-container .dt-paging .dt-paging-button:hover{color:#fff!important;border:1px solid var(--lpx-border-color);background-color:var(--lpx-card-bg)}.dt-container .dt-paging .dt-paging-button:active{outline:0;border:1px solid var(--lpx-border-color);background-color:var(--lpx-card-bg)}.dt-container .dt-paging .dt-paging-button.current{color:var(--lpx-content-text);border:1px solid var(--lpx-border-color);background-color:var(--lpx-card-bg)}.dt-container .dt-paging .dt-paging-button.current:hover{color:var(--lpx-content-text);border:1px solid var(--lpx-border-color);background-color:var(--lpx-card-bg)}.dt-container .dt-paging .dt-paging-button.disabled{cursor:default;color:#666!important;border:1px solid transparent;background:transparent;box-shadow:none}.dt-container .dt-paging .dt-paging-button.disabled:hover{cursor:default;color:#666!important;border:1px solid transparent;background:transparent;box-shadow:none}.dt-container .dt-paging .dt-paging-button.disabled:active{cursor:default;color:#666!important;border:1px solid transparent;background:transparent;box-shadow:none}.dt-container .dt-paging .ellipsis{padding:0 1em}.dt-container .dt-processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:var(--lpx-content-bg);color:var(--lpx-content-text)}.dt-container .dt-scroll{clear:both}.dt-container .dt-scroll div.dt-scroll-body{*margin-top:-1px;-webkit-overflow-scrolling:touch;min-height:285px}.dt-container .dt-scroll div.dt-scroll-body>table>thead>tr>th{vertical-align:middle}.dt-container .dt-scroll div.dt-scroll-body>table>thead>tr>th>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dt-container .dt-scroll div.dt-scroll-body>table>thead>tr>td{vertical-align:middle}.dt-container .dt-scroll div.dt-scroll-body>table>thead>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dt-container .dt-scroll div.dt-scroll-body>table>tbody>tr>th{vertical-align:middle}.dt-container .dt-scroll div.dt-scroll-body>table>tbody>tr>th>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dt-container .dt-scroll div.dt-scroll-body>table>tbody>tr>td{vertical-align:middle}.dt-container .dt-scroll div.dt-scroll-body>table>tbody>tr>td>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dt-container .dt-scroll th,.dt-container .dt-scroll td{white-space:nowrap}.dt-container:after{visibility:hidden;display:block;content:"";clear:both;height:0}.dt-container.dt-empty-footer div.dt-scroll-head table.dataTable{border-bottom:0;table-layout:fixed}.dt-container.dt-empty-footer div.dt-scroll-body{border-bottom:0!important}.dt-container.dt-empty-footer div.dt-scroll-body>table{border-bottom:0}@media screen and (max-width:767px){.dt-container .dt-info{float:none;text-align:center}.dt-container .dt-paging{float:none;text-align:center;margin-top:.5em}}@media screen and (max-width:640px){.dt-container .dt-length{float:none;text-align:center}.dt-container .dataTables_filter{float:none;text-align:center;margin-top:.5em}}.dt-scroll-body table.dataTable thead th{border:0!important;height:0!important;overflow:hidden!important}.dt-scroll-body table.dataTable thead th:after{display:none!important}.tab-content .dt-container,.card .dt-container,.modal-body .dt-container{background:none;box-shadow:none;padding:0!important}.dataTable tbody tr td div.dropdown ul.dropdown-menu li:hover{background:var(--lpx-content-bg);color:var(--lpx-card-title-text-color)}.dataTable tbody tr td div.dropdown ul.dropdown-menu li:hover a{color:var(--lpx-card-title-text-color)}.dataTable_footer{margin-top:1em!important}.dt-scroll{margin-bottom:1em!important}.lpx-theme-dark .daterangepicker{border-color:var(--lpx-border-color)!important}.lpx-theme-dark .daterangepicker:before{border-bottom-color:var(--lpx-border-color)}.lpx-theme-dark .daterangepicker:after{border-bottom-color:var(--lpx-content-bg)}.lpx-theme-dark .daterangepicker .drp-calendar{background:var(--lpx-content-bg)}.lpx-theme-dark .daterangepicker .calendar-table{border:1px solid var(--lpx-border-color);background:var(--lpx-content-bg);box-shadow:1px 0 0 var(--lpx-content-bg),-1px 0 0 var(--lpx-content-bg),0 1px 0 var(--lpx-content-bg),0 -1px 0 var(--lpx-content-bg),0 3px 13px rgba(27,27,27,.08)}.lpx-theme-dark .daterangepicker .calendar-table th,.lpx-theme-dark .daterangepicker .calendar-table td{color:var(--lpx-content-text)}.lpx-theme-dark .daterangepicker .calendar-table .next span,.lpx-theme-dark .daterangepicker .calendar-table .prev span{border-color:var(--lpx-content-text)}.lpx-theme-dark .daterangepicker .calendar-table select.monthselect,.lpx-theme-dark .daterangepicker .calendar-table select.yearselect{color:#eee;background-color:#121212;border:1px solid var(--lpx-border-color);padding:.2rem;border-radius:.3rem}.lpx-theme-dark .daterangepicker .calendar-table td.start-date,.lpx-theme-dark .daterangepicker .calendar-table td.end-date{background-color:#357ebd!important;border-color:transparent;color:#fff}.lpx-theme-dark .daterangepicker .calendar-table td.off,.lpx-theme-dark .daterangepicker .calendar-table td.off.in-range,.lpx-theme-dark .daterangepicker .calendar-table td.off.start-date,.lpx-theme-dark .daterangepicker .calendar-table td.off.end-date{background-color:transparent;color:rgba(255,255,255,.2)}.lpx-theme-dark .daterangepicker .calendar-table td.available.off:hover,.lpx-theme-dark .daterangepicker .calendar-table td.available.off.in-range:hover,.lpx-theme-dark .daterangepicker .calendar-table td.available.off.start-date:hover,.lpx-theme-dark .daterangepicker .calendar-table td.available.off.end-date:hover{color:rgba(255,255,255,.5)!important}.lpx-theme-dark .daterangepicker .calendar-table td.available:hover,.lpx-theme-dark .daterangepicker .calendar-table th.available:hover{color:var(--lpx-content-bg)!important}.lpx-theme-dark .daterangepicker .calendar-table td.available.active:hover{color:#fff!important}.lpx-theme-dark .daterangepicker .calendar-table td.in-range{color:#fff;background:#1b1b1b}.lpx-theme-dark .daterangepicker .calendar-table td.in-range.available:hover{color:#fff!important}.lpx-theme-dark .daterangepicker .calendar-time select.hourselect,.lpx-theme-dark .daterangepicker .calendar-time select.minuteselect,.lpx-theme-dark .daterangepicker .calendar-time select.secondselect,.lpx-theme-dark .daterangepicker .calendar-time select.ampmselect{background:var(--lpx-content-bg);border-color:var(--lpx-border-color)!important;color:var(--lpx-content-text)}.lpx-theme-dark .drp-buttons{border-color:var(--lpx-border-color);background:var(--lpx-content-bg)}.swal-modal{border-radius:var(--lpx-radius);box-shadow:var(--lpx-shadow);border:0;animation:none!important;transition:all .2s ease-in-out}.swal-modal .swal-footer{padding:1rem;margin-top:30px;background:var(--lpx-content-bg)}.swal-modal .swal-footer .swal-button-container{margin:0}.swal-modal .swal-footer .swal-button-container .swal-button{padding:4px 12px;margin-left:10px;color:#fff;background-color:var(--lpx-primary);border-color:var(--lpx-primary);border-radius:var(--lpx-radius)}.swal-modal .swal-footer .swal-button-container .swal-button:hover,.swal-modal .swal-footer .swal-button-container .swal-button:focus,.swal-modal .swal-footer .swal-button-container .swal-button:active,.swal-modal .swal-footer .swal-button-container .swal-button:not(:disabled):not(.disabled):active{color:#fff;background-color:rgba(var(--lpx-content-text-rgb),.1);border-color:rgba(var(--lpx-content-text-rgb),.1);box-shadow:none}.swal-modal .swal-title{font-size:18px;color:var(--lpx-content-text);word-break:break-word}.swal-modal .swal-text{font-size:14px;color:var(--lpx-content-text);word-break:break-word}.swal-modal .swal-icon{transform:scale(.6);margin-bottom:-5px}.swal-overlay{background:rgba(var(--lpx-content-text-rgb),.1)}.datepicker table td{width:40px;height:40px;background:var(--lpx-card-bg);border-radius:var(--lpx-radius);font-size:.925em;border:0}.datepicker table td:hover{background:var(--lpx-border-color)!important}.datepicker table td.active,.datepicker table td.selected{background:var(--lpx-brand)!important;color:var(--lpx-brand-text)!important}.datepicker table td.active:hover,.datepicker table td.selected:hover{background:var(--lpx-brand)!important}.datepicker table td.range{background:var(--lpx-border-color)!important;color:var(--lpx-content-text)!important}.datepicker table td.range:hover{background:var(--lpx-border-color)!important}.datepicker table th{width:40px;height:40px;border-radius:var(--lpx-radius);border:0;font-size:.95em}.lpx-theme-dark .daterangepicker{border-color:var(--lpx-border-color)!important}.lpx-theme-dark .daterangepicker:before{border-bottom-color:var(--lpx-border-color)}.lpx-theme-dark .daterangepicker:after{border-bottom-color:var(--lpx-content-bg)}.lpx-theme-dark .daterangepicker .drp-calendar{background:var(--lpx-content-bg)}.lpx-theme-dark .daterangepicker .calendar-table{border:1px solid var(--lpx-border-color);background:var(--lpx-content-bg);box-shadow:1px 0 0 var(--lpx-content-bg),-1px 0 0 var(--lpx-content-bg),0 1px 0 var(--lpx-content-bg),0 -1px 0 var(--lpx-content-bg),0 3px 13px rgba(27,27,27,.08)}.lpx-theme-dark .daterangepicker .calendar-table th,.lpx-theme-dark .daterangepicker .calendar-table td{color:var(--lpx-content-text)}.lpx-theme-dark .daterangepicker .calendar-table .next span,.lpx-theme-dark .daterangepicker .calendar-table .prev span{border-color:var(--lpx-content-text)}.lpx-theme-dark .daterangepicker .calendar-table select.monthselect,.lpx-theme-dark .daterangepicker .calendar-table select.yearselect{color:#eee;background-color:#121212;border:1px solid var(--lpx-border-color);padding:.2rem;border-radius:.3rem}.lpx-theme-dark .daterangepicker .calendar-table td.start-date,.lpx-theme-dark .daterangepicker .calendar-table td.end-date{background-color:#357ebd!important;border-color:transparent;color:#fff}.lpx-theme-dark .daterangepicker .calendar-table td.off,.lpx-theme-dark .daterangepicker .calendar-table td.off.in-range,.lpx-theme-dark .daterangepicker .calendar-table td.off.start-date,.lpx-theme-dark .daterangepicker .calendar-table td.off.end-date{background-color:transparent;color:rgba(255,255,255,.2)}.lpx-theme-dark .daterangepicker .calendar-table td.available.off:hover,.lpx-theme-dark .daterangepicker .calendar-table td.available.off.in-range:hover,.lpx-theme-dark .daterangepicker .calendar-table td.available.off.start-date:hover,.lpx-theme-dark .daterangepicker .calendar-table td.available.off.end-date:hover{color:rgba(255,255,255,.5)!important}.lpx-theme-dark .daterangepicker .calendar-table td.available:hover,.lpx-theme-dark .daterangepicker .calendar-table th.available:hover{color:var(--lpx-content-bg)!important}.lpx-theme-dark .daterangepicker .calendar-table td.available.active:hover{color:#fff!important}.lpx-theme-dark .daterangepicker .calendar-table td.in-range{color:#fff;background:#1b1b1b}.lpx-theme-dark .daterangepicker .calendar-table td.in-range.available:hover{color:#fff!important}.lpx-theme-dark .daterangepicker .calendar-time select.hourselect,.lpx-theme-dark .daterangepicker .calendar-time select.minuteselect,.lpx-theme-dark .daterangepicker .calendar-time select.secondselect,.lpx-theme-dark .daterangepicker .calendar-time select.ampmselect{background:var(--lpx-content-bg);border-color:var(--lpx-border-color)!important;color:var(--lpx-content-text)}.lpx-theme-dark .drp-buttons{border-color:var(--lpx-border-color);background:var(--lpx-content-bg)}.swal2-popup{border-radius:var(--lpx-radius)!important;background:var(--lpx-card-bg)!important;color:var(--lpx-content-text)!important}.swal2-popup .swal2-title{color:var(--lpx-card-title-text-color)}.swal2-popup .swal2-styled{border-radius:var(--lpx-radius)!important}#toast-container>div{opacity:.95!important}#toast-container .toast{border-radius:var(--lpx-radius);box-shadow:var(--lpx-shadow);color:var(--lpx-content-text)}#toast-container .toast:hover{box-shadow:var(--lpx-shadow)}#toast-container .toast.toast-success{background-color:var(--lpx-success)}#toast-container .toast.toast-info{background-color:var(--lpx-info)}#toast-container .toast.toast-error{background-color:var(--lpx-danger)}#toast-container .toast.toast-warning{background-color:var(--lpx-warning)}#toast-container .toast .toast-title{color:#fff;font-size:1rem}#toast-container .toast .toast-message{color:rgba(255,255,255,.9);font-size:.875rem}#toast-container .toast .toast-message a,#toast-container .toast .toast-message a:hover{color:#fff;text-decoration:underline;font-weight:bold}#toast-container .toast .toast-message .btn{background:var(--lpx-light);border-color:var(--lpx-light);color:var(--lpx-dark);padding:.5rem 1rem;margin-top:.5rem!important;font-size:.875rem}.CodeMirror{background:var(--lpx-light)!important;color:var(--lpx-dark)!important}.CodeMirror .CodeMirror-gutters{border-color:var(--lpx-border-color)!important;background-color:var(--lpx-card-bg)!important}.toastui-editor-defaultUI{border-color:var(--lpx-border-color)!important}.toastui-editor-defaultUI .toastui-editor-md-tab-container{background:rgba(var(--lpx-light-rgb),.3)!important;border-bottom:1px solid var(--lpx-border-color)!important}.toastui-editor-defaultUI .toastui-editor-md-tab-container .tab-item{color:rgba(var(--lpx-dark-rgb),.5)!important;border-color:var(--lpx-border-color)!important;background:var(--lpx-card-bg)!important;border:1px solid #dadde6}.toastui-editor-defaultUI .toastui-editor-md-tab-container .tab-item.active{color:var(--lpx-dark)!important}.toastui-editor-defaultUI .toastui-editor-defaultUI-toolbar{background-color:rgba(var(--lpx-light-rgb),.3)!important;border-bottom-color:var(--lpx-border-color)}.toastui-editor-defaultUI .toastui-editor-defaultUI-toolbar button{border-color:var(--lpx-border-color)}.toastui-editor-defaultUI .toastui-editor-main{background-color:var(--lpx-card-bg)!important}.toastui-editor-defaultUI .toastui-editor-main .ProseMirror{color:var(--lpx-dark)!important}.toastui-editor-defaultUI .toastui-editor-mode-switch{border-color:var(--lpx-border-color)!important;background-color:rgba(var(--lpx-light-rgb),.3)!important}.toastui-editor-defaultUI .toastui-editor-mode-switch .tab-item{background:gba(var(--lpx-light-rgb),.3)!important;color:rgba(var(--lpx-dark-rgb),.5)!important;border-color:var(--lpx-border-color)!important}.toastui-editor-defaultUI .toastui-editor-mode-switch .tab-item.active{color:var(--lpx-dark)!important}.toastui-editor-defaultUI .toastui-editor-ww-container{background-color:var(--lpx-card-bg)!important}.vakata-context{background:var(--lpx-card-bg)!important;color:var(--lpx-dark)!important;border-color:rgba(var(--lpx-dark-rgb),.2)!important;box-shadow:none!important}.vakata-context li.vakata-context-hover a{background-color:var(--lpx-light)!important;box-shadow:0 0 2px rgba(var(--lpx-dark-rgb),.5)!important}.vakata-context li>a{color:var(--lpx-dark)!important;text-shadow:none!important}.vakata-context li>a:hover{background-color:var(--lpx-light)!important;box-shadow:0 0 2px rgba(var(--lpx-dark-rgb),.5)!important}.vakata-context li>a .vakata-contextmenu-sep{background:rgba(var(--lpx-dark-rgb),.2)!important;border-left:0!important}.carousel .carousel-caption h5{font-size:2.5em;color:var(--lpx-card-title-text-color)}.carousel .carousel-caption p{font-size:1.25em;color:var(--lpx-content-text)}.carousel .carousel-indicators [data-bs-target]{background-color:var(--lpx-card-title-text-color)}.carousel .carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23062a44'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel .carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23062a44'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.lpx-theme-dark .carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23eee'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.lpx-theme-dark .carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23eee'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}body{scrollbar-color:#c1ccd5 #f7fafb}body.lpx-theme-dark{scrollbar-color:#5a5f68 #111314}.uppy-Dashboard-innerWrap{background-color:var(--lpx-card-bg)!important;color:var(--lpx-card-title-text-color)!important}.uppy-Dashboard-AddFiles-title{color:var(--lpx-card-title-text-color)!important}.uppy-Dashboard-AddFilesPanel{background:var(--lpx-card-bg)!important}.uppy-Dashboard-AddFiles{background:var(--lpx-card-bg)!important}.uppy-StatusBar-actions{background-color:var(--lpx-card-bg)!important;color:var(--lpx-card-title-text-color)!important}.uppy-DashboardContent-bar{background-color:var(--lpx-card-bg)!important;color:var(--lpx-card-title-text-color)!important}.ps{overflow:hidden!important;overflow-anchor:none;-ms-overflow-style:none;touch-action:auto;-ms-touch-action:auto}.ps__rail-x{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;height:15px;bottom:0;position:absolute}.ps__rail-y{display:none;opacity:0;transition:background-color .2s linear,opacity .2s linear;-webkit-transition:background-color .2s linear,opacity .2s linear;width:15px;right:0;position:absolute}.ps--active-x>.ps__rail-x,.ps--active-y>.ps__rail-y{display:block;background-color:transparent}.ps:hover>.ps__rail-x,.ps:hover>.ps__rail-y,.ps--focus>.ps__rail-x,.ps--focus>.ps__rail-y,.ps--scrolling-x>.ps__rail-x,.ps--scrolling-y>.ps__rail-y{opacity:.6}.ps .ps__rail-x:hover,.ps .ps__rail-y:hover,.ps .ps__rail-x:focus,.ps .ps__rail-y:focus,.ps .ps__rail-x.ps--clicking,.ps .ps__rail-y.ps--clicking{background-color:#eee;opacity:.9}.ps__thumb-x{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,height .2s ease-in-out;-webkit-transition:background-color .2s linear,height .2s ease-in-out;height:6px;bottom:2px;position:absolute}.ps__thumb-y{background-color:#aaa;border-radius:6px;transition:background-color .2s linear,width .2s ease-in-out;-webkit-transition:background-color .2s linear,width .2s ease-in-out;width:6px;right:2px;position:absolute}.ps__rail-x:hover>.ps__thumb-x,.ps__rail-x:focus>.ps__thumb-x,.ps__rail-x.ps--clicking .ps__thumb-x{background-color:#999;height:11px}.ps__rail-y:hover>.ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y.ps--clicking .ps__thumb-y{background-color:#999;width:11px}@supports(-ms-overflow-style:none){.ps{overflow:auto!important}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ps{overflow:auto!important}}.ps__rail-y:hover>.ps__thumb-y,.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y.ps--clicking .ps__thumb-y{background-color:rgba(var(--lpx-navbar-text-color-rgb),.75)}.ps__thumb-y{background-color:rgba(var(--lpx-navbar-text-color-rgb),.5)}.ps .ps__rail-x:hover,.ps .ps__rail-y:hover,.ps .ps__rail-x:focus,.ps .ps__rail-y:focus,.ps .ps__rail-x.ps--clicking,.ps .ps__rail-y.ps--clicking{background-color:var(--lpx-navbar-color)}.ps__rail-y{left:auto!important}.lpx-scroll-container.ps>.ps__rail-x,.lpx-scroll-container.ps>.ps__rail-y,.lpx-scroll-container.ps:hover>.ps__rail-x,.lpx-scroll-container.ps:hover>.ps__rail-y,.lpx-scroll-container.ps--focus>.ps__rail-x,.lpx-scroll-container.ps--focus>.ps__rail-y,.lpx-scroll-container.ps--scrolling-x>.ps__rail-x,.lpx-scroll-container.ps--scrolling-x>.ps__rail-y,.lpx-scroll-container.ps--scrolling-y>.ps__rail-x,.lpx-scroll-container.ps--scrolling-y>.ps__rail-y{opacity:.9!important;z-index:1022}.select2{width:100%!important}.select2.select2-container--open .select2-selection{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='1'%20width%3D%22150%22%20height%3D%22150%22%20fill%3D%22currentColor%22%20class%3D%22bi%20bi-chevron-up%22%20viewBox%3D%220%200%2016%2016%22%3E%0A%20%20%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M7.646%204.646a.5.5%200%200%201%20.708%200l6%206a.5.5%200%200%201-.708.708L8%205.707l-5.646%205.647a.5.5%200%200%201-.708-.708l6-6z%22%2F%3E%0A%3C%2Fsvg%3E")}.select2 .select2-selection{background-color:var(--lpx-content-bg);border-color:var(--lpx-content-bg);border-radius:var(--lpx-radius);height:46px!important;color:var(--lpx-content-text)!important;z-index:1056;padding:.675rem 3.75rem .675rem 1.25rem!important;line-height:1.5;font-size:.875rem;font-weight:500;background-repeat:no-repeat;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1.25rem center;background-size:16px 12px}.select2 .select2-selection .select2-selection__arrow{display:none}.select2 .select2-selection .select2-selection__rendered{display:inline-block!important;padding-left:0!important}.select2 .select2-selection .select2-selection__rendered .select2-selection__choice{display:inline-block;margin-right:10px;padding-right:6px}.select2 .select2-selection .select2-selection__rendered button.select2-selection__choice__remove{border:0;background-color:transparent}.select2 .select2-selection span.select2-search.select2-search--inline{display:inline-block}.select2 .select2-selection span.select2-search.select2-search--inline .select2-search__field{margin-top:0!important;height:20px!important}.select2 .select2-selection span.select2-search.select2-search--inline .select2-search__field::-webkit-input-placeholder{color:var(--lpx-content-text)!important}.select2 .select2-selection__clear{position:absolute;right:48px}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:inherit!important}.select2-selection--single .select2-selection__clear{position:absolute!important}.select2-search__field{outline:0!important;background-color:transparent!important}.select2-dropdown{padding:1rem 0!important;box-shadow:var(--lpx-shadow)!important;z-index:1056;color:var(--lpx-content-text)!important;background-color:var(--lpx-content-bg)!important;border-radius:var(--lpx-radius)!important;box-sizing:border-box;border:1px solid var(--lpx-border-color)!important}.select2-dropdown .select2-search--dropdown{padding:4px 15px!important}.select2-dropdown .select2-search--dropdown .select2-search__field{border-radius:var(--lpx-radius)!important;border:1px solid var(--lpx-border-color)!important;background-color:var(--lpx-card-bg)!important;padding:10px 16px!important;color:var(--lpx-content-text)!important;margin-bottom:.75rem}.select2-results .select2-results__options .select2-results__option{padding:8px 18px!important}.select2-results .select2-results__options .select2-results__option.select2-results__option--disabled{color:#999}.select2-results .select2-results__options .select2-results__option.select2-results__option--highlighted{background-color:rgba(var(--lpx-brand-rgb),.1)!important;color:var(--lpx-brand)!important}.input-group .input-group-text{padding:.4rem .9rem!important;font-size:.875rem;color:var(--lpx-content-text)!important;background-color:var(--lpx-card-bg)!important;border-radius:.475rem}.input-group .select2-selection--single{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-left:0!important}.input-group.multiple .select2-selection{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-top-left-radius:var(--lpx-radius)!important;border-bottom-left-radius:var(--lpx-radius)!important}body.lpx-theme-dark .input-group .input-group-text{background-color:var(--lpx-card-bg)!important}.swal2-modal{width:542px;padding:32px;background-color:var(--lpx-card-bg)}.swal2-modal .swal2-icon{margin:0 auto 16px auto}.swal2-modal .swal2-icon.swal2-success{border-color:var(--lpx-success);color:var(--lpx-success)}.swal2-modal .swal2-icon.swal2-error{border-color:rgba(var(--lpx-brand-rgb),.3);color:rgba(var(--lpx-brand-rgb),.3)}.swal2-modal .swal2-icon.swal2-warning{border-color:rgba(var(--lpx-warning-rgb),.3);color:var(--lpx-warning)}.swal2-modal .swal2-icon.swal2-question{border-color:rgba(128,129,145,.3);color:#808191}.swal2-modal .swal2-icon.swal2-info{border-color:rgba(var(--lpx-primary-rgb),.3);color:var(--lpx-primary)}.swal2-modal div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{background-color:var(--lpx-success)}.swal2-modal div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{background-color:var(--lpx-brand)}.swal2-modal .swal2-title{color:var(--lpx-card-title-text-color);font-weight:500;font-size:32px;padding:0 0 8px 0;line-height:51px}.swal2-modal .swal2-html-container{color:var(--lpx-card-title-text-color);font-size:16px;padding:0;line-height:26px}.swal2-modal .swal2-image{margin:0 auto 32px auto;border-radius:12px}.swal2-modal .swal2-range{margin:1em 0 3px}.swal2-modal .swal2-range input{width:90%}.swal2-modal .swal2-range output{width:10%}.swal2-modal .swal2-actions{flex-direction:row-reverse;margin:24px 0 0 0}.swal2-modal button.swal2-confirm{font-size:16px;padding:11px 34px;background-color:var(--lpx-primary)}.swal2-modal button.swal2-deny{color:var(--lpx-primary);background-color:var(--lpx-card-bg);border:1px solid var(--lpx-primary)}.swal2-modal button.swal2-deny:hover{background-color:var(--lpx-card-bg);background-image:none!important}.swal2-modal button.swal2-cancel{color:var(--lpx-primary);background-color:var(--lpx-card-bg);border:0!important;text-decoration:underline}.dropzone{min-height:auto!important;text-align:center;border:1px dashed var(--lpx-primary)!important;background-color:rgba(var(--lpx-primary-rgb),.03)!important;border-radius:.475rem!important}.dropzone .dz-message{display:flex;align-items:center;margin:0!important}.dropzone .dz-preview{margin:0;border-radius:15px}.dropzone .dz-preview .dz-image{border-radius:15px}.dropzone .dz-remove{position:absolute;z-index:25;top:-10px;right:-10px;height:25px;width:25px;border-radius:100%;text-indent:-9999px;white-space:nowrap;background-size:50%;background-color:var(--lpx-text-white)!important;background-repeat:no-repeat;background-position:center;background-color:transparent;background-image:url("../Themes/assets/img/png/icon-close.png");box-shadow:0 .1rem 1rem .25rem rgba(0,0,0,.05)}.apexcharts-yaxistooltip,.apexcharts-xaxistooltip,.apexcharts-tooltip,.apexcharts-tooltip-title{color:var(--lpx-content-text)!important;border-radius:var(--lpx-radius)!important;background:var(--lpx-content-bg)!important;border:1px solid var(--lpx-border-color)!important;box-shadow:none!important}#pieChart .apexcharts-tooltip-y-group{color:var(--lpx-text-white)}@media only screen and (max-width:991px){#lpx-calendar .fc-header-toolbar{flex-direction:column}#lpx-calendar .fc-header-toolbar .fc-toolbar-title{margin:20px 0}}#lpx-calendar .fc-toolbar-chunk:nth-child(2) div{display:flex;align-items:center}#lpx-calendar .fc-toolbar-chunk:nth-child(2) div button{background-color:transparent;border-color:transparent;color:var(--lpx-dark);box-shadow:none}#lpx-calendar .fc-toolbar-chunk .fc-button-group{background-color:var(--lpx-content-bg);border-radius:var(--lpx-radius)}#lpx-calendar .fc-toolbar-chunk .fc-button-group button.fc-timeGridWeek-button,#lpx-calendar .fc-toolbar-chunk .fc-button-group button.fc-timeGridDay-button,#lpx-calendar .fc-toolbar-chunk .fc-button-group button.fc-dayGridMonth-button{border-radius:var(--lpx-radius);color:var(--lpx-dark);background-color:var(--lpx-content-bg);border-color:var(--lpx-content-bg);padding:11px 17px;box-shadow:none}#lpx-calendar .fc-toolbar-chunk .fc-button-group button.fc-timeGridWeek-button.fc-button-active,#lpx-calendar .fc-toolbar-chunk .fc-button-group button.fc-timeGridDay-button.fc-button-active,#lpx-calendar .fc-toolbar-chunk .fc-button-group button.fc-dayGridMonth-button.fc-button-active{background:rgba(var(--lpx-content-text-rgb),.1)}#lpx-calendar .fc-toolbar-chunk .fc-addEvent-button{background-color:var(--lpx-brand);border-color:var(--lpx-brand);box-shadow:none;padding:5px 12px}#lpx-calendar table[role=grid]{border:0}#lpx-calendar table[role=grid] a{color:var(--lpx-dark);text-decoration:none}#lpx-calendar table[role=grid] thead{background-color:var(--lpx-content-bg)}#lpx-calendar table[role=grid] thead th[role=columnheader]{border-color:var(--lpx-content-bg)}#lpx-calendar table[role=grid] thead th[role=presentation]{border-color:var(--lpx-content-bg);border-top-right-radius:10px;border-top-left-radius:10px;padding:7px 0;overflow:hidden}#lpx-calendar table[role=grid] thead .fc-scrollgrid-sync-inner{padding:10px 0}#lpx-calendar table[role=grid] tbody td{border:1px solid var(--lpx-content-bg)}#lpx-calendar table[role=grid] tbody .fc-scroller{border-left:1px solid var(--lpx-content-bg)}#lpx-calendar table[role=grid] tbody .fc-h-event .fc-event-title-container{padding:2px 10px}#lpx-calendar table[role=grid] tbody .fc-daygrid-day-number{padding:10px}.editor-toolbar{border-color:var(--lpx-border-color);background-color:var(--lpx-content-bg);color:var(--lpx-content-text);border-top-left-radius:var(--lpx-radius);border-top-right-radius:var(--lpx-radius)}.editor-toolbar button{color:var(--lpx-content-text);background-color:var(--lpx-content-bg)}.editor-toolbar button:hover{border-color:var(--lpx-border-color);background-color:var(--lpx-card-bg);color:var(--lpx-card-title-text-color)}.editor-toolbar button.active{border-color:var(--lpx-border-color);background-color:var(--lpx-card-bg);color:var(--lpx-card-title-text-color)}.editor-toolbar i.separator{border-color:var(--lpx-border-color)!important;border-width:0 1px 0 0!important}.editor-statusbar{color:var(--lpx-content-text)}.EasyMDEContainer .CodeMirror{border-color:var(--lpx-border-color)!important;border-bottom-left-radius:var(--lpx-radius);border-bottom-right-radius:var(--lpx-radius);color:var(--lpx-card-title-text-color);background-color:var(--lpx-card-bg)}.CodeMirror-gutters{border-color:var(--lpx-border-color);background-color:var(--lpx-card-bg)}.CodeMirror>*{caret-color:var(--lpx-content-text)}.flex-center{justify-content:center;align-items:center;display:flex}html,body{min-height:100vh;background-color:var(--lpx-navbar-color)}::-ms-reveal{display:none}.lpx-breadcrumb li,.lpx-nav-menu li{list-style-type:none}.bg-brand{background:var(--lpx-brand)!important}.bg-brand-gradient{background:linear-gradient(120deg,var(--lpx-brand) 0%,var(--lpx-primary) 100%)!important}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus,select:-webkit-autofill,select:-webkit-autofill:hover,select:-webkit-autofill:focus{border:1px solid var(--lpx-border-color);-webkit-text-fill-color:var(--lpx-info);-webkit-box-shadow:0 0 0 1000px var(--lpx-content-bg) inset;transition:background-color 5000s ease-in-out 0s}#lpx-wrapper{margin:0 auto;max-width:100%!important;position:relative;min-height:100vh}#lpx-wrapper.full .lpx-content{max-width:100%!important}#lpx-wrapper.fixed .lpx-content{max-width:1280px!important}.lpx-content-container{min-height:100vh;background-color:var(--lpx-content-bg);box-shadow:var(--lpx-shadow)}@media only screen and (max-width:767px){.lpx-content-container{margin:0;max-width:100%}}.lpx-content-container .lpx-content{padding:1.25em 2em 3em;margin:0 auto}@media only screen and (max-width:767px){.lpx-content-container .lpx-content{padding:3em 1.14em 4em 1.14em}}.lpx-ellipsis-inline{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.lpx-heading{font-family:"Inter",sans-serif;font-weight:400}.modal-header,.alert-heading,.lpx-nav-menu .menu-item .menu-item-text,.lpx-topbar,.lpx-mobile-navbar,.lpx-mobile-menu{font-family:"Inter",sans-serif;font-weight:400}.lpx-main-title{font-size:1.25rem!important;font-weight:500;color:var(--lpx-card-title-text-color);margin-bottom:.875rem;margin-top:.875rem}@media only screen and (max-width:767px){.lpx-main-title{margin-bottom:0;margin-top:0}}.login-section-wrapper{height:100vh}.lpx-brand-logo.lpx-login-logo{background-size:auto 3.6em;height:3.6em;background-position:center}.lpx-login-nav{color:var(--lpx-navbar-text-color)}.lpx-login-nav .lpx-brand-logo.lpx-login-logo{background-size:auto 3em;height:3em}.lpx-login-nav .text-dark{color:var(--lpx-navbar-active-text-color)!important}.lpx-login-nav h1,.lpx-login-nav h2,.lpx-login-nav h3,.lpx-login-nav h4,.lpx-login-nav h5,.lpx-login-nav h6,.lpx-login-nav p{color:var(--lpx-navbar-active-text-color)}.lpx-login-area{min-height:100vh;position:relative}.lpx-login-area .lpx-login-bg{position:absolute;top:0;left:0;width:100%;background-position:center;background-repeat:no-repeat;background-size:cover;min-height:100vh}.lpx-login-area .lpx-login-bg.lpx-login-bg-half{background-position:top;height:36%;min-height:36%;border-bottom-left-radius:30px;border-bottom-right-radius:30px}@media screen and (max-width:992px){.lpx-login-area .lpx-login-bg.lpx-login-bg-half{border-bottom-left-radius:20px;border-bottom-right-radius:20px}}.lpx-login-area .lpx-language-selection{z-index:2;position:absolute;right:35px;top:35px}.lpx-layout-login{background-color:rgba(var(--lpx-navbar-color-rgb),.7);backdrop-filter:blur(10px)}.lpx-login-title{font-size:1.75em!important}.lpx-login-area{background-color:var(--lpx-navbar-color)}.lpx-theme-light .lpx-login-bg{background-image:var(--lpx-theme-light-bg)}.lpx-theme-dark .lpx-login-bg{background-image:var(--lpx-theme-dark-bg)}.lpx-theme-dim .lpx-login-bg{background-image:var(--lpx-theme-dim-bg)}@media screen and (min-width:767px){.login-h-100{min-height:100vh!important}}.show-pass-icon{position:absolute;right:22px;top:20px;font-size:18px;line-height:18px;cursor:pointer}.caps-lock-icon{position:absolute;right:54px;top:20px;font-size:16px;line-height:18px}.lpx-brand-logo.lpx-login-big-logo{display:none!important}.lpx-login-form-max-width{width:600px!important;max-width:100%!important}.lpx-login-form-max-width .p-lg-5{padding:2.25rem!important}.lpx-login-image-area.d-lg-block{display:none!important}.lpx-login-text-area{margin:0 auto}.lpx-login-text-area .lpx-brand-logo{background-size:auto 3.6em;height:3.6em;background-position:center}.lpx-sidebar{background-color:var(--lpx-navbar-color);color:var(--lpx-navbar-text-color);display:flex;flex-direction:column;align-items:center;position:relative;height:100%}.lpx-sidebar .lpx-logo-container{position:fixed;width:280px;z-index:100;background-color:var(--lpx-navbar-color);top:0}.lpx-sidebar .lpx-logo-container .menu-collapse-icon{position:absolute;right:30px;top:50%;transform:translateY(-50%);font-size:1.5em;cursor:pointer}.lpx-sidebar a{text-decoration:none}.lpx-sidebar-container{min-width:280px;z-index:1000;position:fixed;top:0;height:100vh}.lpx-sidebar-container .lpx-sidebar{min-height:100vh}.lpx-sidebar-container .lpx-sidebar .lpx-nav{min-width:280px;height:100vh}.lpx-sidebar-container .lpx-sidebar .lpx-nav .lpx-nav-menu{background-color:var(--lpx-navbar-color);max-width:280px}.hover-trigger .lpx-sidebar-container:not(:hover) .hidden-in-hover-trigger{display:none}.hover-trigger .lpx-sidebar-container:not(:hover) .lpx-logo-container{width:72px}.hover-trigger .lpx-sidebar-container:not(:hover) .lpx-brand-logo{background-image:var(--lpx-logo-icon)}.hover-trigger .lpx-sidebar-container{min-width:72px}.hover-trigger .lpx-sidebar-container .lpx-sidebar .lpx-nav{min-width:72px}.hover-trigger .lpx-sidebar-container:hover{min-width:72px}.hover-trigger .lpx-sidebar-container:hover .lpx-sidebar .lpx-nav{min-width:280px}@media only screen and (min-width:768px) and (max-width:1199px){.lpx-sidebar-container:not(:hover) .hidden-in-hover-trigger{display:none}.lpx-sidebar-container:not(:hover) .lpx-logo-container{width:72px}.lpx-sidebar-container:not(:hover) .lpx-brand-logo{background-image:var(--lpx-logo-icon)}.lpx-sidebar-container{min-width:72px}.lpx-sidebar-container .lpx-sidebar .lpx-nav{min-width:72px}.lpx-sidebar-container:hover{min-width:72px}.lpx-sidebar-container:hover .lpx-sidebar .lpx-nav{min-width:280px}}@media only screen and (min-width:1200px){.lpx-content-container{margin-left:280px}}@media only screen and (min-width:768px) and (max-width:1199px){.lpx-content-container{margin-left:72px}}#lpx-wrapper.hover-trigger .lpx-sidebar-container:not(:hover){min-width:72px;max-width:72px}#lpx-wrapper.hover-trigger .lpx-sidebar-container:not(:hover) .lpx-nav{min-width:72px}@media only screen and (min-width:1200px){#lpx-wrapper.hover-trigger .lpx-content-container{margin-left:72px}}.lpx-content{min-height:calc(100vh - 64px)}.lpx-nav{padding-top:72px}.lpx-topbar-content{display:flex;align-items:center;margin-right:.4rem;gap:.7rem;font-size:.875em}.lpx-topbar-content .lpx-avatar .lpx-avatar-img,.lpx-topbar-content .lpx-avatar .lpx-avatar-icon{height:24px;width:24px}@media only screen and (min-width:1200px){.lpx-footbar-container{left:280px}}@media only screen and (min-width:768px) and (max-width:1199px){.lpx-footbar-container{left:72px!important}}@media only screen and (min-width:1200px){#lpx-wrapper.hover-trigger .lpx-footbar-container{left:72px}}.lpx-avatar{justify-content:center;align-items:center;display:flex}.lpx-avatar .lpx-avatar-img,.lpx-avatar .lpx-avatar-icon{height:36px;width:36px;border-radius:36px;transition:border-radius .3s ease}.lpx-avatar .lpx-avatar-img:hover,.lpx-avatar .lpx-avatar-icon:hover{border-radius:10px}.lpx-avatar .lpx-avatar-icon{justify-content:center;align-items:center;display:flex;font-size:20px;color:var(--lpx-navbar-text-color);background-color:var(--lpx-content-bg);height:24px;margin:6px auto 10px;padding:0}.lpx-avatar .lpx-avatar-icon .lpx-icon{display:flex}.lpx-avatar-img-md{height:72px;width:72px;border-radius:72px}.lpx-avatar-img-lg{height:144px;width:144px;border-radius:144px}.lpx-breadcrumb-wrapper{width:100%;justify-content:space-between;margin:0 auto}.lpx-breadcrumb-container{height:30px}.lpx-breadcrumb{display:flex;padding:0;margin:0;border-radius:var(--lpx-radius)}.lpx-breadcrumb-item{color:var(--lpx-breadcrumb-text-color);cursor:pointer;position:relative;font-size:.725rem;padding:0 10px;margin:0;transition:background-color .3s ease;line-height:30px;white-space:nowrap}.lpx-breadcrumb-item a{color:unset;text-decoration:none}.lpx-breadcrumb-item a:hover{color:var(--lpx-breadcrumb-active-text-color)}.lpx-breadcrumb-item .lpx-breadcrumb-item-icon,.lpx-breadcrumb-item .lpx-caret{position:relative;margin:0 2px;font-size:1em}.lpx-breadcrumb-item .lpx-breadcrumb-item-icon,.lpx-breadcrumb-item .lpx-breadcrumb-item-text{transition:color .2s ease}.lpx-breadcrumb-item:hover{color:var(--lpx-breadcrumb-active-text-color)}.lpx-breadcrumb-item:hover .lpx-breadcrumb-item-icon,.lpx-breadcrumb-item:hover .lpx-caret{color:var(--lpx-brand)}.lpx-breadcrumb-item.expanded .lpx-breadcrumb-dropdown{visibility:visible;opacity:1}.lpx-breadcrumb-dropdown{position:absolute;left:0;top:100%;visibility:hidden;opacity:0;background-color:var(--lpx-card-bg);width:220px;padding:0;box-shadow:var(--lpx-shadow);transition:visibility 0s,opacity .3s linear;border:1px solid rgba(var(--lpx-content-text-rgb),.08);border-radius:0 0 var(--lpx-radius) var(--lpx-radius);max-height:50vh;overflow-y:auto}.lpx-breadcrumb-dropdown-item{position:relative;padding:8px 16px 8px 36px;line-height:1em}.lpx-breadcrumb-dropdown-item::before{content:"";position:absolute;width:4px;height:10px;background-color:var(--lpx-content-bg);border-radius:var(--lpx-radius);left:22px;top:9px;transition:background-color .2s ease}.lpx-breadcrumb-dropdown-item:hover::before,.lpx-breadcrumb-dropdown-item.active::before{background-color:var(--lpx-brand)}.lpx-breadcrumb-dropdown-container{padding:8px 0}.lpx-breadcrumb-separator{font-weight:bold;line-height:30px;width:1px;overflow:hidden;background:var(--lpx-border-color)}.lpx-breadcrumb-separator:last-child{display:none}.lpx-favorite .bi-star{color:rgba(var(--lpx-content-text-rgb),.65)}.lpx-favorite .lpx-favorite-span{font-size:.875em;color:rgba(var(--lpx-content-text-rgb),.65);display:none}.breadcrumb .breadcrumb-item+.breadcrumb-item{padding-left:0}.lpx-brand-logo{background-image:var(--lpx-logo);background-repeat:no-repeat;background-size:auto 32px;background-position:left 0;display:block;height:32px}.lpx-logo-container{padding:20px}.lpx-brand-name{background:var(--lpx-navbar-color);color:var(--lpx-navbar-active-text-color);position:absolute;left:62px;top:20px;width:160px;height:32px;font-size:18px;line-height:32px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lpx-brand-name.lpx-login-name{background:none;position:relative;top:0;left:0;width:100%;height:inherit;max-width:26rem;padding:.5rem .25rem 0 .25rem!important;text-align:center;font-size:26px;line-height:36px;font-weight:400}@media screen and (max-width:767px){.lpx-brand-name{width:auto;right:20px}}.hover-trigger .lpx-sidebar-container:not(:hover) .lpx-brand-name{display:none}@media screen and (max-width:1200px){.lpx-sidebar-container:not(:hover) .lpx-brand-name{display:none}}.lpx-header-top .lpx-logo-container{padding-left:0}.lpx-header-top .lpx-logo-container .lpx-brand-name{left:42px}:dir(rtl) .lpx-brand-name{left:0!important}.lpx-login-brand-text .lpx-brand-logo.lpx-login-logo{background-size:auto 4.8em;height:4.8em;width:4.8em;background-position:left}.lpx-timeline{position:relative}.lpx-timeline::before{content:"";position:absolute;left:75px;width:3px;top:0;bottom:0;background-color:rgba(var(--lpx-content-text-rgb),.1)}.lpx-timeline .lpx-timeline-item{display:flex;align-items:center;position:relative;margin-bottom:1.5em}.lpx-timeline .lpx-timeline-item:last-child{margin-bottom:0}.lpx-timeline .lpx-timeline-item .lpx-timeline-label{text-align:center;flex-shrink:0;position:relative;width:75px;padding-right:10px;color:var(--lpx-content-text);opacity:.5}.lpx-timeline .lpx-timeline-item .lpx-timeline-badge{border-radius:100%;justify-content:center;align-items:center;display:flex;background:var(--lpx-content-bg);border:8px solid var(--lpx-content-bg);width:15px;height:15px;margin-left:-8px;margin-right:8px;font-size:1.5em;padding:2px}.lpx-timeline .lpx-timeline-item .lpx-timeline-badge .lpx-icon{font-size:.5em}.lpx-topbar-container{flex-wrap:wrap;position:sticky;top:0;padding:0;background-color:var(--lpx-navbar-color);z-index:101;box-shadow:var(--lpx-shadow)}.lpx-topbar-container .lpx-topbar{display:flex;justify-content:space-between;margin:0 auto;background-color:var(--lpx-content-bg);border-radius:1em 1em 0 0;padding:0;border:1px solid var(--lpx-border-color)}.lpx-content-wrapper{border:1px solid var(--lpx-border-color);border-top:0}.lpx-footbar-container{flex-wrap:wrap;padding:0;background-color:var(--lpx-navbar-color);z-index:101;position:fixed;bottom:0;top:inherit;right:72px;left:280px;box-shadow:var(--lpx-shadow)}@media only screen and (max-width:767px){.lpx-footbar-container{top:auto;right:0;left:0;bottom:72px}}.lpx-footbar-container .lpx-footbar{display:flex;justify-content:space-between;margin:0 auto;background-color:var(--lpx-content-bg);border-radius:0 0 1em 1em;border:1px solid var(--lpx-border-color);font-size:.725rem}.lpx-footbar-container .lpx-footbar .lpx-footbar-solo-links{display:flex}.lpx-footbar-container .lpx-footbar .lpx-footbar-solo-links a{border-left:1px solid var(--lpx-border-color);line-height:30px;color:var(--lpx-content-text);text-decoration:none;padding:0 1rem;transition:color .2s ease}.lpx-footbar-container .lpx-footbar .lpx-footbar-solo-links a:hover{color:var(--lpx-brand)}.lpx-footbar-container .lpx-footbar .lpx-footbar-copyright{color:var(--lpx-content-text);line-height:30px;padding-left:1rem;padding-right:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lpx-footbar-container .lpx-footbar .lpx-footbar-copyright span{opacity:.8}.lpx-footbar-container .lpx-footbar .lpx-footbar-copyright a{color:var(--lpx-content-text);text-decoration:none;transition:color .2s ease}.lpx-footbar-container .lpx-footbar .lpx-footbar-copyright a:hover{color:var(--lpx-brand)}#lpx-wrapper.boxed .lpx-footbar-container{position:sticky;bottom:0}.lpx-menu-item{text-decoration:none;outline:0}.lpx-nav{color:var(--lpx-navbar-text-color)}.lpx-nav .lpx-nav-menu{padding:0 0 15px 0}.lpx-nav-menu{margin:0;padding:0}.lpx-nav-menu a{text-decoration:none}.lpx-nav-menu .outer-menu-item.filter-hidden,.lpx-nav-menu .lpx-inner-menu.collapsed{display:none}.lpx-nav-menu .lpx-menu-item-link{display:flex;width:100%;cursor:pointer;color:var(--lpx-navbar-text-color);height:36px;line-height:36px;transition:color .25s ease,background-color .3s ease;margin:1px 0;padding:0 18px;position:relative}.lpx-nav-menu .lpx-menu-item-link:hover{color:var(--lpx-navbar-active-text-color)}.lpx-nav-menu .lpx-menu-item-link:hover .lpx-menu-item-icon{color:var(--lpx-brand);opacity:1}.lpx-nav-menu .lpx-menu-item-link:hover .dd-icon{color:var(--lpx-navbar-active-text-color);opacity:1}.lpx-nav-menu .lpx-menu-item-link.selected,.lpx-nav-menu .lpx-menu-item-link.expanded{color:var(--lpx-navbar-active-text-color);background-color:var(--lpx-navbar-active-bg-color)}.lpx-nav-menu .lpx-menu-item-link.selected .lpx-menu-item-icon,.lpx-nav-menu .lpx-menu-item-link.selected .dd-icon,.lpx-nav-menu .lpx-menu-item-link.expanded .lpx-menu-item-icon,.lpx-nav-menu .lpx-menu-item-link.expanded .dd-icon{color:var(--lpx-brand);opacity:1}.lpx-nav-menu .lpx-menu-item-link .lpx-menu-item-icon .lpx-icon{text-align:center;display:inline-block;position:relative;width:36px;transition:all .25s ease;font-size:16px;opacity:.86}.lpx-nav-menu .lpx-menu-item-link .dd-icon{position:absolute;text-align:center;opacity:.5;right:24px;width:24px}.lpx-nav-menu .lpx-menu-item-link .lpx-menu-item-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:178px;font-size:1em}.lpx-nav-menu .lpx-inner-menu-item .lpx-menu-item-link{height:32px;line-height:32px;padding-left:54px;transition:background-color .5s ease,color .25s ease}.lpx-nav-menu .lpx-inner-menu-item .lpx-menu-item-link.selected,.lpx-nav-menu .lpx-inner-menu-item .lpx-menu-item-link:hover{background-color:var(--lpx-navbar-active-bg-color)}.lpx-nav-menu .lpx-inner-menu-item .lpx-menu-item-icon{margin-right:8px}.lpx-nav-menu .lpx-inner-menu-item .lpx-menu-item-icon .lpx-icon{width:16px}.lpx-nav-menu .lpx-inner-menu-item .lpx-menu-item-text{width:154px;font-size:.975em}.lpx-nav-menu .lpx-inner-menu{margin:0;padding:0}.lpx-nav-menu .lpx-inner-menu .lpx-inner-menu .lpx-menu-item-link{padding-left:78px}.lpx-nav-menu .group-menu-item{padding:.5rem 0 .5rem 1rem;font-weight:500}.lpx-menu-item{cursor:pointer;color:var(--lpx-navbar-text-color);height:36px;line-height:36px;transition:color .25s ease,background-color .3s ease}.lpx-menu-item:hover{color:var(--lpx-navbar-active-text-color)}.lpx-menu-item:hover .lpx-menu-item-icon{color:var(--lpx-brand);opacity:1}.lpx-menu-item:hover .dd-icon{color:var(--lpx-navbar-active-text-color);opacity:1}.lpx-menu-item.selected{color:var(--lpx-navbar-active-text-color);background-color:var(--lpx-navbar-active-bg-color)}.lpx-menu-item.selected .lpx-menu-item-icon,.lpx-menu-item.selected .dd-icon{color:var(--lpx-brand);opacity:1}.lpx-menu-item .dd-icon{position:absolute;text-align:center;opacity:.5;right:24px;width:24px}.lpx-inner-menu-item .lpx-menu-item-link{transition:background-color .5s ease,color .25s ease}.lpx-inner-menu-item .lpx-menu-item-link.selected,.lpx-inner-menu-item .lpx-menu-item-link:hover{background-color:var(--lpx-navbar-active-bg-color)}.lpx-favorite{display:flex;align-items:center;padding:0 1rem;cursor:pointer}.lpx-footer{border-top:1px solid var(--lpx-border-color);font-size:.725rem;color:rgba(var(--lpx-content-text-rgb),.75)}.lpx-footer a{padding:0 10px;margin:0;color:rgba(var(--lpx-content-text-rgb),.75);transition:background-color .3s ease;line-height:30px;text-decoration:none}.lpx-context-menu{z-index:5;opacity:0;visibility:hidden;position:absolute;overflow:hidden;transition:opacity .2s,visibility .2s;background-color:var(--lpx-navbar-color);border-radius:15px;box-shadow:var(--lpx-shadow);min-width:280px;border:1px solid rgba(var(--lpx-navbar-text-color-rgb),.15)}.lpx-context-menu.show{opacity:1;visibility:visible}.lpx-context-menu .lpx-nav{min-width:280px}.lpx-context-menu a{text-decoration:none}@media screen and (max-height:600px){.lpx-context-menu .lpx-nav-menu{max-height:calc(100vh - 50px);overflow:auto!important}}.lpx-context-menu--header{padding:20px 15px;border-bottom:1px solid rgba(var(--lpx-navbar-text-color-rgb),.15)}.lpx-context-menu--footer{border-top:1px solid rgba(var(--lpx-navbar-text-color-rgb),.15)}.lpx-user-ctx-info{display:flex;flex-direction:column}.lpx-context-menu--action-group:not(:last-child)::after{content:"";border-top:1px solid rgba(var(--lpx-navbar-text-color-rgb),.15);margin-top:.25em;padding-top:.25em;display:block;width:100%}.lpx-mobile-navbar{display:none;justify-content:space-between;align-items:center}@media only screen and (max-width:767px){.lpx-topbar-container{position:fixed;left:0;right:0}.lpx-mobile-navbar{display:flex;position:fixed;bottom:0;z-index:1000;height:72px;min-width:100%;background-color:var(--lpx-navbar-color);color:var(--lpx-navbar-text-color)}.lpx-sidebar-container,header,.lpx-toolbar-container{display:none}.lpx-content-container{top:0;bottom:72px;height:calc(100vh - 72px);border-radius:16px;min-width:100%;max-width:100%;min-height:auto;position:absolute;overflow:scroll}.lpx-content-container .lpx-content{padding-bottom:36px;padding-top:43px}.lpx-content-container .lpx-content-toolbar{margin-bottom:16px;align-items:center}.lpx-nav-menu .lpx-menu-item .lpx-menu-item-text{width:calc(100% - 36px)}.input-group input~button{padding:0 9px;height:34px;display:flex;align-items:center}.form-control{height:34px;padding:0 0 0 16px}}.lpx-mobile-nav-tab-container{width:100%;display:flex;align-items:center}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs{width:100%;margin:0;padding:0;display:flex;list-style:none;padding-left:0;align-items:center}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab{position:relative;text-align:center;width:50%;height:72px;padding:2px;margin:4px 2px;border-radius:var(--lpx-radius);color:var(--lpx-navbar-active-text-color)}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a{color:var(--lpx-navbar-text-color);text-decoration:none;transition:color .2s ease}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a:after{content:"";display:flex;width:40px;height:4px;background-color:#f72585;position:absolute;left:50%;bottom:0;transform:translateX(-50%);opacity:0;border-top-right-radius:5px;border-top-left-radius:5px;transition:opacity .2s ease}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a i{transition:color .2s ease}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a:hover{color:var(--lpx-navbar-active-text-color)}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a:hover:after{opacity:1}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a:hover i{color:var(--lpx-brand)}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a.lpx-mobile-menu-toggle-open{color:var(--lpx-navbar-active-text-color)}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a.lpx-mobile-menu-toggle-open:after{opacity:1}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab a.lpx-mobile-menu-toggle-open i{color:var(--lpx-brand)}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab.selected a{color:var(--lpx-brand)}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab .mobile-item-text{font-size:12px;margin-top:5px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab .menu-item-icon{font-size:24px;display:block;width:24px;height:24px;margin:6px auto 10px;padding:0}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab.menu-toggle{justify-content:center;align-items:center;display:flex}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab .lpx-avatar .lpx-avatar-img{height:24px;width:24px;margin:12px 0 5px}.lpx-mobile-nav-tab-container .lpx-mobile-nav-tabs .lpx-mobile-nav-tab .lpx-mobile-hamburger .menu-item-icon{font-size:34px;width:34px;height:34px;margin:-2px auto 10px}.lpx-mobile-menu{position:fixed;top:0;left:0;right:0;bottom:72px;z-index:999;height:calc(100vh - 72px);overflow-y:scroll;min-width:100%;background-color:var(--lpx-navbar-color);color:rgba(var(--lpx-navbar-text-color-rgb),.9);transition:opacity .3s,visibility .3s}.lpx-mobile-menu a{text-decoration:none}@media only screen and (min-width:768px){.lpx-mobile-menu{display:none}}.lpx-mobile-menu.hidden{display:none}.lpx-nav-menu{position:relative;height:auto}.lpx-nav-menu .lpx-menu-item-title{color:var(--lpx-navbar-active-text-color);padding:6px 30px;margin:1px 0;background-color:var(--lpx-navbar-active-bg-color);font-size:.765rem}.lpx-nav-menu .lpx-badge{display:inline-block;padding:.35em .65em;font-size:.785em;line-height:1;border-radius:var(--lpx-radius);background-color:var(--lpx-brand);color:var(--lpx-text-white);text-align:center;white-space:nowrap;vertical-align:baseline}.lpx-nav-menu .lpx-button-container{padding:10px 30px}.lpx-nav-menu .lpx-button-container .lpx-button{width:100%;color:var(--lpx-text-white);border:2px solid transparent;padding:.45rem 1.25rem;border-radius:var(--lpx-radius);background-color:var(--lpx-brand);cursor:pointer}.lpx-nav-menu .lpx-nav-menu-notification{padding-left:0}.lpx-nav-menu .lpx-nav-menu-notification .outer-menu-item{margin:0!important}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item{position:relative;border-bottom:1px solid rgba(var(--lpx-dark-rgb),.12)}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item .lpx-notification-item-link{display:flex;cursor:pointer;padding:10px 20px 10px 30px;transition:color .25s ease,background-color .3s ease}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item .lpx-notification-item-link .lpx-notification-user-img{width:30px;height:30px;margin-right:8px;border-radius:50%}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item .lpx-notification-item-link .lpx-notification-member-container{width:30px;height:30px;border-radius:50%;margin-right:8px;background-color:rgba(var(--lpx-brand-rgb),.2)!important;display:flex;justify-content:center;align-items:center;flex-shrink:0}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item .lpx-notification-item-link .lpx-notification-member-container .lpx-notification-member-icon{color:var(--lpx-brand)}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item .lpx-notification-item-link .lpx-notification-text{color:var(--lpx-navbar-text-color);margin-bottom:.25rem}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item .lpx-notification-item-link .lpx-notification-text .lpx-notification-text-highlight{font-weight:600}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item .lpx-notification-item-link .lpx-notification-text-small{color:var(--lpx-navbar-text-color)}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item .lpx-notification-item-link:hover{color:var(--lpx-navbar-active-text-color);background-color:var(--lpx-navbar-active-bg-color)}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item:last-child{border-bottom:0}.lpx-nav-menu .lpx-nav-menu-notification .lpx-notification-items .lpx-notification-item.unread .lpx-notification-item-link:before{content:"";position:absolute;left:17px;width:8px;height:8px;border-radius:50%;background-color:var(--lpx-brand)}@media only screen and (min-width:480px){#lpx-wrapper.boxed{width:1440px}.lpx-content-container{margin-right:72px}}.lpx-scroll-container{position:relative;height:100vh;min-height:100%}.lpx-settings{position:fixed;z-index:200;bottom:15px;min-width:72px;color:var(--lpx-navbar-text-color)}@media only screen and (max-width:767px){.lpx-settings{display:none}}.lpx-settings .setting-icon{cursor:pointer;height:36px;display:flex;align-items:center;justify-content:center}.lpx-settings .setting-icon i,.lpx-settings .setting-icon span{transition:color .25s ease}.lpx-settings .setting-icon:hover i,.lpx-settings .setting-icon:hover span,.lpx-settings .setting-icon:focus i,.lpx-settings .setting-icon:focus span{color:var(--lpx-brand)}.lpx-settings .lpx-context-menu{bottom:0;max-height:calc(100vh - 50px)}.lpx-sidebar .ps__rail-y{z-index:101}.lpx-toolbar-container{width:72px;background-color:var(--lpx-navbar-color);min-height:100vh;position:absolute;z-index:1021;top:0;right:0;bottom:0}.lpx-toolbar-container .lpx-toolbar{width:72px}.lpx-toolbar-container .lpx-settings{position:fixed;min-width:72px}.lpx-toolbar-container .lpx-context-menu{right:72px;margin:15px}.lpx-toolbar{color:var(--lpx-navbar-text-color);position:fixed;top:0;min-width:72px}.lpx-menu-item-link.active-menu-item .menu-item-badge{background:var(--lpx-brand);display:inline-block;width:18px;height:18px;color:#fff;border-radius:var(--lpx-radius);padding:0;line-height:18px;font-weight:bold;font-size:10px;position:absolute;top:0;right:10px;text-align:center}@media screen and (max-width:767px){.lpx-menu-item-link.active-menu-item .menu-item-badge{top:9px;right:32px}}.lpx-user-menu{margin:20px 0 0 0}.lpx-user-menu .lpx-menu-item-link{display:block;height:72px;color:var(--lpx-navbar-active-text-color)}.lpx-user-menu .lpx-menu-item-link .lpx-menu-item-text{text-align:center;font-size:.9em;line-height:2;width:72px!important;margin:0 -18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.lpx-user-menu .lpx-menu-item-link .menu-item-icon{line-height:20px;height:20px;display:block;margin-top:-25px;margin-bottom:0;width:100%;font-size:24px}.lpx-user-menu .menu-item:hover .menu-item-icon,.lpx-toolbar .menu-item:hover .menu-item-icon{color:var(--lpx-navbar-active-text-color)}.lpx-user-ctx-header{display:flex}.lpx-user-ctx-img{margin-right:1em}.lpx-user-ctx-img .lpx-avatar-img{width:52px;height:52px}.lpx-user-ctx-info{display:flex;flex-direction:column;color:var(--lpx-navbar-text-color)}.outer-menu-item p.lpx-menu-item-desc{font-size:.875em;margin:0 0 12px;padding:0 60px;opacity:.875}.lpx-menu-filter{font-size:1em;margin:1px 16px 9px;padding:0 9px;position:relative;background:var(--lpx-navbar-active-bg-color);border-radius:var(--lpx-radius);border:1px solid rgba(var(--lpx-navbar-active-text-color-rgb),.05)}.lpx-menu-filter .menu-filter-icon{width:18px;line-height:32px;text-align:center;display:inline-block}.lpx-menu-filter .menu-filter-input{padding:0;opacity:1;color:var(--lpx-navbar-active-text-color);height:30px;width:170px;border-radius:var(--lpx-radius);transition:padding .2s ease;border:0;outline:0;background:var(--lpx-navbar-active-bg-color);padding-left:8px;position:absolute;top:0}.lpx-menu-filter .menu-filter-input::placeholder{color:var(--lpx-navbar-text-color)}.lpx-menu-filter .menu-filter-input:focus,.lpx-menu-filter .menu-filter-input:active{border:0;outline:0;background:var(--lpx-navbar-active-bg-color)}.lpx-menu-filter .menu-filter-clear{position:absolute;top:1px;right:9px;cursor:pointer;opacity:.65}.lpx-menu-filter .menu-filter-clear .clear-icon{font-size:20px}.lpx-menu-filter .menu-filter-clear.hidden{opacity:0}.hover-trigger .lpx-sidebar:not(:hover) .menu-filter-clear{opacity:0}@media only screen and (max-width:767px){.lpx-topbar{position:fixed;width:100%}}.lpx-context-menu-user-name{color:var(--lpx-navbar-active-text-color);margin-top:.275em;font-weight:bold;font-size:1.125em}.lpx-context-menu-user-email{font-size:.925em;opacity:.85}.confirmation .confirmation-backdrop{background:rgba(var(--lpx-content-text-rgb),.5)}.confirmation .confirmation-dialog{border:0;border-radius:var(--lpx-radius);background-color:var(--lpx-card-bg);box-shadow:var(--lpx-shadow)}.confirmation .confirmation-dialog .icon-container .icon{stroke:var(--lpx-primary);color:var(--lpx-primary)}.confirmation .confirmation-dialog .icon-container.info .icon{stroke:var(--lpx-info);color:var(--lpx-info)}.confirmation .confirmation-dialog .icon-container.success .icon{stroke:var(--lpx-success);color:var(--lpx-success)}.confirmation .confirmation-dialog .icon-container.warning .icon{stroke:var(--lpx-warning);color:var(--lpx-warning)}.confirmation .confirmation-dialog .icon-container.error .icon{stroke:var(--lpx-danger);color:var(--lpx-danger)}.confirmation .confirmation-dialog .content .title,.confirmation .confirmation-dialog .content .message{color:var(--lpx-content-text)}.confirmation .confirmation-dialog .footer{border-radius:0 0 var(--lpx-radius) var(--lpx-radius)}.confirmation .confirmation-dialog .footer .confirmation-button{background-color:var(--lpx-primary);color:#fff;border-radius:var(--lpx-radius)}.confirmation .confirmation-dialog .footer .confirmation-button:hover,.confirmation .confirmation-dialog .footer .confirmation-button:focus,.confirmation .confirmation-dialog .footer .confirmation-button:active{background-color:rgba(var(--lpx-primary-rgb),.5)}.content-header-title{color:var(--lpx-card-title-text-color);font-size:1.5em!important;font-weight:600;margin-bottom:1em;margin-top:.3333333333em}#toast-container.toast-top-full-width,#toast-container.toast-top-center{background:linear-gradient(to bottom,rgba(0,0,0,.1) 0%,rgba(0,0,0,0) 100%);padding:20px 15px 100px}#toast-container.toast-bottom-full-width,#toast-container.toast-bottom-center{background:linear-gradient(to top,rgba(0,0,0,.1) 0%,rgba(0,0,0,0) 100%);padding:100px 15px 20px 15px}#toast-container.toast-top-right{top:8px;right:8px}#toast-container.toast-top-left{top:8px;left:8px}#toast-container.toast-bottom-left{bottom:8px;left:8px}#toast-container.toast-bottom-right{bottom:8px;right:8px}#toast-container>div{opacity:.975}#toast-container button.toast-close-button{color:#000}.dt-container,.tab-content{border-radius:var(--lpx-radius);background:var(--lpx-card-bg);box-shadow:var(--lpx-shadow);padding:1.5rem}.nav-tabs{background:var(--lpx-card-bg);box-shadow:var(--lpx-shadow);padding:0 1.5rem;border-radius:var(--lpx-radius);margin-bottom:1rem}.card .nav-tabs{background:none;box-shadow:none;padding:0;border-radius:none}.card .tab-content{background:none;box-shadow:none;padding-left:0;padding-right:0}.tab-content .card{background:none;box-shadow:none;padding:0}.modal-body .tab-content{background:none;box-shadow:none}.modal-body .nav-tabs,.card .nav-tabs,.tab-content .nav-tabs{background:none;box-shadow:none;padding-left:0;padding-right:0}hr{opacity:.1}.abp-block-area{background:var(--lpx-card-bg)}.abp-md-form{max-width:540px}.toastui-editor-main{background-color:#fff}@import url("https://rsms.me/inter/inter.css");:root .lpx-theme-dim,:root .lpx-theme-dark{--lpx-logo:url('/images/logo/leptonx/logo-light.png');--lpx-logo-icon:url('/images/logo/leptonx/logo-light-thumbnail.png')}:root .lpx-theme-light{--lpx-logo:url('/images/logo/leptonx/logo-dark.png');--lpx-logo-icon:url('/images/logo/leptonx/logo-dark-thumbnail.png')}.lpx-user-menu .lpx-menu-item-link .lpx-menu-item-text{margin:0 -15px!important;color:#0a4e98!important}markers = [];
selectedMarkers = [];
selectedMarker = null;
map = null;
directionsService = null;
directionsDisplay = null;
tripMaps = [];
latlong = "";
markerColor = "#19A204";
selectionColor = "#072393";
manuelCoordinate = false;
addressMap = null;
addressMarker = false;
defaultLat = 59.9138688;
defaultLan = 10.7522454;
zoomLevel = 14;


///// Live Map Functions
liveMap = null;
vehicleMarkers = [];
liveMapPage = null;



////  TipRoute With All markers

polylines = [];
tripMarkers = [];
currentPage = null;

taskTypes = [
    {
        id: 0,
        name: 'Undefined',
    },
    {
        id: 1,
        name: 'Start',
    },
    {
        id: 2,
        name: 'Job',
    },
    {
        id: 3,
        name: 'Pickup',
    },
    {
        id: 4,
        name: 'Delivery',
    },
    {
        id: 5,
        name: 'Break',
    },
    {
        id: 6,
        name: 'End',
    },

]
currentMapSetting = null;
async function getColorJsonData () {
    const response = await fetch('Colors.json');
    console.log("Data JSON", response);
    const data = await response.json();

    console.log("Data 22 JSON", data);
    return JSON.stringify(data); // Return as string to C#
};

function loadScript(src) {
    return new Promise((resolve, reject) => {
        // avoid loading same script twice
        const existing = document.querySelector(`script[src="${src}"]`);
        if (existing) {
            if (existing.dataset.loaded === "true") {
                resolve();
                return;
            }

            existing.addEventListener("load", () => resolve());
            existing.addEventListener("error", (e) => reject(e));
            return;
        }

        const script = document.createElement("script");
        script.src = src;
        script.async = true;
        script.defer = true;

        script.onload = () => {
            script.dataset.loaded = "true";
            resolve();
        };

        script.onerror = (error) => reject(error);

        document.head.appendChild(script);
    });
}

async function loadGoogleMaps(apiKey, mapSetting) {
    currentMapSetting = mapSetting;
    console.log("DDD", currentMapSetting);

    if (currentMapSetting) {
        defaultLat = currentMapSetting.latitude;
        defaultLan = currentMapSetting.longitude;
        zoomLevel = currentMapSetting.zoomLevel;
    }

    //if (window.google && window.google.maps) {
    //    // Google Maps already loaded, just ensure MarkerClusterer is loaded
    //    if (!window.markerClusterer && !window.MarkerClusterer) {
    //        await loadScript("https://unpkg.com/@googlemaps/markerclusterer/dist/index.umd.js");
    //    }
    //    return window.google.maps;
    //}
    //await loadScript("https://unpkg.com/@googlemaps/markerclusterer/dist/index.umd.js");
    await loadScript(
        `https://maps.googleapis.com/maps/api/js?key=${apiKey}&v=3&libraries=marker,geometry,drawing,places,visualization&callback=Function.prototype`
    );

 

    return window.google.maps;
}


function InitializeLiveMap(mid, mapSetting, livemapObj) {
    
    liveMapPage = livemapObj;
    var latlng = new google.maps.LatLng(defaultLat, defaultLan);
    var options = {
        zoom: zoomLevel, center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    liveMap = new google.maps.Map(document.getElementById(mid), options);
    var t = {
        id: mid,
        map: liveMap,
        directionsService: new google.maps.DirectionsService,
        directionsDisplay: new google.maps.DirectionsRenderer,
        markers: []
    };

 

    google.maps.event.addListener(t.map, "click", function () {
        console.log("MAP CLICKED");
        if (t.InfoWindows && t.InfoWindows.length > 0) {
            t.InfoWindows.forEach(w => w.close());
        }

        if (vehicleMarkers && vehicleMarkers.length > 0)
        {
            vehicleMarkers.forEach(w => w.infoWindow.close());
        }
    });

    this.tripMaps = this.tripMaps.filter(f => f.id != t.id);
    this.tripMaps.push(t);

}


function showTraffic(id, isShow) {

    var t = this.tripMaps.find(f=> f.id == id);
    if (t) {
        if (isShow) {
            var trafficLayer = new google.maps.TrafficLayer();
            trafficLayer.setMap(t.map);
            t.trafficLayer = trafficLayer;

        } else {

            if (t.trafficLayer) {
                t.trafficLayer.setMap(null);
            }
        }

    }


}



function initializeGFMap(mid, mapSetting, livemapObj) {
    
    
    var latlng = new google.maps.LatLng(defaultLat, defaultLan);
    var options = {
        zoom: zoomLevel, center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var mmap = new google.maps.Map(document.getElementById(mid), options);
    var t = {
        id: mid,
        map: mmap,
        directionsService: new google.maps.DirectionsService,
        directionsDisplay: new google.maps.DirectionsRenderer,
        markers: []
    };

    t.map.addListener("click", (event) => {
        if (allowDrawing) {
            addgfMarker(event.latLng, t.map, drawingGfArea.color);
        }

    });

    this.tripMaps = this.tripMaps.filter(f => f.id != t.id);
    this.tripMaps.push(t);

}


var allowDrawing = false;
function setAllowDrawing(mid,b,color)
{
    allowDrawing = b;
    if (b)
    {
        resetGFPolygon(mid, color);
    }
}
// #region View GeoFences on MAP
function viewGeoFences(mid, geoFences) {


    var mmap = tripMaps.find(f => f.id == mid);
    if (mmap.gfMarkers) {
        for (var i = 0; i < mmap.gfMarkers.length; i++) {
            var m = mmap.gfMarkers[i];
            m.setMap(null);
        }

    }
    console.log("Marker Cleared");
    if (mmap.gfPolygons) {
        for (var i = 0; i < mmap.gfPolygons.length; i++) {
            var m = mmap.gfPolygons[i];
            m.setMap(null);
        }

    }

    console.log("Polygon Cleared");

    mmap.gfMarkers = [];
    mmap.gfPolygons = [];

    if (geoFences) {
        for (var index = 0; index < geoFences.length; index++) {
            var gf = geoFences[index];

            var locations = JSON.parse(gf.locations);
            var glocations = [];
            if (locations && locations.length > 2) {
                for (var i = 0; i < locations.length; i++) {

                    var loc = locations[i];
                    var glocation = new google.maps.LatLng(loc.lat, loc.lng);  
                    glocations.push(glocation);
                    var m = createReadOnlyGFMarker(glocation, gf.color, mmap);
                    mmap.gfMarkers.push(m);

                }

                mmap.map.setCenter(glocations[0]);
                // Create the polygon geofence
                const geofencePolygon = new google.maps.Polygon({
                    paths: glocations,
                    strokeColor: gf.color,
                    strokeOpacity: 0.8,
                    strokeWeight: 2,
                    fillColor: gf.color,
                    fillOpacity: 0.35,
                    map: mmap.map,
                });

                mmap.gfPolygons.push(geofencePolygon);
                

            }



        }
    }

}

function createReadOnlyGFMarker(glocation,color,mmap) {
    const icon = {
        path: google.maps.SymbolPath.CIRCLE,
        fillColor: color,
        fillOpacity: 0.8,
        strokeWeight: 1,
        scale: 10, // Adjust size of the marker
    };

    var m = new google.maps.Marker({
        position: glocation,
        map: mmap.map,
        icon: icon, // Use the custom icon
        //id: locationIndex,     
  
    });

    return m;

}

// #end region View GeoFences on MAP


function resetGFPolygon(mid,color)
{
    drawingGfArea.color = color;
    drawingGfArea.map = tripMaps.find(f => f.id == mid).map;
    if (drawingGfArea.markers) {
        for (var i = 0; i < drawingGfArea.markers.length; i++) {
            var m = drawingGfArea.markers[i];
            m.setMap(null);
        }
        drawingGfArea.markers = [];
        drawingGfArea.locations = [];
        if (drawingGfArea.polygon) {
            drawingGfArea.polygon.setMap(null);
        }

        drawingGfArea.gfArea = null;

    }
}

function setColorOfGf(color) {
    drawingGfArea.color = color;

    

}

function loadGeofence(mid, color, locationStr)
{
    var locations = JSON.parse(locationStr);
    resetGFPolygon(mid, color);
    if (locations && locations.length > 0)
    {
        for (var i = 0; i < locations.length; i++) {
            var loc = locations[i];
            var glocation = new google.maps.LatLng(loc.lat, loc.lng);       
            createGFMarker(glocation, drawingGfArea.map, color)

        }



        generateGfArea(drawingGfArea);
    }
}

function getGFLocationList() {
    return JSON.stringify(this.drawingGfArea.locations);
}


drawingGfArea = {
    color: '#33FFCC',
    markers :[],
    locations :[]
};

function createGFMarker(location, mmap, color) {

    const icon = {
        path: google.maps.SymbolPath.CIRCLE,
        fillColor: color,
        fillOpacity: 0.8,
        strokeWeight: 1,
        scale: 10, // Adjust size of the marker
    };
    var locationIndex = !drawingGfArea.locations || drawingGfArea.locations.length == 0 ? 1 : drawingGfArea.locations.length + 1;
    var labelColor = color;
    if (allowDrawing) {
        labelColor = 'black';
    }
    var m = new google.maps.Marker({
        position: location,
        map: mmap,
        icon: icon, // Use the custom icon
        id: locationIndex,
        label: {
            text: locationIndex.toString(), // Convert the number to string
            color: "black", // Color of the label text
            fontSize: "14px", // Adjust font size
            fontWeight: "bold", // Optional: Make it bold
        },
        draggable: true
    });
    drawingGfArea.markers.push(m);

    google.maps.event.addListener(m, "dragend", function (event) {
        const newPosition = event.latLng;
        var loc = drawingGfArea.locations.find(f => f.id == m.id);
        loc.lat = newPosition.lat();
        loc.lng = newPosition.lng();

        generateGfArea(drawingGfArea);
        console.log("Marker dropped at: ", newPosition.lat(), newPosition.lng());
        //  alert(`New position: ${newPosition.lat()}, ${newPosition.lng()}`);
    });

    drawingGfArea.locations.push({ id: locationIndex, lat: location.lat(), lng: location.lng() });

}
function addgfMarker(location, mmap, color) {
    createGFMarker(location, mmap, color);
    generateGfArea(drawingGfArea);


   // console.log('GGG',drawingGfArea);
}

function generateGfArea(gfArea) {
    if (gfArea.locations && gfArea.locations.length > 2) {
        const geofenceCoords = [];

        for (var i = 0; i < gfArea.locations.length; i++) {
            var loc = gfArea.locations[i];
            geofenceCoords.push({ lat: loc.lat, lng: loc.lng });
        }

        if (gfArea.polygon) {
            gfArea.polygon.setMap(null);
        }

        // Create the polygon geofence
        const geofencePolygon = new google.maps.Polygon({
            paths: geofenceCoords,
            strokeColor: gfArea.color,
            strokeOpacity: 0.8,
            strokeWeight: 2,
            fillColor: gfArea.color,
            fillOpacity: 0.35,
            map: gfArea.map,
        });

        gfArea.polygon = geofencePolygon;
    } else {
       // console.error("Insufficient locations to generate a geofence. A minimum of 3 points is required.");
    }
}




function LoadVehicleMarker(trip, lat, lng, selectionColor,vehicleColor) {
    // Guard: lat/lng must be valid numbers
    if (lat == null || lng == null || isNaN(lat) || isNaN(lng)) {
        console.log("LoadVehicleMarker: invalid coordinates", { lat, lng, trip });
        return; // or handle removing/hiding marker if you want
    }

    if (!vehicleMarkers) vehicleMarkers = [];

    var vehicle = vehicleMarkers.find(f => f.id == trip.routeLocation.deviceId);

    if (vehicle) {
        var newPosition = new google.maps.LatLng(lat, lng);
        var previousPosition = vehicle.marker.getPosition();
        var bearing = google.maps.geometry.spherical.computeHeading(previousPosition, newPosition);
        vehicle.marker.setPosition(newPosition);
        vehicle.marker.setIcon(GenerateVehicleIcon(bearing, selectionColor, vehicleColor));
        vehicle.marker.setMap(liveMap);
        vehicle.infoWindow.setContent(VehicleInfoWindowContent(trip));
        return;
    }

    var m = CreateVehicleMarker(lat, lng, trip, vehicleColor);
    var infowin = CreateVehicleInfoWindow(m, trip);
    vehicleMarkers.push({
        id: trip.routeLocation.deviceId,
        lat: lat,
        lng: lng,
        marker: m,
        infoWindow: infowin
    });
}



function CreateVehicleInfoWindow(marker, trip) {
    const infowindow = new google.maps.InfoWindow({
        content: VehicleInfoWindowContent(trip)

    });
    marker.addListener("click", () => {

        infowindow.open({
            anchor: marker,
            liveMap,
        });
    });
   
    return infowindow;

}


function CreateVehicleMarker(lat, long, trip,vehicleColor) {

    var position = new google.maps.LatLng(lat, long);

    var marker = new google.maps.Marker({
        position: position,
        map: liveMap,
        icon: GenerateVehicleIcon(0, null, vehicleColor),
       
    });
    var a = marker.getTitle()
    marker.addListener('dblclick', (event) => {
        liveMapPage.invokeMethodAsync('MarkerClicked', a);
    });

    return marker;
}

//function VehicleInfoWindowContent(trip) {
//    var content = `<script src="https://use.fontawesome.com/9d03eba9c5.js"></script>
//<div style="width:400px; height:400px;  border: 2px solid; border-color:#145EA8;border-radius:10px">
//<table width="100%"  style="font-family: Arial, Helvetica, sans-serif !important">
//  <tr>
//     <td colspan ="3" >
//       <p style="margin:0px;color:#145EA8; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:14px">${(trip.tripNavigation ? trip.tripNavigation.routeTrip.name : '')} </p>
//         <p style="margin:0px;color:gray; font-style:bold; padding:0px 0px 0px 4px; font-family: Arial, Helvetica, sans-serif; font-size:9px">${(trip.driver.name)} </p>
//     </td>
//      <td style="text-align: right;">
//        <span style="border: 1px solid; border-color: dark-blue; font-size:12px; padding:3px 10px 3px 10px; border-radius:25px">stops : ${(trip.tripNavigation && trip.tripNavigation.routeTrip.consignmentCount ? trip.tripNavigation.routeTrip.consignmentCount : 0)}</span>
//      </td>
//  </tr>
//  <tr> <td colspan="4" style ="border-bottom: 1px solid; margin:10px 0px 0px 0px"></td> </td>
//    </tr>
//  <tr>    
//     <td colspan="2"> <p style="color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px; border-right: 1px solid; border-color:gray; padding:7px 10px 7px 10px;">
//       ${(trip.tripNavigation ? trip.tripNavigation.fromAddress.fullAddress : '')}</br><b> 
//       ${(trip.tripNavigation ? trip.tripNavigation.routeTrip.startTimeText : '')} </b>
//     </p> </td>
      
//     <td colspan="2"> <p style="margin:0px 0px 0px 0px;color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;  padding:7px 10px 7px 10px;">
//          ${(trip.tripNavigation ? trip.tripNavigation.endAddress.fullAddress : '')}</br><b>
//           ${(trip.tripNavigation ? trip.tripNavigation.routeTrip.endTimeText : '')} </b></b>
//     </p> </td>
//</tr>    
//  <tr> <td colspan="4" style ="border-bottom: 1px solid; margin:10px 0px 0px 0px"></td> </td>
//</tr>
//  <tr>
//     <td> <p style="margin:0px 0px 0px 0px;color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;  text-align: center;">
//        ${(trip.tripNavigation ? (trip.tripNavigation.routeTrip.totalDistance != null ? trip.tripNavigation.routeTrip.totalDistance : 0) : 0)} km, in  ${(trip.tripNavigation ? (trip.tripNavigation.routeTrip.totalDuration != null ? trip.tripNavigation.routeTrip.totalDuration : 0) : 0)} mins
//     </p> </td>
//</tr>
//  <tr> <td colspan="4" style ="border-bottom: 1px solid; margin:10px 0px 0px 0px"></td> </td>
//  </tr>
//  <tr>
//     <td colspan="2"> <p style="color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px; border-right: 1px solid; border-color:gray; padding:7px 10px 7px 10px;">
//      ${(trip.previousTransportLeg ? trip.previousTransportLeg.toLocation : '')}
//     </p> </td>
      
//       <td colspan="2"> <p style="margin:0px 0px 0px 0px;color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;  padding:7px 10px 7px 10px;">
//        ${(trip.nextTransportLeg ? trip.nextTransportLeg.toLocation : '')}
//     </p> </td>      
//  </tr> 
//  <tr> <td colspan="4" style ="border-bottom: 1px solid; margin:10px 0px 0px 0px"></td> </td>
//    </tr>
//  <tr>
//     <td colspan="2"> <p style="color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px; border-right: 1px solid; border-color:gray;">
//       <b>ETA</b>  <b style="padding:40px"> ${(trip.previousTransportLeg ? trip.previousTransportLeg.estimatedTimeOfArrival : '')}</b>
//     </p> </td>
      
//       <td colspan="2"> <p style="margin:0px 0px 0px 0px;color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;">
//        <b>ETA</b> <b style="padding:35px">${(trip.previousTransportLeg ? trip.previousTransportLeg.actualTimeOfArrival : '')}</b>
//     </p> </td>      
//</tr>
//  <tr> <td colspan="4" style ="border-bottom: 1px solid; margin:10px 0px 0px 0px"></td> </td>
//    </tr>
//  <tr>
//     <td colspan="2"> <p style="color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px; border-right: 1px solid; border-color:gray;">
//       <b>ATA</b>  <b style="padding:40px">${(trip.nextTransportLeg ? trip.nextTransportLeg.estimatedTimeOfArrival : '')}</b>
//     </p> </td>
      
//       <td colspan="2"> <p style="margin:0px 0px 0px 0px;color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;">
//        <b>ATA</b> <b style="padding:35px">${(trip.nextTransportLeg ? trip.nextTransportLeg.estimatedTimeOfArrival : '')} </b>
//     </p> </td> 
//</tr>
//  <tr> <td colspan="4" style ="border-bottom: 1px solid; margin:10px 0px 0px 0px"></td> </td>
//    </tr>
//<tr>
//  <td><span style="padding:20px"><i class="fa fa-phone" aria-hidden="true"></i></span></td>
//   <td><span style="padding:20px"><i class="fa fa-paper-plane" aria-hidden="true"></i></span></td>
 
//   <td><span style="padding:20px;"><i class="fa fa-truck" aria-hidden="true"></i></span>30%</td>

//</tr>
//<td><span style="color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;">Call Driver</span></td>
//   <td><span style="color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;">Send Note</span></td>
//<td><span style="color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;"><i class="fa-regular fa-weight-hanging" aria-hidden="true"></i> ${(trip.tripNavigation && trip.tripNavigation.routeTrip.usedWeight ? trip.tripNavigation.routeTrip.usedWeight : 0)} / ${(trip.tripNavigation && trip.tripNavigation.routeTrip.capacityWeight > 0 ? trip.tripNavigation.routeTrip.capacityWeight : 0)} Kg</span></td>
//<td><span style="color:#4C6A89; font-style:bold; font-family: Arial, Helvetica, sans-serif; font-size:12px;"><i class="fa-regular fa-arrows-left-right-to-line" aria-hidden="true"></i> ${(trip.tripNavigation && trip.tripNavigation.routeTrip.usedVolume ? trip.tripNavigation.routeTrip.usedVolume : 0)} / ${(trip.tripNavigation && trip.tripNavigation.routeTrip.capacityVolume > 0 ? trip.tripNavigation.routeTrip.capacityVolume : 0)} dm3</span></td>
//  </table>

//</div>
//`
//    return content;
//}
function VehicleInfoWindowContent(trip) {
    console.log("TTTTT", trip);
 
    var content = `

    <script src="https://use.fontawesome.com/9d03eba9c5.js"></script>
    <div style="width: 400px;">
      <!-- Title Bar -->
      <div style="background-color: #145EA8; color: white; padding: 6px; border-top-left-radius: 8px; border-top-right-radius: 8px; text-align: left; padding-left: 10px; font-weight: bold;">
        

         <div style="display:flex; justify-content:space-between;">
          <span> <i class="fa fa-user" aria-hidden="true"></i> ${(trip?.driver?.name ?? '')} </span>
          <span> <i class="fa fa-truck right-icon" aria-hidden="true"></i> ${( trip?.tripNavigation?.vehicle?.registrationNumber ?? '')} </span>
        </div>
      </div>
    
      <!-- Info Body -->
      <div style="padding: 8px;">

         <!-- Report Time -->
        <div style="margin-bottom: 6px; font-weight: bold;">
         

            <div style="display:flex; justify-content:space-between;">
              <span>   ${trip?.tripNavigation?.routeTrip ? trip.tripNavigation.routeTrip.tripCode + " - " + trip.tripNavigation.routeTrip.name : "" } </span>
              <span style="font-size:9px">  🕒 ${(trip?.routeLocation?.reportTimeStr ?? '')} </span>
            </div>
        </div>

      <div style="margin-bottom: 6px; font-weight: bold;">
     
      
      
      </div>

     
    
        <!-- Route Info -->
        <div style="display: flex; align-items:left; font-weight: bold;">
          <div style="flex: 1; padding-right: 6px;">
            ${(trip?.tripNavigation?.fromWaypoint?.name ?? trip?.tripNavigation?.fromAddress?.fullAddressWithName ?? '')}
          </div>
          <div style="flex: 0;">
            
           ${trip?.tripNavigation ? '<i class="fa fa-arrow-right" aria-hidden="true"></i>' :""}
           
          </div>
          <div style="flex: 1; padding-left: 6px;">
            ${(trip?.tripNavigation?.toWaypoint?.name ?? trip?.tripNavigation?.endAddress?.fullAddressWithName ?? '')}
          </div>
        </div>
        
      </div>
      
    </div>
`
    return content;
}


function GenerateVehicleIcon(heading, selectionColor, vehicleColor) {
    var svg = ``;
    if (!selectionColor) {
        selectionColor = '#898989';
    }

    if (!vehicleColor) {

        vehicleColor ="#666464"

    }

    var rotation = `transform = "rotate(${heading})"`;
    svg = `<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" ${rotation} version="1.1" width="66px" height="66px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:0.73" fill="${selectionColor}" d="M 27.5,8.5 C 42.6829,7.19605 52.1829,13.8627 56,28.5C 57.2373,43.2022 50.7373,52.3688 36.5,56C 22.3863,57.1928 13.2196,51.0261 9,37.5C 7.37262,22.6649 13.5393,12.9983 27.5,8.5 Z"/></g>
<g><path style="opacity:1" fill="${vehicleColor}" d="M 37.5,19.5 C 37.6495,20.552 37.4828,21.552 37,22.5C 34.3333,21.1667 31.6667,21.1667 29,22.5C 28.5172,21.552 28.3505,20.552 28.5,19.5C 31.5,18.1667 34.5,18.1667 37.5,19.5 Z"/></g>
<g><path style="opacity:0.843" fill="white" d="M 28.5,19.5 C 28.3505,20.552 28.5172,21.552 29,22.5C 31.6667,21.1667 34.3333,21.1667 37,22.5C 37.4828,21.552 37.6495,20.552 37.5,19.5C 38.2485,20.531 38.9152,21.6976 39.5,23C 38.5939,24.6995 38.2606,26.5328 38.5,28.5C 38.1667,28.5 37.8333,28.5 37.5,28.5C 36.962,26.8828 36.6287,25.2161 36.5,23.5C 34.1667,23.5 31.8333,23.5 29.5,23.5C 29.3713,25.2161 29.038,26.8828 28.5,28.5C 28.1667,28.5 27.8333,28.5 27.5,28.5C 27.19,25.2869 27.5233,22.2869 28.5,19.5 Z"/></g>
<g><path style="opacity:1" fill="white" d="M 37.5,28.5 C 37.1667,28.5 36.8333,28.5 36.5,28.5C 34.1667,28.5 31.8333,28.5 29.5,28.5C 29.1667,28.5 28.8333,28.5 28.5,28.5C 29.038,26.8828 29.3713,25.2161 29.5,23.5C 31.8333,23.5 34.1667,23.5 36.5,23.5C 36.6287,25.2161 36.962,26.8828 37.5,28.5 Z"/></g>
<g><path style="opacity:1" fill="white" d="M 27.5,28.5 C 27.8333,28.5 28.1667,28.5 28.5,28.5C 28.8333,28.5 29.1667,28.5 29.5,28.5C 29.5,34.5 29.5,40.5 29.5,46.5C 31.8333,46.5 34.1667,46.5 36.5,46.5C 36.5,40.5 36.5,34.5 36.5,28.5C 36.8333,28.5 37.1667,28.5 37.5,28.5C 37.8333,28.5 38.1667,28.5 38.5,28.5C 38.5,34.8333 38.5,41.1667 38.5,47.5C 34.8333,47.5 31.1667,47.5 27.5,47.5C 27.5,41.1667 27.5,34.8333 27.5,28.5 Z"/></g>
<g><path style="opacity:1" fill="${vehicleColor}" d="M 29.5,28.5 C 31.8333,28.5 34.1667,28.5 36.5,28.5C 36.5,34.5 36.5,40.5 36.5,46.5C 34.1667,46.5 31.8333,46.5 29.5,46.5C 29.5,40.5 29.5,34.5 29.5,28.5 Z"/></g>
</svg>`;




    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg),
        anchor: new google.maps.Point(
            46, 37
        ),
        scaledSize: new google.maps.Size(70, 70),
        labelOrigin: new google.maps.Point(45, 15)
    }

    return icon;
}

///// EndLive Map



function initialize() {
    var latlng = new google.maps.LatLng(defaultLat, defaultLan);
    var options = {
        zoom: zoomLevel, center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map"), options);
}

function initializeAddressMap(mid, Latitude, Longitude, ZoomLevel, addressModal) {
    if (Latitude) {
        defaultLat = Latitude;
    }
    if (Longitude) {
        defaultLan = Longitude;
    }
    if (ZoomLevel) {
        zoomLevel = ZoomLevel;
    }
    var latlng = new google.maps.LatLng(defaultLat, defaultLan);
    var options = {
        zoom: zoomLevel, center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    addressMap = new google.maps.Map(document.getElementById(mid), options);
    addressMap.addListener("click", (mapsMouseEvent) => {
        if (manuelCoordinate) {
            latlong = JSON.stringify(mapsMouseEvent.latLng);
            setAddressMarker(mapsMouseEvent.latLng, false, true, addressModal);
            addressModal.invokeMethodAsync('SetMarkerValue', addressMarker.getPosition().lat(), addressMarker.getPosition().lng())
        }
    });
}

function clearAddressMarker() {
    if (this.addressMarker) this.addressMarker.setMap(null);
    this.addressMarker = null;
}

function setAddressMarkerFromLatLon(lat, lon, isCenter, isdraggable, addressModal) {
    var posi = new google.maps.LatLng(lat, lon);
    setAddressMarker(posi, isCenter, isdraggable, addressModal);
}

function setAddressMarker(posi, isCenter, isdraggable, addressModal) {
    if (this.addressMarker) { this.addressMarker.setMap(null) };
    this.addressMarker = new google.maps.Marker({
        map: addressMap,
        draggable: isdraggable,
        position: posi,// res.geometry.location,
        animation: google.maps.Animation.DROP
    });
    if (isCenter) {
        addressMap.setCenter(posi);
    }
    if (isdraggable) {
        addressMarker.addListener('dragend', (event) => {
            console.log(addressModal);
            addressModal.invokeMethodAsync('SetMarkerValue', event.latLng.lat(), event.latLng.lng());
        });
    }
}



function getAddressMarkerPosition() {
    var lat = addressMarker.getPosition().lat();
    var lng = addressMarker.getPosition().lng();
    return `${lat}|${lng}`;
}


function setManualCoordinate(isChecked) {
    manuelCoordinate = isChecked;
}

function returnLatLng() {
    var m = latlong;
    latlong = null;
    return m;
}
function initializeMapWithDrectionService(currentObj) {
    var options = {
        center: new google.maps.LatLng(defaultLat, defaultLan),
        zoom: zoomLevel,
        zoomControl: true,

    }

    map = new google.maps.Map(document.getElementById("map"), options);

    //map.enableKeyDragZoom();
    //var dz = map.getDragZoomObject();

    //google.maps.event.addListener(dz, 'dragend', function (bnds) {
    //    selectMarkers(bnds);
    //});

    map.addListener("click", (mapsMouseEvent) => {

        var alreadySelected = tripMarkers.filter(f => f.selection);
        if (alreadySelected && alreadySelected.length > 0) {
            for (var i = 0; i < alreadySelected.length; i++) {
                var mm = alreadySelected[i];
                mm.selection = false;
                mm.marker.setIcon(generateRouteMarkerIcon(mm.tripColor, '#FFFFFF'));

            }
        }

    });

    directionsService = new google.maps.DirectionsService;
    directionsDisplay = new google.maps.DirectionsRenderer;
    currentPage = currentObj;


    var t = {
        id: 'map',
        map: map,
        directionsService: new google.maps.DirectionsService,
        directionsDisplay: new google.maps.DirectionsRenderer,
        markers: []
    };

    this.tripMaps = this.tripMaps.filter(f => f.id != t.id);
    tripMaps.push(t);



}

function initializeTripMap(tripMap) {


    var a = document.getElementById(tripMap);
    if (!a) return;
    var options = {
        center: new google.maps.LatLng(defaultLat, defaultLan),
        zoom: zoomLevel,
        zoomControl: true,
        disableDefaultUI: true,
        fullscreenControl: true,
        cameraControl: true,
        mapTypeControl: true,
        scaleControl: true,
        streetViewControl: true,
        rotateControl: true,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        mapId: tripMap
    };
    var t = {
        id: tripMap,
        map: new google.maps.Map(document.getElementById(tripMap), options),
        directionsService: new google.maps.DirectionsService,
        directionsDisplay: new google.maps.DirectionsRenderer,
        markers: []
    };

    google.maps.event.addListener(t.map, "click", function () {
        console.log("MAP CLICKED");
        if (t.InfoWindows && t.InfoWindows.length > 0) {
            t.InfoWindows.forEach(w => w.close());
        }
    });

    this.tripMaps = this.tripMaps.filter(f => f.id != t.id);
    tripMaps.push(t);

  

   
}



async function showTripOnMap(tripMap, startInfo, endInfo, waypts, contents, isInfo, calcDirection, directionResult) {
    try {


        var t = tripMaps.find(f => f.id == tripMap);
        if (t) {
            if (t.markers && t.markers.length > 0) {
                for (var i = 0; i < t.markers.length; i++) {
                    var m = t.markers[i];
                    m.setMap(null);
                }
                t.markers = [];
            }


            if (!calcDirection) {
                createMarkersForRoute(startInfo, endInfo, contents, waypts, t, isInfo);

                return { Distance: 0, Duration: 0 }
            }
            else {
                createMarkersForRoute(startInfo, endInfo, contents, waypts, t, isInfo);
                if (!directionResult) {

                    return { Distance: 0, Duration: 0 };
                }


                var decodedPath = google.maps.geometry.encoding.decodePath(directionResult);
                var polyline = new google.maps.Polyline({
                    path: decodedPath,
                    geodesic: true,
                    strokeColor: '#4d4d4d',
                    strokeOpacity: 1.0,
                    strokeWeight: 5
                });

                var polyline2 = new google.maps.Polyline({
                    path: decodedPath,
                    geodesic: true,
                    strokeColor: '#00ccff',
                    strokeOpacity: 1.0,
                    strokeWeight: 3
                });

                if (t.polyLine) {
                    t.polyLine.setMap(null);
                }

                if (t.polyLine2) {
                    t.polyLine2.setMap(null);
                }


                t.polyLine = polyline;
                t.polyline2 = polyline2;

                // Set the Polyline on the map
                t.polyLine.setMap(t.map);
                t.polyline2.setMap(t.map);

                // Fit the map to the bounds of the decoded path
                var bounds = new google.maps.LatLngBounds();
                for (var i = 0; i < decodedPath.length; i++) {
                    bounds.extend(decodedPath[i]);
                }
                t.map.fitBounds(bounds);



                var result = { Distance: 0, Duration: 0 };
                return result;
            }

        }


    } catch (error) {
        console.log(error.message);
        var result = { Distance: 0, Duration: 0, MapsRequestError: 'DirectionFailed' }
        try {
            createMarkersForRoute(startInfo, endInfo, contents, waypts, t, isInfo);
        } catch (e) {

        }
        return result;
    }




}

async function showTripOnMap2(tripMap, startInfo, endInfo, waypts, contents, isInfo, calcDirection, directionResult) {
    try {

        var t = tripMaps.find(f => f.id == tripMap);
        if (t) {
            if (t.markers && t.markers.length > 0) {
                for (var i = 0; i < t.markers.length; i++) {
                    var m = t.markers[i];
                    m.setMap(null);
                }
                t.markers = [];
            }
            t.directionsDisplay.setMap(null);
            t.directionsDisplay = new google.maps.DirectionsRenderer({ suppressMarkers: true });;

            if (!calcDirection) {
                createMarkersForRoute(startInfo, endInfo, contents, waypts, t, isInfo);
                return { Distance: 0, Duration: 0 }
            }
            else {
                if (!directionResult) {
                    createMarkersForRoute(startInfo, endInfo, contents, waypts, t, isInfo);
                    return { Distance: 0, Duration: 0 };
                }


                var jsonresponse = JSON.parse(directionResult);
                t.directionsDisplay.setDirections(jsonresponse);
                t.directionsDisplay.setMap(t.map);
                createMarkersForRoute(startInfo, endInfo, contents, waypts, t, isInfo);
                var totalDistance = 0;
                var totalDuration = 0;
                var legs = jsonresponse.routes[0].legs;
                for (var i = 0; i < legs.length; ++i) {
                    totalDistance += legs[i].distance.value;
                    totalDuration += legs[i].duration.value;
                }
                var result = { Distance: totalDistance, Duration: totalDuration };
                return result;
            }

        }


    } catch (error) {
        console.log(error.message);
        var result = { Distance: 0, Duration: 0, MapsRequestError: 'DirectionFailed' }
        try {
            createMarkersForRoute(startInfo, endInfo, contents, waypts, t, isInfo);
        } catch (e) {

        }
        return result;
    }
}

function createMarkersForRoute(startInfo, endInfo, contents, waypts, t, isInfo) {
    var startColor = "#ff9900";
    var startTextColor = "#ffffff"
    var endColor = "#ff9900";
    var endTextColor = "#ffffff"
    var waypointColor = "#00cc00";
    var waypointTextColor = "#ffffff"

    var bounds = new google.maps.LatLngBounds();

    //debugger;
    if (startInfo.validated && endInfo.validated) {
        if (startInfo.location != endInfo.location) {
            var startMarker = createTripMarker(t.map, startInfo.location, generateWareHouseIcon(startColor, startTextColor), "S", startTextColor);
            TripStartEndInfoWindow('Trip Start', t.map, startMarker);
            t.markers.push(startMarker);

            bounds.extend({ lat: Number(startInfo.location.split(',')[0].trim()), lng: Number(startInfo.location.split(',')[1].trim()) });

            if (endInfo.location != null) {
                var endMarker = createTripMarker(t.map, endInfo.location, generateWareHouseIcon(endColor, endTextColor), "E", endTextColor);
                TripStartEndInfoWindow('Trip End', t.map, endMarker);
                t.markers.push(endMarker);
                bounds.extend({ lat: Number(endInfo.location.split(',')[0].trim()), lng: Number(endInfo.location.split(',')[1].trim()) });
            }
        }
        else {
            if (startInfo.location != ', ') {
                var startend = createTripMarker(t.map, startInfo.location, generateWareHouseIcon(startColor, startTextColor), "S", startTextColor);
                TripStartEndInfoWindow('Trip Start And End', t.map, startend);
                t.markers.push(startend);
                bounds.extend({ lat: Number(startInfo.location.split(',')[0].trim()), lng: Number(startInfo.location.split(',')[1].trim()) });
            }

        }


    }


    for (var i = 0; i < waypts.length; i++) {
        var w = waypts[i];
        var content = JSON.parse(contents[i]);

        var mcolor = waypointColor;
        var tcolor = waypointTextColor;
        if (endInfo.location == null && i == waypts.length - 1) {
            mcolor = endColor;
            tcolor = endTextColor;
        }

        var m = createTripMarker(t.map, w.location, generateMainMarkerIcon(mcolor, tcolor), content.deliveryOrder, waypointTextColor);

        createTripnfoWindow(content, t.map, m);
        t.markers.push(m);

        bounds.extend({ lat: Number(w.location.split(',')[0].trim()), lng: Number(w.location.split(',')[1].trim()) });

        /*if (content.ContainsDangerousGoods) {
            var coords = w.location.split(',');
            var position = new google.maps.LatLng(coords[0].trim(), coords[1].trim());
            denguerosGoodMarker = generateDengerousGoodIcon(position, t.map);
            t.markers.push(denguerosGoodMarker)
        }*/
    }

    t.map.fitBounds(bounds);

}
function TripStartEndInfoWindow(title, tripMap, marker) {
    const infowindow = new google.maps.InfoWindow({
        content: `<table border = "0">
            <tbody>
                <tr style="margin-top:5px">
                    <td  style="color: darkblue; font-size:smaller; font-weight: Bold;">${title}</td>
       
                </tr>                 
           </tbody>
           </table>`
        ,
        ariaLabel: title,
    });
    marker.addListener("mouseover", () => {

        infowindow.open({
            anchor: marker,
            tripMap,
        });
    });
    marker.addListener("mouseout", () => {
        infowindow.close();
    });
}
function SetTripWindow(tripMap, marker,ct,t) {
    var infoContent = `<div> `;
    infoContent += ct;
    infoContent += `</div>`
    const infowindow = new google.maps.InfoWindow({
        content: infoContent,
        maxheight:400

    });

    if (!t.InfoWindows) {
        t.InfoWindows = [];
    }
    t.InfoWindows.push(infowindow);
    marker.addListener("click", () => {

        for (var i = 0; i < t.InfoWindows.length; i++)
        {
            var w = t.InfoWindows[i];
            w.close();
        }
        infowindow.open({
            anchor: marker,
            tripMap,
        });
    });

  

}

function createTripnfoWindow(content, tripMap, marker) {
    const infowindow = new google.maps.InfoWindow({
        content: `<table border = "0">
            <tbody>
                <tr style="margin-top:5px">
                    <td  style="color: darkblue; font-size:smaller; width: 70px; font-weight: Bold;">Stop</td>
                    <td  style="color: darkblue; font-size:smaller; font-weight: Bold;">${content.deliveryOrder} </td>
       
                </tr> 
                <tr style="margin-top:5px">
                    <td  style="color: darkblue; font-size:smaller;  font-weight: Bold;">Order</td>
                    <td  style="color: darkblue; font-size:smaller; font-weight: Bold;">${content.uniqueIdentifier}</td>
       
                </tr> 

                 <tr style="margin-top:5px">
                    <td  style="color: darkblue; font-size:smaller; font-weight: Bold;">Location</td>
                    <td  style="color: darkblue; font-size:smaller; font-weight: Bold;">${content.address}</td>
       
                </tr> 
               
           </tbody>
           </table>`
        ,
        //ariaLabel: title,
    });

    marker.addListener("mouseover", () => {

        infowindow.open({
            anchor: marker,
            tripMap,
        });
    });
    marker.addListener("mouseout", () => {
        infowindow.close();
    });


}

//function createTripMarker(mmap, latlong, content,startEnd) {
//    var coords = latlong.split(',');
//    var position = new google.maps.LatLng(coords[0].trim(), coords[1].trim());

//    var marker = new google.maps.Marker({
//        position: position,
//        map: mmap,
//        icon: !startEnd ? generateMainMarkerIcon((content && content.deliveryOrder && content.deliveryOrder > 0 ? markerColor : '#C40101'), content.LegType == 1 ? false : true) : generateWareHouseIcon('#C86A64'),
//        label: content && content.deliveryOrder && content.deliveryOrder > 0 ? {
//            text: `${content.deliveryOrder}`,
//            color: '#FFFFFF',
//            fontSize: '10px',

//        }: ''
//    });

//    return marker;
//}

function createTripMarker(mmap, latlong, markerIcon, markerText, markerTextColor) {
    var coords = latlong.split(',');
    var position = new google.maps.LatLng(coords[0].trim(), coords[1].trim());

    var marker = new google.maps.Marker({
        position: position,
        map: mmap,
        icon: markerIcon,
        label: {
            text: `${markerText}`,
            color: `${markerTextColor}`,
            fontSize: '10px',

        }
    });

    return marker;
}


async function calclulateDirection(startLatLng, endLatLng, waypts) {
    try {
        var service = new google.maps.DirectionsService

        var response = await service.route(
            {
                origin: startLatLng,
                destination: endLatLng,
                waypoints: waypts,
                travelMode: 'DRIVING',// DRIVING , BICYCLING , TRANSIT , WALKING
                optimizeWaypoints: false,
                provideRouteAlternatives: true
            });
        if (response && response.status === 'OK') {
            var totalDistance = 0;
            var totalDuration = 0;
            var legs = response.routes[0].legs;
            for (var i = 0; i < legs.length; ++i) {
                totalDistance += legs[i].distance.value;
                totalDuration += legs[i].duration.value;
            }
            var result = { Distance: totalDistance, Duration: totalDuration, Result: JSON.stringify(response) };
            return result;
        }
        else {
            return null;
        }
    } catch (error) {

        console.log(error);
        return null;
    }
}

function calculateAndDisplayRoute(startLatLng, endLatLng, waypts) {

    directionsDisplay.setMap(null);
    directionsDisplay = new google.maps.DirectionsRenderer;

    directionsDisplay.setMap(map);
    directionsService.route(
        {
            origin: startLatLng,
            destination: endLatLng,
            waypoints: waypts,
            travelMode: 'DRIVING',// DRIVING , BICYCLING , TRANSIT , WALKING
            optimizeWaypoints: false,
            provideRouteAlternatives: true
        }, function (response, status) {
            if (status === 'OK') {
                var route = response.routes[0].legs[0];
                createMarker(route.start_location);
                createMarker(route.end_location);
                directionsDisplay.setDirections(response);
            }
            else {
                //  window.alert('@Labels.Msg_Trip_DirectionFailedMessage ' + status);
            }
        });
}

function resetMap() {
    if (markers && markers.length > 0) {
        for (var i = 0; i < markers.length; i++) {
            var m = markers[i];
            m.marker.setMap(null);
            if (m.denguerosGoodMarker) {
                m.denguerosGoodMarker.setMap(null);
            }
        }
        markers = [];
    }
}


//function findAddress(address) {
//    var geocoder = new google.maps.Geocoder();


//    geocoder.geocode({ 'address': address }, function (results, status) {
//        console.log("bb",results);
//        console.log("aa",status);
//        if (status == google.maps.GeocoderStatus.OK) {
//            var latitude = results[0].geometry.location.lat();
//            var longitude = results[0].geometry.location.lng();
//            resetMap();

//            setMarker(latitude, longitude);
//            return { Lat: latitude, Lng: longitude };
//        }

//    });

//}
//function findAddress2(address) {
//    return new Promise((resolve, reject) => {
//        const geocoder = new google.maps.Geocoder();
//        geocoder.geocode({ address: address }, (results, status) => {
//            if (status === 'OK') {
//                var latitude = results[0].geometry.location.lat();
//                var longitude = results[0].geometry.location.lng();
//                resetMap();

//                setMarker(latitude, longitude);
//                resolve({ "Lat": latitude.toString(), "Lng": longitude.toString() });

//            } else {
//                reject(status);
//            }
//        });
//    });

//}

function getLatLngofMarker() {
    if (markers != null && markers.length == 1) {
        var lat = markers[0].getPosition().lat();
        var lng = markers[0].getPosition().lng();
        return { "Lat": lat.toString(), "Lng": lng.toString() };
    }
}

function setConsignmentMarkers(dataContent) {
    resetMap();
    var data = JSON.parse(dataContent);
    for (let i = 0; i < data.length; i++) {
        var consignment = data[i];
        var latlng = new google.maps.LatLng(consignment.ToAddress.LatitudeStr, consignment.ToAddress.LongitudeStr);
        createConsignmentMarker(latlng, consignment);
    }
}
function removeMarkers(legIds) {
    if (legIds && legIds.length > 0) {
        for (let i = 0; i < legIds.length; i++) {
            var legid = legIds[i];
            var m = markers.find(f => f.legId == legid);
            if (m) {
                m.marker.setMap(null);
                if (m.denguerosGoodMarker) {

                    m.denguerosGoodMarker.setMap(null);
                }
                const index = markers.indexOf(m);
                if (index > -1) {
                    markers.splice(index, 1);
                }
            }
        }
    }
}

function createConsignmentMarker(position, c) {
    //var marker2 = new google.maps.Marker({
    //    position: position,
    //    map: map,
    //    icon: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
    //});

    var marker = new google.maps.Marker({
        position: position,
        map: map,
        title: c.ConsignmentNumber,
        icon: generateMainMarkerIcon(markerColor, c.Leg && c.Leg.LegType && c.Leg.LegType == 1 ? false : true),
        optimized: false
    });
    var denguerosGoodMarker = null;
    if (c.ContainsDangerousGoods) {
        denguerosGoodMarker = generateDengerousGoodIcon(position, map)
    }

    const infowindow = new google.maps.InfoWindow({
        content: infoWinodowContent(c),
        ariaLabel: c.ConsignmentNumber,
    });

    marker.addListener("mouseover", () => {
        infowindow.open({
            anchor: marker,
            map,
        });
    });
    marker.addListener("mouseout", () => {
        infowindow.close();
    });

    marker.addListener("click", () => {
        for (var i = 0; i < this.markers.length; i++) {
            this.markers[i].selection = false;

        }
        var m = this.markers.find(f => f.marker == marker);
        if (m) {
            m.selection = true;
        }

        setAllMarkerIcons();

    });

    markers.push({ id: c.ConsignmentNumber, marker: marker, denguerosGoodMarker: denguerosGoodMarker, selection: false, legId: c.LegId, legType: c.Leg ? c.Leg.LegType : 1 });
}



function setAllMarkerIcons() {
    if (this.markers && this.markers.length > 0) {
        for (var i = 0; i < this.markers.length; i++) {
            var m = this.markers[i];
            if (m.selection) {
                m.marker.setIcon(generateMainMarkerIcon(selectionColor, m.legType == 1 ? false : true));
            }
            else {
                m.marker.setIcon(generateMainMarkerIcon(markerColor, m.legType == 1 ? false : true));
            }
        }
    }
}



function returnSelectedMarkers() {
    var data = this.markers.filter(f => f.selection);
    if (data && data.length > 0) {
        var c = data.map(m => m.legId);
        return c;
    }
    return null;
}

function createMarker(position) {
    var marker = new google.maps.Marker({
        position: position,
        map: map,
        icon: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png'
    });
}

function infoWinodowContent(c) {
    var content = `<table border = "0">
            <tbody>
                <tr style="margin-top:5px">
                    <td colspan="2" style="color: darkblue; font-size:larger; font-weight: Bold;">${c.ConsignmentNumber}</td>
                    <td width="150px" style="text-align: right; font-size: small;">Items : ${c.ItemCount}</td>
                </tr>

                <tr style="margin-top:5px">
                    <td width="35px" style=" padding-top: 10px;">  <i class="fa-solid fa-location-dot" aria-hidden="true"></i>  </td>
                    <td colspan="2" style=" padding-top: 10px;">${c.ToAddress.Name}</td>
                </tr>

                <tr style="margin-top:5px">
                    <td width="35px" style=" padding-top: 10px;">  <i class="fa-solid fa-location-dot" aria-hidden="true"></i>  </td>
                    <td colspan="2" style=" padding-top: 10px;">${c.ToAddress.FullAddress}</td>
                </tr>
                <tr style="margin-top:5px">
                    <td width="35px" style=" padding-top: 10px;"> <i class="fa-regular fa-weight-hanging fa-lg" aria-hidden="true"></i> </td>
                    <td colspan="2" style=" padding-top: 10px;">${c.Weight} Kg &nbsp;&nbsp;  <i class="fa-regular fa-arrows-left-right-to-line fa-lg" aria-hidden="true"></i>  ${c.Volume} dm&sup3;</td>
                </tr>
            </tbody>
        </table>   `;

    return content;
}

function generateMapIcon(color) {
    var content = {
        path: "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z",
        fillColor: color,
        fillOpacity: 1,
        anchor: new google.maps.Point(
            200, 500
        ),
        strokeWeight: 1,
        strokeColor: "#ffffff",
        scale: 0.060,
    }
    return content;
}

function generateWareHouseIcon(color, color2) {
    /*var svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path class="fa-secondary" opacity=".4" d="M512 488c0 13.3-10.7 24-24 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56zm0-88H128V336H512v64zm0-96H128V224H512l0 80z"/><path class="fa-primary" d="M0 171.3V488c0 13.3 10.7 24 24 24H72c13.3 0 24-10.7 24-24V224c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32V488c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V171.3c0-26.2-15.9-49.7-40.2-59.4L331.9 4.8c-7.6-3.1-16.1-3.1-23.8 0L40.2 111.9C15.9 121.6 0 145.2 0 171.3z"/></svg>`;

    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg),
        anchor: new google.maps.Point(
            20, 37
        ),
        scaledSize: new google.maps.Size(40,40)
    }
    return icon;
    */
    return generateMainMarkerIcon(color, color2);
}

function generateMainMarkerIcon(color, color2) {
    var svg = '';
    //if (isDelivery) {

    svg = `<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" width="512px" height="512px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns="http://www.w3.org/2000/svg">
  <g transform="matrix(0.506762, 0, 0, 0.506762, 196.313248, 18.893757)">
    <path style="opacity: 0.996; fill:  ${color};" d="M 236.5,-0.5 C 249.167,-0.5 261.833,-0.5 274.5,-0.5C 335.062,7.35172 381.562,37.0184 414,88.5C 431.874,122.072 438.207,157.738 433,195.5C 428.331,229.507 417.664,261.507 401,291.5C 356.916,361.336 312.583,431.003 268,500.5C 265.619,504.636 262.786,508.302 259.5,511.5C 256.833,511.5 254.167,511.5 251.5,511.5C 248.214,508.302 245.381,504.636 243,500.5C 198.417,431.003 154.084,361.336 110,291.5C 88.9627,253.89 77.796,213.556 76.5,170.5C 78.1564,104.996 107.156,55.8297 163.5,23C 186.502,10.6089 210.836,2.77559 236.5,-0.5 Z"/>
  </g>
  <g transform="matrix(0.506762, 0, 0, 0.506762, 196.313248, 18.893757)">
    <path style="opacity: 0.996; stroke: #000000; stroke-width:10; fill: none;" d="M 236.5,-0.5 C 249.167,-0.5 261.833,-0.5 274.5,-0.5C 335.062,7.35172 381.562,37.0184 414,88.5C 431.874,122.072 438.207,157.738 433,195.5C 428.331,229.507 417.664,261.507 401,291.5C 356.916,361.336 312.583,431.003 268,500.5C 265.619,504.636 262.786,508.302 259.5,511.5C 256.833,511.5 254.167,511.5 251.5,511.5C 248.214,508.302 245.381,504.636 243,500.5C 198.417,431.003 154.084,361.336 110,291.5C 88.9627,253.89 77.796,213.556 76.5,170.5C 78.1564,104.996 107.156,55.8297 163.5,23C 186.502,10.6089 210.836,2.77559 236.5,-0.5 Z"/>
  </g>
  <g style="" transform="matrix(0.708195, 0, 0, 0.708195, 145.767624, -26.45962)">
    <path style="opacity:0.995; fill: ${color2};" d="M 244.5,110.5 C 288.905,108.108 318.405,127.774 333,169.5C 340.946,207.351 329.113,237.184 297.5,259C 264.644,276.258 233.31,273.925 203.5,252C 175.195,224.481 168.362,192.315 183,155.5C 196.084,130.235 216.584,115.235 244.5,110.5 Z"/>
  </g>
  <g style="" transform="matrix(0.622681, 0, 0, 0.622681, 167.615326, -10.405077)">
    <path style="opacity: 0.995; fill: ${color};" d="M 244.5,110.5 C 288.905,108.108 318.405,127.774 333,169.5C 340.946,207.351 329.113,237.184 297.5,259C 264.644,276.258 233.31,273.925 203.5,252C 175.195,224.481 168.362,192.315 183,155.5C 196.084,130.235 216.584,115.235 244.5,110.5 Z"/>
  </g>
</svg>
`;


    //    }
    //    else {
    //        svg = `<?xml version="1.0" encoding="utf-8"?>
    //<svg version="1.1" width="512px" height="512px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns="http://www.w3.org/2000/svg">
    //  <g transform="matrix(0.506762, 0, 0, 0.506762, 67.701385, 95.831207)" style="">
    //    <g transform="matrix(1, 0, 0, 1, 253.791443, -151.821655)">
    //      <path style="opacity: 0.996; fill: ${color};" d="M 236.5,-0.5 C 249.167,-0.5 261.833,-0.5 274.5,-0.5C 335.062,7.35172 381.562,37.0184 414,88.5C 431.874,122.072 438.207,157.738 433,195.5C 428.331,229.507 417.664,261.507 401,291.5C 356.916,361.336 312.583,431.003 268,500.5C 265.619,504.636 262.786,508.302 259.5,511.5C 256.833,511.5 254.167,511.5 251.5,511.5C 248.214,508.302 245.381,504.636 243,500.5C 198.417,431.003 154.084,361.336 110,291.5C 88.9627,253.89 77.796,213.556 76.5,170.5C 78.1564,104.996 107.156,55.8297 163.5,23C 186.502,10.6089 210.836,2.77559 236.5,-0.5 Z M 243.5,95.5 C 286.393,92.6913 318.559,109.691 340,146.5C 359.261,190.032 352.095,228.532 318.5,262C 289.048,285.798 256.381,291.465 220.5,279C 178.264,259.38 158.431,226.213 161,179.5C 169.556,132.778 197.056,104.778 243.5,95.5 Z"/>
    //    </g>
    //    <g style="" transform="matrix(1.397491, 0, 0, 1.397491, 154.049103, -241.318054)">
    //      <path style="opacity:0.995" fill="#FFFFFF" d="M 244.5,110.5 C 288.905,108.108 318.405,127.774 333,169.5C 340.946,207.351 329.113,237.184 297.5,259C 264.644,276.258 233.31,273.925 203.5,252C 175.195,224.481 168.362,192.315 183,155.5C 196.084,130.235 216.584,115.235 244.5,110.5 Z"/>
    //    </g>
    //    <g style="" transform="matrix(1.228745, 0, 0, 1.228745, 197.161469, -209.637421)">
    //      <path style="opacity: 0.995; fill: ${color};" d="M 244.5,110.5 C 288.905,108.108 318.405,127.774 333,169.5C 340.946,207.351 329.113,237.184 297.5,259C 264.644,276.258 233.31,273.925 203.5,252C 175.195,224.481 168.362,192.315 183,155.5C 196.084,130.235 216.584,115.235 244.5,110.5 Z"/>
    //    </g>
    //  </g>
    //</svg>
    //`;


    //}

    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg),
        anchor: new google.maps.Point(
            46, 37
        ),
        scaledSize: new google.maps.Size(70, 70),
        labelOrigin: new google.maps.Point(45, 15)
    }

    return icon;
}


function generateDengerousGoodIcon(latlong, mmap) {

    var svg = `<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="174px" height="177px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:0.998" fill="#f9761e" d="M 96.5,14.5 C 97.8333,16.5 99.5,18.1667 101.5,19.5C 105.167,22.5 108.5,25.8333 111.5,29.5C 116.167,34.8333 121.167,39.8333 126.5,44.5C 127.5,44.8333 128.167,45.5 128.5,46.5C 141.833,60.5 155.5,74.1667 169.5,87.5C 142.905,115.763 115.571,143.429 87.5,170.5C 70.1457,153.812 53.1457,136.812 36.5,119.5C 35.8333,118.167 34.8333,117.167 33.5,116.5C 32.1667,114.5 30.5,112.833 28.5,111.5C 27.1667,109.5 25.5,107.833 23.5,106.5C 19.1667,101.5 14.5,96.8333 9.5,92.5C 7.52119,91.1879 5.85452,89.5212 4.5,87.5C 7.18772,84.1456 10.1877,81.1456 13.5,78.5C 18.1667,75.8333 21.8333,72.1667 24.5,67.5C 38.8333,52.5 53.5,37.8333 68.5,23.5C 72.1667,21.8333 74.8333,19.1667 76.5,15.5C 79.5109,11.6558 83.0109,8.32245 87,5.5C 90.655,7.98848 93.8217,10.9885 96.5,14.5 Z"/></g>
<g><path style="opacity:0.082" fill="#fbe5d1" d="M 96.5,14.5 C 99.1667,15.1667 100.833,16.8333 101.5,19.5C 99.5,18.1667 97.8333,16.5 96.5,14.5 Z"/></g>
<g><path style="opacity:1" fill="#090303" d="M 85.5,16.5 C 86.552,16.3505 87.552,16.5172 88.5,17C 112.014,40.3471 135.347,63.8471 158.5,87.5C 134.847,111.653 111.014,135.653 87,159.5C 62.9861,135.653 39.1528,111.653 15.5,87.5C 38.8545,63.8125 62.1878,40.1458 85.5,16.5 Z"/></g>
<g><path style="opacity:0.733" fill="#f9a162" d="M 76.5,15.5 C 74.8333,19.1667 72.1667,21.8333 68.5,23.5C 70.8333,20.5 73.5,17.8333 76.5,15.5 Z"/></g>
<g><path style="opacity:1" fill="#fb6d03" d="M 86.5,25.5 C 107.632,46.1317 128.632,66.965 149.5,88C 128.443,108.412 107.609,128.912 87,149.5C 66.3194,128.986 45.8194,108.32 25.5,87.5C 45.8545,66.8125 66.1878,46.1458 86.5,25.5 Z"/></g>
<g><path style="opacity:0.082" fill="#fbe4ce" d="M 111.5,29.5 C 117.5,33.5 122.5,38.5 126.5,44.5C 121.167,39.8333 116.167,34.8333 111.5,29.5 Z"/></g>
<g><path style="opacity:0.082" fill="#fce1ca" d="M 128.5,46.5 C 142.414,58.9112 155.914,71.9112 169,85.5C 169.464,86.0944 169.631,86.7611 169.5,87.5C 155.5,74.1667 141.833,60.5 128.5,46.5 Z"/></g>
<g><path style="opacity:1" fill="#5d2c10" d="M 55.5,70.5 C 56.4486,69.8476 57.6153,69.5143 59,69.5C 60.6811,69.6083 61.8478,70.2749 62.5,71.5C 60.283,70.6314 57.9496,70.298 55.5,70.5 Z"/></g>
<g><path style="opacity:1" fill="#0d0503" d="M 55.5,70.5 C 57.9496,70.298 60.283,70.6314 62.5,71.5C 66.4433,82.6624 69.7767,93.9957 72.5,105.5C 70.1667,105.5 67.8333,105.5 65.5,105.5C 65.0074,103.194 64.6741,100.861 64.5,98.5C 60.8183,98.3347 57.1516,98.5014 53.5,99C 53.0081,104.43 50.0081,106.596 44.5,105.5C 47.926,93.6757 51.5926,82.0091 55.5,70.5 Z"/></g>
<g><path style="opacity:1" fill="#060202" d="M 76.5,69.5 C 91.3514,66.7252 99.0181,72.7252 99.5,87.5C 100.056,93.4623 98.3893,98.6289 94.5,103C 88.7114,105.151 82.7114,105.984 76.5,105.5C 76.5,93.5 76.5,81.5 76.5,69.5 Z"/></g>
<g><path style="opacity:1" fill="#090302" d="M 118.5,70.5 C 126.36,71.8982 129.194,76.5649 127,84.5C 126.117,87.1024 124.617,89.2691 122.5,91C 124.629,95.4258 126.629,99.9258 128.5,104.5C 125.914,105.48 123.247,105.813 120.5,105.5C 119.167,101.167 117.833,96.8333 116.5,92.5C 115.167,92.5 113.833,92.5 112.5,92.5C 112.5,96.8333 112.5,101.167 112.5,105.5C 110.167,105.5 107.833,105.5 105.5,105.5C 105.5,93.8333 105.5,82.1667 105.5,70.5C 109.833,70.5 114.167,70.5 118.5,70.5 Z"/></g>
<g><path style="opacity:0.741" fill="#fb9d5b" d="M 24.5,67.5 C 21.8333,72.1667 18.1667,75.8333 13.5,78.5C 16.8333,74.5 20.5,70.8333 24.5,67.5 Z"/></g>
<g><path style="opacity:1" fill="#93460c" d="M 118.5,70.5 C 114.167,70.5 109.833,70.5 105.5,70.5C 105.5,82.1667 105.5,93.8333 105.5,105.5C 104.505,93.6783 104.172,81.6783 104.5,69.5C 109.363,69.1805 114.03,69.5139 118.5,70.5 Z"/></g>
<g><path style="opacity:1" fill="#f66e08" d="M 83.5,75.5 C 91.2584,75.6248 94.2584,79.6248 92.5,87.5C 92.5787,90.9546 92.0787,94.2879 91,97.5C 88.8646,99.2785 86.3646,99.9452 83.5,99.5C 83.5,91.5 83.5,83.5 83.5,75.5 Z"/></g>
<g><path style="opacity:1" fill="#703811" d="M 118.5,76.5 C 116.5,76.5 114.5,76.5 112.5,76.5C 112.5,79.8333 112.5,83.1667 112.5,86.5C 111.518,83.0381 111.185,79.3714 111.5,75.5C 114.059,75.1984 116.393,75.5318 118.5,76.5 Z"/></g>
<g><path style="opacity:1" fill="#fa6f06" d="M 118.5,76.5 C 119.117,76.6107 119.617,76.944 120,77.5C 122.003,84.3273 119.503,87.3273 112.5,86.5C 112.5,83.1667 112.5,79.8333 112.5,76.5C 114.5,76.5 116.5,76.5 118.5,76.5 Z"/></g>
<g><path style="opacity:1" fill="#e4680c" d="M 57.5,80.5 C 58.4972,80.4701 59.1639,80.9701 59.5,82C 60.7259,85.4019 61.3926,88.9019 61.5,92.5C 59.5,92.5 57.5,92.5 55.5,92.5C 56.1667,88.5 56.8333,84.5 57.5,80.5 Z"/></g>
<g><path style="opacity:0.094" fill="#fce0c9" d="M 9.5,92.5 C 14.5,96.8333 19.1667,101.5 23.5,106.5C 17.8333,102.833 13.1667,98.1667 9.5,92.5 Z"/></g>
<g><path style="opacity:0.082" fill="#fce2cb" d="M 23.5,106.5 C 25.5,107.833 27.1667,109.5 28.5,111.5C 25.8333,110.833 24.1667,109.167 23.5,106.5 Z"/></g>
<g><path style="opacity:0.082" fill="#fce2cb" d="M 28.5,111.5 C 30.5,112.833 32.1667,114.5 33.5,116.5C 30.8333,115.833 29.1667,114.167 28.5,111.5 Z"/></g>
<g><path style="opacity:0.078" fill="#fce2cc" d="M 33.5,116.5 C 34.8333,117.167 35.8333,118.167 36.5,119.5C 34.5,119.5 33.5,118.5 33.5,116.5 Z"/></g>
</svg>
`;

    var marker = new google.maps.Marker({
        position: latlong,
        map: mmap,
        title: 'Dynamic SVG Marker',
        icon: {
            url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg),
            anchor: new google.maps.Point(
                0, 42
            ),
            scaledSize: new google.maps.Size(18, 18)
        },
        optimized: false
    });

    return marker;
}

//-- Route Consignment Map Functions -- //
routeConsignmentMap = null;
//vehicleMarkers = [];
routeConsignmentMapPage = null;
function InitializeRouteConsignmentMap(mid, mapSetting, routeConsignmentMapObj) {
    // if (routeOptimizationMap) return;
    routeConsignmentMapPage = routeConsignmentMapObj;
    var latlng = new google.maps.LatLng(defaultLat, defaultLan);
    var options = {
        zoom: zoomLevel, center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    routeConsignmentMap = new google.maps.Map(document.getElementById(mid), options);

}

function CreateRouteConsignmentMarker(lat, long) {

    var position = new google.maps.LatLng(lat, long);

    var marker = new google.maps.Marker({
        position: position,
        map: routeConsignmentMap,
        animation: google.maps.Animation.DROP
        //title: trip.routeLocation.deviceId
    });
    var a = marker.getTitle()
    marker.addListener('click', (event) => {
        routeConsignmentMapPage.invokeMethodAsync('MarkerClicked', a);
    });

    // return marker;
}

//-- Route Optimization Map Functions -- //
routeOptimizationMap = null;
//vehicleMarkers = [];
routeOptimizationMapPage = null;
function initializeRouteOptimizationMap(mid, mapSetting, routeOptimizationMapObj) {
    // if (routeOptimizationMap) return;
    routeOptimizationMapPage = routeOptimizationMapObj;
    var latlng = new google.maps.LatLng(defaultLat, defaultLan);
    var options = {
        zoom: zoomLevel,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    routeOptimizationMap = new google.maps.Map(document.getElementById(mid), options);
}
function CreateRouteOptimizationMarker(lat, long, markerColor,) {
    //let url = "http://maps.google.com/mapfiles/ms/icons/";
    //url += color + "-dot.png";
    var position = new google.maps.LatLng(lat, long);
    var marker = new google.maps.Marker({
        position: position,
        map: routeOptimizationMap,
        animation: google.maps.Animation.DROP,
        //title: trip.routeLocation.deviceId
        icon: generateMainMarkerIcon(markerColor),
    });
    var a = marker.getTitle()
    marker.addListener('click', (event) => {
        routeOptimizationMapPage.invokeMethodAsync('MarkerClicked', a);
    });
    // return marker;
}

function showRouteDirectionOnMap(directionResult, directionColour) {

    var decodedPath = google.maps.geometry.encoding.decodePath(directionResult);
    const routePath = new google.maps.Polyline({
        path: decodedPath,
        geodesic: true,
        strokeColor: directionColour,
        strokeOpacity: 1.0,
        strokeWeight: 5,
    });

    routePath.setMap(routeOptimizationMap);
}

function showAllMarkersWithRoutes(trips, type) {

    if (!trips) return;

    if (polylines && polylines.length > 0) {
        for (var pindex = 0; pindex < polylines.length; pindex++) {
            var polyline = polylines[pindex];
            polyline.setMap(null);
        }

    }
    polylines = [];
    if (tripMarkers && tripMarkers.length > 0) {
        for (var pindex = 0; pindex < tripMarkers.length; pindex++) {
            var marker = tripMarkers[pindex];
            marker.marker.setMap(null);
        }

    }
    tripMarkers = [];
    if (type == 1) {
        map = routeOptimizationMap;
    }
    for (var i = 0; i < trips.length; i++) {
        var trip = trips[i];
        if (trip.routeTrip.routePolyline) {
            generateMapRoute(trip.routeTrip.routePolyline, trip.tripColor, trip.tripOutLineColor, map);

        }
        generateMarkerForRoute(trip, map)

    }

}

function generateMapRoute(routePath, outlineColor, lineColor, tripMap) {
    if (!routePath) return;
    var decodedPath = google.maps.geometry.encoding.decodePath(routePath);

    var outline = new google.maps.Polyline({
        path: decodedPath,
        geodesic: true,
        strokeColor: 'black',
        strokeOpacity: 1.0,
        strokeWeight: 7
    });

    var line = new google.maps.Polyline({
        path: decodedPath,
        geodesic: true,
        strokeColor: lineColor,
        strokeOpacity: 1.0,
        strokeWeight: 5
    });


    outline.setMap(tripMap);
    line.setMap(tripMap);

    polylines.push(outline);
    polylines.push(line);

}

function generateMarkerForRoute(trip, tripMap) {

    var waypointColor = "#00cc00";
    var waypointTextColor = "#ffffff"

    var bounds = new google.maps.LatLngBounds();

    //debugger;
    if (trip.fromAddress && trip.fromAddress.isAddressValidated) {

        var location = new google.maps.LatLng(trip.fromAddress.latitudeStr, trip.fromAddress.longitudeStr);
        var startMarker = genereateMarker(tripMap, location, generateWareHouseIcon(waypointColor, waypointTextColor), "S", waypointTextColor, "");
        TripStartEndInfoWindow('Trip Start', tripMap, startMarker);
        var m = {
            marker: startMarker,
            selection: false,
            legId: null,
            isPickup: false
        }
        tripMarkers.push(m);

    }

    if (trip.endAddress && trip.endAddress.isAddressValidated) {
        var location = new google.maps.LatLng(trip.endAddress.latitudeStr, trip.endAddress.longitudeStr);
        var location2 = new google.maps.LatLng(trip.fromAddress.latitudeStr, trip.fromAddress.longitudeStr);
        if (location != location2) {
            var endMarker = genereateMarker(tripMap, location, generateWareHouseIcon(waypointColor, waypointTextColor), "E", waypointTextColor, "");
            TripStartEndInfoWindow('Trip End', tripMap, endMarker);
            var m = {
                marker: endMarker,
                selection: false,
                legId: null,
                isPickup: false
            }
            tripMarkers.push(m);
        }
    }


    if (trip.consignments) {
        for (var i = 0; i < trip.consignments.length; i++) {
            var content = trip.consignments[i];


            if (content.addressSource == 100) {
                this.addMarkersToMap(tripMap, content.leg.id, content.fromAddress.latitudeStr, content.fromAddress.longitudeStr, true, false, trip.tripColor, content.deliveryOrder, trip.tripOutLineColor);


            }
            else if (content.addressSource == 200) {
                this.addMarkersToMap(tripMap, content.leg.id, content.toAddress.latitudeStr, content.toAddress.longitudeStr, false, false, trip.tripColor, content.deliveryOrder, trip.tripOutLineColor);
            }
            else {
                this.addMarkersToMap(tripMap, content.leg.id, content.fromAddress.latitudeStr, content.fromAddress.longitudeStr, true, false, trip.tripColor, content.deliveryOrder, trip.tripOutLineColor);
                this.addMarkersToMap(tripMap, content.leg.id, content.toAddress.latitudeStr, content.toAddress.longitudeStr, false, false, trip.tripColor, content.deliveryOrder, trip.tripOutLineColor);

            }




        }
    }

}


function genereateMarker(tripMap, latlong, markerIcon, markerText, markerTextColor, title) {


    var marker = new google.maps.Marker({
        position: latlong,
        map: tripMap,
        icon: markerIcon,
        title: title,
        label: {
            text: `${markerText}`,
            color: `${markerTextColor}`,
            fontSize: '10px',

        }
    });

    return marker;
}

function addMarkersToMap(tripMap, legId, latStr, longStr, isPickup, selection, tripColor, deliveryOrder, outLineColor) {

    var location = new google.maps.LatLng(latStr, longStr);
    var title = legId.toString();
    var marker = genereateMarker(tripMap, location, generateRouteMarkerIcon(tripColor, '#FFFFFF'), deliveryOrder, outLineColor, title);
    var m = {
        marker: marker,
        selection: selection,
        legId: legId,
        isPickup: isPickup,
        tripColor: tripColor
    }

    marker.addListener('click', function (event) {
        var selectedMarker = tripMarkers.find(f => f.marker == marker);
        if (selectedMarker) {
            if (!event.domEvent.ctrlKey) {
                var alreadySelected = tripMarkers.filter(f => f.selection);
                if (alreadySelected && alreadySelected.length > 0) {
                    for (var i = 0; i < alreadySelected.length; i++) {
                        var mm = alreadySelected[i];
                        mm.selection = false;
                        mm.marker.setIcon(generateRouteMarkerIcon(mm.tripColor, '#FFFFFF'));

                    }
                }



            }
            selectedMarker.selection = true;
            selectedMarker.marker.setIcon(generateRouteMarkerIcon(selectedMarker.tripColor, '#0092ca'));

        }
        invokeSelectMarkers();

    });

    tripMarkers.push(m);
}


function generateWareHouseIcon(color, color2) {
    /*var svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path class="fa-secondary" opacity=".4" d="M512 488c0 13.3-10.7 24-24 24l-336 0c-13.3 0-24-10.7-24-24V432H512l0 56zm0-88H128V336H512v64zm0-96H128V224H512l0 80z"/><path class="fa-primary" d="M0 171.3V488c0 13.3 10.7 24 24 24H72c13.3 0 24-10.7 24-24V224c0-17.7 14.3-32 32-32H512c17.7 0 32 14.3 32 32V488c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V171.3c0-26.2-15.9-49.7-40.2-59.4L331.9 4.8c-7.6-3.1-16.1-3.1-23.8 0L40.2 111.9C15.9 121.6 0 145.2 0 171.3z"/></svg>`;

    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg),
        anchor: new google.maps.Point(
            20, 37
        ),
        scaledSize: new google.maps.Size(40,40)
    }
    return icon;
    */
    return generateMainMarkerIcon(color, color2);
}

function generateRouteMarkerIcon(color, color2) {
    var svg = '';
    //if (isDelivery) {

    svg = `<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
                 width="323.000000pt" height="438.000000pt" viewBox="0 0 323.000000 438.000000"
                 preserveAspectRatio="xMidYMid meet">
                <metadata>
                Created by Asela for APX Systems
                </metadata>

                <g transform="translate(0.000000,438.000000) scale(0.100000,-0.100000)"
                 stroke="none">
                <path fill="${color}" d="M1445 4294 c-385 -56 -664 -191 -915 -443 -262 -263 -405 -571 -441
                -951 -18 -190 9 -427 71 -610 63 -185 112 -265 767 -1235 461 -684 644 -947
                661 -951 12 -4 32 -4 45 0 29 7 1272 1847 1342 1985 126 252 182 552 155 826
                -67 675 -546 1210 -1212 1356 -90 19 -395 34 -473 23z m365 -470 c218 -41 426
                -156 579 -320 404 -431 383 -1100 -47 -1506 -417 -393 -1051 -391 -1468 4
                -127 121 -216 259 -273 422 -212 605 160 1262 789 1396 110 24 308 26 420 4z"/>

                <path fill="${color2}" d="M1410 3776 c-321 -67 -582 -274 -721 -571 -70 -150 -83 -214 -83
                -425 0 -159 3 -196 22 -263 79 -285 273 -519 537 -647 161 -79 237 -95 445
                -95 208 0 284 16 445 95 215 104 373 265 476 485 70 150 83 214 83 425 0 159
                -3 196 -22 263 -96 347 -372 623 -717 717 -102 28 -363 37 -465 16z"/>
                </g>
                </svg>`;


    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg),
        anchor: new google.maps.Point(
            20, 40
        ),
        scaledSize: new google.maps.Size(40, 40),
        labelOrigin: new google.maps.Point(20, 15)
    }

    return icon;
}


function selectMarkers(bounds) {
    if (this.tripMarkers && this.tripMarkers.length > 0) {
        for (var i = 0; i < this.tripMarkers.length; i++) {
            var m = this.tripMarkers[i];
            m.selection = false;
            if (bounds.contains(m.marker.getPosition())) {
                m.selection = true;
                m.marker.setIcon(generateRouteMarkerIcon(m.tripColor, '#0092ca'));
            }
            else {
                m.marker.setIcon(generateRouteMarkerIcon(m.tripColor, '#FFFFFF'));
            }
        }
        invokeSelectMarkers();

    }
}

function invokeSelectMarkers() {
    var selected = this.tripMarkers.filter(f => f.selection).map(m => m.legId);
    currentPage.invokeMethodAsync('SetConsignmentSelectionOnMap', selected);

}

function clearTripMarker() {
    if (tripMarkers && tripMarkers.length > 0) {
        for (var pindex = 0; pindex < tripMarkers.length; pindex++) {
            var marker = tripMarkers[pindex];
            marker.marker.setMap(null);
        }

    }
    tripMarkers = [];
    if (polylines && polylines.length > 0) {
        for (var pindex = 0; pindex < polylines.length; pindex++) {
            var polyline = polylines[pindex];
            polyline.setMap(null);
        }
    }
    polylines = [];
}

var zJindex = 100;
var hasMultipleTrip = false;
function generateMapContent(content, tripMap) {
    try {
        //initializeTripMap(tripMap)
        console.log("GenerateMap clickeddd", tripMap);
        if (tripMarkers && tripMarkers.length > 0) {
            for (var pindex = 0; pindex < tripMarkers.length; pindex++) {
                var marker = tripMarkers[pindex];
                marker.marker.setMap(null);
            }

        }
        tripMarkers = [];
        var t = this.tripMaps.find(f => f.id == tripMap);
        if (t) {
            if (t.markers && t.markers.length > 0) {
                for (var i = 0; i < t.markers.length; i++) {
                    var m = t.markers[i];
                    m.setMap(null);
                }
                t.markers = [];
            }

            if (t.polyLines) {
                for (var i = 0; i < t.polyLines.length; i++) {

                    var p = t.polyLines[i];

                    p.polyline.setMap(null);
                    p.polyline2.setMap(null);

                }
                t.polyLines = [];

            }
        }
        else {
            return;
        }
        if (!content) return;

        if (content.trips && content.trips.length > 0) {
            hasMultipleTrip = content.trips.length > 1;
            for (var i = 0; i < content.trips.length; i++) {
                var trip = content.trips[i];
                generateTripContent(trip, t);
            }

        }

        if (content.unAssignConsignments) {
            console.log('UnAssign Marker', content.unAssignConsignments);
            for (var i = 0; i < content.unAssignConsignments.length; i++) {
                var consignment = content.unAssignConsignments[i];
                generateConsigmentMarkers(consignment, t, content.reference);

              

            }

        }

    } catch (error) {
        console.log(error.message);
    }



}

function resetMarkersWithPolyline(mapName) {
    try {
        
        var t = this.tripMaps.find(f => f.id == mapName);
        if (t) {
            if (t.markers && t.markers.length > 0) {
                for (var i = 0; i < t.markers.length; i++) {
                    var m = t.markers[i];
                    m.setMap(null);
                }
                t.markers = [];

                if (t.polyLines) {

                    for (var i = 0; i < t.polyLines.length; i++)
                    {
                        var p = t.polyLines[i];
                        p.polyline.setMap(null);
                        p.polyline2.setMap(null);
                    }                                    
                    
                }
                t.polyLines = [];
            }
        }
        else {
            return;
        }

    } catch (error) {
        console.log(error.message);
    }

}
function generateTripContent(trip, t) {
    var combinedStartEnd = false;
    if (!trip.tripStops) return;
    var endIndex = trip.tripStops.length - 1;

    if (trip.tripStops[0].address && trip.tripStops[endIndex].address &&  endIndex > 0 && trip.tripStops[0].address.latitude == trip.tripStops[endIndex].address.latitude && trip.tripStops[0].address.longitude == trip.tripStops[endIndex].address.longitude) {
        combinedStartEnd = true;
    }
    for (var i = 0; i < trip.tripStops.length; i++) {
        var stop = trip.tripStops[i];
        if (!stop.address) continue;
        if (combinedStartEnd && i == endIndex) {
            continue;
        }
        var markerText = stop.tripStop.routeStepIndex;
        stop.tripName = trip.routeTrip.name;
        var ct = stopMarkerInfromationPanel(stop, true, trip.routeTrip.tripCode);
        if (combinedStartEnd && i == 0) {
            ct = stopMarkerInfromationPanelMultipleStops(stop, trip.tripStops[endIndex], trip.routeTrip.tripCode);
            markerText = 'S|E';
        }
        else if (i == 0) {
            markerText = 'S';
        }
        else if (i == endIndex)
        {
            markerText = 'E'
        }

        var m = generateStopMarker(stop, t.map, trip.tripColor, markerText);
        SetTripWindow(t.map, m,ct,t);
        t.markers.push(m);       
    }
    generateRoutePolyLine(trip.routeTrip.routePolyline, t, trip.tripOutLineColor, trip.tripColor,trip.routeTrip.tripIdStr);
}

function bringToFront(t) {
    //zJindex++;
    //if (t.markers) {
    //    for (var i = 0; i < t.markers.length; i++) {
    //        var m = t.markers[i];
    //        m.setZIndex(zJindex);
    //    }

    //}
    //if (t.polyLines) {
    //    for (var i = 0; i < t.polyLines.length; i++) {
    //        var m = t.polyLines[i];
    //        //m.polyline.setZIndex(zJindex);
    //        //m.polyline2.setZIndex(zJindex);
    //    }
    //}
}

function generateStopMarker(stop, map, color,markerText) {
    try {
        var posi = new google.maps.LatLng(stop.address.latitudeStr, stop.address.longitudeStr);
        var marker = new google.maps.Marker({
            position: posi,
            map: map,
            icon: stopMarker(color),
            label: {
                text: `${markerText}`,
                color: `${color}`,
                fontSize: '10px',

            }

        });

        return marker;

    } catch (error) {

        console.log(error.message);
    }


}
function freezeMapGestures(map, freeze) {
    if (!map) return;
    if (freeze) {
        map.__prevGestureHandling = map.get('gestureHandling') || 'auto';
        map.setOptions({ gestureHandling: 'none' }); // disables pan/zoom gestures
    } else {
        map.setOptions({ gestureHandling: map.__prevGestureHandling || 'auto' });
    }
}


function buildDraggableMarkerEl(consignment, labelText, hexColor, map, reference) {
    const el = document.createElement('div');
    el.className = 'draggable-with-data consignment-marker';
    el.draggable = true;
    el.id = `mk-${consignment.id}-${labelText.replace(/\s+/g, '-')}`;
    el.setAttribute('data-id', `it:${reference}:notrip:${consignment.legId.toString()}`);

    el.innerHTML = `
    <div class="cons-marker-dot" style="background:${hexColor}"></div>
    <div class="cons-marker-label">${labelText}</div>
  `;

    // Block the map from seeing the initial pointer down
    const down = (e) => { e.stopPropagation(); freezeMapGestures(map, true); };
    const up = (e) => { e.stopPropagation(); freezeMapGestures(map, false); };

    el.addEventListener('mousedown', down);
    el.addEventListener('mouseup', up);
    el.addEventListener('mouseleave', up);      // safety if pointer leaves element
    el.addEventListener('pointerdown', down);
    el.addEventListener('pointerup', up);

    // Touch (prevent map pan on touch devices during drag emulation)
    el.addEventListener('touchstart', (e) => { e.stopPropagation(); freezeMapGestures(map, true); }, { passive: false });
    el.addEventListener('touchend', (e) => { e.stopPropagation(); freezeMapGestures(map, false); }, { passive: false });

    // HTML5 drag lifecycle (desktop browsers)
    el.addEventListener('dragstart', (e) => {
        const data = el.getAttribute('data-id');
        window.currentDragData = data;
        try { e.dataTransfer.setData('text/plain', data); } catch { }
        freezeMapGestures(map, true);
        el.classList.add('dragging');
    });

    el.addEventListener('dragend', () => {
        window.currentDragData = null;
        freezeMapGestures(map, false);
        el.classList.remove('dragging');
    });

    return el;
}
function addDraggableAdvancedMarker(map, position, contentEl) {
    return new google.maps.marker.AdvancedMarkerElement({
        map,
        position,
        content: contentEl,
        // Keep map-dragging behavior independent from HTML5 DnD:
        gmpDraggable: false
    });
}


function generateConsigmentMarkers(consigment,tripMap,referece) {
    try {
        if (consigment.fromAddress) {
            var posi = new google.maps.LatLng(consigment.fromAddress.latitudeStr, consigment.fromAddress.longitudeStr);
            const el = buildDraggableMarkerEl(consigment, 'Pickup', '#0C0B4F', tripMap.map, referece);
            const marker = addDraggableAdvancedMarker(tripMap.map, posi, el);
            generateConsigmentMarkerInfoWindow(consigment, 'Pickup Location', tripMap.map, marker);
            tripMap.markers.push(marker);
        }

        if (consigment.toAddress) {
            const el = buildDraggableMarkerEl(consigment, 'Delivery', '#0B4F2A', tripMap.map, referece);
            const marker = addDraggableAdvancedMarker(tripMap.map, posi, el);
            generateConsigmentMarkerInfoWindow(consigment, 'Delivery Location', tripMap.map, marker);
            tripMap.markers.push(marker);
            
        }
       

        

    } catch (error) {

        console.log(error.message);
    }
}
function generateConsigmentMarkerInfoWindow(consignment,text,map, marker) {
    var infoContent = `
          <div style="
                font-family: Arial, sans-serif;
                background: linear-gradient(135deg, #145EA8, #0d3b73);
                color: white;
                border-radius: 8px;
                padding: 12px 16px;
                box-shadow: 0 2px 6px rgba(0,0,0,0.15);
                font-size: 14px;
                display: flex;
                flex-direction: column;
                max-width: 280px;
            ">
                <div style="font-size: 12px; opacity: 0.85; letter-spacing: 0.5px;">
                    ${text.toUpperCase()}
                </div>
                <div style="font-weight: bold; font-size: 16px; margin-top: 4px;">
                    ${consignment.senderOrderNumber}
                </div>
            </div>
            `;

    var infoWindow = new google.maps.InfoWindow({
        content: infoContent
    });

    marker.addListener('click', function () {
        infoWindow.open(map, marker);
    });

}



function stopMarker(color) {

    var content = `<svg width="241" height="326" viewBox="0 0 241 326" fill="none" xmlns="http://www.w3.org/2000/svg">
                        <path d="M104.606 40.0037L104.607 40.0034C108.694 39.1761 115.907 38.9458 123.076 39.1885C130.245 39.4313 137.456 40.15 141.541 41.2523C168.941 48.593 190.862 70.1442 198.489 97.2465C200.009 102.52 200.244 105.455 200.244 117.797C200.244 125.989 199.989 131.367 199.031 136.163C198.072 140.967 196.414 145.163 193.645 150.997L193.644 150.998C185.465 168.175 172.911 180.755 155.836 188.876C149.467 191.949 144.748 193.812 139.55 194.901C134.357 195.989 128.71 196.299 120.493 196.299C112.276 196.299 106.63 195.989 101.436 194.901C96.2384 193.812 91.5198 191.949 85.1509 188.876C64.1832 178.88 48.7731 160.604 42.4978 138.347C40.9771 133.073 40.7421 130.138 40.7421 117.797C40.7421 109.605 40.9979 104.227 41.9555 99.4306C42.9147 94.6267 44.573 90.4309 47.342 84.5966L47.3422 84.5961C58.3825 61.4014 79.1157 45.2349 104.606 40.0037Z" fill="white" stroke="black"/>
                        <path d="M35.5946 35.0284L35.2433 34.6726L35.5946 35.0285C14.9985 55.357 3.76114 79.1524 0.930482 108.531C-0.48354 123.207 1.63942 141.53 6.50993 155.665C11.4545 169.942 15.2673 176.079 66.9929 251.398L66.9931 251.398C85.1877 277.942 97.8945 296.315 106.22 308.089C110.383 313.977 113.448 318.211 115.554 320.991C116.608 322.382 117.417 323.403 118.002 324.083C118.294 324.423 118.524 324.67 118.695 324.833C118.78 324.915 118.844 324.968 118.887 324.999C118.898 325.007 118.906 325.013 118.912 325.016L118.913 325.017C119.319 325.15 119.894 325.225 120.503 325.225C121.087 325.225 121.664 325.156 122.11 325.029C122.119 325.021 122.13 325.012 122.144 324.999C122.209 324.937 122.302 324.84 122.424 324.701C122.667 324.426 123.001 324.018 123.422 323.481C124.262 322.409 125.433 320.847 126.888 318.86C129.798 314.886 133.838 309.224 138.641 302.408C148.246 288.778 160.897 270.543 173.649 251.99C186.402 233.436 199.255 214.565 209.265 199.664C214.27 192.213 218.563 185.756 221.777 180.828C224.999 175.889 227.119 172.512 227.796 171.2C237.698 151.725 242.099 128.538 239.978 107.369C234.712 55.2027 197.066 13.851 144.7 2.56357C141.19 1.83563 133.436 1.17722 125.758 0.808502C118.074 0.439423 110.565 0.365662 107.54 0.784637C77.2443 5.11749 55.3233 15.5528 35.5946 35.0284ZM122.086 325.049C122.086 325.049 122.087 325.048 122.087 325.048C122.08 325.052 122.079 325.054 122.086 325.049ZM178.615 178.858L178.614 178.858C145.505 209.539 95.163 209.382 62.0563 178.547L62.0553 178.546C51.9731 169.101 44.9031 158.322 40.3766 145.595C23.5374 98.3437 53.0884 47.0509 103.023 36.5898C111.772 34.7129 127.468 34.5571 136.374 36.277C153.685 39.4788 170.197 48.4557 182.346 61.2596C214.429 94.9138 212.76 147.157 178.615 178.858Z" fill="${color}" stroke="white"  stroke-width="8"/>
                  </svg>
                    `;
    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(content),
        anchor: new google.maps.Point(
            20, 40
        ),
        scaledSize: new google.maps.Size(40, 40),
        labelOrigin: new google.maps.Point(20, 15)
    }

    return icon;

}

function consignmentMarker(color) {

    var content = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
    <path d="M12 2C7.58 2 4 5.58 4 10c0 5.25 8 12 8 12s8-6.75 8-12c0-4.42-3.58-8-8-8z"
          fill="${color}" stroke="white" stroke-width="1"/>
   
         </svg>
                    `;
    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(content),
        anchor: new google.maps.Point(
            20, 40
        ),
        scaledSize: new google.maps.Size(40, 40),
        labelOrigin: new google.maps.Point(20, 15)
    }

    return icon;

}

function generateRoutePolyLine(directionResult, t, outLineColor, color, tripId) {
    try {
        if (directionResult) {
            var decodedPath = google.maps.geometry.encoding.decodePath(directionResult);

            // 1. Define the arrow symbol
            var lineSymbol = {
                path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
                scale: 1,
                strokeColor: '#FFFFFF', // White arrows usually look best on colored lines
                fillOpacity: 1
            };

            var polyline = new google.maps.Polyline({
                path: decodedPath,
                geodesic: true,
                strokeColor: 'black',
                strokeOpacity: 1.0,
                strokeWeight: 9
            });

            var polyline2 = new google.maps.Polyline({
                path: decodedPath,
                geodesic: true,
                strokeColor: color,
                strokeOpacity: 1.0,
                strokeWeight: 7,
                // 2. Add the icons property here
                icons: [{
                    icon: lineSymbol,
                    offset: '100px', // Start point of first arrow
                    repeat: '100px'  // How often the arrow repeats
                }]
            });

            polyline.setMap(t.map);
            polyline2.setMap(t.map);

            if (t.polyLines) {
                var p = t.polyLines.find(f => f.id == tripId);
                if (p) {
                    p.polyline.setMap(null);
                    p.polyline2.setMap(null);
                    p.polyline = polyline;
                    p.polyline2 = polyline2;
                } else {
                    t.polyLines.push({ id: tripId, polyline: polyline, polyline2: polyline2 });
                }
            } else {
                t.polyLines = [{ id: tripId, polyline: polyline, polyline2: polyline2 }];
            }

            var bounds = new google.maps.LatLngBounds();
            for (var i = 0; i < decodedPath.length; i++) {
                bounds.extend(decodedPath[i]);
            }
            t.map.fitBounds(bounds);
        } else {
            var p = t.polyLines.find(f => f.id == tripId);
            if (p) {
                p.polyline.setMap(null);
                p.polyline2.setMap(null);
            }
        }
    } catch (error) {
        console.error(error.message);
        return { Distance: 0, Duration: 0, MapsRequestError: 'DirectionFailed' };
    }
}

function stopMarkerInfromationPanel(stop,showTitle,tripName) {
    //if (group.taskType == 0 || group.taskType == 1 || group.taskType == 5 || group.taskType == 6) continue;
    //var type = taskTypes.find(f => f.id == group.taskType);
    var groups = stop.taskGroups.filter(s => s.taskType == 0 || s.taskType == 1 || s.taskType == 5 || s.taskType == 6);
    var headerTypes = '';
    if (groups.length > 0) {
        for (var i = 0; i < groups.length; i++) {
            var group = groups[i].taskType;
            if (i > 0) {
                headerTypes += ', ';
            }
                
            headerTypes += taskTypes[group].name;
            
        } 
    }

    var titleText = ``;
    if (showTitle) {
        var tripNameText = '';
        if (hasMultipleTrip) {
            tripNameText = `<span style="margin-left:auto;">${tripName}</span>`;
        }

        titleText = `
<div style="background-color: #145EA8; color: white; padding: 6px; 
            border-top-left-radius: 8px; border-top-right-radius: 8px; 
            font-weight: bold; display: flex; justify-content: space-between; 
            align-items: center; padding-left: 10px; padding-right: 10px;">
    <span> ${tripName}  -  ${stop.tripStop.name}</span> 

</div>`;
    }
    
    var content = `<div style="width:400px; font-size:12px; color:#145EA8; margin:10px 0;">
  ${titleText}

  <!-- Sub-header: Stop Index + EST/ACT (same line) -->
  <div style="display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:8px; color:#00008B;">
    
    <div style="font-weight:600; font-size:12px; white-space:nowrap;">
      Stop Index: ${stop.tripStop.routeStepIndex}
    </div>

    <div style="text-align:right; font-size:10px; white-space:nowrap;">
      ${(stop.tripStop.estimatedTimeOfArrivalText?.trim() || stop.tripStop.estimatedTimeOfDepartureText?.trim())
            ? `EST: ${stop.tripStop.estimatedTimeOfArrivalText ?? ""}${stop.tripStop.estimatedTimeOfDepartureText?.trim()
                ? ` - ${stop.tripStop.estimatedTimeOfDepartureText}`
                : ""
            }`
            : ""
        }
      ${((stop.tripStop.estimatedTimeOfArrivalText?.trim() || stop.tripStop.estimatedTimeOfDepartureText?.trim()) &&
            (stop.tripStop.actualTimeOfArrivalText?.trim() || stop.tripStop.actualTimeOfDepartureText?.trim()))
            ? ` | `
            : ""
        }
      ${(stop.tripStop.actualTimeOfArrivalText?.trim() || stop.tripStop.actualTimeOfDepartureText?.trim())
            ? `ACT: ${stop.tripStop.actualTimeOfArrivalText ?? ""}${stop.tripStop.actualTimeOfDepartureText?.trim()
                ? ` - ${stop.tripStop.actualTimeOfDepartureText}`
                : ""
            }`
            : ""
      }
    </div>

  </div>
</div>

`;

    if (stop.taskGroups && stop.taskGroups.length > 0) {
        

        for (var i = 0; i < stop.taskGroups.length; i++) {
            var group = stop.taskGroups[i];
            var groupContent = stopMarkerinformationPanelSubGroup(group);
            if (groupContent)
            {
                content += groupContent;
                content +="<br/>"
            }


        }
    }
    content += `</div>`

    return content;
}



function stopMarkerInfromationPanelMultipleStops(stop, stop2,tripName) {
  

    var content = stopMarkerInfromationPanel(stop, true, tripName);
    content +=`<hr style="margin-top:20px">`
    content += stopMarkerInfromationPanel(stop2, false, tripName);

    return content;
}

function stopMarkerinformationPanelSubGroup(group) {
  
    var type = taskTypes.find(f => f.id == group.taskType);

    var content = ` 
                <tr style="height: 15px;">
                    <td colspan="2" style="color: darkblue; font-weight: bold; font-size: 12px; height: 15px; width: 460px;">${(type ? type.name : '')}</td>
                </tr>
               
                
          `;
    if (group.taskType == 0 || group.taskType == 1 || group.taskType == 5 || group.taskType == 6) { return content; }
    content += generateTasks(group.tasks);
    return content;


}

function generateTasks(tasks) {
    var content = ``;
    if (tasks && tasks.length > 0) {
        for (var i = 0; i < tasks.length; i++) {
            var task = tasks[i];
            if (!task.consignment) { continue; }
            content += ` <tr style="height: 15px;">
                                <td colspan="2">
                                    <div style="border: 1px solid; border-radius: 3px; border-color: darkblue; margin: 2px;">
                                        <table style="height: 13px; width: 100%;">
                                            <tbody>
                                                <tr style="height: 13px;">
                                                    <td style="width: 40%; font-size: 10px; height: 13px;"> ${(task.consignment.senderOrderNumber?.trim()
                    ? task.consignment.senderOrderNumber
                    : task.consignment.consignmentNumber)}</td>
                                                    <td style="width: 20%; font-size: 10px; height: 13px;">${(task.consignment.weight ?? 0)} Kg</td>
                                                    <td style="width: 20%; font-size: 10px; text-align: center; height: 13px;">${(task.consignment.volume ?? 0)}</td>
                                                    <td style="width: 20%; font-size: 10px; text-align: right; height: 13px;">Packages : ${task.consignment.itemCount}</td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </div>
                                </td>
                            </tr>
                            
                        `;
        }

    }


    return content;


}


function generateRouteMapContent(content, tripMap) {
    try {
        //initializeTripMap(tripMap)

        if (tripMarkers && tripMarkers.length > 0) {
            for (var pindex = 0; pindex < tripMarkers.length; pindex++) {
                var marker = tripMarkers[pindex];
                marker.marker.setMap(null);
            }

        }
        tripMarkers = [];
        var t = this.tripMaps.find(f => f.id == tripMap);
        if (t) {
            if (t.markers && t.markers.length > 0) {
                for (var i = 0; i < t.markers.length; i++) {
                    var m = t.markers[i];
                    m.setMap(null);
                }
                t.markers = [];
            }
        }
        else {
            return;
        }
        if (!content) return;
        generateRouteContent(content, t);

        //if (content.trips && content.trips.length > 0) {
        //    for (var i = 0; i < content.trips.length; i++) {
        //        var trip = content.trips[i];
                
        //    }

        //}

    } catch (error) {
        console.log(error.message);
    }

}
function generateRouteContent(trip, t) {
    var combinedStartEnd = false;
    if (!trip.scheduleStops) return;
    var endIndex = trip.scheduleStops.length - 1;
    if (endIndex > 0 && trip.scheduleStops[0].address.latitudeStr == trip.scheduleStops[endIndex].address.latitudeStr && trip.scheduleStops[0].address.longitudeStr == trip.scheduleStops[endIndex].address.longitudeStr) {
        combinedStartEnd = true;
    }
    for (var i = 0; i < trip.scheduleStops.length; i++) {
        var stop = trip.scheduleStops[i];
        if (combinedStartEnd && i == endIndex) {
            continue;
        }
        var markerText = stop.routeScheduleStop.routeStepIndex;
        //var ct = stopMarkerInfromationPanel(stop, true);
        var ct = null;
        if (combinedStartEnd && i == 0) {
           // ct = stopMarkerInfromationPanelMultipleStops(stop, trip.scheduleStops[endIndex]);
            markerText = 'S|E';
        }
        else if (i == 0) {
            markerText = 'S';
        }
        else if (i == endIndex) {
            markerText = 'E'
        }

        var m = generateStopMarker(stop, t.map, trip.tripColor, markerText);
        //SetTripWindow(t, m, ct, t);
        createRouteInfoWindow(stop, t.map, m)
        t.markers.push(m);
    }
    generateRoutePolyLine1(trip.routeSchedule.routePolyline, t, trip.tripOutLineColor, trip.tripColor, trip.routeSchedule.routeScheduleIdStr);
}
function generateRoutePolyLine1(directionResult, t, outLineColor, color, tripId) {
    try {
        if (directionResult) {
            var decodedPath = google.maps.geometry.encoding.decodePath(directionResult);
            var polyline = new google.maps.Polyline({
                path: decodedPath,
                geodesic: true,
                strokeColor: outLineColor,
                strokeOpacity: 1.0,
                strokeWeight: 5
            });

            var polyline2 = new google.maps.Polyline({
                path: decodedPath,
                geodesic: true,
                strokeColor: color,
                strokeOpacity: 1.0,
                strokeWeight: 3
            });
            polyline.setMap(t.map);
            polyline2.setMap(t.map);

            if (t.polyLines) {
                var p = t.polyLines.find(f => f.id == tripId);
                if (p) {
                    p.polyline.setMap(null);
                    p.polyline2.setMap(null);

                    p.polyline = polyline;
                    p.polyline2 = polyline2;
                }
                else {
                    t.polyLines.push({
                        id: tripId,
                        polyline: polyline,
                        polyline2: polyline2

                    });
                }
            }
            else {
                t.polyLines = [];
                t.polyLines.push({
                    id: tripId,
                    polyline: polyline,
                    polyline2: polyline2
                });
            }

            // Fit the map to the bounds of the decoded path
            var bounds = new google.maps.LatLngBounds();
            for (var i = 0; i < decodedPath.length; i++) {
                bounds.extend(decodedPath[i]);
            }
            t.map.fitBounds(bounds);
        }

    } catch (error) {
        console.log(error.message);
        var result = { Distance: 0, Duration: 0, MapsRequestError: 'DirectionFailed' }

        return result;
    }
}

function createRouteInfoWindow(content, tripMap, marker) {
    const infowindow = new google.maps.InfoWindow({
        content: `<table border = "0">
            <tbody>
                 <tr style="margin-top:5px">
                    <td  style="color: darkblue; font-size:smaller; font-weight: Bold;">Location :</td>
                    <td  style="color: darkblue; font-size:smaller; font-weight: Bold;">${content.address.fullAddress}</td>
       
                </tr> 
               
           </tbody>
           </table>`
        ,
        //ariaLabel: title,
    });
    marker.addListener("mouseover", () => {

        infowindow.open({
            anchor: marker,
            tripMap,
        });
    });
    marker.addListener("mouseout", () => {
        infowindow.close();
    });
}

function InitializeTrakingMap(trackingMap) {

    var a = document.getElementById(trackingMap);
    if (!a) return;
    var options = {
        center: new google.maps.LatLng(defaultLat, defaultLan),
        zoom: zoomLevel,
        zoomControl: true,
        disableDefaultUI: true,
        fullscreenControl: true,
        cameraControl: true,
        mapTypeControl: true,
        scaleControl: true,
        streetViewControl: true,
        rotateControl: true,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var t = {
        id: trackingMap,
        map: new google.maps.Map(document.getElementById(trackingMap), options),
        directionsService: new google.maps.DirectionsService,
        directionsDisplay: new google.maps.DirectionsRenderer,
        markers: []
    };

    this.tripMaps = this.tripMaps.filter(f => f.id != t.id);
    tripMaps.push(t);

}
function CreateTrackingMarker(lat, long,mid) {

    var position = new google.maps.LatLng(lat, long);
    var t = this.tripMaps.find(f => f.id == mid);
   
    var position = new google.maps.LatLng(lat, long);
    var marker = new google.maps.Marker({
        position: position,
        map: t.map,
        animation: google.maps.Animation.DROP,
        
    });
    t.map.setCenter(position);
      
}


/// new Changes after clusted








var STATUS_COLORS2 = { 'On time': '#34d399', 'Delayed': '#ef4444', 'At stop': '#a78bfa', 'En route': '#4f8ef7' };
console.log("AAAAAA222");

// ── SVG marker icons ───────────────────────────────────────────────────────
function svgurl(../svg) {
    return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg);
}

function vehicleIcon(heading, selectionColor, vehicleColor) {
    var svg = ``;
    if (!selectionColor) {
        selectionColor = '#898989';
    }

    if (!vehicleColor) {

        vehicleColor = "#666464"

    }

    var rotation = `transform = "rotate(${heading})"`;
    svg = `<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" ${rotation} version="1.1" width="66px" height="66px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:0.73" fill="${selectionColor}" d="M 27.5,8.5 C 42.6829,7.19605 52.1829,13.8627 56,28.5C 57.2373,43.2022 50.7373,52.3688 36.5,56C 22.3863,57.1928 13.2196,51.0261 9,37.5C 7.37262,22.6649 13.5393,12.9983 27.5,8.5 Z"/></g>
<g><path style="opacity:1" fill="${vehicleColor}" d="M 37.5,19.5 C 37.6495,20.552 37.4828,21.552 37,22.5C 34.3333,21.1667 31.6667,21.1667 29,22.5C 28.5172,21.552 28.3505,20.552 28.5,19.5C 31.5,18.1667 34.5,18.1667 37.5,19.5 Z"/></g>
<g><path style="opacity:0.843" fill="white" d="M 28.5,19.5 C 28.3505,20.552 28.5172,21.552 29,22.5C 31.6667,21.1667 34.3333,21.1667 37,22.5C 37.4828,21.552 37.6495,20.552 37.5,19.5C 38.2485,20.531 38.9152,21.6976 39.5,23C 38.5939,24.6995 38.2606,26.5328 38.5,28.5C 38.1667,28.5 37.8333,28.5 37.5,28.5C 36.962,26.8828 36.6287,25.2161 36.5,23.5C 34.1667,23.5 31.8333,23.5 29.5,23.5C 29.3713,25.2161 29.038,26.8828 28.5,28.5C 28.1667,28.5 27.8333,28.5 27.5,28.5C 27.19,25.2869 27.5233,22.2869 28.5,19.5 Z"/></g>
<g><path style="opacity:1" fill="white" d="M 37.5,28.5 C 37.1667,28.5 36.8333,28.5 36.5,28.5C 34.1667,28.5 31.8333,28.5 29.5,28.5C 29.1667,28.5 28.8333,28.5 28.5,28.5C 29.038,26.8828 29.3713,25.2161 29.5,23.5C 31.8333,23.5 34.1667,23.5 36.5,23.5C 36.6287,25.2161 36.962,26.8828 37.5,28.5 Z"/></g>
<g><path style="opacity:1" fill="white" d="M 27.5,28.5 C 27.8333,28.5 28.1667,28.5 28.5,28.5C 28.8333,28.5 29.1667,28.5 29.5,28.5C 29.5,34.5 29.5,40.5 29.5,46.5C 31.8333,46.5 34.1667,46.5 36.5,46.5C 36.5,40.5 36.5,34.5 36.5,28.5C 36.8333,28.5 37.1667,28.5 37.5,28.5C 37.8333,28.5 38.1667,28.5 38.5,28.5C 38.5,34.8333 38.5,41.1667 38.5,47.5C 34.8333,47.5 31.1667,47.5 27.5,47.5C 27.5,41.1667 27.5,34.8333 27.5,28.5 Z"/></g>
<g><path style="opacity:1" fill="${vehicleColor}" d="M 29.5,28.5 C 31.8333,28.5 34.1667,28.5 36.5,28.5C 36.5,34.5 36.5,40.5 36.5,46.5C 34.1667,46.5 31.8333,46.5 29.5,46.5C 29.5,40.5 29.5,34.5 29.5,28.5 Z"/></g>
</svg>`;




    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg),
        anchor: new google.maps.Point(
            46, 37
        ),
        scaledSize: new google.maps.Size(70, 70),
        labelOrigin: new google.maps.Point(45, 15)
    }

    return icon;
}

function stopIcon(color) {
    var content = `<svg width="241" height="326" viewBox="0 0 241 326" fill="none" xmlns="http://www.w3.org/2000/svg">
                        <path d="M104.606 40.0037L104.607 40.0034C108.694 39.1761 115.907 38.9458 123.076 39.1885C130.245 39.4313 137.456 40.15 141.541 41.2523C168.941 48.593 190.862 70.1442 198.489 97.2465C200.009 102.52 200.244 105.455 200.244 117.797C200.244 125.989 199.989 131.367 199.031 136.163C198.072 140.967 196.414 145.163 193.645 150.997L193.644 150.998C185.465 168.175 172.911 180.755 155.836 188.876C149.467 191.949 144.748 193.812 139.55 194.901C134.357 195.989 128.71 196.299 120.493 196.299C112.276 196.299 106.63 195.989 101.436 194.901C96.2384 193.812 91.5198 191.949 85.1509 188.876C64.1832 178.88 48.7731 160.604 42.4978 138.347C40.9771 133.073 40.7421 130.138 40.7421 117.797C40.7421 109.605 40.9979 104.227 41.9555 99.4306C42.9147 94.6267 44.573 90.4309 47.342 84.5966L47.3422 84.5961C58.3825 61.4014 79.1157 45.2349 104.606 40.0037Z" fill="white" stroke="black"/>
                        <path d="M35.5946 35.0284L35.2433 34.6726L35.5946 35.0285C14.9985 55.357 3.76114 79.1524 0.930482 108.531C-0.48354 123.207 1.63942 141.53 6.50993 155.665C11.4545 169.942 15.2673 176.079 66.9929 251.398L66.9931 251.398C85.1877 277.942 97.8945 296.315 106.22 308.089C110.383 313.977 113.448 318.211 115.554 320.991C116.608 322.382 117.417 323.403 118.002 324.083C118.294 324.423 118.524 324.67 118.695 324.833C118.78 324.915 118.844 324.968 118.887 324.999C118.898 325.007 118.906 325.013 118.912 325.016L118.913 325.017C119.319 325.15 119.894 325.225 120.503 325.225C121.087 325.225 121.664 325.156 122.11 325.029C122.119 325.021 122.13 325.012 122.144 324.999C122.209 324.937 122.302 324.84 122.424 324.701C122.667 324.426 123.001 324.018 123.422 323.481C124.262 322.409 125.433 320.847 126.888 318.86C129.798 314.886 133.838 309.224 138.641 302.408C148.246 288.778 160.897 270.543 173.649 251.99C186.402 233.436 199.255 214.565 209.265 199.664C214.27 192.213 218.563 185.756 221.777 180.828C224.999 175.889 227.119 172.512 227.796 171.2C237.698 151.725 242.099 128.538 239.978 107.369C234.712 55.2027 197.066 13.851 144.7 2.56357C141.19 1.83563 133.436 1.17722 125.758 0.808502C118.074 0.439423 110.565 0.365662 107.54 0.784637C77.2443 5.11749 55.3233 15.5528 35.5946 35.0284ZM122.086 325.049C122.086 325.049 122.087 325.048 122.087 325.048C122.08 325.052 122.079 325.054 122.086 325.049ZM178.615 178.858L178.614 178.858C145.505 209.539 95.163 209.382 62.0563 178.547L62.0553 178.546C51.9731 169.101 44.9031 158.322 40.3766 145.595C23.5374 98.3437 53.0884 47.0509 103.023 36.5898C111.772 34.7129 127.468 34.5571 136.374 36.277C153.685 39.4788 170.197 48.4557 182.346 61.2596C214.429 94.9138 212.76 147.157 178.615 178.858Z" fill="${color}" stroke="white"  stroke-width="8"/>
                  </svg>
                    `;
    var icon = {
        url: 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(content),
        anchor: new google.maps.Point(
            20, 40
        ),
        scaledSize: new google.maps.Size(40, 40),
        labelOrigin: new google.maps.Point(20, 15)
    }

    return icon;
}

function warehouseIcon(dim = false) {
    const c = dim ? '#b45309' : '#fbbf24';
    const s = dim ? 'rgba(180,83,9,0.3)' : 'rgba(251,191,36,0.45)';
    return {
        url: svgUrl(`<svg width="34" height="38" viewBox="0 0 34 38" xmlns="http://www.w3.org/2000/svg">
      <filter id="g"><feDropShadow dx="0" dy="1" stdDeviation="2" flood-color="${s}"/></filter>
      <path d="M17 1C10.1 1 4.5 6.6 4.5 13.5C4.5 23.3 17 37 17 37S29.5 23.3 29.5 13.5C29.5 6.6 23.9 1 17 1z"
        fill="${c}" stroke="rgba(255,255,255,0.25)" stroke-width="1" filter="url(../#g)"/>
      <rect x="9" y="9" width="16" height="11" rx="1" fill="rgba(0,0,0,0.35)"/>
      <polygon points="17,7 9,11 25,11" fill="rgba(255,255,255,0.5)"/>
      <rect x="13" y="14" width="4" height="6" rx="0.5" fill="rgba(255,255,255,0.8)"/>
      <rect x="10" y="12" width="3" height="2.5" rx="0.5" fill="rgba(255,255,255,0.5)"/>
      <rect x="21" y="12" width="3" height="2.5" rx="0.5" fill="rgba(255,255,255,0.5)"/>
    </svg>`),
        scaledSize: new google.maps.Size(34, 38),
        anchor: new google.maps.Point(17, 38),
    };
}

// ── Cluster renderer — uses plain Marker with SVG icon (no Map ID required) ──
function createClusterRenderer() {
    return {
        render({ count, position }) {
            const sz = count < 10 ? 38 : count < 25 ? 48 : 58;
            const bg = count < 10 ? '#4f8ef7' : count < 25 ? '#f59e0b' : '#ef4444';
            const half = sz / 2;

            const svg = `<svg width="${sz}" height="${sz}" viewBox="0 0 ${sz} ${sz}" xmlns="http://www.w3.org/2000/svg">
                <circle cx="${half}" cy="${half}" r="${half - 1}" fill="${bg}" stroke="rgba(255,255,255,0.25)" stroke-width="1.5"/>
                <circle cx="${half}" cy="${half}" r="${half + 4}" fill="none" stroke="${bg}" stroke-width="1.5" opacity="0.35"/>
                <text x="${half}" y="${half + 1}" text-anchor="middle" dominant-baseline="central"
                    font-family="'DM Mono',monospace" font-size="${count > 9 ? 13 : 14}" font-weight="500" fill="white">${count}</text>
            </svg>`;

            return new google.maps.Marker({
                position,
                icon: {
                    url: svgurl(../svg),
                    scaledSize: new google.maps.Size(sz, sz),
                    anchor: new google.maps.Point(half, half)
                },
                zIndex: 1000,
                title: `${count} items`
            });
        }
    };
}

// ── InfoWindow ─────────────────────────────────────────────────────────────
var infoWindow;
function showInfo(mapId, gmarker, data) {
    var cc = { 'On time': '#34d399', 'Delayed': '#ef4444', 'At stop': '#a78bfa', 'En route': '#4f8ef7' };
    if (!infoWindow) infoWindow = new google.maps.InfoWindow();

    const typeLabel = data.type === 1 ? '🚛 Vehicle' : data.type === 2 ? '🏭 Warehouse' : '📍 Stop';

    var t = tripMaps.find(m => m.id === mapId);
    var trip = t.trips.find(f => f.routeTrip.id == data.routeTripId);
    if (data.type !== 1) {
        var stop = data.tripStop;
        infoWindow.setContent(stopMarkerInfo(stop, true, trip.routeTrip.tripCode));
        infoWindow.open(map, gmarker);

    }

    console.log('Selected Trip');


}

function vehicleInfoContent(routeLocation) {
    console.log("TTTTT", routeLocation);

    var content = `

    <script src="https://use.fontawesome.com/9d03eba9c5.js"></script>
    <div style="width: 400px;">
      <!-- Title Bar -->
      <div style="background-color: #145EA8; color: white; padding: 6px; border-top-left-radius: 8px; border-top-right-radius: 8px; text-align: left; padding-left: 10px; font-weight: bold;">
        

         <div style="display:flex; justify-content:space-between;">
          <span> <i class="fa fa-user" aria-hidden="true"></i> ${(routeLocation?.driver?.name ?? '')} </span>
          <span> <i class="fa fa-truck right-icon" aria-hidden="true"></i> ${(routeLocation?.tripNavigation?.vehicle?.registrationNumber ?? '')} </span>
        </div>
      </div>
    
      <!-- Info Body -->
      <div style="padding: 8px;">

         <!-- Report Time -->
        <div style="margin-bottom: 6px; font-weight: bold;">
         

            <div style="display:flex; justify-content:space-between;">
              <span>   ${routeLocation?.tripNavigation?.routeTrip ? trip.tripNavigation.routeTrip.tripCode + " - " + routeLocation.tripNavigation.routeTrip.name : ""} </span>
              <span style="font-size:9px">  🕒 ${(routeLocation?.routeLocation?.reportTimeStr ?? '')} </span>
            </div>
        </div>

      <div style="margin-bottom: 6px; font-weight: bold;">
     
      
      
      </div>

     
    
        <!-- Route Info -->
        <div style="display: flex; align-items:left; font-weight: bold;">
          <div style="flex: 1; padding-right: 6px;">
            ${(routeLocation?.tripNavigation?.fromWaypoint?.name ?? routeLocation?.tripNavigation?.fromAddress?.fullAddressWithName ?? '')}
          </div>
          <div style="flex: 0;">
            
           ${routeLocation?.tripNavigation ? '<i class="fa fa-arrow-right" aria-hidden="true"></i>' : ""}
           
          </div>
          <div style="flex: 1; padding-left: 6px;">
            ${(routeLocation?.tripNavigation?.toWaypoint?.name ?? routeLocation?.tripNavigation?.endAddress?.fullAddressWithName ?? '')}
          </div>
        </div>
        
      </div>
      
    </div>
`
    return content;

}

function stopMarkerInfo(stop, showTitle, tripName) {
    //if (group.taskType == 0 || group.taskType == 1 || group.taskType == 5 || group.taskType == 6) continue;
    //var type = taskTypes.find(f => f.id == group.taskType);
    if (stop.taskGroups) {
        var groups = stop.taskGroups.filter(s => s.taskType == 0 || s.taskType == 1 || s.taskType == 5 || s.taskType == 6);
        var headerTypes = '';
        if (groups.length > 0) {
            for (var i = 0; i < groups.length; i++) {
                var group = groups[i].taskType;
                if (i > 0) {
                    headerTypes += ', ';
                }

                headerTypes += taskTypes[group].name;

            }
        }
    }

    var titleText = ``;
    if (showTitle) {
        var tripNameText = '';
        if (hasMultipleTrip) {
            tripNameText = `<span style="margin-left:auto;">${tripName}</span>`;
        }

        titleText = `
<div style="background-color: #145EA8; color: white; padding: 6px; 
            border-top-left-radius: 8px; border-top-right-radius: 8px; 
            font-weight: bold; display: flex; justify-content: space-between; 
            align-items: center; padding-left: 10px; padding-right: 10px;">
    <span> ${tripName}  -  ${stop.tripStop.name}</span> 

</div>`;
    }

    var content = `<div style="width:400px; font-size:12px; color:#145EA8; margin:10px 0;">
  ${titleText}

  <!-- Sub-header: Stop Index + EST/ACT (same line) -->
  <div style="display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:8px; color:#00008B;">
    
    <div style="font-weight:600; font-size:12px; white-space:nowrap;">
      Stop Index: ${stop.tripStop.routeStepIndex}
    </div>

    <div style="text-align:right; font-size:10px; white-space:nowrap;">
      ${(stop.tripStop.estimatedTimeOfArrivalText?.trim() || stop.tripStop.estimatedTimeOfDepartureText?.trim())
            ? `EST: ${stop.tripStop.estimatedTimeOfArrivalText ?? ""}${stop.tripStop.estimatedTimeOfDepartureText?.trim()
                ? ` - ${stop.tripStop.estimatedTimeOfDepartureText}`
                : ""
            }`
            : ""
        }
      ${((stop.tripStop.estimatedTimeOfArrivalText?.trim() || stop.tripStop.estimatedTimeOfDepartureText?.trim()) &&
            (stop.tripStop.actualTimeOfArrivalText?.trim() || stop.tripStop.actualTimeOfDepartureText?.trim()))
            ? ` | `
            : ""
        }
      ${(stop.tripStop.actualTimeOfArrivalText?.trim() || stop.tripStop.actualTimeOfDepartureText?.trim())
            ? `ACT: ${stop.tripStop.actualTimeOfArrivalText ?? ""}${stop.tripStop.actualTimeOfDepartureText?.trim()
                ? ` - ${stop.tripStop.actualTimeOfDepartureText}`
                : ""
            }`
            : ""
        }
    </div>

  </div>
</div>

`;

    if (stop.taskGroups && stop.taskGroups.length > 0) {


        for (var i = 0; i < stop.taskGroups.length; i++) {
            var group = stop.taskGroups[i];
            var groupContent = stopMarkerInfoTypeContent(group);
            if (groupContent) {
                content += groupContent;
                content += "<br/>"
            }


        }
    }
    content += `</div>`

    return content;
}


function stopMarkerInfoTypeContent(group) {

    var type = taskTypes.find(f => f.id == group.taskType);

    var content = ` 
                <tr style="height: 15px;">
                    <td colspan="2" style="color: darkblue; font-weight: bold; font-size: 12px; height: 15px; width: 460px;">${(type ? type.name : '')}</td>
                </tr>
               
                
          `;
    if (group.taskType == 0 || group.taskType == 1 || group.taskType == 5 || group.taskType == 6) { return content; }
    content += stopTaskContents(group.tasks);
    return content;


}

function stopTaskContents(tasks) {
    var content = ``;
    if (tasks && tasks.length > 0) {
        for (var i = 0; i < tasks.length; i++) {

            // task.consignment = consignments.find(f => f.leg.id == task.transportLegId);
            var task = tasks[i];
            if (!task.consignment) { continue; }
            content += ` <tr style="height: 15px;">
                                <td colspan="2">
                                    <div style="border: 1px solid; border-radius: 3px; border-color: darkblue; margin: 2px;">
                                        <table style="height: 13px; width: 100%;">
                                            <tbody>
                                                <tr style="height: 13px;">
                                                    <td style="width: 40%; font-size: 10px; height: 13px;"> ${(task.consignment.senderOrderNumber?.trim()
                    ? task.consignment.senderOrderNumber
                    : task.consignment.consignmentNumber)}</td>
                                                    <td style="width: 20%; font-size: 10px; height: 13px;">${(task.consignment.weight ?? 0)} Kg</td>
                                                    <td style="width: 20%; font-size: 10px; text-align: center; height: 13px;">${(task.consignment.volume ?? 0)}</td>
                                                    <td style="width: 20%; font-size: 10px; text-align: right; height: 13px;">Packages : ${task.consignment.itemCount}</td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </div>
                                </td>
                            </tr>
                            
                        `;
        }

    }


    return content;


}



function clearSpiderfy(mapId) {
    var t = tripMaps.find(m => m.id === mapId);
    if (!t || t == undefined) return;

    if (t.spiderMarkers)
        t.spiderMarkers.forEach(m => m.setMap(null));
    t.spiderMarkers = [];
    if (t.spiderLines)
        t.spiderLines.forEach(l => l.setMap(null));
    t.spiderLines = [];

    t.hiddenMarkers = [];
    if (t.clusterrData) t.clusterrData.render();
}

function doSpiderfy(datas, centerLatLng, sourceMarkers, mapid) {
    var t = tripMaps.find(m => m.id === mapid);
    clearSpiderfy(mapid);
    if (infoWindow) infoWindow.close();

    // Hide the underlying markers from view — t.clusterrData keeps tracking them
    // but they're invisible, so only the spider legs are shown
    t.hiddenMarkers = sourceMarkers;
    t.hiddenMarkers.forEach(m => m.setMap(null));
    t.clusterrData.render();

    const count = datas.length;
    const R = 0.0006 + count * 0.00010;
    const bounds = new google.maps.LatLngBounds();
    bounds.extend(centerLatLng);
    datas.forEach((data, i) => {
        const angle = (i / count) * Math.PI * 2 - Math.PI / 2;
        const pos = new google.maps.LatLng(
            centerLatLng.lat() + Math.sin(angle) * R,
            centerLatLng.lng() + Math.cos(angle) * R * 1.6
        );
        bounds.extend(pos);
        const lineColor = data.type === 1 ? '#34d399' : data.type === 2 ? '#fbbf24' : '#a78bfa';
        t.spiderLines.push(new google.maps.Polyline({
            path: [centerLatLng, pos],
            strokeColor: lineColor, strokeOpacity: 0.6, strokeWeight: 1.5,
            icons: [{ icon: { path: 'M 0,-1 0,1', strokeOpacity: 1, scale: 3 }, offset: '0', repeat: '7px' }],
            map: t.map,
        }));
        const icon = data.type === 1 ? vehicleIcon(0, '', data.color) : data.type === 2 ? warehouseIcon() : stopIcon(data.color);
        const gm = new google.maps.Marker({
            position: pos, map: t.map, icon, label: data.type != 1 ? {
                text: `${data.markerText}`,
                color: `${data.color}`,
                fontSize: '10px'

            } : {}, zIndex: 2000, animation: google.maps.Animation.DROP
        });
        gm._tmsData = data;
        if (data.type != 1) {

            var ct = stopMarkerInfo(data.tripStop, true, '');
            SetInfoWindow(mapid, gm, ct, data);
        }
        else {
            var ct = vehicleInfoContent(data.routeLocation);
            SetInfoWindow(mapid, gm, ct, data);
        }


        //m.addListener('click', () => showInfo(mapid, gm, data));
        t.spiderMarkers.push(gm);
        var existing = t.markers.findIndex(m => m._tmsData?.id === gm._tmsData.id);
        if (existing !== -1) {
            t.markers[existing] = gm;
        }
        else {
            t.markers.push(gm);
        }
    });
    return bounds;
}

// ── Load markers ──────────────────────────────────────────────────────────

function showData(mapId, data) {

    var t = tripMaps.find(m => m.id === mapId);

    if (t) {
        var markerGroups = data.markerGroups;
        t.trips = data.routeTrips;

        console.log('Show data', markerGroups);
        loadMarkers(mapId, markerGroups, true)
        loadTrips(mapId, t.trips);

    }





}

function loadTrips(mapId, trips) {
    var t = tripMaps.find(m => m.id === mapId);
    if (!t.polyLines) t.polyLines = [];
    for (var i = 0; i < t.polyLines.length; i++) {
        var p = t.polyLines[i];
        p.polyline.setMap(null);
        p.polyline2.setMap(null);
    }
    t.polyLines = [];

    if (trips) {


        for (let i = 0; i < trips.length; i++) {

            var trip = trips[i];
            generateRouteTripPolyLine(trip.routeTrip.routePolyline, t, trip.tripOutLineColor, trip.tripColor, trip.routeTrip.tripIdStr);
        }


    }



}

function clearChangedMarkers(mapId, markerGroups) {
    var t = tripMaps.find(m => m.id === mapId);
    if (!t || t == undefined) return;
    if (!markerGroups || markerGroups == undefined || !t.groupedMarkers || t.groupedMarkers == undefined) {
        return;
    }

    for (let i = 0; i < markerGroups.length; i++) {
        const markerGroup = markerGroups[i];


        const matchedMarkers = t.groupedMarkers.filter(x => x.id === markerGroup.id);

        matchedMarkers.forEach(x => {
            if (x.marker) {
                x.marker.setMap(null);
                t.hiddenMarkers = t.hiddenMarkers.filter(m => m !== x.marker);
                t.markers = t.markers.filter(m => m !== x.marker)
            }
        });

        t.groupedMarkers = t.groupedMarkers.filter(x => x.id !== markerGroup.id);
    }







}


function clearRemovedGroup(mapId, ids) {
    var t = tripMaps.find(m => m.id === mapId);
    if (!t || t == undefined) return;
    if (!t.groupedMarkers || t.groupedMarkers == undefined) {
        return;
    }

    var removed;
    if (!ids || ids == undefined) {

        removed = t.groupedMarkers;
    }
    else {
        removed = t.groupedMarkers.filter(x => !ids.includes(x.id));
    }


    removed.forEach(x => {
        if (x.marker) {
            x.marker.setMap(null);
            t.hiddenMarkers = t.hiddenMarkers.filter(m => m !== x.marker);
            t.markers = t.markers.filter(m => m !== x.marker)
        }
    });



}

function updateLocationOfMarker(mapId, updated) {

    var t = tripMaps.find(m => m.id === mapId);
    if (t == undefined || !t) return;



    if (!updated) return;


    if (!t.markers) t.markers = [];

    var existing = t.markers.find(m => m._tmsData?.id === updated.marker.id);
    if (existing) {

        var newPosition = new google.maps.LatLng(updated.marker.location.lat, updated.marker.location.lng);
        var previousPosition = existing.getPosition();
        var bearing = google.maps.geometry.spherical.computeHeading(previousPosition, newPosition);
        existing.setPosition(newPosition);
        var vehicleColor = updated.marker.color;
        existing.setIcon(vehicleIcon(bearing, '', vehicleColor));


        var ct = vehicleInfoContent(updated.marker.routeLocation);
        SetInfoWindow(mapId, existing, ct, updated.marker);

    } else {

        updated.addedOrUpdatedGroup.hasChanges = true;
        var data = [];
        data.push(updated.addedOrUpdatedGroup);
        loadMarkers(mapId, data, false);

    }











}

function loadMarkers(mapId, markerGroups, isAllGroups) {


    var t = tripMaps.find(m => m.id === mapId);
    if (!markerGroups || markerGroups == undefined) {
        if (!t.markers)
            t.markers = [];
        if (!t.hiddenMarkers)
            t.hiddenMarkers = [];
        if (!t.groupedMarkers)
            t.groupedMarkers = [];

        clearRemovedGroup(mapId, null);
        return;



    }
    //clearSpiderfy();
    // if (infoWindow) infoWindow.close();

    // Clear previous markers
    if (markerGroups) {
        if (isAllGroups) {
            var ids = markerGroups.map(m => m.id);
            clearRemovedGroup(mapId, ids);
        }

        var changedgroups = markerGroups.filter(f => f.hasChanges);
        if (changedgroups) {
            clearChangedMarkers(mapId, changedgroups);
        }
    }



    if (!t.markers)
        t.markers = [];
    if (!t.hiddenMarkers)
        t.hiddenMarkers = [];
    if (!t.groupedMarkers)
        t.groupedMarkers = [];
    if (t.clusterrData) { t.clusterrData.clearMarkers(); t.clusterrData.setMap(null); t.clusterrData = null; }

    if (changedgroups) {

        for (var i = 0; i < changedgroups.length; i++) {

            var markerGroup = changedgroups[i];

            if (markerGroup.markers.length == 1)
                console.log("Single Marker", markerGroup);

            if (markerGroup.markers) {
                for (var j = 0; j < markerGroup.markers.length; j++) {
                    var data = markerGroup.markers[j];

                    if (!data.location || !data.location.lat || !data.location.lng) { continue; }
                    const icon = data.type === 1 ? vehicleIcon(0, '', data.color) : data.type === 2 ? warehouseIcon() : stopIcon(data.color);
                    const gm = new google.maps.Marker({
                        position: { lat: data.location.lat, lng: data.location.lng }, icon, title: data.label,
                        zIndex: data.type === 2 ? 150 : data.type === 1 ? 100 : 50,
                        label: data.type != 1 ? {
                            text: `${data.markerText}`,
                            color: `${data.color}`,
                            fontSize: '10px'

                        } : {}
                    });
                    gm._tmsData = data;

                    // ── FIX: tag each marker with its own group ID so the cluster
                    //         algorithm keeps same-location groups together but never
                    //         merges markers from different physical locations. ──
                    gm._alwaysCluster = markerGroup.markers.length > 1;
                    gm._clusterGroup = markerGroup.markers.length > 1 ? markerGroup.id : null;

                    if (data.type != 1) {
                        var ct = stopMarkerInfo(data.tripStop, true, '');
                        SetInfoWindow(mapId, gm, ct, data);
                    } else {
                        var ct = vehicleInfoContent(data.routeLocation);
                        SetInfoWindow(mapId, gm, ct, data);
                    }


                    t.markers.push(gm);
                    t.groupedMarkers.push({ id: markerGroup.id, marker: gm });
                }

            }




        }


    }

    if (t.clusteringEnabled) {
        const baseAlgorithm = new markerClusterer.SuperClusterAlgorithm({
            radius: 120,
            maxZoom: 17,
            minPoints: 2,
        });

        // ── FIX: wrap SuperCluster so that markers flagged _alwaysCluster are kept
        //         together only within their own group (same physical location).
        //         Previously ALL _alwaysCluster markers were forced into one global
        //         cluster regardless of location, causing spiderfy to fire for
        //         markers at genuinely different map positions. ──
        const algorithm = {
            calculate(input) {
                const result = baseAlgorithm.calculate(input);

                // Index alwaysCluster markers by their individual group ID
                const byGroup = {};
                input.markers
                    .filter(m => m._alwaysCluster && m._clusterGroup)
                    .forEach(m => {
                        (byGroup[m._clusterGroup] = byGroup[m._clusterGroup] || []).push(m);
                    });

                let clusters = [...result.clusters];

                for (const groupMarkers of Object.values(byGroup)) {
                    if (groupMarkers.length < 2) continue;

                    // Find markers from this group that ended up in isolated single-marker clusters
                    const scattered = clusters.filter(c =>
                        c.markers?.length === 1 && groupMarkers.includes(c.markers[0])
                    );
                    if (scattered.length < 2) continue; // already grouped — nothing to do

                    // Remove the scattered single-marker clusters for this group
                    clusters = clusters.filter(c =>
                        !(c.markers?.length === 1 && groupMarkers.includes(c.markers[0]))
                    );

                    // Re-add them as one cluster at their average position
                    const allPos = groupMarkers.map(m => m.getPosition());
                    const avgLat = allPos.reduce((s, p) => s + p.lat(), 0) / allPos.length;
                    const avgLng = allPos.reduce((s, p) => s + p.lng(), 0) / allPos.length;
                    clusters.push(new markerClusterer.Cluster({
                        markers: groupMarkers,
                        position: new google.maps.LatLng(avgLat, avgLng),
                    }));
                }

                return { clusters, changed: result.changed };
            },
        };

        t.clusterrData = new markerClusterer.MarkerClusterer({
            map: t.map,
            markers: t.markers,
            renderer: createClusterRenderer(),
            algorithm,
        });
        t.clusterrData.addListener('click', (event) => {
            if (!t.spiderfyEnabled) return;
            const markers = event.markers || [];

            if (markers.length < 2 || markers.length > 9) return;

            // ── FIX: Only spiderfy when EVERY marker in the clicked cluster
            //         belongs to the same co-location group (_clusterGroup).
            //         A normal geographic cluster (different locations grouped
            //         at a low zoom) must fall through so the map zooms in.
            //         The previous pixel-distance heuristic always returned
            //         minDist=0 whenever any two co-located markers were mixed
            //         into the cluster, causing false spiderfy on all of them. ──
            const groupIds = [...new Set(markers.map(m => m._clusterGroup).filter(Boolean))];
            if (groupIds.length !== 1 || !markers.every(m => m._clusterGroup === groupIds[0])) {
                // Mixed or non-grouped cluster — let MarkerClusterer zoom in normally
                return;
            }

            const pos = event.position;
            const center = (pos && typeof pos.lat === 'function')
                ? pos : new google.maps.LatLng(pos.lat, pos.lng);
            const datas = markers.map(m => m._tmsData).filter(Boolean);
            if (datas.length < 2) return;

            // All markers are confirmed co-located — spiderfy them
            const origFitBounds = t.map.fitBounds.bind(t.map);
            t.map.fitBounds = () => { t.map.fitBounds = origFitBounds; };
            const bounds = doSpiderfy(datas, center, markers, t.id);
            origFitBounds(bounds, { top: 80, right: 60, bottom: 60, left: 60 });
        });
    } else {
        t.markers.forEach(m => m.setMap(t.map));
    }
}
function SetInfoWindow(tripMap, marker, ct, data) {
    var t = tripMaps.find(m => m.id === tripMap);
    if (!t.InfoWindows) t.InfoWindows = [];

    var infoContent = `<div> ` + ct + `</div>`;

    var windowDataIndex = t.InfoWindows.findIndex(f => f.id == data.id);
    if (windowDataIndex >= 0) {
        // Update content on the existing InfoWindow
        t.InfoWindows[windowDataIndex].window.setContent(infoContent);
    } else {
        // Create a brand-new InfoWindow for this data ID
        const infowindow = new google.maps.InfoWindow({
            content: infoContent,
            maxheight: 400
        });
        t.InfoWindows.push({ id: data.id, window: infowindow });
    }

   
    marker.addListener("click", () => {
        for (var i = 0; i < t.InfoWindows.length; i++) {
            t.InfoWindows[i].window.close();
        }
        var win = t.InfoWindows.find(f => f.id == marker._tmsData.id);
        if (win) {
            win.window.open({ anchor: marker, map: t.map });
        }
    });
}


//function SetInfoWindow(tripMap, marker, ct, data) {


//    var t = tripMaps.find(m => m.id === tripMap);
//    if (!t.InfoWindows) {
//        t.InfoWindows = [];
//    }
//    var infoContent = `<div> `;
//    infoContent += ct;
//    infoContent += `</div>`
//    var windowDataIndex = t.InfoWindows.findIndex(f => f.id == data.id);
//    if (windowDataIndex >= 0) {
//        t.InfoWindows[windowDataIndex].window.setContent(infoContent);
//        console.log("Info Window Set", infoContent);

//    } else {
//        const infowindow = new google.maps.InfoWindow({
//            content: infoContent,
//            maxheight: 400

//        });
//        t.InfoWindows.push({ id: data.id, window: infowindow });
//        marker.addListener("click", () => {

//            for (var i = 0; i < t.InfoWindows.length; i++) {
//                var w = t.InfoWindows[i];
//                w.window.close();
//            }
//            var window = t.InfoWindows.find(f => f.id == marker._tmsData.id);
//            if (window) {
//                window.window.open({
//                    anchor: marker,
//                    map: t.map,
//                });

//            }
           
//        });
//    } 


   






//}



function initMap() {
    map = new google.maps.Map(document.getElementById('map'), {
        center: { lat: 59.9133, lng: 10.7433 },
        zoom: 15,
        gestureHandling: 'greedy',
    });
    map.addListener('click', () => { clearSpiderfy(); if (infoWindow) infoWindow.close(); });
    loadMarkers();
}

function initMapWithCluster(mid, mapSetting) {



    var latlng = new google.maps.LatLng(defaultLat, defaultLan);
    var options = {
        zoom: zoomLevel, center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var currentMap = new google.maps.Map(document.getElementById(mid), {
        center: { lat: 59.9133, lng: 10.7433 },
        zoom: 15,
        gestureHandling: 'greedy',
    });




    var t = {
        id: mid,
        map: currentMap,
        directionsService: new google.maps.DirectionsService,
        directionsDisplay: new google.maps.DirectionsRenderer,
        markers: [],
        clusterrData: null,
        spiderMarkers: [],
        spiderLines: [],
        clusteringEnabled: true,
        spiderfyEnabled: true,
    };



    google.maps.event.addListener(t.map, "click", function () {
        console.log("MAP CLICKED");
        clearSpiderfy(t.id); if (infoWindow) infoWindow.close();
    });

    this.tripMaps = this.tripMaps.filter(f => f.id != t.id);
    this.tripMaps.push(t);

    // loadMarkers(mid);

}


function generateRouteTripPolyLine(directionResult, t, outLineColor, color, tripId) {
    try {
        if (directionResult) {
            var decodedPath = google.maps.geometry.encoding.decodePath(directionResult);

            // 1. Define the arrow symbol
            var lineSymbol = {
                path: google.maps.SymbolPath.FORWARD_CLOSED_ARROW,
                scale: 1,
                strokeColor: '#FFFFFF', // White arrows usually look best on colored lines
                fillOpacity: 1
            };

            var polyline = new google.maps.Polyline({
                path: decodedPath,
                geodesic: true,
                strokeColor: 'black',
                strokeOpacity: 1.0,
                strokeWeight: 9
            });

            var polyline2 = new google.maps.Polyline({
                path: decodedPath,
                geodesic: true,
                strokeColor: color,
                strokeOpacity: 1.0,
                strokeWeight: 7,
                // 2. Add the icons property here
                icons: [{
                    icon: lineSymbol,
                    offset: '100px', // Start point of first arrow
                    repeat: '100px'  // How often the arrow repeats
                }]
            });

            polyline.setMap(t.map);
            polyline2.setMap(t.map);

            if (t.polyLines) {
                var p = t.polyLines.find(f => f.id == tripId);
                if (p) {
                    p.polyline.setMap(null);
                    p.polyline2.setMap(null);
                    p.polyline = polyline;
                    p.polyline2 = polyline2;
                } else {
                    t.polyLines.push({ id: tripId, polyline: polyline, polyline2: polyline2 });
                }
            } else {
                t.polyLines = [{ id: tripId, polyline: polyline, polyline2: polyline2 }];
            }

            var bounds = new google.maps.LatLngBounds();
            for (var i = 0; i < decodedPath.length; i++) {
                bounds.extend(decodedPath[i]);
            }
            t.map.fitBounds(bounds);
        } else {
            if (!t.polyLines) t.polyLines = [];
            var p = t.polyLines.find(f => f.id == tripId);
            if (p) {
                p.polyline.setMap(null);
                p.polyline2.setMap(null);
            }
        }
    } catch (error) {
        console.error(error.message);
        return { Distance: 0, Duration: 0, MapsRequestError: 'DirectionFailed' };
    }
}


// Optional sample data in textbox


function loadTraffic(content, mapId) {
    console.log('Loaded traff')    

    var mapData = tripMaps.find(f => f.id == mapId);
    var map = mapData?.map;

    

    let trafficData;

    try {
        trafficData = content;
    } catch (error) {
        console.log("Invalid JSON.\n" + error.message);
        return;
    }

    if (!Array.isArray(trafficData)) {
        console.log("JSON must be an array.");
        return;
    }

    clearTraffic(mapId);

    const bounds = new google.maps.LatLngBounds();
    let markerCount = 0;
    let lineCount = 0;

    trafficData.forEach(item => {
        const color = getColorBySeverity(item.severityCode);

        const hasValidPoint =
            typeof item.latitude === "number" &&
            typeof item.longitude === "number";

        if (hasValidPoint) {
            const marker = new google.maps.Marker({
                position: { lat: item.latitude, lng: item.longitude },
                map: map,
                title: item.description || item.roadNumber || item.id,
                icon: item.iconUrl
                    ? {
                        url: item.iconUrl,
                        scaledSize: new google.maps.Size(25, 25),   // icon size
                        anchor: new google.maps.Point(16, 16)       // center point
                    }
                    : {
                        path: google.maps.SymbolPath.CIRCLE,
                        scale: 7,
                        fillColor: color,
                        fillOpacity: 1,
                        strokeColor: "#ffffff",
                        strokeWeight: 1.5
                    } 
            });

            const infoWindow = new google.maps.InfoWindow({
                content: `
        <div style="
            max-width:340px;
            font-family: Arial, sans-serif;
            color:#1f2937;
            line-height:1.4;
        ">
            <div style="
                margin-bottom:12px;
                padding-bottom:10px;
                border-bottom:1px solid #e5e7eb;
            ">
                <div style="
                    font-size:22px;
                    font-weight:700;
                    color:#1f3b64;
                    line-height:1.2;
                    margin-bottom:8px;
                ">
                    ${escapeHtml(item.description || "Traffic Info")}
                </div>

                <div style="
                    display:inline-block;
                    background:#fff4d6;
                    color:#8a6100;
                    font-size:12px;
                    font-weight:700;
                    padding:4px 10px;
                    border-radius:999px;
                    margin-bottom:8px;
                ">
                    ${escapeHtml(item.severityText || "-")}
                </div>

                
            </div>

            <div style="
                background:#f8fafc;
                border:1px solid #e5e7eb;
                border-radius:12px;
                padding:12px;
            ">
                <div style="margin-bottom:8px;">
                    <div style="font-size:12px; color:#6b7280; font-weight:600;">Road</div>
                    <div style="font-size:14px; color:#111827;">${escapeHtml(item.roadNumber || "-")}</div>
                </div>

                <div style="margin-bottom:8px;">
                    <div style="font-size:12px; color:#6b7280; font-weight:600;">Location</div>
                    <div style="font-size:14px; color:#111827;">${escapeHtml(item.locationDescriptor || "-")}</div>
                </div>

                <div style="margin-bottom:8px;">
                    <div style="font-size:12px; color:#6b7280; font-weight:600;">Start</div>
                    <div style="font-size:14px; color:#111827;">${escapeHtml(formatDateTime(item.startTime))}</div>
                </div>

                <div>
                    <div style="font-size:12px; color:#6b7280; font-weight:600;">End</div>
                    <div style="font-size:14px; color:#111827;">${escapeHtml(formatDateTime(item.endTime))}</div>
                </div>
            </div>
        </div>
    `
            });

            marker.addListener("click", () => infoWindow.open(map, marker));
            mapData.trafficOverlays.push(marker);
            bounds.extend(marker.getPosition());
            markerCount++;
        }

        if (item.line) {
            try {
                const decodedPath = google.maps.geometry.encoding.decodePath(item.line);

                const polyline = new google.maps.Polyline({
                    path: decodedPath,
                    map: map,
                    strokeOpacity: 0,
                    icons: [
                        {
                            icon: {
                                path: "M 0,-1 0,1",   // small vertical dash
                                strokeOpacity: 1,
                                strokeColor: color,
                                scale: 4
                            },
                            offset: "0",
                            repeat: "16px"
                        }
                    ]
                });

                mapData.trafficOverlays.push(polyline);
                decodedPath.forEach(p => bounds.extend(p));
                lineCount++;
            } catch (e) {
                console.warn("Could not decode line for:", item.id, e);
            }
        }
    });

    if (!bounds.isEmpty()) {
        map.fitBounds(bounds);
    }





}

function pad2(value) {
    return String(value).padStart(2, "0");
}

// By default this formats in the browser's local time.
// If you want UTC instead, use getUTCDate/getUTCMonth/... versions.
function formatDateTime(value) {
    if (!value) return "-";

    const d = new Date(value);
    if (isNaN(d.getTime())) return value;

    const day = pad2(d.getDate());
    const month = pad2(d.getMonth() + 1);
    const year = d.getFullYear();
    const hours = pad2(d.getHours());
    const minutes = pad2(d.getMinutes());

    return `${day}-${month}-${year} ${hours}:${minutes}`;
}


//function toggleTraffic(mapId) {
//    if (trafficOverlays.length === 0) {
//        document.getElementById("status").textContent = "No traffic data loaded.";
//        return;
//    }

//    trafficVisible = !trafficVisible;

//    trafficOverlays.forEach(overlay => {
//        overlay.setMap(trafficVisible ? map : null);
//    });

//    document.querySelector(".btn-toggle").textContent =
//        trafficVisible ? "Hide Traffic" : "Show Traffic";
//}

function clearTraffic(mapId) {
    var mapData = tripMaps.find(f => f.id == mapId);
    if (!mapData.trafficOverlays || mapData.trafficOverlays == undefined) {
        mapData.trafficOverlays = [];
        return;

    }
    mapData.trafficOverlays.forEach(overlay => overlay.setMap(null));
    mapData.trafficOverlays = [];
   
}

function getColorBySeverity(severityCode) {
    switch (severityCode) {
        case 5: return "#d32f2f"; // very high
        case 4: return "#f57c00"; // high
        case 2: return "#fbc02d"; // medium
        case 1: return "#388e3c"; // low
        default: return "#1976d2"; // default
    }
}

function escapeHtml(text) {
    return String(text ?? "")
        .replace(/&/g, "&amp;")
        .replace(/</g, "&lt;")
        .replace(/>/g, "&gt;")
        .replace(/"/g, "&quot;")
        .replace(/'/g, "&#039;");
}var markerClusterer = function (t) { "use strict"; var r, e, n = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}, o = {}; function i() { if (e) return r; e = 1; var t = function (t) { return t && t.Math === Math && t }; return r = t("object" == typeof globalThis && globalThis) || t("object" == typeof window && window) || t("object" == typeof self && self) || t("object" == typeof n && n) || t("object" == typeof r && r) || function () { return this }() || Function("return this")() } var s, a, u, c, f, l, h, p, m = {}; function d() { return a ? s : (a = 1, s = function (t) { try { return !!t() } catch (t) { return !0 } }) } function g() { if (c) return u; c = 1; var t = d(); return u = !t(function () { return 7 !== Object.defineProperty({}, 1, { get: function () { return 7 } })[1] }) } function v() { if (l) return f; l = 1; var t = d(); return f = !t(function () { var t = function () { }.bind(); return "function" != typeof t || t.hasOwnProperty("prototype") }) } function y() { if (p) return h; p = 1; var t = v(), r = Function.prototype.call; return h = t ? r.bind(r) : function () { return r.apply(r, arguments) }, h } var w, b, E, k, x, M, O, P, C, S, j, A, I, _, T, L, q, R, Z, z, D, F, N, U, B, W, $, V, G, H, K, Y, X, J, Q, tt, rt, et, nt, ot, it, st = {}; function at() { return E ? b : (E = 1, b = function (t, r) { return { enumerable: !(1 & t), configurable: !(2 & t), writable: !(4 & t), value: r } }) } function ut() { if (x) return k; x = 1; var t = v(), r = Function.prototype, e = r.call, n = t && r.bind.bind(e, e); return k = t ? n : function (t) { return function () { return e.apply(t, arguments) } }, k } function ct() { if (O) return M; O = 1; var t = ut(), r = t({}.toString), e = t("".slice); return M = function (t) { return e(r(t), 8, -1) } } function ft() { return j ? S : (j = 1, S = function (t) { return null == t }) } function lt() { if (I) return A; I = 1; var t = ft(), r = TypeError; return A = function (e) { if (t(e)) throw new r("Can't call method on " + e); return e } } function ht() { if (T) return _; T = 1; var t = function () { if (C) return P; C = 1; var t = ut(), r = d(), e = ct(), n = Object, o = t("".split); return P = r(function () { return !n("z").propertyIsEnumerable(0) }) ? function (t) { return "String" === e(t) ? o(t, "") : n(t) } : n }(), r = lt(); return _ = function (e) { return t(r(e)) } } function pt() { if (q) return L; q = 1; var t = "object" == typeof document && document.all; return L = void 0 === t && void 0 !== t ? function (r) { return "function" == typeof r || r === t } : function (t) { return "function" == typeof t } } function mt() { if (Z) return R; Z = 1; var t = pt(); return R = function (r) { return "object" == typeof r ? null !== r : t(r) } } function dt() { if (D) return z; D = 1; var t = i(), r = pt(); return z = function (e, n) { return arguments.length < 2 ? (o = t[e], r(o) ? o : void 0) : t[e] && t[e][n]; var o }, z } function gt() { if (N) return F; N = 1; var t = ut(); return F = t({}.isPrototypeOf) } function vt() { if ($) return W; $ = 1; var t, r, e = i(), n = function () { if (B) return U; B = 1; var t = i().navigator, r = t && t.userAgent; return U = r ? String(r) : "" }(), o = e.process, s = e.Deno, a = o && o.versions || s && s.version, u = a && a.v8; return u && (r = (t = u.split("."))[0] > 0 && t[0] < 4 ? 1 : +(t[0] + t[1])), !r && n && (!(t = n.match(/Edge\/(\d+)/)) || t[1] >= 74) && (t = n.match(/Chrome\/(\d+)/)) && (r = +t[1]), W = r } function yt() { if (G) return V; G = 1; var t = vt(), r = d(), e = i().String; return V = !!Object.getOwnPropertySymbols && !r(function () { var r = Symbol("symbol detection"); return !e(r) || !(Object(r) instanceof Symbol) || !Symbol.sham && t && t < 41 }) } function wt() { if (K) return H; K = 1; var t = yt(); return H = t && !Symbol.sham && "symbol" == typeof Symbol.iterator } function bt() { if (X) return Y; X = 1; var t = dt(), r = pt(), e = gt(), n = wt(), o = Object; return Y = n ? function (t) { return "symbol" == typeof t } : function (n) { var i = t("Symbol"); return r(i) && e(i.prototype, o(n)) } } function Et() { if (Q) return J; Q = 1; var t = String; return J = function (r) { try { return t(r) } catch (t) { return "Object" } } } function kt() { if (rt) return tt; rt = 1; var t = pt(), r = Et(), e = TypeError; return tt = function (n) { if (t(n)) return n; throw new e(r(n) + " is not a function") } } function xt() { if (nt) return et; nt = 1; var t = kt(), r = ft(); return et = function (e, n) { var o = e[n]; return r(o) ? void 0 : t(o) } } function Mt() { if (it) return ot; it = 1; var t = y(), r = pt(), e = mt(), n = TypeError; return ot = function (o, i) { var s, a; if ("string" === i && r(s = o.toString) && !e(a = t(s, o))) return a; if (r(s = o.valueOf) && !e(a = t(s, o))) return a; if ("string" !== i && r(s = o.toString) && !e(a = t(s, o))) return a; throw new n("Can't convert object to primitive value") } } var Ot, Pt, Ct, St, jt, At, It, _t, Tt, Lt, qt, Rt, Zt, zt, Dt, Ft, Nt, Ut, Bt, Wt, $t, Vt, Gt, Ht, Kt = { exports: {} }; function Yt() { return Pt ? Ot : (Pt = 1, Ot = !1) } function Xt() { if (St) return Ct; St = 1; var t = i(), r = Object.defineProperty; return Ct = function (e, n) { try { r(t, e, { value: n, configurable: !0, writable: !0 }) } catch (r) { t[e] = n } return n } } function Jt() { if (jt) return Kt.exports; jt = 1; var t = Yt(), r = i(), e = Xt(), n = "__core-js_shared__", o = Kt.exports = r[n] || e(n, {}); return (o.versions || (o.versions = [])).push({ version: "3.44.0", mode: t ? "pure" : "global", copyright: "© 2014-2025 Denis Pushkarev (zloirock.ru)", license: "https://github.com/zloirock/core-js/blob/v3.44.0/LICENSE", source: "https://github.com/zloirock/core-js" }), Kt.exports } function Qt() { if (It) return At; It = 1; var t = Jt(); return At = function (r, e) { return t[r] || (t[r] = e || {}) } } function tr() { if (Tt) return _t; Tt = 1; var t = lt(), r = Object; return _t = function (e) { return r(t(e)) } } function rr() { if (qt) return Lt; qt = 1; var t = ut(), r = tr(), e = t({}.hasOwnProperty); return Lt = Object.hasOwn || function (t, n) { return e(r(t), n) } } function er() { if (Zt) return Rt; Zt = 1; var t = ut(), r = 0, e = Math.random(), n = t(1.1.toString); return Rt = function (t) { return "Symbol(" + (void 0 === t ? "" : t) + ")_" + n(++r + e, 36) } } function nr() { if (Dt) return zt; Dt = 1; var t = i(), r = Qt(), e = rr(), n = er(), o = yt(), s = wt(), a = t.Symbol, u = r("wks"), c = s ? a.for || a : a && a.withoutSetter || n; return zt = function (t) { return e(u, t) || (u[t] = o && e(a, t) ? a[t] : c("Symbol." + t)), u[t] } } function or() { if (Nt) return Ft; Nt = 1; var t = y(), r = mt(), e = bt(), n = xt(), o = Mt(), i = nr(), s = TypeError, a = i("toPrimitive"); return Ft = function (i, u) { if (!r(i) || e(i)) return i; var c, f = n(i, a); if (f) { if (void 0 === u && (u = "default"), c = t(f, i, u), !r(c) || e(c)) return c; throw new s("Can't convert object to primitive value") } return void 0 === u && (u = "number"), o(i, u) } } function ir() { if (Bt) return Ut; Bt = 1; var t = or(), r = bt(); return Ut = function (e) { var n = t(e, "string"); return r(n) ? n : n + "" } } function sr() { if ($t) return Wt; $t = 1; var t = i(), r = mt(), e = t.document, n = r(e) && r(e.createElement); return Wt = function (t) { return n ? e.createElement(t) : {} } } function ar() { if (Gt) return Vt; Gt = 1; var t = g(), r = d(), e = sr(); return Vt = !t && !r(function () { return 7 !== Object.defineProperty(e("div"), "a", { get: function () { return 7 } }).a }) } function ur() { if (Ht) return m; Ht = 1; var t = g(), r = y(), e = function () { if (w) return st; w = 1; var t = {}.propertyIsEnumerable, r = Object.getOwnPropertyDescriptor, e = r && !t.call({ 1: 2 }, 1); return st.f = e ? function (t) { var e = r(this, t); return !!e && e.enumerable } : t, st }(), n = at(), o = ht(), i = ir(), s = rr(), a = ar(), u = Object.getOwnPropertyDescriptor; return m.f = t ? u : function (t, c) { if (t = o(t), c = i(c), a) try { return u(t, c) } catch (t) { } if (s(t, c)) return n(!r(e.f, t, c), t[c]) }, m } var cr, fr, lr, hr, pr, mr, dr, gr = {}; function vr() { if (fr) return cr; fr = 1; var t = g(), r = d(); return cr = t && r(function () { return 42 !== Object.defineProperty(function () { }, "prototype", { value: 42, writable: !1 }).prototype }) } function yr() { if (hr) return lr; hr = 1; var t = mt(), r = String, e = TypeError; return lr = function (n) { if (t(n)) return n; throw new e(r(n) + " is not an object") } } function wr() { if (pr) return gr; pr = 1; var t = g(), r = ar(), e = vr(), n = yr(), o = ir(), i = TypeError, s = Object.defineProperty, a = Object.getOwnPropertyDescriptor, u = "enumerable", c = "configurable", f = "writable"; return gr.f = t ? e ? function (t, r, e) { if (n(t), r = o(r), n(e), "function" == typeof t && "prototype" === r && "value" in e && f in e && !e[f]) { var i = a(t, r); i && i[f] && (t[r] = e.value, e = { configurable: c in e ? e[c] : i[c], enumerable: u in e ? e[u] : i[u], writable: !1 }) } return s(t, r, e) } : s : function (t, e, a) { if (n(t), e = o(e), n(a), r) try { return s(t, e, a) } catch (t) { } if ("get" in a || "set" in a) throw new i("Accessors not supported"); return "value" in a && (t[e] = a.value), t }, gr } function br() { if (dr) return mr; dr = 1; var t = g(), r = wr(), e = at(); return mr = t ? function (t, n, o) { return r.f(t, n, e(1, o)) } : function (t, r, e) { return t[r] = e, t } } var Er, kr, xr, Mr, Or, Pr, Cr, Sr, jr, Ar, Ir, _r, Tr, Lr, qr, Rr = { exports: {} }; function Zr() { if (Mr) return xr; Mr = 1; var t = ut(), r = pt(), e = Jt(), n = t(Function.toString); return r(e.inspectSource) || (e.inspectSource = function (t) { return n(t) }), xr = e.inspectSource } function zr() { if (Sr) return Cr; Sr = 1; var t = Qt(), r = er(), e = t("keys"); return Cr = function (t) { return e[t] || (e[t] = r(t)) } } function Dr() { return Ar ? jr : (Ar = 1, jr = {}) } function Fr() { if (_r) return Ir; _r = 1; var t, r, e, n = function () { if (Pr) return Or; Pr = 1; var t = i(), r = pt(), e = t.WeakMap; return Or = r(e) && /native code/.test(String(e)) }(), o = i(), s = mt(), a = br(), u = rr(), c = Jt(), f = zr(), l = Dr(), h = "Object already initialized", p = o.TypeError, m = o.WeakMap; if (n || c.state) { var d = c.state || (c.state = new m); d.get = d.get, d.has = d.has, d.set = d.set, t = function (t, r) { if (d.has(t)) throw new p(h); return r.facade = t, d.set(t, r), r }, r = function (t) { return d.get(t) || {} }, e = function (t) { return d.has(t) } } else { var g = f("state"); l[g] = !0, t = function (t, r) { if (u(t, g)) throw new p(h); return r.facade = t, a(t, g, r), r }, r = function (t) { return u(t, g) ? t[g] : {} }, e = function (t) { return u(t, g) } } return Ir = { set: t, get: r, has: e, enforce: function (n) { return e(n) ? r(n) : t(n, {}) }, getterFor: function (t) { return function (e) { var n; if (!s(e) || (n = r(e)).type !== t) throw new p("Incompatible receiver, " + t + " required"); return n } } } } function Nr() { if (Tr) return Rr.exports; Tr = 1; var t = ut(), r = d(), e = pt(), n = rr(), o = g(), i = function () { if (kr) return Er; kr = 1; var t = g(), r = rr(), e = Function.prototype, n = t && Object.getOwnPropertyDescriptor, o = r(e, "name"), i = o && "something" === function () { }.name, s = o && (!t || t && n(e, "name").configurable); return Er = { EXISTS: o, PROPER: i, CONFIGURABLE: s } }().CONFIGURABLE, s = Zr(), a = Fr(), u = a.enforce, c = a.get, f = String, l = Object.defineProperty, h = t("".slice), p = t("".replace), m = t([].join), v = o && !r(function () { return 8 !== l(function () { }, "length", { value: 8 }).length }), y = String(String).split("String"), w = Rr.exports = function (t, r, e) { "Symbol(" === h(f(r), 0, 7) && (r = "[" + p(f(r), /^Symbol\(([^)]*)\).*$/, "$1") + "]"), e && e.getter && (r = "get " + r), e && e.setter && (r = "set " + r), (!n(t, "name") || i && t.name !== r) && (o ? l(t, "name", { value: r, configurable: !0 }) : t.name = r), v && e && n(e, "arity") && t.length !== e.arity && l(t, "length", { value: e.arity }); try { e && n(e, "constructor") && e.constructor ? o && l(t, "prototype", { writable: !1 }) : t.prototype && (t.prototype = void 0) } catch (t) { } var s = u(t); return n(s, "source") || (s.source = m(y, "string" == typeof r ? r : "")), t }; return Function.prototype.toString = w(function () { return e(this) && c(this).source || s(this) }, "toString"), Rr.exports } function Ur() { if (qr) return Lr; qr = 1; var t = pt(), r = wr(), e = Nr(), n = Xt(); return Lr = function (o, i, s, a) { a || (a = {}); var u = a.enumerable, c = void 0 !== a.name ? a.name : i; if (t(s) && e(s, c, a), a.global) u ? o[i] = s : n(i, s); else { try { a.unsafe ? o[i] && (u = !0) : delete o[i] } catch (t) { } u ? o[i] = s : r.f(o, i, { value: s, enumerable: !1, configurable: !a.nonConfigurable, writable: !a.nonWritable }) } return o } } var Br, Wr, $r, Vr, Gr, Hr, Kr, Yr, Xr, Jr, Qr, te, re, ee, ne, oe, ie, se = {}; function ae() { if (Vr) return $r; Vr = 1; var t = function () { if (Wr) return Br; Wr = 1; var t = Math.ceil, r = Math.floor; return Br = Math.trunc || function (e) { var n = +e; return (n > 0 ? r : t)(n) } }(); return $r = function (r) { var e = +r; return e != e || 0 === e ? 0 : t(e) } } function ue() { if (Hr) return Gr; Hr = 1; var t = ae(), r = Math.max, e = Math.min; return Gr = function (n, o) { var i = t(n); return i < 0 ? r(i + o, 0) : e(i, o) } } function ce() { if (Yr) return Kr; Yr = 1; var t = ae(), r = Math.min; return Kr = function (e) { var n = t(e); return n > 0 ? r(n, 9007199254740991) : 0 } } function fe() { if (Jr) return Xr; Jr = 1; var t = ce(); return Xr = function (r) { return t(r.length) } } function le() { if (ee) return re; ee = 1; var t = ut(), r = rr(), e = ht(), n = function () { if (te) return Qr; te = 1; var t = ht(), r = ue(), e = fe(), n = function (n) { return function (o, i, s) { var a = t(o), u = e(a); if (0 === u) return !n && -1; var c, f = r(s, u); if (n && i != i) { for (; u > f;)if ((c = a[f++]) != c) return !0 } else for (; u > f; f++)if ((n || f in a) && a[f] === i) return n || f || 0; return !n && -1 } }; return Qr = { includes: n(!0), indexOf: n(!1) } }().indexOf, o = Dr(), i = t([].push); return re = function (t, s) { var a, u = e(t), c = 0, f = []; for (a in u) !r(o, a) && r(u, a) && i(f, a); for (; s.length > c;)r(u, a = s[c++]) && (~n(f, a) || i(f, a)); return f } } function he() { return oe ? ne : (oe = 1, ne = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]) } var pe, me, de, ge, ve, ye, we, be, Ee, ke, xe, Me, Oe, Pe, Ce, Se, je, Ae, Ie, _e = {}; function Te() { if (de) return me; de = 1; var t = dt(), r = ut(), e = function () { if (ie) return se; ie = 1; var t = le(), r = he().concat("length", "prototype"); return se.f = Object.getOwnPropertyNames || function (e) { return t(e, r) }, se }(), n = (pe || (pe = 1, _e.f = Object.getOwnPropertySymbols), _e), o = yr(), i = r([].concat); return me = t("Reflect", "ownKeys") || function (t) { var r = e.f(o(t)), s = n.f; return s ? i(r, s(t)) : r }, me } function Le() { if (ve) return ge; ve = 1; var t = rr(), r = Te(), e = ur(), n = wr(); return ge = function (o, i, s) { for (var a = r(i), u = n.f, c = e.f, f = 0; f < a.length; f++) { var l = a[f]; t(o, l) || s && t(s, l) || u(o, l, c(i, l)) } }, ge } function qe() { if (Ee) return be; Ee = 1; var t = i(), r = ur().f, e = br(), n = Ur(), o = Xt(), s = Le(), a = function () { if (we) return ye; we = 1; var t = d(), r = pt(), e = /#|\.prototype\./, n = function (e, n) { var u = i[o(e)]; return u === a || u !== s && (r(n) ? t(n) : !!n) }, o = n.normalize = function (t) { return String(t).replace(e, ".").toLowerCase() }, i = n.data = {}, s = n.NATIVE = "N", a = n.POLYFILL = "P"; return ye = n }(); return be = function (i, u) { var c, f, l, h, p, m = i.target, d = i.global, g = i.stat; if (c = d ? t : g ? t[m] || o(m, {}) : t[m] && t[m].prototype) for (f in u) { if (h = u[f], l = i.dontCallGetSet ? (p = r(c, f)) && p.value : c[f], !a(d ? f : m + (g ? "." : "#") + f, i.forced) && void 0 !== l) { if (typeof h == typeof l) continue; s(h, l) } (i.sham || l && l.sham) && e(h, "sham", !0), n(c, f, h, i) } } } function Re() { if (xe) return ke; xe = 1; var t = gt(), r = TypeError; return ke = function (e, n) { if (t(n, e)) return e; throw new r("Incorrect invocation") } } function Ze() { if (Ce) return Pe; Ce = 1; var t = rr(), r = pt(), e = tr(), n = zr(), o = function () { if (Oe) return Me; Oe = 1; var t = d(); return Me = !t(function () { function t() { } return t.prototype.constructor = null, Object.getPrototypeOf(new t) !== t.prototype }) }(), i = n("IE_PROTO"), s = Object, a = s.prototype; return Pe = o ? s.getPrototypeOf : function (n) { var o = e(n); if (t(o, i)) return o[i]; var u = o.constructor; return r(u) && o instanceof u ? u.prototype : o instanceof s ? a : null } } function ze() { if (je) return Se; je = 1; var t = Nr(), r = wr(); return Se = function (e, n, o) { return o.get && t(o.get, n, { getter: !0 }), o.set && t(o.set, n, { setter: !0 }), r.f(e, n, o) } } function De() { if (Ie) return Ae; Ie = 1; var t = g(), r = wr(), e = at(); return Ae = function (n, o, i) { t ? r.f(n, o, e(0, i)) : n[o] = i } } var Fe, Ne, Ue, Be, We, $e, Ve, Ge, He, Ke, Ye, Xe = {}; function Je() { if (Ne) return Fe; Ne = 1; var t = le(), r = he(); return Fe = Object.keys || function (e) { return t(e, r) } } function Qe() { if (We) return Be; We = 1; var t = dt(); return Be = t("document", "documentElement") } function tn() { if (Ve) return $e; Ve = 1; var t, r = yr(), e = function () { if (Ue) return Xe; Ue = 1; var t = g(), r = vr(), e = wr(), n = yr(), o = ht(), i = Je(); return Xe.f = t && !r ? Object.defineProperties : function (t, r) { n(t); for (var s, a = o(r), u = i(r), c = u.length, f = 0; c > f;)e.f(t, s = u[f++], a[s]); return t }, Xe }(), n = he(), o = Dr(), i = Qe(), s = sr(), a = zr(), u = "prototype", c = "script", f = a("IE_PROTO"), l = function () { }, h = function (t) { return "<" + c + ">" + t + "</" + c + ">" }, p = function (t) { t.write(h("")), t.close(); var r = t.parentWindow.Object; return t = null, r }, m = function () { try { t = new ActiveXObject("htmlfile") } catch (t) { } var r, e, o; m = "undefined" != typeof document ? document.domain && t ? p(t) : (e = s("iframe"), o = "java" + c + ":", e.style.display = "none", i.appendChild(e), e.src = String(o), (r = e.contentWindow.document).open(), r.write(h("document.F=Object")), r.close(), r.F) : p(t); for (var a = n.length; a--;)delete m[u][n[a]]; return m() }; return o[f] = !0, $e = Object.create || function (t, n) { var o; return null !== t ? (l[u] = r(t), o = new l, l[u] = null, o[f] = t) : o = m(), void 0 === n ? o : e.f(o, n) } } function rn() { if (He) return Ge; He = 1; var t, r, e, n = d(), o = pt(), i = mt(), s = tn(), a = Ze(), u = Ur(), c = nr(), f = Yt(), l = c("iterator"), h = !1; return [].keys && ("next" in (e = [].keys()) ? (r = a(a(e))) !== Object.prototype && (t = r) : h = !0), !i(t) || n(function () { var r = {}; return t[l].call(r) !== r }) ? t = {} : f && (t = s(t)), o(t[l]) || u(t, l, function () { return this }), Ge = { IteratorPrototype: t, BUGGY_SAFARI_ITERATORS: h } } Ye || (Ye = 1, function () { if (Ke) return o; Ke = 1; var t = qe(), r = i(), e = Re(), n = yr(), s = pt(), a = Ze(), u = ze(), c = De(), f = d(), l = rr(), h = nr(), p = rn().IteratorPrototype, m = g(), v = Yt(), y = "constructor", w = "Iterator", b = h("toStringTag"), E = TypeError, k = r[w], x = v || !s(k) || k.prototype !== p || !f(function () { k({}) }), M = function () { if (e(this, p), a(this) === p) throw new E("Abstract class Iterator not directly constructable") }, O = function (t, r) { m ? u(p, t, { configurable: !0, get: function () { return r }, set: function (r) { if (n(this), this === p) throw new E("You can't redefine this property"); l(this, t) ? this[t] = r : c(this, t, r) } }) : p[t] = r }; l(p, b) || O(b, w), !x && l(p, y) && p[y] !== Object || O(y, M), M.prototype = p, t({ global: !0, constructor: !0, forced: x }, { Iterator: M }) }()); var en, nn, on, sn, an, un, cn, fn, ln, hn, pn, mn, dn, gn, vn, yn, wn, bn, En, kn, xn = {}; function Mn() { return nn ? en : (nn = 1, en = function (t) { return { iterator: t, next: t.next, done: !1 } }) } function On() { if (sn) return on; sn = 1; var t = Ur(); return on = function (r, e, n) { for (var o in e) t(r, o, e[o], n); return r } } function Pn() { return un ? an : (un = 1, an = function (t, r) { return { value: t, done: r } }) } function Cn() { if (fn) return cn; fn = 1; var t = y(), r = yr(), e = xt(); return cn = function (n, o, i) { var s, a; r(n); try { if (!(s = e(n, "return"))) { if ("throw" === o) throw i; return i } s = t(s, n) } catch (t) { a = !0, s = t } if ("throw" === o) throw i; if (a) throw s; return r(s), i } } function Sn() { if (hn) return ln; hn = 1; var t = Cn(); return ln = function (r, e, n) { for (var o = r.length - 1; o >= 0; o--)if (void 0 !== r[o]) try { n = t(r[o].iterator, e, n) } catch (t) { e = "throw", n = t } if ("throw" === e) throw n; return n } } function jn() { if (mn) return pn; mn = 1; var t = y(), r = tn(), e = br(), n = On(), o = nr(), i = Fr(), s = xt(), a = rn().IteratorPrototype, u = Pn(), c = Cn(), f = Sn(), l = o("toStringTag"), h = "IteratorHelper", p = "WrapForValidIterator", m = "normal", d = "throw", g = i.set, v = function (e) { var o = i.getterFor(e ? p : h); return n(r(a), { next: function () { var t = o(this); if (e) return t.nextHandler(); if (t.done) return u(void 0, !0); try { var r = t.nextHandler(); return t.returnHandlerResult ? r : u(r, t.done) } catch (r) { throw t.done = !0, r } }, return: function () { var r = o(this), n = r.iterator; if (r.done = !0, e) { var i = s(n, "return"); return i ? t(i, n) : u(void 0, !0) } if (r.inner) try { c(r.inner.iterator, m) } catch (t) { return c(n, d, t) } if (r.openIters) try { f(r.openIters, m) } catch (t) { return c(n, d, t) } return n && c(n, m), u(void 0, !0) } }) }, w = v(!0), b = v(!1); return e(b, l, "Iterator Helper"), pn = function (t, r, e) { var n = function (n, o) { o ? (o.iterator = n.iterator, o.next = n.next) : o = n, o.type = r ? p : h, o.returnHandlerResult = !!e, o.nextHandler = t, o.counter = 0, o.done = !1, g(this, o) }; return n.prototype = r ? w : b, n } } function An() { if (gn) return dn; gn = 1; var t = yr(), r = Cn(); return dn = function (e, n, o, i) { try { return i ? n(t(o)[0], o[1]) : n(o) } catch (t) { r(e, "throw", t) } } } function In() { return yn ? vn : (yn = 1, vn = function (t, r) { var e = "function" == typeof Iterator && Iterator.prototype[t]; if (e) try { e.call({ next: null }, r).next() } catch (t) { return !0 } }) } function _n() { if (bn) return wn; bn = 1; var t = i(); return wn = function (r, e) { var n = t.Iterator, o = n && n.prototype, i = o && o[r], s = !1; if (i) try { i.call({ next: function () { return { done: !0 } }, return: function () { s = !0 } }, -1) } catch (t) { t instanceof e || (s = !1) } if (!s) return i } } function Tn(t, r) { var e = {}; for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && r.indexOf(n) < 0 && (e[n] = t[n]); if (null != t && "function" == typeof Object.getOwnPropertySymbols) { var o = 0; for (n = Object.getOwnPropertySymbols(t); o < n.length; o++)r.indexOf(n[o]) < 0 && Object.prototype.propertyIsEnumerable.call(t, n[o]) && (e[n[o]] = t[n[o]]) } return e } kn || (kn = 1, function () { if (En) return xn; En = 1; var t = qe(), r = y(), e = kt(), n = yr(), o = Mn(), i = jn(), s = An(), a = Cn(), u = In(), c = _n(), f = Yt(), l = !f && !u("map", function () { }), h = !f && !l && c("map", TypeError), p = f || l || h, m = i(function () { var t = this.iterator, e = n(r(this.next, t)); if (!(this.done = !!e.done)) return s(t, this.mapper, [e.value, this.counter++], !0) }); t({ target: "Iterator", proto: !0, real: !0, forced: p }, { map: function (t) { n(this); try { e(t) } catch (t) { a(this, "throw", t) } return h ? r(h, this, t) : new m(o(this), { mapper: t }) } }) }()), "function" == typeof SuppressedError && SuppressedError; var Ln, qn, Rn = {}; qn || (qn = 1, function () { if (Ln) return Rn; Ln = 1; var t = qe(), r = y(), e = kt(), n = yr(), o = Mn(), i = jn(), s = An(), a = Yt(), u = Cn(), c = In(), f = _n(), l = !a && !c("filter", function () { }), h = !a && !l && f("filter", TypeError), p = a || l || h, m = i(function () { for (var t, e, o = this.iterator, i = this.predicate, a = this.next; ;) { if (t = n(r(a, o)), this.done = !!t.done) return; if (e = t.value, s(o, i, [e, this.counter++], !0)) return e } }); t({ target: "Iterator", proto: !0, real: !0, forced: p }, { filter: function (t) { n(this); try { e(t) } catch (t) { u(this, "throw", t) } return h ? r(h, this, t) : new m(o(this), { predicate: t }) } }) }()); class Zn { static isAdvancedMarkerAvailable(t) { return google.maps.marker && !0 === t.getMapCapabilities().isAdvancedMarkersAvailable } static isAdvancedMarker(t) { return google.maps.marker && t instanceof google.maps.marker.AdvancedMarkerElement } static setMap(t, r) { this.isAdvancedMarker(t) ? t.map = r : t.setMap(r) } static getPosition(t) { if (this.isAdvancedMarker(t)) { if (t.position) { if (t.position instanceof google.maps.LatLng) return t.position; if (Number.isFinite(t.position.lat) && Number.isFinite(t.position.lng)) return new google.maps.LatLng(t.position.lat, t.position.lng) } return new google.maps.LatLng(null) } return t.getPosition() } static getVisible(t) { return !!this.isAdvancedMarker(t) || t.getVisible() } } class zn { constructor(t) { let { markers: r, position: e } = t; this.markers = [], r && (this.markers = r), e && (e instanceof google.maps.LatLng ? this._position = e : this._position = new google.maps.LatLng(e)) } get bounds() { if (0 === this.markers.length && !this._position) return; const t = new google.maps.LatLngBounds(this._position, this._position); for (const r of this.markers) t.extend(Zn.getPosition(r)); return t } get position() { return this._position || this.bounds.getCenter() } get count() { return this.markers.filter(t => Zn.getVisible(t)).length } push(t) { this.markers.push(t) } delete() { this.marker && (Zn.setMap(this.marker, null), this.marker = void 0), this.markers.length = 0 } } function Dn(t) { if (null == t) throw Error(arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "assertion failed") } const Fn = (t, r, e, n) => { const o = t.getBounds(); Dn(o); const i = Nn(o, r, n); return e.filter(t => i.contains(Zn.getPosition(t))) }, Nn = (t, r, e) => { const { northEast: n, southWest: o } = Wn(t, r), i = $n({ northEast: n, southWest: o }, e); return Vn(i, r) }, Un = (t, r, e) => { const n = Nn(t, r, e), o = n.getNorthEast(), i = n.getSouthWest(); return [i.lng(), i.lat(), o.lng(), o.lat()] }, Bn = (t, r) => { const e = (r.lat - t.lat) * Math.PI / 180, n = (r.lng - t.lng) * Math.PI / 180, o = Math.sin(e / 2), i = Math.sin(n / 2), s = o * o + Math.cos(t.lat * Math.PI / 180) * Math.cos(r.lat * Math.PI / 180) * i * i; return 6371 * (2 * Math.atan2(Math.sqrt(s), Math.sqrt(1 - s))) }, Wn = (t, r) => { const e = r.fromLatLngToDivPixel(t.getNorthEast()), n = r.fromLatLngToDivPixel(t.getSouthWest()); return Dn(e), Dn(n), { northEast: e, southWest: n } }, $n = (t, r) => { let { northEast: e, southWest: n } = t; return e.x += r, e.y -= r, n.x -= r, n.y += r, { northEast: e, southWest: n } }, Vn = (t, r) => { let { northEast: e, southWest: n } = t; const o = r.fromDivPixelToLatLng(n), i = r.fromDivPixelToLatLng(e); return new google.maps.LatLngBounds(o, i) }; class Gn { constructor(t) { let { maxZoom: r = 16 } = t; this.maxZoom = r } noop(t) { let { markers: r } = t; return Kn(r) } } class Hn extends Gn { constructor(t) { var { viewportPadding: r = 60 } = t; super(Tn(t, ["viewportPadding"])), this.viewportPadding = 60, this.viewportPadding = r } calculate(t) { let { markers: r, map: e, mapCanvasProjection: n } = t; const o = e.getZoom(); return Dn(o), o >= this.maxZoom ? { clusters: this.noop({ markers: r }), changed: !1 } : { clusters: this.cluster({ markers: Fn(e, n, r, this.viewportPadding), map: e, mapCanvasProjection: n }) } } } const Kn = t => t.map(t => new zn({ position: Zn.getPosition(t), markers: [t] })); var Yn, Xn, Jn, Qn, to, ro, eo, no, oo, io, so, ao, uo, co, fo, lo, ho, po, mo, go, vo = {}; function yo() { if (Qn) return Jn; Qn = 1; var t = function () { if (Xn) return Yn; Xn = 1; var t = ct(), r = ut(); return Yn = function (e) { if ("Function" === t(e)) return r(e) } }(), r = kt(), e = v(), n = t(t.bind); return Jn = function (t, o) { return r(t), void 0 === o ? t : e ? n(t, o) : function () { return t.apply(o, arguments) } }, Jn } function wo() { return ro ? to : (ro = 1, to = {}) } function bo() { if (no) return eo; no = 1; var t = nr(), r = wo(), e = t("iterator"), n = Array.prototype; return eo = function (t) { return void 0 !== t && (r.Array === t || n[e] === t) } } function Eo() { if (ao) return so; ao = 1; var t = function () { if (io) return oo; io = 1; var t = {}; return t[nr()("toStringTag")] = "z", oo = "[object z]" === String(t) }(), r = pt(), e = ct(), n = nr()("toStringTag"), o = Object, i = "Arguments" === e(function () { return arguments }()); return so = t ? e : function (t) { var s, a, u; return void 0 === t ? "Undefined" : null === t ? "Null" : "string" == typeof (a = function (t, r) { try { return t[r] } catch (t) { } }(s = o(t), n)) ? a : i ? e(s) : "Object" === (u = e(s)) && r(s.callee) ? "Arguments" : u } } function ko() { if (co) return uo; co = 1; var t = Eo(), r = xt(), e = ft(), n = wo(), o = nr()("iterator"); return uo = function (i) { if (!e(i)) return r(i, o) || r(i, "@@iterator") || n[t(i)] } } function xo() { if (lo) return fo; lo = 1; var t = y(), r = kt(), e = yr(), n = Et(), o = ko(), i = TypeError; return fo = function (s, a) { var u = arguments.length < 2 ? o(s) : a; if (r(u)) return e(t(u, s)); throw new i(n(s) + " is not iterable") }, fo } function Mo() { if (po) return ho; po = 1; var t = yo(), r = y(), e = yr(), n = Et(), o = bo(), i = fe(), s = gt(), a = xo(), u = ko(), c = Cn(), f = TypeError, l = function (t, r) { this.stopped = t, this.result = r }, h = l.prototype; return ho = function (p, m, d) { var g, v, y, w, b, E, k, x = d && d.that, M = !(!d || !d.AS_ENTRIES), O = !(!d || !d.IS_RECORD), P = !(!d || !d.IS_ITERATOR), C = !(!d || !d.INTERRUPTED), S = t(m, x), j = function (t) { return g && c(g, "normal"), new l(!0, t) }, A = function (t) { return M ? (e(t), C ? S(t[0], t[1], j) : S(t[0], t[1])) : C ? S(t, j) : S(t) }; if (O) g = p.iterator; else if (P) g = p; else { if (!(v = u(p))) throw new f(n(p) + " is not iterable"); if (o(v)) { for (y = 0, w = i(p); w > y; y++)if ((b = A(p[y])) && s(h, b)) return b; return new l(!1) } g = a(p, v) } for (E = O ? p.next : g.next; !(k = r(E, g)).done;) { try { b = A(k.value) } catch (t) { c(g, "throw", t) } if ("object" == typeof b && b && s(h, b)) return b } return new l(!1) } } go || (go = 1, function () { if (mo) return vo; mo = 1; var t = qe(), r = y(), e = Mo(), n = kt(), o = yr(), i = Mn(), s = Cn(), a = _n()("forEach", TypeError); t({ target: "Iterator", proto: !0, real: !0, forced: a }, { forEach: function (t) { o(this); try { n(t) } catch (t) { s(this, "throw", t) } if (a) return r(a, this, t); var u = i(this), c = 0; e(u, function (r) { t(r, c++) }, { IS_RECORD: !0 }) } }) }()); var Oo = Object.getOwnPropertyNames, Po = Object.getOwnPropertySymbols, Co = Object.prototype.hasOwnProperty; function So(t, r) { return function (e, n, o) { return t(e, n, o) && r(e, n, o) } } function jo(t) { return function (r, e, n) { if (!r || !e || "object" != typeof r || "object" != typeof e) return t(r, e, n); var o = n.cache, i = o.get(r), s = o.get(e); if (i && s) return i === e && s === r; o.set(r, e), o.set(e, r); var a = t(r, e, n); return o.delete(r), o.delete(e), a } } function Ao(t) { return Oo(t).concat(Po(t)) } var Io = Object.hasOwn || function (t, r) { return Co.call(t, r) }; function _o(t, r) { return t === r || !t && !r && t != t && r != r } var To = Object.getOwnPropertyDescriptor, Lo = Object.keys; function qo(t, r, e) { var n = t.length; if (r.length !== n) return !1; for (; n-- > 0;)if (!e.equals(t[n], r[n], n, n, t, r, e)) return !1; return !0 } function Ro(t, r) { return _o(t.getTime(), r.getTime()) } function Zo(t, r) { return t.name === r.name && t.message === r.message && t.cause === r.cause && t.stack === r.stack } function zo(t, r) { return t === r } function Do(t, r, e) { var n = t.size; if (n !== r.size) return !1; if (!n) return !0; for (var o, i, s = new Array(n), a = t.entries(), u = 0; (o = a.next()) && !o.done;) { for (var c = r.entries(), f = !1, l = 0; (i = c.next()) && !i.done;)if (s[l]) l++; else { var h = o.value, p = i.value; if (e.equals(h[0], p[0], u, l, t, r, e) && e.equals(h[1], p[1], h[0], p[0], t, r, e)) { f = s[l] = !0; break } l++ } if (!f) return !1; u++ } return !0 } var Fo = _o; function No(t, r, e) { var n = Lo(t), o = n.length; if (Lo(r).length !== o) return !1; for (; o-- > 0;)if (!Ho(t, r, e, n[o])) return !1; return !0 } function Uo(t, r, e) { var n, o, i, s = Ao(t), a = s.length; if (Ao(r).length !== a) return !1; for (; a-- > 0;) { if (!Ho(t, r, e, n = s[a])) return !1; if (o = To(t, n), i = To(r, n), (o || i) && (!o || !i || o.configurable !== i.configurable || o.enumerable !== i.enumerable || o.writable !== i.writable)) return !1 } return !0 } function Bo(t, r) { return _o(t.valueOf(), r.valueOf()) } function Wo(t, r) { return t.source === r.source && t.flags === r.flags } function $o(t, r, e) { var n = t.size; if (n !== r.size) return !1; if (!n) return !0; for (var o, i, s = new Array(n), a = t.values(); (o = a.next()) && !o.done;) { for (var u = r.values(), c = !1, f = 0; (i = u.next()) && !i.done;) { if (!s[f] && e.equals(o.value, i.value, o.value, i.value, t, r, e)) { c = s[f] = !0; break } f++ } if (!c) return !1 } return !0 } function Vo(t, r) { var e = t.length; if (r.length !== e) return !1; for (; e-- > 0;)if (t[e] !== r[e]) return !1; return !0 } function Go(t, r) { return t.hostname === r.hostname && t.pathname === r.pathname && t.protocol === r.protocol && t.port === r.port && t.hash === r.hash && t.username === r.username && t.password === r.password } function Ho(t, r, e, n) { return !("_owner" !== n && "__o" !== n && "__v" !== n || !t.$$typeof && !r.$$typeof) || Io(r, n) && e.equals(t[n], r[n], n, n, t, r, e) } var Ko = Array.isArray, Yo = "function" == typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView : null, Xo = Object.assign, Jo = Object.prototype.toString.call.bind(Object.prototype.toString); var Qo = ti(); function ti(t) { void 0 === t && (t = {}); var r, e = t.circular, n = void 0 !== e && e, o = t.createInternalComparator, i = t.createState, s = t.strict, a = void 0 !== s && s, u = function (t) { var r = t.circular, e = t.createCustomConfig, n = t.strict, o = { areArraysEqual: n ? Uo : qo, areDatesEqual: Ro, areErrorsEqual: Zo, areFunctionsEqual: zo, areMapsEqual: n ? So(Do, Uo) : Do, areNumbersEqual: Fo, areObjectsEqual: n ? Uo : No, arePrimitiveWrappersEqual: Bo, areRegExpsEqual: Wo, areSetsEqual: n ? So($o, Uo) : $o, areTypedArraysEqual: n ? Uo : Vo, areUrlsEqual: Go }; if (e && (o = Xo({}, o, e(o))), r) { var i = jo(o.areArraysEqual), s = jo(o.areMapsEqual), a = jo(o.areObjectsEqual), u = jo(o.areSetsEqual); o = Xo({}, o, { areArraysEqual: i, areMapsEqual: s, areObjectsEqual: a, areSetsEqual: u }) } return o }(t), c = function (t) { var r = t.areArraysEqual, e = t.areDatesEqual, n = t.areErrorsEqual, o = t.areFunctionsEqual, i = t.areMapsEqual, s = t.areNumbersEqual, a = t.areObjectsEqual, u = t.arePrimitiveWrappersEqual, c = t.areRegExpsEqual, f = t.areSetsEqual, l = t.areTypedArraysEqual, h = t.areUrlsEqual; return function (t, p, m) { if (t === p) return !0; if (null == t || null == p) return !1; var d = typeof t; if (d !== typeof p) return !1; if ("object" !== d) return "number" === d ? s(t, p, m) : "function" === d && o(t, p, m); var g = t.constructor; if (g !== p.constructor) return !1; if (g === Object) return a(t, p, m); if (Ko(t)) return r(t, p, m); if (null != Yo && Yo(t)) return l(t, p, m); if (g === Date) return e(t, p, m); if (g === RegExp) return c(t, p, m); if (g === Map) return i(t, p, m); if (g === Set) return f(t, p, m); var v = Jo(t); return "[object Date]" === v ? e(t, p, m) : "[object RegExp]" === v ? c(t, p, m) : "[object Map]" === v ? i(t, p, m) : "[object Set]" === v ? f(t, p, m) : "[object Object]" === v ? "function" != typeof t.then && "function" != typeof p.then && a(t, p, m) : "[object URL]" === v ? h(t, p, m) : "[object Error]" === v ? n(t, p, m) : "[object Arguments]" === v ? a(t, p, m) : ("[object Boolean]" === v || "[object Number]" === v || "[object String]" === v) && u(t, p, m) } }(u); return function (t) { var r = t.circular, e = t.comparator, n = t.createState, o = t.equals, i = t.strict; if (n) return function (t, s) { var a = n(), u = a.cache, c = void 0 === u ? r ? new WeakMap : void 0 : u, f = a.meta; return e(t, s, { cache: c, equals: o, meta: f, strict: i }) }; if (r) return function (t, r) { return e(t, r, { cache: new WeakMap, equals: o, meta: void 0, strict: i }) }; var s = { cache: void 0, equals: o, meta: void 0, strict: i }; return function (t, r) { return e(t, r, s) } }({ circular: n, comparator: c, createState: i, equals: o ? o(c) : (r = c, function (t, e, n, o, i, s, a) { return r(t, e, a) }), strict: a }) } ti({ strict: !0 }), ti({ circular: !0 }), ti({ circular: !0, strict: !0 }), ti({ createInternalComparator: function () { return _o } }), ti({ strict: !0, createInternalComparator: function () { return _o } }), ti({ circular: !0, createInternalComparator: function () { return _o } }), ti({ circular: !0, createInternalComparator: function () { return _o }, strict: !0 }); const ri = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array]; class ei { static from(t) { if (!(t instanceof ArrayBuffer)) throw new Error("Data must be an instance of ArrayBuffer."); const [r, e] = new Uint8Array(t, 0, 2); if (219 !== r) throw new Error("Data does not appear to be in a KDBush format."); const n = e >> 4; if (1 !== n) throw new Error(`Got v${n} data when expected v1.`); const o = ri[15 & e]; if (!o) throw new Error("Unrecognized array type."); const [i] = new Uint16Array(t, 2, 1), [s] = new Uint32Array(t, 4, 1); return new ei(s, i, o, t) } constructor(t, r = 64, e = Float64Array, n) { if (isNaN(t) || t < 0) throw new Error(`Unpexpected numItems value: ${t}.`); this.numItems = +t, this.nodeSize = Math.min(Math.max(+r, 2), 65535), this.ArrayType = e, this.IndexArrayType = t < 65536 ? Uint16Array : Uint32Array; const o = ri.indexOf(this.ArrayType), i = 2 * t * this.ArrayType.BYTES_PER_ELEMENT, s = t * this.IndexArrayType.BYTES_PER_ELEMENT, a = (8 - s % 8) % 8; if (o < 0) throw new Error(`Unexpected typed array class: ${e}.`); n && n instanceof ArrayBuffer ? (this.data = n, this.ids = new this.IndexArrayType(this.data, 8, t), this.coords = new this.ArrayType(this.data, 8 + s + a, 2 * t), this._pos = 2 * t, this._finished = !0) : (this.data = new ArrayBuffer(8 + i + s + a), this.ids = new this.IndexArrayType(this.data, 8, t), this.coords = new this.ArrayType(this.data, 8 + s + a, 2 * t), this._pos = 0, this._finished = !1, new Uint8Array(this.data, 0, 2).set([219, 16 + o]), new Uint16Array(this.data, 2, 1)[0] = r, new Uint32Array(this.data, 4, 1)[0] = t) } add(t, r) { const e = this._pos >> 1; return this.ids[e] = e, this.coords[this._pos++] = t, this.coords[this._pos++] = r, e } finish() { const t = this._pos >> 1; if (t !== this.numItems) throw new Error(`Added ${t} items when expected ${this.numItems}.`); return ni(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = !0, this } range(t, r, e, n) { if (!this._finished) throw new Error("Data not yet indexed - call index.finish()."); const { ids: o, coords: i, nodeSize: s } = this, a = [0, o.length - 1, 0], u = []; for (; a.length;) { const c = a.pop() || 0, f = a.pop() || 0, l = a.pop() || 0; if (f - l <= s) { for (let s = l; s <= f; s++) { const a = i[2 * s], c = i[2 * s + 1]; a >= t && a <= e && c >= r && c <= n && u.push(o[s]) } continue } const h = l + f >> 1, p = i[2 * h], m = i[2 * h + 1]; p >= t && p <= e && m >= r && m <= n && u.push(o[h]), (0 === c ? t <= p : r <= m) && (a.push(l), a.push(h - 1), a.push(1 - c)), (0 === c ? e >= p : n >= m) && (a.push(h + 1), a.push(f), a.push(1 - c)) } return u } within(t, r, e) { if (!this._finished) throw new Error("Data not yet indexed - call index.finish()."); const { ids: n, coords: o, nodeSize: i } = this, s = [0, n.length - 1, 0], a = [], u = e * e; for (; s.length;) { const c = s.pop() || 0, f = s.pop() || 0, l = s.pop() || 0; if (f - l <= i) { for (let e = l; e <= f; e++)ai(o[2 * e], o[2 * e + 1], t, r) <= u && a.push(n[e]); continue } const h = l + f >> 1, p = o[2 * h], m = o[2 * h + 1]; ai(p, m, t, r) <= u && a.push(n[h]), (0 === c ? t - e <= p : r - e <= m) && (s.push(l), s.push(h - 1), s.push(1 - c)), (0 === c ? t + e >= p : r + e >= m) && (s.push(h + 1), s.push(f), s.push(1 - c)) } return a } } function ni(t, r, e, n, o, i) { if (o - n <= e) return; const s = n + o >> 1; oi(t, r, s, n, o, i), ni(t, r, e, n, s - 1, 1 - i), ni(t, r, e, s + 1, o, 1 - i) } function oi(t, r, e, n, o, i) { for (; o > n;) { if (o - n > 600) { const s = o - n + 1, a = e - n + 1, u = Math.log(s), c = .5 * Math.exp(2 * u / 3), f = .5 * Math.sqrt(u * c * (s - c) / s) * (a - s / 2 < 0 ? -1 : 1); oi(t, r, e, Math.max(n, Math.floor(e - a * c / s + f)), Math.min(o, Math.floor(e + (s - a) * c / s + f)), i) } const s = r[2 * e + i]; let a = n, u = o; for (ii(t, r, n, e), r[2 * o + i] > s && ii(t, r, n, o); a < u;) { for (ii(t, r, a, u), a++, u--; r[2 * a + i] < s;)a++; for (; r[2 * u + i] > s;)u-- } r[2 * n + i] === s ? ii(t, r, n, u) : (u++, ii(t, r, u, o)), u <= e && (n = u + 1), e <= u && (o = u - 1) } } function ii(t, r, e, n) { si(t, e, n), si(r, 2 * e, 2 * n), si(r, 2 * e + 1, 2 * n + 1) } function si(t, r, e) { const n = t[r]; t[r] = t[e], t[e] = n } function ai(t, r, e, n) { const o = t - e, i = r - n; return o * o + i * i } const ui = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: !1, generateId: !1, reduce: null, map: t => t }, ci = Math.fround || (fi = new Float32Array(1), t => (fi[0] = +t, fi[0])); var fi; class li { constructor(t) { this.options = Object.assign(Object.create(ui), t), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [] } load(t) { const { log: r, minZoom: e, maxZoom: n } = this.options; r && console.time("total time"); const o = `prepare ${t.length} points`; r && console.time(o), this.points = t; const i = []; for (let r = 0; r < t.length; r++) { const e = t[r]; if (!e.geometry) continue; const [n, o] = e.geometry.coordinates, s = ci(mi(n)), a = ci(di(o)); i.push(s, a, 1 / 0, r, -1, 1), this.options.reduce && i.push(0) } let s = this.trees[n + 1] = this._createTree(i); r && console.timeEnd(o); for (let t = n; t >= e; t--) { const e = +Date.now(); s = this.trees[t] = this._createTree(this._cluster(s, t)), r && console.log("z%d: %d clusters in %dms", t, s.numItems, +Date.now() - e) } return r && console.timeEnd("total time"), this } getClusters(t, r) { let e = ((t[0] + 180) % 360 + 360) % 360 - 180; const n = Math.max(-90, Math.min(90, t[1])); let o = 180 === t[2] ? 180 : ((t[2] + 180) % 360 + 360) % 360 - 180; const i = Math.max(-90, Math.min(90, t[3])); if (t[2] - t[0] >= 360) e = -180, o = 180; else if (e > o) { const t = this.getClusters([e, n, 180, i], r), s = this.getClusters([-180, n, o, i], r); return t.concat(s) } const s = this.trees[this._limitZoom(r)], a = s.range(mi(e), di(i), mi(o), di(n)), u = s.data, c = []; for (const t of a) { const r = this.stride * t; c.push(u[r + 5] > 1 ? hi(u, r, this.clusterProps) : this.points[u[r + 3]]) } return c } getChildren(t) { const r = this._getOriginId(t), e = this._getOriginZoom(t), n = "No cluster with the specified id.", o = this.trees[e]; if (!o) throw new Error(n); const i = o.data; if (r * this.stride >= i.length) throw new Error(n); const s = this.options.radius / (this.options.extent * Math.pow(2, e - 1)), a = i[r * this.stride], u = i[r * this.stride + 1], c = o.within(a, u, s), f = []; for (const r of c) { const e = r * this.stride; i[e + 4] === t && f.push(i[e + 5] > 1 ? hi(i, e, this.clusterProps) : this.points[i[e + 3]]) } if (0 === f.length) throw new Error(n); return f } getLeaves(t, r, e) { r = r || 10, e = e || 0; const n = []; return this._appendLeaves(n, t, r, e, 0), n } getTile(t, r, e) { const n = this.trees[this._limitZoom(t)], o = Math.pow(2, t), { extent: i, radius: s } = this.options, a = s / i, u = (e - a) / o, c = (e + 1 + a) / o, f = { features: [] }; return this._addTileFeatures(n.range((r - a) / o, u, (r + 1 + a) / o, c), n.data, r, e, o, f), 0 === r && this._addTileFeatures(n.range(1 - a / o, u, 1, c), n.data, o, e, o, f), r === o - 1 && this._addTileFeatures(n.range(0, u, a / o, c), n.data, -1, e, o, f), f.features.length ? f : null } getClusterExpansionZoom(t) { let r = this._getOriginZoom(t) - 1; for (; r <= this.options.maxZoom;) { const e = this.getChildren(t); if (r++, 1 !== e.length) break; t = e[0].properties.cluster_id } return r } _appendLeaves(t, r, e, n, o) { const i = this.getChildren(r); for (const r of i) { const i = r.properties; if (i && i.cluster ? o + i.point_count <= n ? o += i.point_count : o = this._appendLeaves(t, i.cluster_id, e, n, o) : o < n ? o++ : t.push(r), t.length === e) break } return o } _createTree(t) { const r = new ei(t.length / this.stride | 0, this.options.nodeSize, Float32Array); for (let e = 0; e < t.length; e += this.stride)r.add(t[e], t[e + 1]); return r.finish(), r.data = t, r } _addTileFeatures(t, r, e, n, o, i) { for (const s of t) { const t = s * this.stride, a = r[t + 5] > 1; let u, c, f; if (a) u = pi(r, t, this.clusterProps), c = r[t], f = r[t + 1]; else { const e = this.points[r[t + 3]]; u = e.properties; const [n, o] = e.geometry.coordinates; c = mi(n), f = di(o) } const l = { type: 1, geometry: [[Math.round(this.options.extent * (c * o - e)), Math.round(this.options.extent * (f * o - n))]], tags: u }; let h; h = a || this.options.generateId ? r[t + 3] : this.points[r[t + 3]].id, void 0 !== h && (l.id = h), i.features.push(l) } } _limitZoom(t) { return Math.max(this.options.minZoom, Math.min(Math.floor(+t), this.options.maxZoom + 1)) } _cluster(t, r) { const { radius: e, extent: n, reduce: o, minPoints: i } = this.options, s = e / (n * Math.pow(2, r)), a = t.data, u = [], c = this.stride; for (let e = 0; e < a.length; e += c) { if (a[e + 2] <= r) continue; a[e + 2] = r; const n = a[e], f = a[e + 1], l = t.within(a[e], a[e + 1], s), h = a[e + 5]; let p = h; for (const t of l) { const e = t * c; a[e + 2] > r && (p += a[e + 5]) } if (p > h && p >= i) { let t, i = n * h, s = f * h, m = -1; const d = (e / c << 5) + (r + 1) + this.points.length; for (const n of l) { const u = n * c; if (a[u + 2] <= r) continue; a[u + 2] = r; const f = a[u + 5]; i += a[u] * f, s += a[u + 1] * f, a[u + 4] = d, o && (t || (t = this._map(a, e, !0), m = this.clusterProps.length, this.clusterProps.push(t)), o(t, this._map(a, u))) } a[e + 4] = d, u.push(i / p, s / p, 1 / 0, d, -1, p), o && u.push(m) } else { for (let t = 0; t < c; t++)u.push(a[e + t]); if (p > 1) for (const t of l) { const e = t * c; if (!(a[e + 2] <= r)) { a[e + 2] = r; for (let t = 0; t < c; t++)u.push(a[e + t]) } } } } return u } _getOriginId(t) { return t - this.points.length >> 5 } _getOriginZoom(t) { return (t - this.points.length) % 32 } _map(t, r, e) { if (t[r + 5] > 1) { const n = this.clusterProps[t[r + 6]]; return e ? Object.assign({}, n) : n } const n = this.points[t[r + 3]].properties, o = this.options.map(n); return e && o === n ? Object.assign({}, o) : o } } function hi(t, r, e) { return { type: "Feature", id: t[r + 3], properties: pi(t, r, e), geometry: { type: "Point", coordinates: [(n = t[r], 360 * (n - .5)), gi(t[r + 1])] } }; var n } function pi(t, r, e) { const n = t[r + 5], o = n >= 1e4 ? `${Math.round(n / 1e3)}k` : n >= 1e3 ? Math.round(n / 100) / 10 + "k" : n, i = t[r + 6], s = -1 === i ? {} : Object.assign({}, e[i]); return Object.assign(s, { cluster: !0, cluster_id: t[r + 3], point_count: n, point_count_abbreviated: o }) } function mi(t) { return t / 360 + .5 } function di(t) { const r = Math.sin(t * Math.PI / 180), e = .5 - .25 * Math.log((1 + r) / (1 - r)) / Math.PI; return e < 0 ? 0 : e > 1 ? 1 : e } function gi(t) { const r = (180 - 360 * t) * Math.PI / 180; return 360 * Math.atan(Math.exp(r)) / Math.PI - 90 } class vi extends Gn { constructor(t) { var { maxZoom: r, radius: e = 60 } = t, n = Tn(t, ["maxZoom", "radius"]); super({ maxZoom: r }), this.markers = [], this.clusters = [], this.state = { zoom: -1 }, this.superCluster = new li(Object.assign({ maxZoom: this.maxZoom, radius: e }, n)) } calculate(t) { let r = !1, e = t.map.getZoom(); Dn(e), e = Math.round(e); const n = { zoom: e }; if (!Qo(t.markers, this.markers)) { r = !0, this.markers = [...t.markers]; const e = this.markers.map(t => { const r = Zn.getPosition(t); return { type: "Feature", geometry: { type: "Point", coordinates: [r.lng(), r.lat()] }, properties: { marker: t } } }); this.superCluster.load(e) } return r || (this.state.zoom <= this.maxZoom || n.zoom <= this.maxZoom) && (r = !Qo(this.state, n)), this.state = n, 0 === t.markers.length ? (this.clusters = [], { clusters: this.clusters, changed: r }) : (r && (this.clusters = this.cluster(t)), { clusters: this.clusters, changed: r }) } cluster(t) { let { map: r } = t; const e = r.getZoom(); return Dn(e), this.superCluster.getClusters([-180, -90, 180, 90], Math.round(e)).map(t => this.transformCluster(t)) } transformCluster(t) { let { geometry: { coordinates: [r, e] }, properties: n } = t; if (n.cluster) return new zn({ markers: this.superCluster.getLeaves(n.cluster_id, 1 / 0).map(t => t.properties.marker), position: { lat: e, lng: r } }); const o = n.marker; return new zn({ markers: [o], position: Zn.getPosition(o) }) } } var yi, wi, bi, Ei, ki, xi = {}; function Mi() { if (bi) return xi; bi = 1; var t = qe(), r = Mo(), e = kt(), n = yr(), o = Mn(), i = Cn(), s = _n(), a = function () { if (wi) return yi; wi = 1; var t = v(), r = Function.prototype, e = r.apply, n = r.call; return yi = "object" == typeof Reflect && Reflect.apply || (t ? n.bind(e) : function () { return n.apply(e, arguments) }), yi }(), u = d(), c = TypeError, f = u(function () { [].keys().reduce(function () { }, void 0) }), l = !f && s("reduce", c); return t({ target: "Iterator", proto: !0, real: !0, forced: f || l }, { reduce: function (t) { n(this); try { e(t) } catch (t) { i(this, "throw", t) } var s = arguments.length < 2, u = s ? void 0 : arguments[1]; if (l) return a(l, this, s ? [t] : [t, u]); var f = o(this), h = 0; if (r(f, function (r) { s ? (s = !1, u = r) : u = t(u, r, h), h++ }, { IS_RECORD: !0 }), s) throw new c("Reduce of empty iterator with no initial value"); return u } }), xi } Ei || (Ei = 1, Mi()); class Oi { constructor(t, r) { this.markers = { sum: t.length }; const e = r.map(t => t.count), n = e.reduce((t, r) => t + r, 0); this.clusters = { count: r.length, markers: { mean: n / r.length, sum: n, min: Math.min(...e), max: Math.max(...e) } } } } class Pi { render(t, r, e) { let { count: n, position: o } = t; const i = `<svg fill="${n > Math.max(10, r.clusters.markers.mean) ? "#ff0000" : "#0000ff"}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="50" height="50">\n<circle cx="120" cy="120" opacity=".6" r="70" />\n<circle cx="120" cy="120" opacity=".3" r="90" />\n<circle cx="120" cy="120" opacity=".2" r="110" />\n<text x="50%" y="50%" style="fill:#fff" text-anchor="middle" font-size="50" dominant-baseline="middle" font-family="roboto,arial,sans-serif">${n}</text>\n</svg>`, s = `Cluster of ${n} markers`, a = Number(google.maps.Marker.MAX_ZINDEX) + n; if (Zn.isAdvancedMarkerAvailable(e)) { const t = (new DOMParser).parseFromString(i, "image/svg+xml").documentElement; t.setAttribute("transform", "translate(0 25)"); const r = { map: e, position: o, zIndex: a, title: s, content: t }; return new google.maps.marker.AdvancedMarkerElement(r) } const u = { position: o, zIndex: a, title: s, icon: { url: `data:image/svg+xml;base64,${btoa(i)}`, anchor: new google.maps.Point(25, 25) } }; return new google.maps.Marker(u) } } class Ci { constructor() { !function (t, r) { for (let e in r.prototype) t.prototype[e] = r.prototype[e] }(Ci, google.maps.OverlayView) } } t.MarkerClustererEvents = void 0, (ki = t.MarkerClustererEvents || (t.MarkerClustererEvents = {})).CLUSTERING_BEGIN = "clusteringbegin", ki.CLUSTERING_END = "clusteringend", ki.CLUSTER_CLICK = "click", ki.GMP_CLICK = "gmp-click"; const Si = (t, r, e) => { r.bounds && e.fitBounds(r.bounds) }; return t.AbstractAlgorithm = Gn, t.AbstractViewportAlgorithm = Hn, t.Cluster = zn, t.ClusterStats = Oi, t.DefaultRenderer = Pi, t.GridAlgorithm = class extends Hn { constructor(t) { var { maxDistance: r = 4e4, gridSize: e = 40 } = t; super(Tn(t, ["maxDistance", "gridSize"])), this.clusters = [], this.state = { zoom: -1 }, this.maxDistance = r, this.gridSize = e } calculate(t) { let { markers: r, map: e, mapCanvasProjection: n } = t; const o = e.getZoom(); Dn(o); const i = { zoom: o }; let s = !1; return this.state.zoom >= this.maxZoom && i.zoom >= this.maxZoom || (s = !Qo(this.state, i)), this.state = i, o >= this.maxZoom ? { clusters: this.noop({ markers: r }), changed: s } : { clusters: this.cluster({ markers: Fn(e, n, r, this.viewportPadding), map: e, mapCanvasProjection: n }) } } cluster(t) { let { markers: r, map: e, mapCanvasProjection: n } = t; return this.clusters = [], r.forEach(t => { this.addToClosestCluster(t, e, n) }), this.clusters } addToClosestCluster(t, r, e) { let n = this.maxDistance, o = null; for (let r = 0; r < this.clusters.length; r++) { const e = this.clusters[r]; Dn(e.bounds); const i = Bn(e.bounds.getCenter().toJSON(), Zn.getPosition(t).toJSON()); i < n && (n = i, o = e) } if (o) if (Dn(o.bounds), Nn(o.bounds, e, this.gridSize).contains(Zn.getPosition(t))) o.push(t); else { const r = new zn({ markers: [t] }); this.clusters.push(r) } else { const r = new zn({ markers: [t] }); this.clusters.push(r) } } }, t.MarkerClusterer = class extends Ci { constructor(t) { let { map: r, markers: e = [], algorithmOptions: n = {}, algorithm: o = new vi(n), renderer: i = new Pi, onClusterClick: s = Si } = t; super(), this.map = null, this.idleListener = null, this.markers = [...e], this.clusters = [], this.algorithm = o, this.renderer = i, this.onClusterClick = s, r && this.setMap(r) } addMarker(t, r) { this.markers.includes(t) || (this.markers.push(t), r || this.render()) } addMarkers(t, r) { t.forEach(t => { this.addMarker(t, !0) }), r || this.render() } removeMarker(t, r) { const e = this.markers.indexOf(t); return -1 !== e && (Zn.setMap(t, null), this.markers.splice(e, 1), r || this.render(), !0) } removeMarkers(t, r) { let e = !1; return t.forEach(t => { e = this.removeMarker(t, !0) || e }), e && !r && this.render(), e } clearMarkers(t) { this.markers.length = 0, t || this.render() } render() { const r = this.getMap(); if (r instanceof google.maps.Map && r.getProjection()) { google.maps.event.trigger(this, t.MarkerClustererEvents.CLUSTERING_BEGIN, this); const { clusters: e, changed: n } = this.algorithm.calculate({ markers: this.markers, map: r, mapCanvasProjection: this.getProjection() }); if (n || null == n) { const t = new Set; for (const r of e) 1 == r.markers.length && t.add(r.markers[0]); const r = []; for (const e of this.clusters) null != e.marker && (1 == e.markers.length ? t.has(e.marker) || Zn.setMap(e.marker, null) : r.push(e.marker)); this.clusters = e, this.renderClusters(), requestAnimationFrame(() => r.forEach(t => Zn.setMap(t, null))) } google.maps.event.trigger(this, t.MarkerClustererEvents.CLUSTERING_END, this) } } onAdd() { const t = this.getMap(); Dn(t), this.idleListener = t.addListener("idle", this.render.bind(this)), this.render() } onRemove() { this.idleListener && google.maps.event.removeListener(this.idleListener), this.reset() } reset() { this.markers.forEach(t => Zn.setMap(t, null)), this.clusters.forEach(t => t.delete()), this.clusters = [] } renderClusters() { const r = new Oi(this.markers, this.clusters), e = this.getMap(); this.clusters.forEach(n => { if (1 === n.markers.length) n.marker = n.markers[0]; else if (n.marker = this.renderer.render(n, r, e), n.markers.forEach(t => Zn.setMap(t, null)), this.onClusterClick) { const r = Zn.isAdvancedMarker(n.marker) ? t.MarkerClustererEvents.GMP_CLICK : t.MarkerClustererEvents.CLUSTER_CLICK; n.marker.addListener(r, r => { google.maps.event.trigger(this, t.MarkerClustererEvents.CLUSTER_CLICK, n), this.onClusterClick(r, n, e) }) } Zn.setMap(n.marker, e) }) } }, t.MarkerUtils = Zn, t.NoopAlgorithm = class extends Gn { constructor(t) { super(Tn(t, [])) } calculate(t) { let { markers: r, map: e, mapCanvasProjection: n } = t; return { clusters: this.cluster({ markers: r, map: e, mapCanvasProjection: n }), changed: !1 } } cluster(t) { return this.noop(t) } }, t.SuperClusterAlgorithm = vi, t.SuperClusterViewportAlgorithm = class extends Hn { constructor(t) { var { maxZoom: r, radius: e = 60, viewportPadding: n = 60 } = t, o = Tn(t, ["maxZoom", "radius", "viewportPadding"]); super({ maxZoom: r, viewportPadding: n }), this.markers = [], this.clusters = [], this.superCluster = new li(Object.assign({ maxZoom: this.maxZoom, radius: e }, o)), this.state = { zoom: -1, view: [0, 0, 0, 0] } } calculate(t) { const r = this.getViewportState(t); let e = !Qo(this.state, r); if (!Qo(t.markers, this.markers)) { e = !0, this.markers = [...t.markers]; const r = this.markers.map(t => { const r = Zn.getPosition(t); return { type: "Feature", geometry: { type: "Point", coordinates: [r.lng(), r.lat()] }, properties: { marker: t } } }); this.superCluster.load(r) } return e && (this.clusters = this.cluster(t), this.state = r), { clusters: this.clusters, changed: e } } cluster(t) { const r = this.getViewportState(t); return this.superCluster.getClusters(r.view, r.zoom).map(t => this.transformCluster(t)) } transformCluster(t) { let { geometry: { coordinates: [r, e] }, properties: n } = t; if (n.cluster) return new zn({ markers: this.superCluster.getLeaves(n.cluster_id, 1 / 0).map(t => t.properties.marker), position: { lat: e, lng: r } }); const o = n.marker; return new zn({ markers: [o], position: Zn.getPosition(o) }) } getViewportState(t) { const r = t.map.getZoom(), e = t.map.getBounds(); return Dn(r), Dn(e), { zoom: Math.round(r), view: Un(e, t.mapCanvasProjection, this.viewportPadding) } } }, t.defaultOnClusterClickHandler = Si, t.distanceBetweenPoints = Bn, t.extendBoundsToPaddedViewport = Nn, t.extendPixelBounds = $n, t.filterMarkersToPaddedViewport = Fn, t.getPaddedViewport = Un, t.noop = Kn, t.pixelBoundsToLatLngBounds = Vn, t }({});
//# sourceMappingURL=index.min.js.map