diff --git a/docs/troubleshooting/import-build-fails.md b/docs/troubleshooting/import-build-fails.md index 11dcb314a..38705485e 100644 --- a/docs/troubleshooting/import-build-fails.md +++ b/docs/troubleshooting/import-build-fails.md @@ -8,9 +8,9 @@ Several users have reported unexpected "JSON Syntax" errors when importing or bu * https://github.com/robiningelbrecht/statistics-for-strava/issues/1288 * https://github.com/robiningelbrecht/statistics-for-strava/issues/1180 -![Import error](../assets/images/troubleshoot-import-error.png) +![Import error](../assets/images/troubleshoot-import-error.png ':size=700') -![Build error](../assets/images/troubleshoot-build-error.png) +![Build error](../assets/images/troubleshoot-build-error.png ':size=700') All of these issues share the same root cause: at some point, data became corrupted. Unfortunately, we still don’t know exactly how or why this corruption occurs. diff --git a/public/css/dist/tailwind.min.css b/public/css/dist/tailwind.min.css index ce589135a..9bfd6d0de 100644 --- a/public/css/dist/tailwind.min.css +++ b/public/css/dist/tailwind.min.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:#fef2f2;--color-red-100:#fee2e2;--color-red-200:#fecaca;--color-red-300:#fca5a5;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-red-700:#b91c1c;--color-red-800:#991b1b;--color-red-900:#7f1d1d;--color-orange-50:#fffaf0;--color-orange-100:#feebc8;--color-orange-200:#fbd38d;--color-orange-300:#f6ad55;--color-orange-400:#ed8936;--color-orange-500:#dd6b20;--color-orange-600:#c05621;--color-orange-700:#9c4221;--color-orange-800:#7b341e;--color-orange-900:#652b19;--color-yellow-50:#fffbeb;--color-yellow-100:#fef3c7;--color-yellow-200:#fde68a;--color-yellow-300:#fcd34d;--color-yellow-400:#fbbf24;--color-yellow-500:#f59e0b;--color-yellow-600:#d97706;--color-yellow-700:#b45309;--color-yellow-800:#92400e;--color-yellow-900:#78350f;--color-lime-200:oklch(93.8% .127 124.321);--color-lime-300:oklch(89.7% .196 126.665);--color-lime-400:oklch(84.1% .238 128.85);--color-lime-500:oklch(76.8% .233 130.85);--color-lime-800:oklch(45.3% .124 130.933);--color-green-50:#ecfdf5;--color-green-100:#d1fae5;--color-green-200:#a7f3d0;--color-green-300:#6ee7b7;--color-green-400:#34d399;--color-green-500:#10b981;--color-green-600:#059669;--color-green-700:#047857;--color-green-800:#065f46;--color-green-900:#064e3b;--color-emerald-600:oklch(59.6% .145 163.225);--color-teal-50:#f0fdfa;--color-teal-100:#ccfbf1;--color-teal-200:#99f6e4;--color-teal-300:#5eead4;--color-teal-400:#2dd4bf;--color-teal-500:#14b8a6;--color-teal-600:#0d9488;--color-teal-700:#0f766e;--color-teal-800:#115e59;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#22d3ee;--color-cyan-500:#06b6d4;--color-cyan-600:#0891b2;--color-cyan-800:#155e75;--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-50:#eff6ff;--color-blue-100:#dbeafe;--color-blue-200:#bfdbfe;--color-blue-300:#93c5fd;--color-blue-400:#60a5fa;--color-blue-500:#3b82f6;--color-blue-600:#2563eb;--color-blue-700:#1d4ed8;--color-blue-800:#1e40af;--color-blue-900:#1e3a8a;--color-indigo-50:#eef2ff;--color-indigo-100:#e0e7ff;--color-indigo-200:#c7d2fe;--color-indigo-300:#a5b4fc;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-indigo-800:#3730a3;--color-indigo-900:#312e81;--color-purple-50:#f5f3ff;--color-purple-100:#ede9fe;--color-purple-200:#ddd6fe;--color-purple-300:#c4b5fd;--color-purple-400:#a78bfa;--color-purple-500:#8b5cf6;--color-purple-600:#7c3aed;--color-purple-700:#6d28d9;--color-purple-800:#5b21b6;--color-purple-900:#4c1d95;--color-pink-50:#fdf2f8;--color-pink-100:#fce7f3;--color-pink-200:#fbcfe8;--color-pink-300:#f9a8d4;--color-pink-400:#f472b6;--color-pink-500:#ec4899;--color-pink-600:#db2777;--color-pink-700:#be185d;--color-pink-800:#9d174d;--color-pink-900:#831843;--color-slate-600:oklch(44.6% .043 257.281);--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--container-2xs:18rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-xxs:.625rem;--color-strava-orange:#f26722;--color-grey-yo:#ccc;--animate-fade-in-chat-message:chat-message .15s ease-out 0s forwards}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentColor)}::file-selector-button{border-color:var(--color-gray-200,currentColor)}*{scrollbar-color:initial;scrollbar-width:initial}.tooltip-arrow,.tooltip-arrow:before{background:inherit;width:8px;height:8px;position:absolute}.tooltip-arrow{visibility:hidden}.tooltip-arrow:before{content:"";visibility:visible;transform:rotate(45deg)}[data-tooltip-style^=light]+.tooltip>.tooltip-arrow:before{border-style:solid;border-color:var(--color-gray-200)}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=top]>.tooltip-arrow:before{border-bottom-width:1px;border-right-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=right]>.tooltip-arrow:before{border-bottom-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=bottom]>.tooltip-arrow:before{border-top-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=left]>.tooltip-arrow:before{border-top-width:1px;border-right-width:1px}.tooltip[data-popper-placement^=top]>.tooltip-arrow{bottom:-4px}.tooltip[data-popper-placement^=bottom]>.tooltip-arrow{top:-4px}.tooltip[data-popper-placement^=left]>.tooltip-arrow{right:-4px}.tooltip[data-popper-placement^=right]>.tooltip-arrow{left:-4px}.tooltip.invisible>.tooltip-arrow:before{visibility:hidden}[data-popper-arrow],[data-popper-arrow]:before{background:inherit;width:8px;height:8px;position:absolute}[data-popper-arrow]{visibility:hidden}[data-popper-arrow]:before{content:"";visibility:visible;transform:rotate(45deg)}[data-popper-arrow]:after{content:"";visibility:visible;background:inherit;width:9px;height:9px;position:absolute;transform:rotate(45deg)}[role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:var(--color-gray-200)}.dark [role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:var(--color-gray-600)}[role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:var(--color-gray-200)}.dark [role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:var(--color-gray-600)}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:after{border-bottom-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:after{border-bottom-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:after{border-top-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:after{border-top-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]{bottom:-5px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]{top:-5px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]{right:-5px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]{left:-5px}[role=tooltip].invisible>[data-popper-arrow]:before,[role=tooltip].invisible>[data-popper-arrow]:after{visibility:hidden}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;border-color:var(--color-gray-500);--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is([type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:var(--color-blue-600);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:var(--color-blue-600);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:var(--color-gray-500);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}input[type=time]::-webkit-calendar-picker-indicator{background:0 0}select:not([size]){print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 10 6'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3e %3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:.75em .75em;padding-right:2.5rem}[dir=rtl] select:not([size]){background-position:.75rem;padding-left:0;padding-right:.75rem}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}[type=checkbox],[type=radio]{appearance:none;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;width:1rem;height:1rem;color:var(--color-blue-600);border-color:--color-gray-500;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;flex-shrink:0;padding:0;display:inline-block}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:var(--color-blue-600);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked,.dark [type=checkbox]:checked,.dark [type=radio]:checked{background-position:50%;background-repeat:no-repeat;background-size:.55em .55em;background-color:currentColor!important;border-color:#0000!important}[type=checkbox]:checked{print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");background-repeat:no-repeat;background-size:.55em .55em}[type=radio]:checked,.dark [type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");background-size:1em 1em}[type=checkbox]:indeterminate{print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M0.5 6h14'/%3e %3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:.55em .55em;background-color:currentColor!important;border-color:#0000!important}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{background-color:currentColor!important;border-color:#0000!important}[type=file]{background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}[type=file]:focus{outline:1px auto inherit}input[type=file]::file-selector-button{color:#fff;background:var(--color-gray-800);cursor:pointer;border:0;margin-inline:-1rem 1rem;padding:.625rem 1rem .625rem 2rem;font-size:.875rem;font-weight:500}input[type=file]::file-selector-button:hover{background:var(--color-gray-700)}[dir=rtl] input[type=file]::file-selector-button{padding-left:1rem;padding-right:2rem}.dark input[type=file]::file-selector-button{color:#fff;background:var(--color-gray-600)}.dark input[type=file]::file-selector-button:hover{background:var(--color-gray-500)}input[type=range]::-webkit-slider-thumb{background:var(--color-blue-600);appearance:none;cursor:pointer;border:0;border-radius:9999px;width:1.25rem;height:1.25rem}input[type=range]:disabled::-webkit-slider-thumb{background:var(--color-gray-400)}.dark input[type=range]:disabled::-webkit-slider-thumb{background:var(--color-gray-500)}input[type=range]:focus::-webkit-slider-thumb{outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(164 202 254/var(--tw-ring-opacity));outline:2px solid #0000}input[type=range]::-moz-range-thumb{background:var(--color-blue-600);appearance:none;cursor:pointer;border:0;border-radius:9999px;width:1.25rem;height:1.25rem}input[type=range]:disabled::-moz-range-thumb{background:var(--color-gray-400)}.dark input[type=range]:disabled::-moz-range-thumb{background:var(--color-gray-500)}input[type=range]::-moz-range-progress{background:var(--color-blue-500)}input[type=range]::-ms-fill-lower{background:var(--color-blue-500)}input[type=range].range-sm::-webkit-slider-thumb{width:1rem;height:1rem}input[type=range].range-lg::-webkit-slider-thumb{width:1.5rem;height:1.5rem}input[type=range].range-sm::-moz-range-thumb{width:1rem;height:1rem}input[type=range].range-lg::-moz-range-thumb{width:1.5rem;height:1.5rem}.toggle-bg:after{content:"";border-color:var(--color-gray-300);width:1.25rem;height:1.25rem;box-shadow:var(--tw-ring-inset)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color);background:#fff;border-width:1px;border-radius:9999px;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;position:absolute;top:.125rem;left:.125rem}input:checked+.toggle-bg:after{border-color:#fff;transform:translate(100%)}input:checked+.toggle-bg{background:var(--color-blue-600);border-color:var(--color-blue-600)}}@layer components{div.filter-dropdown>button[data-dropdown-toggle]{cursor:pointer;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-strava-orange);width:fit-content;padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-strava-orange);justify-content:space-between;align-items:center;display:inline-flex}@media (hover:hover){div.filter-dropdown>button[data-dropdown-toggle]:hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-orange-300);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){div.filter-dropdown>button[data-dropdown-toggle]:hover{outline-offset:2px;outline:2px solid #0000}}}div.filter-dropdown>button[data-dropdown-toggle].active{background-color:var(--color-strava-orange);color:var(--color-white)}@media (hover:hover){div.filter-dropdown>button[data-dropdown-toggle].active:hover{border-color:var(--color-orange-600);background-color:var(--color-orange-600)}}div.tabs.tabs--default{margin-bottom:calc(var(--spacing)*4);border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--color-gray-100)}div.tabs.tabs--default>ul{column-gap:calc(var(--spacing)*2);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);margin-bottom:-2px;display:flex;overflow-x:auto}div.tabs.tabs--default>ul>li{flex-shrink:0}div.tabs.tabs--default>ul>li>a{border-bottom-style:var(--tw-border-style);padding:calc(var(--spacing)*2);border-bottom-width:2px;justify-content:center;align-items:center;display:inline-flex}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.datatable-wrapper{width:100%}@media (min-width:640px){.datatable-wrapper .datatable-top{flex-direction:row-reverse;align-items:center}}@media (min-width:640px){.datatable-wrapper .datatable-bottom{flex-direction:row;align-items:center}}.datatable-wrapper .datatable-bottom{flex-direction:column;justify-content:space-between;align-items:start;gap:1rem;margin-top:1rem;display:flex}@media (min-width:640px){.datatable-wrapper .datatable-bottom{flex-direction:row;align-items:center}}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type,.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type{position:relative}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link{color:var(--color-gray-500);border-top:1px solid var(--color-gray-300);border-bottom:1px solid var(--color-gray-300);border-right:1px solid var(--color-gray-300);align-items:center;height:2rem;padding-left:.75rem;padding-right:.75rem;font-size:.875rem;font-weight:500;display:flex}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link,.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link,.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link,.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link{color:#0000}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e");width:1.3rem;height:1.3rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%23111827' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e")}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e");width:1.3rem;height:1.3rem;position:absolute;top:50%;right:50%;transform:translate(50%,-50%)}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%23111827' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e")}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link{border-left:1px solid var(--color-gray-300);border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link{border-left:0;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link:hover{background-color:var(--color-gray-50);color:var(--color-gray-700)}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.start-0{inset-inline-start:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-\[60px\]{top:60px}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-\[60px\]{bottom:60px}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-100{z-index:100}.z-1001{z-index:1001}.z-1002{z-index:1002}.z-1100{z-index:1100}.z-1400{z-index:1400}.z-1500{z-index:1500}.z-10000{z-index:10000}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-4{margin:calc(var(--spacing)*4)}.-mx-4{margin-inline:calc(var(--spacing)*-4)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing)*4)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.ms-3{margin-inline-start:calc(var(--spacing)*3)}.ms-auto{margin-inline-start:auto}.me-2{margin-inline-end:calc(var(--spacing)*2)}.me-3{margin-inline-end:calc(var(--spacing)*3)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-2\.5{margin-top:calc(var(--spacing)*2.5)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-\[2px\]{margin-top:2px}.apexcharts-canvas .apexcharts-legend-series{align-items:center!important;margin-bottom:.25rem!important;margin-left:.5rem!important;margin-right:.5rem!important;display:flex!important}.apexcharts-canvas .apexcharts-tooltip{color:var(--color-gray-700)!important;background-color:#fff!important;border:0!important;border-radius:.25rem!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important}.datatable-wrapper .datatable-top{flex-direction:column-reverse;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem;display:flex}@media (min-width:640px){.datatable-wrapper .datatable-top{flex-direction:row-reverse;align-items:center}}[dir=rtl] .apexcharts-tooltip .apexcharts-tooltip-marker{margin-left:.375rem!important;margin-right:0!important}.datatable-wrapper .datatable-top .datatable-dropdown{color:var(--color-gray-500);font-size:.875rem}.datatable-wrapper .datatable-top .datatable-dropdown .datatable-selector{background-color:var(--color-gray-50);color:var(--color-gray-900);border:1px solid var(--color-gray-300);border-radius:.5rem;min-width:4rem;margin-right:.25rem;font-size:.875rem}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-2\.5{margin-right:calc(var(--spacing)*2.5)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-title{background-color:var(--color-gray-100)!important;border-bottom-color:var(--color-gray-200)!important;color:var(--color-gray-500)!important;margin-bottom:.75rem!important;padding:.5rem .75rem!important;font-size:.875rem!important;font-weight:400!important}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.apexcharts-canvas .apexcharts-xaxistooltip{color:var(--color-gray-500)!important;background-color:#fff!important;border-color:#0000!important;border-radius:.25rem!important;padding:.5rem .75rem!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important}.apexcharts-canvas .apexcharts-xaxistooltip:after,.apexcharts-canvas .apexcharts-xaxistooltip:before{border-bottom-color:#fff!important}.apexcharts-canvas .apexcharts-xaxistooltip:after{border-width:8px!important;margin-left:-8px!important}.apexcharts-canvas .apexcharts-xaxistooltip:before{border-width:10px!important;margin-left:-10px!important}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.scrollbar::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb,initial)var(--scrollbar-track,initial)}.scrollbar::-webkit-scrollbar{width:var(--scrollbar-width,16px);height:var(--scrollbar-height,16px);display:block}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list{align-items:center;height:2rem;font-size:.875rem;display:flex}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-52{height:calc(var(--spacing)*52)}.h-62{height:calc(var(--spacing)*62)}.h-64{height:calc(var(--spacing)*64)}.h-80{height:calc(var(--spacing)*80)}.h-104{height:calc(var(--spacing)*104)}.h-120{height:calc(var(--spacing)*120)}.h-\[12px\]{height:12px}.h-\[20rem\]{height:20rem}.h-\[24rem\]{height:24rem}.h-\[25vh\]{height:25vh}.h-\[120px\]{height:120px}.h-\[130px\]{height:130px}.h-\[145px\]{height:145px}.h-\[350px\]{height:350px}.h-\[calc\(100\%-1rem\)\]{height:calc(100% - 1rem)}.h-\[calc\(100vh-15\.4rem\)\]{height:calc(100vh - 15.4rem)}.h-\[calc\(100vh-245px\)\]{height:calc(100vh - 245px)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-\[35px\]{max-height:35px}.max-h-\[200px\]{max-height:200px}.max-h-\[320px\]{max-height:320px}.max-h-\[calc\(100vh-160px\)\]{max-height:calc(100vh - 160px)}.max-h-\[calc\(100vh-200px\)\]{max-height:calc(100vh - 200px)}.max-h-\[calc\(100vh-285px\)\]{max-height:calc(100vh - 285px)}.max-h-\[calc\(100vh-585px\)\]{max-height:calc(100vh - 585px)}.max-h-full{max-height:100%}.min-h-40{min-height:calc(var(--spacing)*40)}.min-h-\[16rem\]{min-height:16rem}.min-h-\[350px\]{min-height:350px}.min-h-screen{min-height:100vh}.datatable-wrapper .datatable-table{width:100%;color:var(--color-gray-500);text-align:left;font-size:.875rem}.datatable-wrapper .datatable-table thead{color:var(--color-gray-500);background-color:var(--color-gray-50);font-size:.75rem}.datatable-wrapper .datatable-table thead th{white-space:nowrap;padding:.75rem 1.5rem;width:auto!important}.datatable-wrapper .datatable-table tbody th,.datatable-wrapper .datatable-table tbody td{padding:.75rem 1.5rem;width:auto!important}.datatable-wrapper .datatable-table thead th .datatable-sorter,.datatable-wrapper .datatable-table thead th{text-transform:uppercase}.datatable-wrapper .datatable-table tbody tr{border-bottom:1px solid var(--color-gray-200)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-1\/2{width:50%}.w-1\/6{width:16.6667%}.w-1\/7{width:14.2857%}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-11{width:calc(var(--spacing)*11)}.w-36{width:calc(var(--spacing)*36)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-\[1rem\]{width:1rem}.w-\[2rem\]{width:2rem}.w-\[4\.5rem\]{width:4.5rem}.w-\[4rem\]{width:4rem}.w-\[5rem\]{width:5rem}.w-\[6rem\]{width:6rem}.w-\[8rem\]{width:8rem}.w-\[13rem\]{width:13rem}.w-\[23rem\]{width:23rem}.w-\[200px\]{width:200px}.w-\[rem\]{width:rem}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--breakpoint-sm\){max-width:var(--breakpoint-sm)}.max-w-\(--breakpoint-xl\){max-width:var(--breakpoint-xl)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-100{max-width:calc(var(--spacing)*100)}.max-w-120{max-width:calc(var(--spacing)*120)}.max-w-\[30\%\]{max-width:30%}.max-w-full{max-width:100%}.datatable-wrapper .datatable-search .datatable-input,.datatable-wrapper .datatable-input{color:var(--color-gray-900);border:1px solid var(--color-gray-300);background-color:var(--color-gray-50);border-radius:.5rem;min-width:16rem;font-size:.875rem}.datatable-wrapper thead th .datatable-input{color:var(--color-gray-900);background-color:#fff;min-width:0;padding-top:.35rem;padding-bottom:.35rem;font-weight:400}.datatable-wrapper .datatable-search .datatable-input{color:var(--color-gray-900);border:1px solid var(--color-gray-300);background-color:var(--color-gray-50);border-radius:.5rem;min-width:16rem;font-size:.875rem}.dark .datatable-wrapper .datatable-search .datatable-input{color:#fff;background-color:var(--color-gray-800);border:1px solid var(--color-gray-700)}.datatable-wrapper .datatable-search .datatable-input:focus{border-color:var(--color-blue-600)}.min-w-\[10rem\]{min-width:10rem}.min-w-\[100px\]{min-width:100px}.min-w-\[800px\]{min-width:800px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-10{flex-grow:10}.caption-top{caption-side:top}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform-none{transform:none}.animate-\[bounce_1s_infinite_200ms\]{animation:1s .2s infinite bounce}.animate-\[bounce_1s_infinite_300ms\]{animation:1s .3s infinite bounce}.animate-\[bounce_1s_infinite_400ms\]{animation:1s .4s infinite bounce}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-0\.5{column-gap:calc(var(--spacing)*.5)}.gap-x-1{column-gap:calc(var(--spacing)*1)}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-x-3{column-gap:calc(var(--spacing)*3)}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-x-6{column-gap:calc(var(--spacing)*6)}.gap-x-\[2rem\]{column-gap:2rem}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.gap-y-3{row-gap:calc(var(--spacing)*3)}.gap-y-4{row-gap:calc(var(--spacing)*4)}.gap-y-6{row-gap:calc(var(--spacing)*6)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.datatable-wrapper .datatable-container,.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-lg{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-r-2{border-right-style:var(--tw-border-style);border-right-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.dark .apexcharts-canvas .apexcharts-tooltip{background-color:var(--color-gray-700)!important;color:var(--color-gray-400)!important;border-color:#0000!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-title{background-color:var(--color-gray-600)!important;border-color:var(--color-gray-500)!important;color:var(--color-gray-500)!important}.dark .apexcharts-canvas .apexcharts-xaxistooltip{color:var(--color-gray-400)!important;background-color:var(--color-gray-700)!important}.dark .apexcharts-canvas .apexcharts-xaxistooltip:after,.dark .apexcharts-canvas .apexcharts-xaxistooltip:before{border-bottom-color:var(--color-gray-700)!important}.dark .apexcharts-gridline,.dark .apexcharts-xcrosshairs,.dark .apexcharts-ycrosshairs{stroke:var(--color-gray-700)!important}.dark .datatable-wrapper .datatable-search .datatable-input,.dark .datatable-wrapper .datatable-input{color:#fff;background-color:var(--color-gray-800);border:1px solid var(--color-gray-700)}.dark .datatable-wrapper thead th .datatable-input{background-color:var(--color-gray-700);border-color:var(--color-gray-600);color:#fff}.dark .datatable-wrapper .datatable-top .datatable-dropdown{color:var(--color-gray-400)}.dark .datatable-wrapper .datatable-top .datatable-dropdown .datatable-selector{background-color:var(--color-gray-800);border:1px solid var(--color-gray-700);color:#fff}.dark .datatable-wrapper .datatable-table{color:var(--color-gray-400)}.dark .datatable-wrapper .datatable-table thead{color:var(--color-gray-400);background-color:var(--color-gray-800)}.dark .datatable-wrapper .datatable-table tbody tr{border-bottom:1px solid var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link{color:var(--color-gray-400);border-color:var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link,.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link{color:#0000}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link{border-left:1px solid var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link:hover{background-color:var(--color-gray-700);color:#fff}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-600{border-color:var(--color-blue-600)}.border-blue-700{border-color:var(--color-blue-700)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-red-300{border-color:var(--color-red-300)}.border-red-500{border-color:var(--color-red-500)}.border-strava-orange{border-color:var(--color-strava-orange)}.border-yellow-300{border-color:var(--color-yellow-300)}.border-t-strava-orange{border-top-color:var(--color-strava-orange)}.border-l-blue-600{border-left-color:var(--color-blue-600)}.border-l-emerald-600{border-left-color:var(--color-emerald-600)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-red-600{border-left-color:var(--color-red-600)}.border-l-slate-600{border-left-color:var(--color-slate-600)}.border-l-yellow-300{border-left-color:var(--color-yellow-300)}.apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-y-group{padding:0!important}.apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active{color:var(--color-gray-500)!important;background-color:#fff!important;padding-bottom:.75rem!important;padding-left:.75rem!important;padding-right:.75rem!important}.dark .apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active{background-color:var(--color-gray-700)!important;color:var(--color-gray-400)!important}.apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active:first-of-type{padding-top:.75rem!important}.datatable-wrapper .datatable-table tbody tr.selected{background-color:var(--color-gray-100)}.dark .datatable-wrapper .datatable-table tbody tr.selected{background-color:var(--color-gray-700)}.selectedCell{background-color:var(--color-gray-50)}.bg-\[\#89D7D2\]{background-color:#89d7d2}.bg-\[\#F26722\]{background-color:#f26722}.bg-black\/0{background-color:#0000}@supports (color:color-mix(in lab, red, red)){.bg-black\/0{background-color:color-mix(in oklab,var(--color-black)0%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-600\/\[\.1\]{background-color:#2563eb1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-600\/\[\.1\]{background-color:color-mix(in oklab,var(--color-blue-600)10%,transparent)}}.bg-blue-700{background-color:var(--color-blue-700)}.bg-emerald-600\/\[\.1\]{background-color:#0097671a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-600\/\[\.1\]{background-color:color-mix(in oklab,var(--color-emerald-600)10%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900\/50{background-color:#11182780}@supports (color:color-mix(in lab, red, red)){.bg-gray-900\/50{background-color:color-mix(in oklab,var(--color-gray-900)50%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-orange-400\/40{background-color:#ed893666}@supports (color:color-mix(in lab, red, red)){.bg-orange-400\/40{background-color:color-mix(in oklab,var(--color-orange-400)40%,transparent)}}.bg-orange-500\/\[\.1\]{background-color:#dd6b201a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/\[\.1\]{background-color:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-red-600\/\[\.1\]{background-color:#dc26261a}@supports (color:color-mix(in lab, red, red)){.bg-red-600\/\[\.1\]{background-color:color-mix(in oklab,var(--color-red-600)10%,transparent)}}.bg-slate-600\/\[\.1\]{background-color:#45556c1a}@supports (color:color-mix(in lab, red, red)){.bg-slate-600\/\[\.1\]{background-color:color-mix(in oklab,var(--color-slate-600)10%,transparent)}}.bg-strava-orange{background-color:var(--color-strava-orange)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-300\/\[\.1\]{background-color:#fcd34d1a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-300\/\[\.1\]{background-color:color-mix(in oklab,var(--color-yellow-300)10%,transparent)}}.bg-yellow-400{background-color:var(--color-yellow-400)}.dark .selectedCell{background-color:var(--color-gray-700)}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/60{--tw-gradient-from:#0009}@supports (color:color-mix(in lab, red, red)){.from-black\/60{--tw-gradient-from:color-mix(in oklab,var(--color-black)60%,transparent)}}.from-black\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-label{fill:var(--color-gray-500)!important;font-size:1rem,[object Object]!important;font-weight:400!important}.dark .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-label{fill:var(--color-gray-400)!important}.apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-value{fill:var(--color-gray-900)!important;font-size:1.875rem,[object Object]!important;font-weight:700!important}.dark .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-value{fill:#fff!important}.fill-orange-500{fill:var(--color-orange-500)}.apexcharts-ycrosshairs{stroke:var(--color-gray-200)!important}.dark .apexcharts-ycrosshairs{stroke:var(--color-gray-700)!important}.object-cover{object-fit:cover}.object-top{object-position:top}.apexcharts-canvas .apexcharts-legend,.apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-y-group{padding:0!important}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-\[1rem\]{padding:1rem}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-8{padding-block:calc(var(--spacing)*8)}.ps-3{padding-inline-start:calc(var(--spacing)*3)}.ps-10{padding-inline-start:calc(var(--spacing)*10)}.pt-0\.5{padding-top:calc(var(--spacing)*.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-14{padding-top:calc(var(--spacing)*14)}.pt-20{padding-top:calc(var(--spacing)*20)}.datatable-wrapper .datatable-container thead tr.search-filtering-row th{padding-top:0}.apexcharts-canvas .apexcharts-legend-text{color:var(--color-gray-500)!important;padding-left:1.25rem!important;font-size:.75rem!important;font-weight:500!important}[dir=rtl] .apexcharts-canvas .apexcharts-legend-text{padding-right:.5rem!important}.apexcharts-canvas .apexcharts-legend-text:not(.apexcharts-inactive-legend):hover{color:var(--color-gray-900)!important}.dark .apexcharts-canvas .apexcharts-legend-text{color:var(--color-gray-400)!important}.dark .apexcharts-canvas .apexcharts-legend-text:not(.apexcharts-inactive-legend):hover{color:#fff!important}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-2{padding-left:calc(var(--spacing)*2)}.datatable-wrapper .datatable-table .datatable-empty,.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.apexcharts-canvas .apexcharts-datalabels .apexcharts-text.apexcharts-pie-label{font-size:.75rem,[object Object]!important;text-shadow:none!important;filter:none!important;font-weight:600!important;font-size:.75rem,[object Object]!important;font-weight:600!important}.apexcharts-canvas .apexcharts-xaxistooltip-text{font-size:.875rem!important;font-weight:400!important}.apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-label{color:var(--color-gray-500)!important;font-size:.875rem!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-label{color:var(--color-gray-400)!important}.apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-value{color:var(--color-gray-900);font-size:.875rem!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-value{color:#fff!important}.datatable-wrapper .datatable-bottom .datatable-info{color:var(--color-gray-500);font-size:.875rem}.dark .datatable-wrapper .datatable-bottom .datatable-info{color:var(--color-gray-400)}.text-xxs{font-size:var(--text-xxs)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-9{--tw-leading:calc(var(--spacing)*9);line-height:calc(var(--spacing)*9)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.datatable-wrapper .datatable-table thead th .datatable-sorter{text-transform:uppercase}.datatable-wrapper .datatable-table thead th .datatable-sorter:hover,.datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter,.datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:var(--color-gray-900)}.dark .datatable-wrapper .datatable-table thead th .datatable-sorter:hover,.dark .datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter,.dark .datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:#fff}.datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter{color:var(--color-gray-900)}.dark .datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter{color:#fff}.datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:var(--color-gray-900)}.dark .datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:#fff}.text-blue-600{color:var(--color-blue-600)}.text-blue-800{color:var(--color-blue-800)}.text-gray-200{color:var(--color-gray-200)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-orange-800{color:var(--color-orange-800)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-strava-orange{color:var(--color-strava-orange)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-red-700::placeholder{color:var(--color-red-700)}.opacity-0{opacity:0}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[writing-mode\:vertical-lr\]{writing-mode:vertical-lr}:is(.\*\:px-4>*){padding-inline:calc(var(--spacing)*4)}.group-odd\:bg-white:is(:where(.group):nth-child(odd) *){background-color:var(--color-white)}.group-even\:bg-gray-50:is(:where(.group):nth-child(2n) *){background-color:var(--color-gray-50)}@media (hover:hover){.group-hover\/image\:translate-y-0:is(:where(.group\/image):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/image\:scale-105:is(:where(.group\/image):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\/image\:bg-black\/20:is(:where(.group\/image):hover *){background-color:#0003}@supports (color:color-mix(in lab, red, red)){.group-hover\/image\:bg-black\/20:is(:where(.group\/image):hover *){background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.group-hover\/image\:opacity-100:is(:where(.group\/image):hover *){opacity:1}.group-hover\/menu-item\:fill-\[\#111827\]:is(:where(.group\/menu-item):hover *){fill:#111827}.group-hover\/menu-item\:fill-\[\#FFDD04\]:is(:where(.group\/menu-item):hover *){fill:#ffdd04}.group-hover\/menu-item\:text-gray-900:is(:where(.group\/menu-item):hover *){color:var(--color-gray-900)}}.group-focus\/image\:translate-y-0:is(:where(.group\/image):focus *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-focus\/image\:scale-105:is(:where(.group\/image):focus *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-focus\/image\:bg-black\/20:is(:where(.group\/image):focus *){background-color:#0003}@supports (color:color-mix(in lab, red, red)){.group-focus\/image\:bg-black\/20:is(:where(.group\/image):focus *){background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.group-focus\/image\:opacity-100:is(:where(.group\/image):focus *){opacity:1}.group-aria-\[sort\=ascending\]\:text-strava-orange:is(:where(.group)[aria-sort=ascending] *),.group-aria-\[sort\=descending\]\:text-strava-orange:is(:where(.group)[aria-sort=descending] *){color:var(--color-strava-orange)}.group-\[\.sidebar-is-collapsed\]\:block:is(:where(.group).sidebar-is-collapsed *){display:block}.group-\[\.sidebar-is-collapsed\]\:hidden:is(:where(.group).sidebar-is-collapsed *){display:none}.group-\[\.sidebar-is-collapsed\]\:max-h-full:is(:where(.group).sidebar-is-collapsed *){max-height:100%}.group-\[\.sidebar-is-collapsed\]\:flex-col:is(:where(.group).sidebar-is-collapsed *){flex-direction:column}.group-\[\.sidebar-is-collapsed\]\:gap-y-0\.5:is(:where(.group).sidebar-is-collapsed *){row-gap:calc(var(--spacing)*.5)}.group-\[\.sidebar-is-collapsed\]\:text-xs:is(:where(.group).sidebar-is-collapsed *){font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.peer-checked\:visible:is(:where(.peer):checked~*){visibility:visible}.peer-checked\:border-strava-orange:is(:where(.peer):checked~*){border-color:var(--color-strava-orange)}.peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}.peer-checked\:text-strava-orange:is(:where(.peer):checked~*){color:var(--color-strava-orange)}.peer-focus\:ring-2:is(:where(.peer):focus~*){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-focus\:ring-blue-300:is(:where(.peer):focus~*){--tw-ring-color:var(--color-blue-300)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing)*.5)}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing)*5)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing)*5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);border-color:var(--color-gray-300)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-full:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{content:var(--tw-content);border-color:var(--color-white)}.first\:rounded-s-lg:first-child{border-start-start-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:animate-fade-in-chat-message:last-child{animation:var(--animate-fade-in-chat-message)}.last\:rounded-e-lg:last-child{border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg)}.last\:border-r:last-child{border-right-style:var(--tw-border-style);border-right-width:1px}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.odd\:bg-white:nth-child(odd){background-color:var(--color-white)}.even\:border-b:nth-child(2n){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.even\:bg-gray-50:nth-child(2n){background-color:var(--color-gray-50)}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-blue-800:hover{background-color:var(--color-blue-800)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-strava-orange\/30:hover{background-color:#f267224d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-strava-orange\/30:hover{background-color:color-mix(in oklab,var(--color-strava-orange)30%,transparent)}}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:text-\[\#5865F4\]:hover{color:#5865f4}.hover\:text-\[\#111827\]:hover{color:#111827}.hover\:text-\[\#fc4c01\]:hover{color:#fc4c01}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-strava-orange:hover{color:var(--color-strava-orange)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}}.focus\:z-10:focus{z-index:10}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:bg-gray-100:focus{background-color:var(--color-gray-100)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-300:focus{--tw-ring-color:var(--color-blue-300)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-gray-100:focus{--tw-ring-color:var(--color-gray-100)}.focus\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\:ring-orange-300:focus{--tw-ring-color:var(--color-orange-300)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-0:focus-visible{outline-style:var(--tw-outline-style);outline-width:0}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-gray-300:disabled{border-color:var(--color-gray-300)}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}@media (hover:hover){.disabled\:hover\:bg-white:disabled:hover{background-color:var(--color-white)}}.aria-expanded\:bg-gray-100[aria-expanded=true]{background-color:var(--color-gray-100)}@media (hover:hover){.hover\:aria-expanded\:bg-gray-200:hover[aria-expanded=true]{background-color:var(--color-gray-200)}}.aria-selected\:bg-gray-100[aria-selected=true]{background-color:var(--color-gray-100)}@media (min-width:40rem){.sm\:size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.sm\:max-w-\[50\%\]{max-width:50%}.sm\:flex-row{flex-direction:row}}@media (min-width:48rem){.md\:inset-0{inset:calc(var(--spacing)*0)}.md\:ml-2{margin-left:calc(var(--spacing)*2)}.md\:ml-64{margin-left:calc(var(--spacing)*64)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:max-w-\[100\%\]{max-width:100%}.md\:translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}:where(.md\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.md\:rounded-none{border-radius:0}.md\:rounded-s-lg{border-start-start-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg)}.md\:p-5{padding:calc(var(--spacing)*5)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:sticky{position:sticky}.lg\:left-0{left:calc(var(--spacing)*0)}.lg\:order-2{order:2}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:mt-0{margin-top:calc(var(--spacing)*0)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:w-\[450px\]{width:450px}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:px-6{padding-inline:calc(var(--spacing)*6)}.lg\:py-16{padding-block:calc(var(--spacing)*16)}.lg\:text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}}@media (min-width:80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:w-\[650px\]{width:650px}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}:where(.rtl\:space-x-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *)>:not(:last-child)){--tw-space-x-reverse:1}.rtl\:text-right:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (prefers-color-scheme:dark){.dark\:border-blue-500{border-color:var(--color-blue-500)}.dark\:border-gray-500{border-color:var(--color-gray-500)}.dark\:border-gray-600{border-color:var(--color-gray-600)}.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:border-red-500{border-color:var(--color-red-500)}.dark\:border-transparent{border-color:#0000}.dark\:bg-blue-600{background-color:var(--color-blue-600)}.dark\:bg-gray-600{background-color:var(--color-gray-600)}.dark\:bg-gray-700{background-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-800\/50{background-color:#1f293780}@supports (color:color-mix(in lab, red, red)){.dark\:bg-gray-800\/50{background-color:color-mix(in oklab,var(--color-gray-800)50%,transparent)}}.dark\:bg-gray-900\/80{background-color:#111827cc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-gray-900\/80{background-color:color-mix(in oklab,var(--color-gray-900)80%,transparent)}}.dark\:bg-red-100{background-color:var(--color-red-100)}.dark\:text-blue-500{color:var(--color-blue-500)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-500{color:var(--color-gray-500)}.dark\:text-red-500{color:var(--color-red-500)}.dark\:text-white{color:var(--color-white)}.dark\:placeholder-gray-400::placeholder{color:var(--color-gray-400)}.dark\:placeholder-red-500::placeholder{color:var(--color-red-500)}.dark\:ring-offset-gray-800{--tw-ring-offset-color:var(--color-gray-800)}.dark\:peer-focus\:ring-blue-800:is(:where(.peer):focus~*){--tw-ring-color:var(--color-blue-800)}@media (hover:hover){.dark\:hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.dark\:hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.dark\:hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.dark\:hover\:text-blue-500:hover{color:var(--color-blue-500)}.dark\:hover\:text-gray-300:hover{color:var(--color-gray-300)}.dark\:hover\:text-white:hover{color:var(--color-white)}}.dark\:focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.dark\:focus\:border-red-500:focus{border-color:var(--color-red-500)}.dark\:focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.dark\:focus\:ring-blue-600:focus{--tw-ring-color:var(--color-blue-600)}.dark\:focus\:ring-blue-800:focus{--tw-ring-color:var(--color-blue-800)}.dark\:focus\:ring-gray-600:focus{--tw-ring-color:var(--color-gray-600)}.dark\:focus\:ring-gray-700:focus{--tw-ring-color:var(--color-gray-700)}.dark\:focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.dark\:disabled\:text-gray-400:disabled{color:var(--color-gray-400)}}.\[\&\.disabled\]\:bg-gray-100.disabled{background-color:var(--color-gray-100)}.\[\&\.sidebar-is-collapsed\]\:w-32.sidebar-is-collapsed{width:calc(var(--spacing)*32)}@media (min-width:48rem){.\[\&\.sidebar-is-collapsed\]\:md\:ml-32.sidebar-is-collapsed{margin-left:calc(var(--spacing)*32)}}body .lg-outer{z-index:1500!important}body .lg-backdrop{z-index:1490!important;opacity:.9!important}:is(.overflow-auto,.overflow-x-auto)::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}:is(.overflow-auto,.overflow-x-auto)::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}:is(.overflow-auto,.overflow-x-auto)::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.overflow-auto,.overflow-x-auto{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb,initial)var(--scrollbar-track,initial)}:is(.overflow-auto,.overflow-x-auto)::-webkit-scrollbar{width:8px;height:8px;display:block}.leaflet-tile-pane{filter:grayscale()}#heatmap .leaflet-tile-pane{filter:grayscale(0)}#heatmap.enable-grey-scale .leaflet-tile-pane{filter:grayscale()brightness(75%)}.leaflet-popup-content-wrapper .leaflet-popup-content{margin:calc(var(--spacing)*0)!important;font-size:var(--text-base)!important;line-height:var(--tw-leading,var(--text-base--line-height))!important;--tw-leading:1!important;line-height:1!important}:where(.leaflet-control--custom>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)));border-color:var(--color-grey-yo)}.leaflet-control--custom{border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:2px;border-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.leaflet-control--custom{border-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.leaflet-control--custom{background-color:var(--color-white);background-clip:padding-box}.leaflet-control--custom li{cursor:pointer;padding:calc(var(--spacing)*1)}@media (hover:hover){.leaflet-control--custom li:hover{background-color:#f4f4f4}}.autoComplete_wrapper{width:100%;display:inline-block;position:relative}.autoComplete_wrapper>ul{right:calc(var(--spacing)*0);bottom:60px;left:calc(var(--spacing)*0);z-index:10;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-200);background-color:var(--color-white);max-height:250px;padding:calc(var(--spacing)*0);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-in-out);transition-duration:.15s;transition-timing-function:var(--ease-in-out);--tw-outline-style:none;outline-style:none;list-style-type:none;position:absolute;overflow-y:scroll}.autoComplete_wrapper>ul:empty,.autoComplete_wrapper>ul[hidden]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y);opacity:0;display:block}.autoComplete_wrapper>ul>li{margin:calc(var(--spacing)*1);border-radius:var(--radius-lg);background-color:var(--color-white);padding:calc(var(--spacing)*2);text-align:left;text-overflow:ellipsis;white-space:nowrap;color:var(--color-gray-900);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-in-out);transition-duration:.2s;transition-timing-function:var(--ease-in-out);overflow:hidden}.autoComplete_wrapper>ul>li mark{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-strava-orange);background-color:#0000}.autoComplete_wrapper>ul>li:hover,.autoComplete_wrapper>ul>li[aria-selected=true]{cursor:pointer;background-color:#f2672226}@supports (color:color-mix(in lab, red, red)){.autoComplete_wrapper>ul>li:hover,.autoComplete_wrapper>ul>li[aria-selected=true]{background-color:color-mix(in oklab,var(--color-strava-orange)15%,transparent)}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes chat-message{0%{max-height:100vmax}80%{transform:scale(1.1)}to{max-height:100vmax;overflow:visible;transform:scale(1)}} \ No newline at end of file +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:#fef2f2;--color-red-100:#fee2e2;--color-red-200:#fecaca;--color-red-300:#fca5a5;--color-red-400:#f87171;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-red-700:#b91c1c;--color-red-800:#991b1b;--color-red-900:#7f1d1d;--color-orange-50:#fffaf0;--color-orange-100:#feebc8;--color-orange-200:#fbd38d;--color-orange-300:#f6ad55;--color-orange-400:#ed8936;--color-orange-500:#dd6b20;--color-orange-600:#c05621;--color-orange-700:#9c4221;--color-orange-800:#7b341e;--color-orange-900:#652b19;--color-yellow-50:#fffbeb;--color-yellow-100:#fef3c7;--color-yellow-200:#fde68a;--color-yellow-300:#fcd34d;--color-yellow-400:#fbbf24;--color-yellow-500:#f59e0b;--color-yellow-600:#d97706;--color-yellow-700:#b45309;--color-yellow-800:#92400e;--color-yellow-900:#78350f;--color-lime-200:oklch(93.8% .127 124.321);--color-lime-300:oklch(89.7% .196 126.665);--color-lime-400:oklch(84.1% .238 128.85);--color-lime-500:oklch(76.8% .233 130.85);--color-lime-800:oklch(45.3% .124 130.933);--color-green-50:#ecfdf5;--color-green-100:#d1fae5;--color-green-200:#a7f3d0;--color-green-300:#6ee7b7;--color-green-400:#34d399;--color-green-500:#10b981;--color-green-600:#059669;--color-green-700:#047857;--color-green-800:#065f46;--color-green-900:#064e3b;--color-emerald-600:oklch(59.6% .145 163.225);--color-teal-50:#f0fdfa;--color-teal-100:#ccfbf1;--color-teal-200:#99f6e4;--color-teal-300:#5eead4;--color-teal-400:#2dd4bf;--color-teal-500:#14b8a6;--color-teal-600:#0d9488;--color-teal-700:#0f766e;--color-teal-800:#115e59;--color-cyan-200:#a5f3fc;--color-cyan-300:#67e8f9;--color-cyan-400:#22d3ee;--color-cyan-500:#06b6d4;--color-cyan-600:#0891b2;--color-cyan-800:#155e75;--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-50:#eff6ff;--color-blue-100:#dbeafe;--color-blue-200:#bfdbfe;--color-blue-300:#93c5fd;--color-blue-400:#60a5fa;--color-blue-500:#3b82f6;--color-blue-600:#2563eb;--color-blue-700:#1d4ed8;--color-blue-800:#1e40af;--color-blue-900:#1e3a8a;--color-indigo-50:#eef2ff;--color-indigo-100:#e0e7ff;--color-indigo-200:#c7d2fe;--color-indigo-300:#a5b4fc;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-indigo-800:#3730a3;--color-indigo-900:#312e81;--color-purple-50:#f5f3ff;--color-purple-100:#ede9fe;--color-purple-200:#ddd6fe;--color-purple-300:#c4b5fd;--color-purple-400:#a78bfa;--color-purple-500:#8b5cf6;--color-purple-600:#7c3aed;--color-purple-700:#6d28d9;--color-purple-800:#5b21b6;--color-purple-900:#4c1d95;--color-pink-50:#fdf2f8;--color-pink-100:#fce7f3;--color-pink-200:#fbcfe8;--color-pink-300:#f9a8d4;--color-pink-400:#f472b6;--color-pink-500:#ec4899;--color-pink-600:#db2777;--color-pink-700:#be185d;--color-pink-800:#9d174d;--color-pink-900:#831843;--color-slate-600:oklch(44.6% .043 257.281);--color-gray-50:#f9fafb;--color-gray-100:#f3f4f6;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5db;--color-gray-400:#9ca3af;--color-gray-500:#6b7280;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-black:#000;--color-white:#fff;--spacing:.25rem;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--container-2xs:18rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-xxs:.625rem;--color-strava-orange:#f26722;--color-grey-yo:#ccc;--animate-fade-in-chat-message:chat-message .15s ease-out 0s forwards}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before,::backdrop{border-color:var(--color-gray-200,currentColor)}::file-selector-button{border-color:var(--color-gray-200,currentColor)}*{scrollbar-color:initial;scrollbar-width:initial}.tooltip-arrow,.tooltip-arrow:before{background:inherit;width:8px;height:8px;position:absolute}.tooltip-arrow{visibility:hidden}.tooltip-arrow:before{content:"";visibility:visible;transform:rotate(45deg)}[data-tooltip-style^=light]+.tooltip>.tooltip-arrow:before{border-style:solid;border-color:var(--color-gray-200)}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=top]>.tooltip-arrow:before{border-bottom-width:1px;border-right-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=right]>.tooltip-arrow:before{border-bottom-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=bottom]>.tooltip-arrow:before{border-top-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=left]>.tooltip-arrow:before{border-top-width:1px;border-right-width:1px}.tooltip[data-popper-placement^=top]>.tooltip-arrow{bottom:-4px}.tooltip[data-popper-placement^=bottom]>.tooltip-arrow{top:-4px}.tooltip[data-popper-placement^=left]>.tooltip-arrow{right:-4px}.tooltip[data-popper-placement^=right]>.tooltip-arrow{left:-4px}.tooltip.invisible>.tooltip-arrow:before{visibility:hidden}[data-popper-arrow],[data-popper-arrow]:before{background:inherit;width:8px;height:8px;position:absolute}[data-popper-arrow]{visibility:hidden}[data-popper-arrow]:before{content:"";visibility:visible;transform:rotate(45deg)}[data-popper-arrow]:after{content:"";visibility:visible;background:inherit;width:9px;height:9px;position:absolute;transform:rotate(45deg)}[role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:var(--color-gray-200)}.dark [role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:var(--color-gray-600)}[role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:var(--color-gray-200)}.dark [role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:var(--color-gray-600)}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:after{border-bottom-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:after{border-bottom-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:after{border-top-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:after{border-top-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]{bottom:-5px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]{top:-5px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]{right:-5px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]{left:-5px}[role=tooltip].invisible>[data-popper-arrow]:before,[role=tooltip].invisible>[data-popper-arrow]:after{visibility:hidden}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;border-color:var(--color-gray-500);--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is([type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:var(--color-blue-600);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:var(--color-blue-600);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:var(--color-gray-500);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}input[type=time]::-webkit-calendar-picker-indicator{background:0 0}select:not([size]){print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 10 6'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3e %3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:.75em .75em;padding-right:2.5rem}[dir=rtl] select:not([size]){background-position:.75rem;padding-left:0;padding-right:.75rem}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;print-color-adjust:unset;padding-right:.75rem}[type=checkbox],[type=radio]{appearance:none;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;width:1rem;height:1rem;color:var(--color-blue-600);border-color:--color-gray-500;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;flex-shrink:0;padding:0;display:inline-block}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:var(--color-blue-600);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked,.dark [type=checkbox]:checked,.dark [type=radio]:checked{background-position:50%;background-repeat:no-repeat;background-size:.55em .55em;background-color:currentColor!important;border-color:#0000!important}[type=checkbox]:checked{print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");background-repeat:no-repeat;background-size:.55em .55em}[type=radio]:checked,.dark [type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");background-size:1em 1em}[type=checkbox]:indeterminate{print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M0.5 6h14'/%3e %3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:.55em .55em;background-color:currentColor!important;border-color:#0000!important}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{background-color:currentColor!important;border-color:#0000!important}[type=file]{background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}[type=file]:focus{outline:1px auto inherit}input[type=file]::file-selector-button{color:#fff;background:var(--color-gray-800);cursor:pointer;border:0;margin-inline:-1rem 1rem;padding:.625rem 1rem .625rem 2rem;font-size:.875rem;font-weight:500}input[type=file]::file-selector-button:hover{background:var(--color-gray-700)}[dir=rtl] input[type=file]::file-selector-button{padding-left:1rem;padding-right:2rem}.dark input[type=file]::file-selector-button{color:#fff;background:var(--color-gray-600)}.dark input[type=file]::file-selector-button:hover{background:var(--color-gray-500)}input[type=range]::-webkit-slider-thumb{background:var(--color-blue-600);appearance:none;cursor:pointer;border:0;border-radius:9999px;width:1.25rem;height:1.25rem}input[type=range]:disabled::-webkit-slider-thumb{background:var(--color-gray-400)}.dark input[type=range]:disabled::-webkit-slider-thumb{background:var(--color-gray-500)}input[type=range]:focus::-webkit-slider-thumb{outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(164 202 254/var(--tw-ring-opacity));outline:2px solid #0000}input[type=range]::-moz-range-thumb{background:var(--color-blue-600);appearance:none;cursor:pointer;border:0;border-radius:9999px;width:1.25rem;height:1.25rem}input[type=range]:disabled::-moz-range-thumb{background:var(--color-gray-400)}.dark input[type=range]:disabled::-moz-range-thumb{background:var(--color-gray-500)}input[type=range]::-moz-range-progress{background:var(--color-blue-500)}input[type=range]::-ms-fill-lower{background:var(--color-blue-500)}input[type=range].range-sm::-webkit-slider-thumb{width:1rem;height:1rem}input[type=range].range-lg::-webkit-slider-thumb{width:1.5rem;height:1.5rem}input[type=range].range-sm::-moz-range-thumb{width:1rem;height:1rem}input[type=range].range-lg::-moz-range-thumb{width:1.5rem;height:1.5rem}.toggle-bg:after{content:"";border-color:var(--color-gray-300);width:1.25rem;height:1.25rem;box-shadow:var(--tw-ring-inset)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color);background:#fff;border-width:1px;border-radius:9999px;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;position:absolute;top:.125rem;left:.125rem}input:checked+.toggle-bg:after{border-color:#fff;transform:translate(100%)}input:checked+.toggle-bg{background:var(--color-blue-600);border-color:var(--color-blue-600)}}@layer components{div.filter-dropdown>button[data-dropdown-toggle]{cursor:pointer;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-strava-orange);width:fit-content;padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*2);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-strava-orange);justify-content:space-between;align-items:center;display:inline-flex}@media (hover:hover){div.filter-dropdown>button[data-dropdown-toggle]:hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-orange-300);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){div.filter-dropdown>button[data-dropdown-toggle]:hover{outline-offset:2px;outline:2px solid #0000}}}div.filter-dropdown>button[data-dropdown-toggle].active{background-color:var(--color-strava-orange);color:var(--color-white)}@media (hover:hover){div.filter-dropdown>button[data-dropdown-toggle].active:hover{border-color:var(--color-orange-600);background-color:var(--color-orange-600)}}div.tabs.tabs--default{margin-bottom:calc(var(--spacing)*4);border-bottom-style:var(--tw-border-style);border-bottom-width:2px;border-color:var(--color-gray-100)}div.tabs.tabs--default>ul{column-gap:calc(var(--spacing)*2);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);margin-bottom:-2px;display:flex;overflow-x:auto}div.tabs.tabs--default>ul>li{flex-shrink:0}div.tabs.tabs--default>ul>li>a{border-bottom-style:var(--tw-border-style);padding:calc(var(--spacing)*2);border-bottom-width:2px;justify-content:center;align-items:center;display:inline-flex}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.datatable-wrapper{width:100%}@media (min-width:640px){.datatable-wrapper .datatable-top{flex-direction:row-reverse;align-items:center}}@media (min-width:640px){.datatable-wrapper .datatable-bottom{flex-direction:row;align-items:center}}.datatable-wrapper .datatable-bottom{flex-direction:column;justify-content:space-between;align-items:start;gap:1rem;margin-top:1rem;display:flex}@media (min-width:640px){.datatable-wrapper .datatable-bottom{flex-direction:row;align-items:center}}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type,.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type{position:relative}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link{color:var(--color-gray-500);border-top:1px solid var(--color-gray-300);border-bottom:1px solid var(--color-gray-300);border-right:1px solid var(--color-gray-300);align-items:center;height:2rem;padding-left:.75rem;padding-right:.75rem;font-size:.875rem;font-weight:500;display:flex}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link,.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link,.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link,.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link{color:#0000}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e");width:1.3rem;height:1.3rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%23111827' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e")}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e");width:1.3rem;height:1.3rem;position:absolute;top:50%;right:50%;transform:translate(50%,-50%)}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%23111827' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e")}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link{border-left:1px solid var(--color-gray-300);border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link{border-left:0;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link:hover{background-color:var(--color-gray-50);color:var(--color-gray-700)}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.start-0{inset-inline-start:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-\[60px\]{top:60px}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-\[60px\]{bottom:60px}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-100{z-index:100}.z-1001{z-index:1001}.z-1002{z-index:1002}.z-1100{z-index:1100}.z-1400{z-index:1400}.z-1500{z-index:1500}.z-10000{z-index:10000}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-4{margin:calc(var(--spacing)*4)}.-mx-4{margin-inline:calc(var(--spacing)*-4)}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing)*4)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.ms-3{margin-inline-start:calc(var(--spacing)*3)}.ms-auto{margin-inline-start:auto}.me-2{margin-inline-end:calc(var(--spacing)*2)}.me-3{margin-inline-end:calc(var(--spacing)*3)}.-mt-0\.5{margin-top:calc(var(--spacing)*-.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-2\.5{margin-top:calc(var(--spacing)*2.5)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-\[2px\]{margin-top:2px}.apexcharts-canvas .apexcharts-legend-series{align-items:center!important;margin-bottom:.25rem!important;margin-left:.5rem!important;margin-right:.5rem!important;display:flex!important}.apexcharts-canvas .apexcharts-tooltip{color:var(--color-gray-700)!important;background-color:#fff!important;border:0!important;border-radius:.25rem!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important}.datatable-wrapper .datatable-top{flex-direction:column-reverse;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem;display:flex}@media (min-width:640px){.datatable-wrapper .datatable-top{flex-direction:row-reverse;align-items:center}}[dir=rtl] .apexcharts-tooltip .apexcharts-tooltip-marker{margin-left:.375rem!important;margin-right:0!important}.datatable-wrapper .datatable-top .datatable-dropdown{color:var(--color-gray-500);font-size:.875rem}.datatable-wrapper .datatable-top .datatable-dropdown .datatable-selector{background-color:var(--color-gray-50);color:var(--color-gray-900);border:1px solid var(--color-gray-300);border-radius:.5rem;min-width:4rem;margin-right:.25rem;font-size:.875rem}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-2\.5{margin-right:calc(var(--spacing)*2.5)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-title{background-color:var(--color-gray-100)!important;border-bottom-color:var(--color-gray-200)!important;color:var(--color-gray-500)!important;margin-bottom:.75rem!important;padding:.5rem .75rem!important;font-size:.875rem!important;font-weight:400!important}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.apexcharts-canvas .apexcharts-xaxistooltip{color:var(--color-gray-500)!important;background-color:#fff!important;border-color:#0000!important;border-radius:.25rem!important;padding:.5rem .75rem!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important}.apexcharts-canvas .apexcharts-xaxistooltip:after,.apexcharts-canvas .apexcharts-xaxistooltip:before{border-bottom-color:#fff!important}.apexcharts-canvas .apexcharts-xaxistooltip:after{border-width:8px!important;margin-left:-8px!important}.apexcharts-canvas .apexcharts-xaxistooltip:before{border-width:10px!important;margin-left:-10px!important}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-auto{margin-left:auto}.scrollbar::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}.scrollbar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}.scrollbar::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.scrollbar{scrollbar-width:auto;scrollbar-color:var(--scrollbar-thumb,initial)var(--scrollbar-track,initial)}.scrollbar::-webkit-scrollbar{width:var(--scrollbar-width,16px);height:var(--scrollbar-height,16px);display:block}.datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list{align-items:center;height:2rem;font-size:.875rem;display:flex}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-16{height:calc(var(--spacing)*16)}.h-48{height:calc(var(--spacing)*48)}.h-52{height:calc(var(--spacing)*52)}.h-62{height:calc(var(--spacing)*62)}.h-64{height:calc(var(--spacing)*64)}.h-80{height:calc(var(--spacing)*80)}.h-104{height:calc(var(--spacing)*104)}.h-120{height:calc(var(--spacing)*120)}.h-\[12px\]{height:12px}.h-\[20rem\]{height:20rem}.h-\[24rem\]{height:24rem}.h-\[25vh\]{height:25vh}.h-\[120px\]{height:120px}.h-\[130px\]{height:130px}.h-\[145px\]{height:145px}.h-\[350px\]{height:350px}.h-\[calc\(100\%-1rem\)\]{height:calc(100% - 1rem)}.h-\[calc\(100vh-15\.4rem\)\]{height:calc(100vh - 15.4rem)}.h-\[calc\(100vh-245px\)\]{height:calc(100vh - 245px)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-80{max-height:calc(var(--spacing)*80)}.max-h-\[35px\]{max-height:35px}.max-h-\[200px\]{max-height:200px}.max-h-\[320px\]{max-height:320px}.max-h-\[calc\(100vh-160px\)\]{max-height:calc(100vh - 160px)}.max-h-\[calc\(100vh-200px\)\]{max-height:calc(100vh - 200px)}.max-h-\[calc\(100vh-285px\)\]{max-height:calc(100vh - 285px)}.max-h-\[calc\(100vh-585px\)\]{max-height:calc(100vh - 585px)}.max-h-full{max-height:100%}.min-h-40{min-height:calc(var(--spacing)*40)}.min-h-\[16rem\]{min-height:16rem}.min-h-\[350px\]{min-height:350px}.min-h-screen{min-height:100vh}.datatable-wrapper .datatable-table{width:100%;color:var(--color-gray-500);text-align:left;font-size:.875rem}.datatable-wrapper .datatable-table thead{color:var(--color-gray-500);background-color:var(--color-gray-50);font-size:.75rem}.datatable-wrapper .datatable-table thead th{white-space:nowrap;padding:.75rem 1.5rem;width:auto!important}.datatable-wrapper .datatable-table tbody th,.datatable-wrapper .datatable-table tbody td{padding:.75rem 1.5rem;width:auto!important}.datatable-wrapper .datatable-table thead th .datatable-sorter,.datatable-wrapper .datatable-table thead th{text-transform:uppercase}.datatable-wrapper .datatable-table tbody tr{border-bottom:1px solid var(--color-gray-200)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-1\/2{width:50%}.w-1\/6{width:16.6667%}.w-1\/7{width:14.2857%}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-11{width:calc(var(--spacing)*11)}.w-36{width:calc(var(--spacing)*36)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-\[1rem\]{width:1rem}.w-\[2rem\]{width:2rem}.w-\[4\.5rem\]{width:4.5rem}.w-\[4rem\]{width:4rem}.w-\[5rem\]{width:5rem}.w-\[6rem\]{width:6rem}.w-\[8rem\]{width:8rem}.w-\[13rem\]{width:13rem}.w-\[23rem\]{width:23rem}.w-\[200px\]{width:200px}.w-\[rem\]{width:rem}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--breakpoint-sm\){max-width:var(--breakpoint-sm)}.max-w-\(--breakpoint-xl\){max-width:var(--breakpoint-xl)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-100{max-width:calc(var(--spacing)*100)}.max-w-120{max-width:calc(var(--spacing)*120)}.max-w-\[30\%\]{max-width:30%}.max-w-full{max-width:100%}.datatable-wrapper .datatable-search .datatable-input,.datatable-wrapper .datatable-input{color:var(--color-gray-900);border:1px solid var(--color-gray-300);background-color:var(--color-gray-50);border-radius:.5rem;min-width:16rem;font-size:.875rem}.datatable-wrapper thead th .datatable-input{color:var(--color-gray-900);background-color:#fff;min-width:0;padding-top:.35rem;padding-bottom:.35rem;font-weight:400}.datatable-wrapper .datatable-search .datatable-input{color:var(--color-gray-900);border:1px solid var(--color-gray-300);background-color:var(--color-gray-50);border-radius:.5rem;min-width:16rem;font-size:.875rem}.dark .datatable-wrapper .datatable-search .datatable-input{color:#fff;background-color:var(--color-gray-800);border:1px solid var(--color-gray-700)}.datatable-wrapper .datatable-search .datatable-input:focus{border-color:var(--color-blue-600)}.min-w-\[10rem\]{min-width:10rem}.min-w-\[100px\]{min-width:100px}.min-w-\[800px\]{min-width:800px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-10{flex-grow:10}.caption-top{caption-side:top}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform-none{transform:none}.animate-\[bounce_1s_infinite_200ms\]{animation:1s .2s infinite bounce}.animate-\[bounce_1s_infinite_300ms\]{animation:1s .3s infinite bounce}.animate-\[bounce_1s_infinite_400ms\]{animation:1s .4s infinite bounce}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-0\.5{column-gap:calc(var(--spacing)*.5)}.gap-x-1{column-gap:calc(var(--spacing)*1)}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-x-3{column-gap:calc(var(--spacing)*3)}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-x-6{column-gap:calc(var(--spacing)*6)}.gap-x-\[2rem\]{column-gap:2rem}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-1{row-gap:calc(var(--spacing)*1)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.gap-y-3{row-gap:calc(var(--spacing)*3)}.gap-y-4{row-gap:calc(var(--spacing)*4)}.gap-y-6{row-gap:calc(var(--spacing)*6)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.datatable-wrapper .datatable-container,.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l-lg{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-r-2{border-right-style:var(--tw-border-style);border-right-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.dark .apexcharts-canvas .apexcharts-tooltip{background-color:var(--color-gray-700)!important;color:var(--color-gray-400)!important;border-color:#0000!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-title{background-color:var(--color-gray-600)!important;border-color:var(--color-gray-500)!important;color:var(--color-gray-500)!important}.dark .apexcharts-canvas .apexcharts-xaxistooltip{color:var(--color-gray-400)!important;background-color:var(--color-gray-700)!important}.dark .apexcharts-canvas .apexcharts-xaxistooltip:after,.dark .apexcharts-canvas .apexcharts-xaxistooltip:before{border-bottom-color:var(--color-gray-700)!important}.dark .apexcharts-gridline,.dark .apexcharts-xcrosshairs,.dark .apexcharts-ycrosshairs{stroke:var(--color-gray-700)!important}.dark .datatable-wrapper .datatable-search .datatable-input,.dark .datatable-wrapper .datatable-input{color:#fff;background-color:var(--color-gray-800);border:1px solid var(--color-gray-700)}.dark .datatable-wrapper thead th .datatable-input{background-color:var(--color-gray-700);border-color:var(--color-gray-600);color:#fff}.dark .datatable-wrapper .datatable-top .datatable-dropdown{color:var(--color-gray-400)}.dark .datatable-wrapper .datatable-top .datatable-dropdown .datatable-selector{background-color:var(--color-gray-800);border:1px solid var(--color-gray-700);color:#fff}.dark .datatable-wrapper .datatable-table{color:var(--color-gray-400)}.dark .datatable-wrapper .datatable-table thead{color:var(--color-gray-400);background-color:var(--color-gray-800)}.dark .datatable-wrapper .datatable-table tbody tr{border-bottom:1px solid var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link{color:var(--color-gray-400);border-color:var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link,.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link{color:#0000}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link{border-left:1px solid var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link:hover{background-color:var(--color-gray-700);color:#fff}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-600{border-color:var(--color-blue-600)}.border-blue-700{border-color:var(--color-blue-700)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-red-300{border-color:var(--color-red-300)}.border-red-500{border-color:var(--color-red-500)}.border-strava-orange{border-color:var(--color-strava-orange)}.border-yellow-300{border-color:var(--color-yellow-300)}.border-t-strava-orange{border-top-color:var(--color-strava-orange)}.border-l-blue-600{border-left-color:var(--color-blue-600)}.border-l-emerald-600{border-left-color:var(--color-emerald-600)}.border-l-orange-500{border-left-color:var(--color-orange-500)}.border-l-red-600{border-left-color:var(--color-red-600)}.border-l-slate-600{border-left-color:var(--color-slate-600)}.border-l-yellow-300{border-left-color:var(--color-yellow-300)}.apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-y-group{padding:0!important}.apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active{color:var(--color-gray-500)!important;background-color:#fff!important;padding-bottom:.75rem!important;padding-left:.75rem!important;padding-right:.75rem!important}.dark .apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active{background-color:var(--color-gray-700)!important;color:var(--color-gray-400)!important}.apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active:first-of-type{padding-top:.75rem!important}.datatable-wrapper .datatable-table tbody tr.selected{background-color:var(--color-gray-100)}.dark .datatable-wrapper .datatable-table tbody tr.selected{background-color:var(--color-gray-700)}.selectedCell{background-color:var(--color-gray-50)}.bg-\[\#89D7D2\]{background-color:#89d7d2}.bg-black\/0{background-color:#0000}@supports (color:color-mix(in lab, red, red)){.bg-black\/0{background-color:color-mix(in oklab,var(--color-black)0%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-600\/\[\.1\]{background-color:#2563eb1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-600\/\[\.1\]{background-color:color-mix(in oklab,var(--color-blue-600)10%,transparent)}}.bg-blue-700{background-color:var(--color-blue-700)}.bg-emerald-600\/\[\.1\]{background-color:#0097671a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-600\/\[\.1\]{background-color:color-mix(in oklab,var(--color-emerald-600)10%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900\/50{background-color:#11182780}@supports (color:color-mix(in lab, red, red)){.bg-gray-900\/50{background-color:color-mix(in oklab,var(--color-gray-900)50%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-orange-400\/40{background-color:#ed893666}@supports (color:color-mix(in lab, red, red)){.bg-orange-400\/40{background-color:color-mix(in oklab,var(--color-orange-400)40%,transparent)}}.bg-orange-500\/\[\.1\]{background-color:#dd6b201a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/\[\.1\]{background-color:color-mix(in oklab,var(--color-orange-500)10%,transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-red-600\/\[\.1\]{background-color:#dc26261a}@supports (color:color-mix(in lab, red, red)){.bg-red-600\/\[\.1\]{background-color:color-mix(in oklab,var(--color-red-600)10%,transparent)}}.bg-slate-600\/\[\.1\]{background-color:#45556c1a}@supports (color:color-mix(in lab, red, red)){.bg-slate-600\/\[\.1\]{background-color:color-mix(in oklab,var(--color-slate-600)10%,transparent)}}.bg-strava-orange{background-color:var(--color-strava-orange)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.bg-white\/50{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-300\/\[\.1\]{background-color:#fcd34d1a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-300\/\[\.1\]{background-color:color-mix(in oklab,var(--color-yellow-300)10%,transparent)}}.bg-yellow-400{background-color:var(--color-yellow-400)}.dark .selectedCell{background-color:var(--color-gray-700)}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/60{--tw-gradient-from:#0009}@supports (color:color-mix(in lab, red, red)){.from-black\/60{--tw-gradient-from:color-mix(in oklab,var(--color-black)60%,transparent)}}.from-black\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-label{fill:var(--color-gray-500)!important;font-size:1rem,[object Object]!important;font-weight:400!important}.dark .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-label{fill:var(--color-gray-400)!important}.apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-value{fill:var(--color-gray-900)!important;font-size:1.875rem,[object Object]!important;font-weight:700!important}.dark .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-value{fill:#fff!important}.fill-orange-500{fill:var(--color-orange-500)}.apexcharts-ycrosshairs{stroke:var(--color-gray-200)!important}.dark .apexcharts-ycrosshairs{stroke:var(--color-gray-700)!important}.object-cover{object-fit:cover}.object-top{object-position:top}.apexcharts-canvas .apexcharts-legend,.apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-y-group{padding:0!important}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-\[1rem\]{padding:1rem}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-8{padding-block:calc(var(--spacing)*8)}.ps-3{padding-inline-start:calc(var(--spacing)*3)}.ps-10{padding-inline-start:calc(var(--spacing)*10)}.pt-0\.5{padding-top:calc(var(--spacing)*.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-14{padding-top:calc(var(--spacing)*14)}.pt-20{padding-top:calc(var(--spacing)*20)}.datatable-wrapper .datatable-container thead tr.search-filtering-row th{padding-top:0}.apexcharts-canvas .apexcharts-legend-text{color:var(--color-gray-500)!important;padding-left:1.25rem!important;font-size:.75rem!important;font-weight:500!important}[dir=rtl] .apexcharts-canvas .apexcharts-legend-text{padding-right:.5rem!important}.apexcharts-canvas .apexcharts-legend-text:not(.apexcharts-inactive-legend):hover{color:var(--color-gray-900)!important}.dark .apexcharts-canvas .apexcharts-legend-text{color:var(--color-gray-400)!important}.dark .apexcharts-canvas .apexcharts-legend-text:not(.apexcharts-inactive-legend):hover{color:#fff!important}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-2{padding-left:calc(var(--spacing)*2)}.datatable-wrapper .datatable-table .datatable-empty,.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.apexcharts-canvas .apexcharts-datalabels .apexcharts-text.apexcharts-pie-label{font-size:.75rem,[object Object]!important;text-shadow:none!important;filter:none!important;font-weight:600!important;font-size:.75rem,[object Object]!important;font-weight:600!important}.apexcharts-canvas .apexcharts-xaxistooltip-text{font-size:.875rem!important;font-weight:400!important}.apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-label{color:var(--color-gray-500)!important;font-size:.875rem!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-label{color:var(--color-gray-400)!important}.apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-value{color:var(--color-gray-900);font-size:.875rem!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-value{color:#fff!important}.datatable-wrapper .datatable-bottom .datatable-info{color:var(--color-gray-500);font-size:.875rem}.dark .datatable-wrapper .datatable-bottom .datatable-info{color:var(--color-gray-400)}.text-xxs{font-size:var(--text-xxs)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-9{--tw-leading:calc(var(--spacing)*9);line-height:calc(var(--spacing)*9)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.datatable-wrapper .datatable-table thead th .datatable-sorter{text-transform:uppercase}.datatable-wrapper .datatable-table thead th .datatable-sorter:hover,.datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter,.datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:var(--color-gray-900)}.dark .datatable-wrapper .datatable-table thead th .datatable-sorter:hover,.dark .datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter,.dark .datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:#fff}.datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter{color:var(--color-gray-900)}.dark .datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter{color:#fff}.datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:var(--color-gray-900)}.dark .datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:#fff}.text-blue-600{color:var(--color-blue-600)}.text-blue-800{color:var(--color-blue-800)}.text-gray-200{color:var(--color-gray-200)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-500{color:var(--color-green-500)}.text-green-700{color:var(--color-green-700)}.text-orange-800{color:var(--color-orange-800)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-strava-orange{color:var(--color-strava-orange)}.text-white{color:var(--color-white)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-red-700::placeholder{color:var(--color-red-700)}.opacity-0{opacity:0}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[writing-mode\:vertical-lr\]{writing-mode:vertical-lr}:is(.\*\:px-4>*){padding-inline:calc(var(--spacing)*4)}.group-odd\:bg-white:is(:where(.group):nth-child(odd) *){background-color:var(--color-white)}.group-even\:bg-gray-50:is(:where(.group):nth-child(2n) *){background-color:var(--color-gray-50)}@media (hover:hover){.group-hover\/image\:translate-y-0:is(:where(.group\/image):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/image\:scale-105:is(:where(.group\/image):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\/image\:bg-black\/20:is(:where(.group\/image):hover *){background-color:#0003}@supports (color:color-mix(in lab, red, red)){.group-hover\/image\:bg-black\/20:is(:where(.group\/image):hover *){background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.group-hover\/image\:opacity-100:is(:where(.group\/image):hover *){opacity:1}.group-hover\/menu-item\:fill-\[\#111827\]:is(:where(.group\/menu-item):hover *){fill:#111827}.group-hover\/menu-item\:fill-\[\#FFDD04\]:is(:where(.group\/menu-item):hover *){fill:#ffdd04}.group-hover\/menu-item\:text-gray-900:is(:where(.group\/menu-item):hover *){color:var(--color-gray-900)}}.group-focus\/image\:translate-y-0:is(:where(.group\/image):focus *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-focus\/image\:scale-105:is(:where(.group\/image):focus *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-focus\/image\:bg-black\/20:is(:where(.group\/image):focus *){background-color:#0003}@supports (color:color-mix(in lab, red, red)){.group-focus\/image\:bg-black\/20:is(:where(.group\/image):focus *){background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.group-focus\/image\:opacity-100:is(:where(.group\/image):focus *){opacity:1}.group-aria-\[sort\=ascending\]\:text-strava-orange:is(:where(.group)[aria-sort=ascending] *),.group-aria-\[sort\=descending\]\:text-strava-orange:is(:where(.group)[aria-sort=descending] *){color:var(--color-strava-orange)}.group-\[\.fullscreen-is-enabled\]\:h-full:is(:where(.group).fullscreen-is-enabled *){height:100%}.group-\[\.fullscreen-is-enabled\]\:grow:is(:where(.group).fullscreen-is-enabled *){flex-grow:1}.group-\[\.sidebar-is-collapsed\]\:block:is(:where(.group).sidebar-is-collapsed *){display:block}.group-\[\.sidebar-is-collapsed\]\:hidden:is(:where(.group).sidebar-is-collapsed *){display:none}.group-\[\.sidebar-is-collapsed\]\:max-h-full:is(:where(.group).sidebar-is-collapsed *){max-height:100%}.group-\[\.sidebar-is-collapsed\]\:flex-col:is(:where(.group).sidebar-is-collapsed *){flex-direction:column}.group-\[\.sidebar-is-collapsed\]\:gap-y-0\.5:is(:where(.group).sidebar-is-collapsed *){row-gap:calc(var(--spacing)*.5)}.group-\[\.sidebar-is-collapsed\]\:text-xs:is(:where(.group).sidebar-is-collapsed *){font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.peer-checked\:visible:is(:where(.peer):checked~*){visibility:visible}.peer-checked\:border-strava-orange:is(:where(.peer):checked~*){border-color:var(--color-strava-orange)}.peer-checked\:bg-blue-600:is(:where(.peer):checked~*){background-color:var(--color-blue-600)}.peer-checked\:text-strava-orange:is(:where(.peer):checked~*){color:var(--color-strava-orange)}.peer-focus\:ring-2:is(:where(.peer):focus~*){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-focus\:ring-blue-300:is(:where(.peer):focus~*){--tw-ring-color:var(--color-blue-300)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing)*.5)}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing)*5)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing)*5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);border-color:var(--color-gray-300)}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-full:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{content:var(--tw-content);border-color:var(--color-white)}.first\:rounded-s-lg:first-child{border-start-start-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:animate-fade-in-chat-message:last-child{animation:var(--animate-fade-in-chat-message)}.last\:rounded-e-lg:last-child{border-start-end-radius:var(--radius-lg);border-end-end-radius:var(--radius-lg)}.last\:border-r:last-child{border-right-style:var(--tw-border-style);border-right-width:1px}.last\:border-r-0:last-child{border-right-style:var(--tw-border-style);border-right-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.odd\:bg-white:nth-child(odd){background-color:var(--color-white)}.even\:border-b:nth-child(2n){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.even\:bg-gray-50:nth-child(2n){background-color:var(--color-gray-50)}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:bg-blue-800:hover{background-color:var(--color-blue-800)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-strava-orange\/30:hover{background-color:#f267224d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-strava-orange\/30:hover{background-color:color-mix(in oklab,var(--color-strava-orange)30%,transparent)}}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:text-\[\#5865F4\]:hover{color:#5865f4}.hover\:text-\[\#111827\]:hover{color:#111827}.hover\:text-\[\#fc4c01\]:hover{color:#fc4c01}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-strava-orange:hover{color:var(--color-strava-orange)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}}.focus\:z-10:focus{z-index:10}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:bg-gray-100:focus{background-color:var(--color-gray-100)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-300:focus{--tw-ring-color:var(--color-blue-300)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-gray-100:focus{--tw-ring-color:var(--color-gray-100)}.focus\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\:ring-orange-300:focus{--tw-ring-color:var(--color-orange-300)}.focus\:ring-orange-500:focus{--tw-ring-color:var(--color-orange-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-0:focus-visible{outline-style:var(--tw-outline-style);outline-width:0}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-gray-300:disabled{border-color:var(--color-gray-300)}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}@media (hover:hover){.disabled\:hover\:bg-white:disabled:hover{background-color:var(--color-white)}}.aria-expanded\:bg-gray-100[aria-expanded=true]{background-color:var(--color-gray-100)}@media (hover:hover){.hover\:aria-expanded\:bg-gray-200:hover[aria-expanded=true]{background-color:var(--color-gray-200)}}.aria-selected\:bg-gray-100[aria-selected=true]{background-color:var(--color-gray-100)}@media (min-width:40rem){.sm\:size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.sm\:max-w-\[50\%\]{max-width:50%}.sm\:flex-row{flex-direction:row}}@media (min-width:48rem){.md\:inset-0{inset:calc(var(--spacing)*0)}.md\:ml-2{margin-left:calc(var(--spacing)*2)}.md\:ml-64{margin-left:calc(var(--spacing)*64)}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:max-w-\[100\%\]{max-width:100%}.md\:translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}:where(.md\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.md\:rounded-none{border-radius:0}.md\:rounded-s-lg{border-start-start-radius:var(--radius-lg);border-end-start-radius:var(--radius-lg)}.md\:p-5{padding:calc(var(--spacing)*5)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:sticky{position:sticky}.lg\:left-0{left:calc(var(--spacing)*0)}.lg\:order-2{order:2}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:mt-0{margin-top:calc(var(--spacing)*0)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:w-\[450px\]{width:450px}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:px-6{padding-inline:calc(var(--spacing)*6)}.lg\:py-16{padding-block:calc(var(--spacing)*16)}.lg\:text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}}@media (min-width:80rem){.xl\:col-span-2{grid-column:span 2/span 2}.xl\:col-span-3{grid-column:span 3/span 3}.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:w-\[650px\]{width:650px}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.rtl\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:180deg}:where(.rtl\:space-x-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *)>:not(:last-child)){--tw-space-x-reverse:1}.rtl\:text-right:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (prefers-color-scheme:dark){.dark\:border-blue-500{border-color:var(--color-blue-500)}.dark\:border-gray-500{border-color:var(--color-gray-500)}.dark\:border-gray-600{border-color:var(--color-gray-600)}.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:border-red-500{border-color:var(--color-red-500)}.dark\:border-transparent{border-color:#0000}.dark\:bg-blue-600{background-color:var(--color-blue-600)}.dark\:bg-gray-600{background-color:var(--color-gray-600)}.dark\:bg-gray-700{background-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-800\/50{background-color:#1f293780}@supports (color:color-mix(in lab, red, red)){.dark\:bg-gray-800\/50{background-color:color-mix(in oklab,var(--color-gray-800)50%,transparent)}}.dark\:bg-gray-900\/80{background-color:#111827cc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-gray-900\/80{background-color:color-mix(in oklab,var(--color-gray-900)80%,transparent)}}.dark\:bg-red-100{background-color:var(--color-red-100)}.dark\:text-blue-500{color:var(--color-blue-500)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-500{color:var(--color-gray-500)}.dark\:text-red-500{color:var(--color-red-500)}.dark\:text-white{color:var(--color-white)}.dark\:placeholder-gray-400::placeholder{color:var(--color-gray-400)}.dark\:placeholder-red-500::placeholder{color:var(--color-red-500)}.dark\:ring-offset-gray-800{--tw-ring-offset-color:var(--color-gray-800)}.dark\:peer-focus\:ring-blue-800:is(:where(.peer):focus~*){--tw-ring-color:var(--color-blue-800)}@media (hover:hover){.dark\:hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.dark\:hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.dark\:hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.dark\:hover\:text-blue-500:hover{color:var(--color-blue-500)}.dark\:hover\:text-gray-300:hover{color:var(--color-gray-300)}.dark\:hover\:text-white:hover{color:var(--color-white)}}.dark\:focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.dark\:focus\:border-red-500:focus{border-color:var(--color-red-500)}.dark\:focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.dark\:focus\:ring-blue-600:focus{--tw-ring-color:var(--color-blue-600)}.dark\:focus\:ring-blue-800:focus{--tw-ring-color:var(--color-blue-800)}.dark\:focus\:ring-gray-600:focus{--tw-ring-color:var(--color-gray-600)}.dark\:focus\:ring-gray-700:focus{--tw-ring-color:var(--color-gray-700)}.dark\:focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.dark\:disabled\:text-gray-400:disabled{color:var(--color-gray-400)}}.\[\&\.disabled\]\:bg-gray-100.disabled{background-color:var(--color-gray-100)}.\[\&\.full-screen-enabled\]\:hidden.full-screen-enabled{display:none}.\[\&\.sidebar-is-collapsed\]\:w-32.sidebar-is-collapsed{width:calc(var(--spacing)*32)}@media (min-width:48rem){.\[\&\.sidebar-is-collapsed\]\:md\:ml-32.sidebar-is-collapsed{margin-left:calc(var(--spacing)*32)}}body .lg-outer{z-index:1500!important}body .lg-backdrop{z-index:1490!important;opacity:.9!important}:is(.overflow-auto,.overflow-x-auto)::-webkit-scrollbar-track{background-color:var(--scrollbar-track);border-radius:var(--scrollbar-track-radius)}:is(.overflow-auto,.overflow-x-auto)::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--scrollbar-thumb-radius)}:is(.overflow-auto,.overflow-x-auto)::-webkit-scrollbar-corner{background-color:var(--scrollbar-corner);border-radius:var(--scrollbar-corner-radius)}.overflow-auto,.overflow-x-auto{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb,initial)var(--scrollbar-track,initial)}:is(.overflow-auto,.overflow-x-auto)::-webkit-scrollbar{width:8px;height:8px;display:block}.leaflet-tile-pane{filter:grayscale()}#heatmap .leaflet-tile-pane{filter:grayscale(0)}#heatmap.enable-grey-scale .leaflet-tile-pane{filter:grayscale()brightness(75%)}.leaflet-popup-content-wrapper .leaflet-popup-content{margin:calc(var(--spacing)*0)!important;font-size:var(--text-base)!important;line-height:var(--tw-leading,var(--text-base--line-height))!important;--tw-leading:1!important;line-height:1!important}:where(.leaflet-control--custom>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)));border-color:var(--color-grey-yo)}.leaflet-control--custom{border-radius:var(--radius-sm);border-style:var(--tw-border-style);border-width:2px;border-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.leaflet-control--custom{border-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.leaflet-control--custom{background-color:var(--color-white);background-clip:padding-box}.leaflet-control--custom li{cursor:pointer;padding:calc(var(--spacing)*1)}@media (hover:hover){.leaflet-control--custom li:hover{background-color:#f4f4f4}}.autoComplete_wrapper{width:100%;display:inline-block;position:relative}.autoComplete_wrapper>ul{right:calc(var(--spacing)*0);bottom:60px;left:calc(var(--spacing)*0);z-index:10;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-200);background-color:var(--color-white);max-height:250px;padding:calc(var(--spacing)*0);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;--tw-ease:var(--ease-in-out);transition-duration:.15s;transition-timing-function:var(--ease-in-out);--tw-outline-style:none;outline-style:none;list-style-type:none;position:absolute;overflow-y:scroll}.autoComplete_wrapper>ul:empty,.autoComplete_wrapper>ul[hidden]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y);opacity:0;display:block}.autoComplete_wrapper>ul>li{margin:calc(var(--spacing)*1);border-radius:var(--radius-lg);background-color:var(--color-white);padding:calc(var(--spacing)*2);text-align:left;text-overflow:ellipsis;white-space:nowrap;color:var(--color-gray-900);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;--tw-ease:var(--ease-in-out);transition-duration:.2s;transition-timing-function:var(--ease-in-out);overflow:hidden}.autoComplete_wrapper>ul>li mark{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold);color:var(--color-strava-orange);background-color:#0000}.autoComplete_wrapper>ul>li:hover,.autoComplete_wrapper>ul>li[aria-selected=true]{cursor:pointer;background-color:#f2672226}@supports (color:color-mix(in lab, red, red)){.autoComplete_wrapper>ul>li:hover,.autoComplete_wrapper>ul>li[aria-selected=true]{background-color:color-mix(in oklab,var(--color-strava-orange)15%,transparent)}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes chat-message{0%{max-height:100vmax}80%{transform:scale(1.1)}to{max-height:100vmax;overflow:visible;transform:scale(1)}} \ No newline at end of file diff --git a/public/css/tailwind.output.css b/public/css/tailwind.output.css index f14947733..ec61bba0b 100644 --- a/public/css/tailwind.output.css +++ b/public/css/tailwind.output.css @@ -1096,6 +1096,9 @@ .me-3 { margin-inline-end: calc(var(--spacing) * 3); } + .-mt-0\.5 { + margin-top: calc(var(--spacing) * -0.5); + } .mt-1 { margin-top: calc(var(--spacing) * 1); } @@ -2239,6 +2242,9 @@ border-color: var(--color-gray-200); } } + .self-start { + align-self: flex-start; + } .truncate { overflow: hidden; text-overflow: ellipsis; @@ -2596,9 +2602,6 @@ .bg-\[\#89D7D2\] { background-color: #89D7D2; } - .bg-\[\#F26722\] { - background-color: #F26722; - } .bg-black\/0 { background-color: color-mix(in srgb, #000000 0%, transparent); @supports (color: color-mix(in lab, red, red)) { @@ -3228,6 +3231,10 @@ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .shadow-md { + --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } .shadow-sm { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); @@ -3399,6 +3406,16 @@ color: var(--color-strava-orange); } } + .group-\[\.fullscreen-is-enabled\]\:h-full { + &:is(:where(.group):is(.fullscreen-is-enabled) *) { + height: 100%; + } + } + .group-\[\.fullscreen-is-enabled\]\:grow { + &:is(:where(.group):is(.fullscreen-is-enabled) *) { + flex-grow: 1; + } + } .group-\[\.sidebar-is-collapsed\]\:block { &:is(:where(.group):is(.sidebar-is-collapsed) *) { display: block; @@ -4378,6 +4395,11 @@ background-color: var(--color-gray-100); } } + .\[\&\.full-screen-enabled\]\:hidden { + &.full-screen-enabled { + display: none; + } + } .\[\&\.sidebar-is-collapsed\]\:w-32 { &.sidebar-is-collapsed { width: calc(var(--spacing) * 32); diff --git a/public/js/app.js b/public/js/app.js index 01abaf6c4..74480c934 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -11,6 +11,7 @@ import MapManager from "./ui/maps"; import TabsManager from "./ui/tabs"; import LazyLoad from "../libraries/lazyload.min"; import DataTableManager from "./ui/data-tables"; +import FullscreenManager from "./fullscreen"; const $main = document.querySelector("main"); const dataTableStorage = new DataTableStorage(); @@ -25,6 +26,7 @@ const chartManager = new ChartManager(router, dataTableStorage, modalManager); const mapManager = new MapManager(); const tabsManager = new TabsManager(chartManager); const dataTableManager = new DataTableManager(dataTableStorage); +const fullscreenManager = new FullscreenManager(chartManager); const lazyLoad = new LazyLoad({ thresholds: "50px", callback_error: (img) => { @@ -44,6 +46,7 @@ const initElements = (rootNode) => { modalManager.init(rootNode); chartManager.init(rootNode); mapManager.init(rootNode); + fullscreenManager.init(rootNode); } modalManager.setInitElements(initElements) diff --git a/public/js/dist/app.min.js b/public/js/dist/app.min.js index 632499a42..9d1ff0490 100644 --- a/public/js/dist/app.min.js +++ b/public/js/dist/app.min.js @@ -1,2 +1,2 @@ /*! For license information please see app.min.js.LICENSE.txt */ -(()=>{var t={360(t){t.exports=function(){"use strict";var t=function(){return t=Object.assign||function(t){for(var e,i=1,o=arguments.length;i";e.append(o)}else e.html(t)})},u=function(t,e,i,o){void 0===i&&(i=0);var s=a(t).attr("data-lg-size")||o;if(s){var r=s.split(",");if(r[1])for(var n=window.innerWidth,l=0;ln){s=c;break}l===r.length-1&&(s=c)}var d=s.split("-"),u=parseInt(d[0],10),h=parseInt(d[1],10),g=e.width(),m=e.height()-i,p=Math.min(g,u),f=Math.min(m,h),y=Math.min(p/u,f/h);return{width:u*y,height:h*y}}},h=function(t,e,i,o,s){if(s){var r=a(t).find("img").first();if(r.get()){var n=e.get().getBoundingClientRect(),l=n.width,c=e.height()-(i+o),d=r.width(),u=r.height(),h=r.style(),g=(l-d)/2-r.offset().left+(parseFloat(h.paddingLeft)||0)+(parseFloat(h.borderLeft)||0)+a(window).scrollLeft()+n.left,m=(c-u)/2-r.offset().top+(parseFloat(h.paddingTop)||0)+(parseFloat(h.borderTop)||0)+a(window).scrollTop()+i;return"translate3d("+(g*=-1)+"px, "+(m*=-1)+"px, 0) scale3d("+d/s.width+", "+u/s.height+", 1)"}}},g=function(t,e,i,o,s,r){var n="',a="";return r&&(a=("string"==typeof r?JSON.parse(r):r).map(function(t){var e="";return Object.keys(t).forEach(function(i){e+=" "+i+'="'+t[i]+'"'}),""})),""+a+n},m=function(t,e,i,o){var s=[],r=function(){for(var t=0,e=0,i=arguments.length;e-1&&(u=d),u&&(e[u]=l.value)}}var h=a(t),g=h.find("img").first().attr("alt"),m=h.attr("title"),p=o?h.attr(o):h.find("img").first().attr("src");e.thumb=p,i&&!e.subHtml&&(e.subHtml=m||g||""),e.alt=g||m||"",s.push(e)}),s},p=0,f=function(){function l(t,e){if(this.lgOpened=!1,this.index=0,this.plugins=[],this.lGalleryOn=!1,this.lgBusy=!1,this.currentItemsInDom=[],this.prevScrollTop=0,this.bodyPaddingRight=0,this.isDummyImageRemoved=!1,this.dragOrSwipeEnabled=!1,this.mediaContainerPosition={top:0,bottom:0},!t)return this;if(p++,this.lgId=p,this.el=t,this.LGel=a(t),this.generateSettings(e),this.buildModules(),this.settings.dynamic&&void 0!==this.settings.dynamicEl&&!Array.isArray(this.settings.dynamicEl))throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.galleryItems=this.getItems(),this.normalizeSettings(),this.init(),this.validateLicense(),this}return l.prototype.generateSettings=function(e){if(this.settings=t(t({},r),e),this.settings.isMobile&&"function"==typeof this.settings.isMobile?this.settings.isMobile():/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)){var i=t(t({},this.settings.mobileSettings),this.settings.mobileSettings);this.settings=t(t({},this.settings),i)}},l.prototype.normalizeSettings=function(){if(this.settings.slideEndAnimation&&(this.settings.hideControlOnEnd=!1),this.settings.closable||(this.settings.swipeToClose=!1),this.zoomFromOrigin=this.settings.zoomFromOrigin,this.settings.dynamic&&(this.zoomFromOrigin=!1),this.settings.container){var t=this.settings.container;if("function"==typeof t)this.settings.container=t();else if("string"==typeof t){var e=document.querySelector(t);this.settings.container=null!=e?e:document.body}}else this.settings.container=document.body;this.settings.preload=Math.min(this.settings.preload,this.galleryItems.length)},l.prototype.init=function(){var t=this;this.addSlideVideoInfo(this.galleryItems),this.buildStructure(),this.LGel.trigger("lgInit",{instance:this}),this.settings.keyPress&&this.keyPress(),setTimeout(function(){t.enableDrag(),t.enableSwipe(),t.triggerPosterClick()},50),this.arrow(),this.settings.mousewheel&&this.mousewheel(),this.settings.dynamic||this.openGalleryOnItemClick()},l.prototype.openGalleryOnItemClick=function(){for(var t=this,e=function(e){var o=i.items[e],s=a(o),r=n.generateUUID();s.attr("data-lg-id",r).on("click.lgcustom-item-"+r,function(i){i.preventDefault();var s=t.settings.index||e;t.openGallery(s,o)})},i=this,o=0;o '+this.settings.prevHtml+' \n "),".lg-item"!==this.settings.appendSubHtmlTo&&(i='
');var o="";this.settings.allowMediaOverlap&&(o+="lg-media-overlap ");var s=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",r=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",n="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),l=this.settings.closable&&this.settings.showCloseIcon?'':"",c=this.settings.showMaximizeIcon?'':"",d='\n \n ";a(this.settings.container).append(d),document.body!==this.settings.container&&a(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var u=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(u+="lg-grab "),this.outer.addClass(u),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append(''),this.counter(),a(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,function(){t.refreshOnResize()}),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},l.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index].__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var e=this.mediaContainerPosition,i=e.top,o=e.bottom;if(this.currentImageSize=u(this.items[this.index],this.outer,i+o,t&&this.settings.videoMaxSize),t&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var s=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",s)}this.LGel.trigger("lgContainerResize")}},l.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e);this.getSlideItem(t).find(".lg-video-cont").attr("style",i)},l.prototype.updateSlides=function(t,i){if(this.index>t.length-1&&(this.index=t.length-1),1===t.length&&(this.index=0),t.length){var o=this.galleryItems[i].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some(function(t,e){return t.src===o&&(s=e,!0)}),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(e)}else this.closeGallery()},l.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if("this"===this.settings.selector)this.items.push(this.el);else if(this.settings.selector)if("string"==typeof this.settings.selector)if(this.settings.selectWithin){var t=a(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return m(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},l.prototype.shouldHideScrollbar=function(){return this.settings.hideScrollbar&&document.body===this.settings.container},l.prototype.hideScrollbar=function(){if(this.shouldHideScrollbar()){this.bodyPaddingRight=parseFloat(a("body").style().paddingRight);var t=document.documentElement.getBoundingClientRect(),e=window.innerWidth-t.width;a(document.body).css("padding-right",e+this.bodyPaddingRight+"px"),a(document.body).addClass("lg-overlay-open")}},l.prototype.resetScrollBar=function(){this.shouldHideScrollbar()&&(a(document.body).css("padding-right",this.bodyPaddingRight+"px"),a(document.body).removeClass("lg-overlay-open"))},l.prototype.openGallery=function(t,e){var i=this;if(void 0===t&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.removeClass("lg-hide-items"),this.hideScrollbar(),this.$container.addClass("lg-show");var o=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=o;var s="";o.forEach(function(t){s=s+'
'}),this.$inner.append(s),this.addHtml(t);var r="";this.mediaContainerPosition=this.getMediaContainerPosition();var n=this.mediaContainerPosition,l=n.top,c=n.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(l,c);var d=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=u(e,this.outer,l+c,d&&this.settings.videoMaxSize),r=h(e,this.outer,l,c,this.currentImageSize)),this.zoomFromOrigin&&r||(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var g=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout(function(){i.outer.addClass("lg-components-open")},g),this.index=t,this.LGel.trigger("lgBeforeOpen"),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=a(window).scrollTop(),setTimeout(function(){if(i.zoomFromOrigin&&r){var e=i.getSlideItem(t);e.css("transform",r),setTimeout(function(){e.addClass("lg-start-progress lg-start-end-progress").css("transition-duration",i.settings.startAnimationDuration+"ms"),i.outer.addClass("lg-zoom-from-image")}),setTimeout(function(){e.css("transform","translate3d(0, 0, 0)")},100)}setTimeout(function(){i.$backdrop.addClass("in"),i.$container.addClass("lg-show-in")},10),setTimeout(function(){i.settings.trapFocus&&document.body===i.settings.container&&i.trapFocus()},i.settings.backdropDuration+50),i.zoomFromOrigin&&r||setTimeout(function(){i.outer.addClass("lg-visible")},i.settings.backdropDuration),i.slide(t,!1,!1,!1),i.LGel.trigger("lgAfterOpen")}),document.body===this.settings.container&&a("html").addClass("lg-on")}},l.prototype.getMediaContainerPosition=function(){if(this.settings.allowMediaOverlap)return{top:0,bottom:0};var t=this.$toolbar.get().clientHeight||0,e=this.outer.find(".lg-components .lg-sub-html").get(),i=this.settings.defaultCaptionHeight||e&&e.clientHeight||0,o=this.outer.find(".lg-thumb-outer").get();return{top:t,bottom:(o?o.clientHeight:0)+i}},l.prototype.setMediaContainerPosition=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.$content.css("top",t+"px").css("bottom",e+"px")},l.prototype.hideBars=function(){var t=this;setTimeout(function(){t.outer.removeClass("lg-hide-items"),t.settings.hideBarsDelay>0&&(t.outer.on("mousemove.lg click.lg touchstart.lg",function(){t.outer.removeClass("lg-hide-items"),clearTimeout(t.hideBarTimeout),t.hideBarTimeout=setTimeout(function(){t.outer.addClass("lg-hide-items")},t.settings.hideBarsDelay)}),t.outer.trigger("mousemove.lg"))},this.settings.showBarsAfter)},l.prototype.initPictureFill=function(t){if(this.settings.supportLegacyBrowser)try{picturefill({elements:[t.get()]})}catch(t){console.warn("lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.")}},l.prototype.counter=function(){if(this.settings.counter){var t='
\n '+(this.index+1)+' /\n '+this.galleryItems.length+"
";this.outer.find(this.settings.appendCounterTo).append(t)}},l.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var o=e.substring(0,1);"."!==o&&"#"!==o||(e=this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?a(this.items).eq(t).find(e).first().html():a(e).first().html())}else e="";if(".lg-item"!==this.settings.appendSubHtmlTo)i?d(i,this.outer.find(".lg-sub-html"),"replace"):this.outer.find(".lg-sub-html").html(e);else{var s=a(this.getSlideItemId(t));i?d(i,s,"append"):s.append('
'+e+"
")}null!=e&&(""===e?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger("lgAfterAppendSubHtml",{index:t})},l.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},l.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+"px;\n margin-left: -"+t.width/2+"px;\n margin-top: -"+t.height/2+"px;\n height:"+t.height+"px":""},l.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+"px;\n height:"+t.height+"px":""},l.prototype.getDummyImageContent=function(t,e,i){var o;if(this.settings.dynamic||(o=a(this.items).eq(e)),o){var s;if(!(s=this.settings.exThumbImage?o.attr(this.settings.exThumbImage):o.find("img").first().attr("src")))return"";var r=this.getDummyImgStyles(this.currentImageSize),n=document.createElement("img");return n.alt=i||"",n.src=s,n.className="lg-dummy-img",n.style.cssText=r,t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),n}return""},l.prototype.setImgMarkup=function(t,e,i){var o,s=this.galleryItems[i],r=s.alt,n=s.srcset,l=s.sizes,c=s.sources,d=r?'alt="'+r+'"':"";o=this.isFirstSlideWithZoomAnimation()?this.getDummyImageContent(e,i,d):g(i,t,d,n,l,c);var u=document.createElement("picture");u.className="lg-img-wrap",a(u).append(o),e.prepend(u)},l.prototype.onSlideObjectLoad=function(t,e,i,o){var s=t.find(".lg-object").first();(function(t){return!!t&&!!t.complete&&0!==t.naturalWidth})(s.get())||e?i():(s.on("load.lg error.lg",function(){i&&i()}),s.on("error.lg",function(){o&&o()}))},l.prototype.onLgObjectLoad=function(t,e,i,o,s,r){var n=this;this.onSlideObjectLoad(t,r,function(){n.triggerSlideItemLoad(t,e,i,o,s)},function(){t.addClass("lg-complete lg-complete_"),t.html(''+n.settings.strings.mediaLoadingFailed+"")})},l.prototype.triggerSlideItemLoad=function(t,e,i,o,s){var r=this,n=this.galleryItems[e],a=s&&"video"===this.getSlideType(n)&&!n.poster?o:0;setTimeout(function(){t.addClass("lg-complete lg-complete_"),r.LGel.trigger("lgSlideItemLoad",{index:e,delay:i||0,isFirstSlide:s})},a)},l.prototype.isFirstSlideWithZoomAnimation=function(){return!(this.lGalleryOn||!this.zoomFromOrigin||!this.currentImageSize)},l.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach(function(t,i){t.__slideVideoInfo=function(t,e,i){if(!t)return e?{html5:!0}:void console.error("lightGallery :- data-src is not provided on slide item "+(i+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");var o=t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),s=t.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),r=t.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);return o?{youtube:o}:s?{vimeo:s}:r?{wistia:r}:void 0}(t.src,!!t.video,i),t.__slideVideoInfo&&e.settings.loadYouTubePoster&&!t.poster&&t.__slideVideoInfo.youtube&&(t.poster="//img.youtube.com/vi/"+t.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")})},l.prototype.loadContent=function(t,e){var i=this,o=this.galleryItems[t],s=a(this.getSlideItemId(t)),r=o.poster,n=o.srcset,l=o.sizes,c=o.sources,d=o.src,h=o.video,m=h&&"string"==typeof h?JSON.parse(h):h;if(o.responsive){var p=o.responsive.split(",");d=function(t){for(var e=[],i=[],o="",s=0;sn){o=i[a];break}return o}(p)||d}var f=o.__slideVideoInfo,y="",v=!!o.iframe,b=!this.lGalleryOn,w=0;if(b&&(w=this.zoomFromOrigin&&this.currentImageSize?this.settings.startAnimationDuration+10:this.settings.backdropDuration+10),!s.hasClass("lg-loaded")){if(f){var S=this.mediaContainerPosition,C=S.top,x=S.bottom,I=u(this.items[t],this.outer,C+x,f&&this.settings.videoMaxSize);y=this.getVideoContStyle(I)}if(v){var E=function(t,e,i,o,s,r){return'
\n \n
'}(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,d,o.iframeTitle);s.prepend(E)}else if(r){var L="";b&&this.zoomFromOrigin&&this.currentImageSize&&(L=this.getDummyImageContent(s,t,"")),E=function(t,e,i,o,s){var r;r=s&&s.youtube?"lg-has-youtube":s&&s.vimeo?"lg-has-vimeo":"lg-has-html5";var n=e;return"string"!=typeof e&&(n=e.outerHTML),'
\n
\n \n '+o+'\n \n \n \n \n \n \n \n
\n '+n+'\n \n
'}(r,L||"",y,this.settings.strings.playVideo,f),s.prepend(E)}else if(f)E='
',s.prepend(E);else if(this.setImgMarkup(d,s,t),n||c){var T=s.find(".lg-object");this.initPictureFill(T)}(r||f)&&this.LGel.trigger("lgHasVideo",{index:t,src:d,html5Video:m,hasPoster:!!r}),this.LGel.trigger("lgAfterAppendSlide",{index:t}),this.lGalleryOn&&".lg-item"===this.settings.appendSubHtmlTo&&this.addHtml(t)}var A=0;w&&!a(document.body).hasClass("lg-from-hash")&&(A=w),this.isFirstSlideWithZoomAnimation()&&(setTimeout(function(){s.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")},this.settings.startAnimationDuration+100),s.hasClass("lg-loaded")||setTimeout(function(){if("image"===i.getSlideType(o)){var e=o.alt,a=e?'alt="'+e+'"':"";if(s.find(".lg-img-wrap").append(g(t,d,a,n,l,o.sources)),n||c){var u=s.find(".lg-object");i.initPictureFill(u)}}("image"===i.getSlideType(o)||"video"===i.getSlideType(o)&&r)&&(i.onLgObjectLoad(s,t,w,A,!0,!1),i.onSlideObjectLoad(s,!(!f||!f.html5||r),function(){i.loadContentOnFirstSlideLoad(t,s,A)},function(){i.loadContentOnFirstSlideLoad(t,s,A)}))},this.settings.startAnimationDuration+100)),s.addClass("lg-loaded"),this.isFirstSlideWithZoomAnimation()&&("video"!==this.getSlideType(o)||r)||this.onLgObjectLoad(s,t,w,A,b,!(!f||!f.html5||r)),this.zoomFromOrigin&&this.currentImageSize||!s.hasClass("lg-complete_")||this.lGalleryOn||setTimeout(function(){s.addClass("lg-complete")},this.settings.backdropDuration),this.lGalleryOn=!0,!0===e&&(s.hasClass("lg-complete_")?this.preload(t):s.find(".lg-object").first().on("load.lg error.lg",function(){i.preload(t)}))},l.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var o=this;setTimeout(function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),o.outer.removeClass("lg-first-slide-loading"),o.isDummyImageRemoved=!0,o.preload(t)},i+300)},l.prototype.getItemsToBeInsertedToDom=function(t,e,i){var o=this;void 0===i&&(i=0);var s=[],r=Math.max(i,3);r=Math.min(r,this.galleryItems.length);var n="lg-item-"+this.lgId+"-"+e;if(this.galleryItems.length<=3)return this.galleryItems.forEach(function(t,e){s.push("lg-item-"+o.lgId+"-"+e)}),s;if(t<(this.galleryItems.length-1)/2){for(var a=t;a>t-r/2&&a>=0;a--)s.push("lg-item-"+this.lgId+"-"+a);var l=s.length;for(a=0;a')}),this.currentItemsInDom.forEach(function(t){-1===o.indexOf(t)&&a("#"+t).remove()}),o},l.prototype.getPreviousSlideIndex=function(){var t=0;try{var e=this.outer.find(".lg-current").first().attr("id");t=parseInt(e.split("-")[3])||0}catch(e){t=0}return t},l.prototype.setDownloadValue=function(t){if(this.settings.download){var e=this.galleryItems[t];if(!1===e.downloadUrl||"false"===e.downloadUrl)this.outer.addClass("lg-hide-download");else{var i=this.getElementById("lg-download");this.outer.removeClass("lg-hide-download"),i.attr("href",e.downloadUrl||e.src),e.download&&i.attr("download",e.download)}}},l.prototype.makeSlideAnimation=function(t,e,i){var o=this;this.lGalleryOn&&i.addClass("lg-slide-progress"),setTimeout(function(){o.outer.addClass("lg-no-trans"),o.outer.find(".lg-item").removeClass("lg-prev-slide lg-next-slide"),"prev"===t?(e.addClass("lg-prev-slide"),i.addClass("lg-next-slide")):(e.addClass("lg-next-slide"),i.addClass("lg-prev-slide")),setTimeout(function(){o.outer.find(".lg-item").removeClass("lg-current"),e.addClass("lg-current"),o.outer.removeClass("lg-no-trans")},50)},this.lGalleryOn?this.settings.slideDelay:0)},l.prototype.slide=function(t,e,i,o){var s=this,r=this.getPreviousSlideIndex();if(this.currentItemsInDom=this.organizeSlideItems(t,r),!this.lGalleryOn||r!==t){var n=this.galleryItems.length;if(!this.lgBusy){this.settings.counter&&this.updateCurrentCounter(t);var a=this.getSlideItem(t),l=this.getSlideItem(r),c=this.galleryItems[t],d=c.__slideVideoInfo;if(this.outer.attr("data-lg-slide-type",this.getSlideType(c)),this.setDownloadValue(t),d){var h=this.mediaContainerPosition,g=h.top,m=h.bottom,p=u(this.items[t],this.outer,g+m,d&&this.settings.videoMaxSize);this.resizeVideoSlide(t,p)}if(this.LGel.trigger("lgBeforeSlide",{prevIndex:r,index:t,fromTouch:!!e,fromThumb:!!i}),this.lgBusy=!0,clearTimeout(this.hideBarTimeout),this.arrowDisable(t),o||(tr&&(o="next")),e){this.outer.find(".lg-item").removeClass("lg-prev-slide lg-current lg-next-slide");var f=void 0,y=void 0;n>2?(f=t-1,y=t+1,(0===t&&r===n-1||t===n-1&&0===r)&&(y=0,f=n-1)):(f=0,y=1),"prev"===o?this.getSlideItem(y).addClass("lg-next-slide"):this.getSlideItem(f).addClass("lg-prev-slide"),a.addClass("lg-current")}else this.makeSlideAnimation(o,a,l);this.lGalleryOn?setTimeout(function(){s.loadContent(t,!0),".lg-item"!==s.settings.appendSubHtmlTo&&s.addHtml(t)},this.settings.speed+50+(e?0:this.settings.slideDelay)):this.loadContent(t,!0),setTimeout(function(){s.lgBusy=!1,l.removeClass("lg-slide-progress"),s.LGel.trigger("lgAfterSlide",{prevIndex:r,index:t,fromTouch:e,fromThumb:i})},(this.lGalleryOn?this.settings.speed+100:100)+(e?0:this.settings.slideDelay))}this.index=t}},l.prototype.updateCurrentCounter=function(t){this.getElementById("lg-counter-current").html(t+1+"")},l.prototype.updateCounterTotal=function(){this.getElementById("lg-counter-all").html(this.galleryItems.length+"")},l.prototype.getSlideType=function(t){return t.__slideVideoInfo?"video":t.iframe?"iframe":"image"},l.prototype.touchMove=function(t,e,i){var o=e.pageX-t.pageX,s=e.pageY-t.pageY,r=!1;if(this.swipeDirection?r=!0:Math.abs(o)>15?(this.swipeDirection="horizontal",r=!0):Math.abs(s)>15&&(this.swipeDirection="vertical",r=!0),r){var n=this.getSlideItem(this.index);if("horizontal"===this.swipeDirection){null==i||i.preventDefault(),this.outer.addClass("lg-dragging"),this.setTranslate(n,o,0);var a=n.get().offsetWidth,l=15*a/100-Math.abs(10*o/100);this.setTranslate(this.outer.find(".lg-prev-slide").first(),-a+o-l,0),this.setTranslate(this.outer.find(".lg-next-slide").first(),a+o+l,0)}else if("vertical"===this.swipeDirection&&this.settings.swipeToClose){null==i||i.preventDefault(),this.$container.addClass("lg-dragging-vertical");var c=1-Math.abs(s)/window.innerHeight;this.$backdrop.css("opacity",c);var d=1-Math.abs(s)/(2*window.innerWidth);this.setTranslate(n,0,s,d,d),Math.abs(s)>100&&this.outer.addClass("lg-hide-items").removeClass("lg-components-open")}}},l.prototype.touchEnd=function(t,e,o){var s,r=this;"lg-slide"!==this.settings.mode&&this.outer.addClass("lg-slide"),setTimeout(function(){r.$container.removeClass("lg-dragging-vertical"),r.outer.removeClass("lg-dragging lg-hide-items").addClass("lg-components-open");var n=!0;if("horizontal"===r.swipeDirection){s=t.pageX-e.pageX;var l=Math.abs(t.pageX-e.pageX);s<0&&l>r.settings.swipeThreshold?(r.goToNextSlide(!0),n=!1):s>0&&l>r.settings.swipeThreshold&&(r.goToPrevSlide(!0),n=!1)}else if("vertical"===r.swipeDirection){if(s=Math.abs(t.pageY-e.pageY),r.settings.closable&&r.settings.swipeToClose&&s>100)return void r.closeGallery();r.$backdrop.css("opacity",1)}if(r.outer.find(".lg-item").removeAttr("style"),n&&Math.abs(t.pageX-e.pageX)<5){var c=a(o.target);r.isPosterElement(c)&&r.LGel.trigger(i)}r.swipeDirection=void 0}),setTimeout(function(){r.outer.hasClass("lg-dragging")||"lg-slide"===r.settings.mode||r.outer.removeClass("lg-slide")},this.settings.speed+100)},l.prototype.enableSwipe=function(){var t=this,e={},o={},s=!1,r=!1;this.settings.enableSwipe&&(this.$inner.on("touchstart.lg",function(i){t.dragOrSwipeEnabled=!0;var o=t.getSlideItem(t.index);!a(i.target).hasClass("lg-item")&&!o.get().contains(i.target)||t.outer.hasClass("lg-zoomed")||t.lgBusy||1!==i.touches.length||(r=!0,t.touchAction="swipe",t.manageSwipeClass(),e={pageX:i.touches[0].pageX,pageY:i.touches[0].pageY})}),this.$inner.on("touchmove.lg",function(i){r&&"swipe"===t.touchAction&&1===i.touches.length&&(o={pageX:i.touches[0].pageX,pageY:i.touches[0].pageY},t.touchMove(e,o,i),s=!0)}),this.$inner.on("touchend.lg",function(n){if("swipe"===t.touchAction){if(s)s=!1,t.touchEnd(o,e,n);else if(r){var l=a(n.target);t.isPosterElement(l)&&t.LGel.trigger(i)}t.touchAction=void 0,r=!1}}))},l.prototype.enableDrag=function(){var t=this,e={},o={},s=!1,r=!1;this.settings.enableDrag&&(this.outer.on("mousedown.lg",function(i){t.dragOrSwipeEnabled=!0;var o=t.getSlideItem(t.index);(a(i.target).hasClass("lg-item")||o.get().contains(i.target))&&(t.outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.lgBusy||(t.manageSwipeClass(),e={pageX:i.pageX,pageY:i.pageY},s=!0,t.outer.get().scrollLeft+=1,t.outer.get().scrollLeft-=1,t.outer.removeClass("lg-grab").addClass("lg-grabbing"),t.LGel.trigger("lgDragStart"))))}),a(window).on("mousemove.lg.global"+this.lgId,function(i){s&&t.lgOpened&&(r=!0,o={pageX:i.pageX,pageY:i.pageY},t.touchMove(e,o),t.LGel.trigger("lgDragMove"))}),a(window).on("mouseup.lg.global"+this.lgId,function(n){if(t.lgOpened){var l=a(n.target);r?(r=!1,t.touchEnd(o,e,n),t.LGel.trigger("lgDragEnd")):t.isPosterElement(l)&&t.LGel.trigger(i),s&&(s=!1,t.outer.removeClass("lg-grabbing").addClass("lg-grab"))}}))},l.prototype.triggerPosterClick=function(){var t=this;this.$inner.on("click.lg",function(e){!t.dragOrSwipeEnabled&&t.isPosterElement(a(e.target))&&t.LGel.trigger(i)})},l.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1;this.settings.loop&&this.galleryItems.length>2&&(0===this.index?e=this.galleryItems.length-1:this.index===this.galleryItems.length-1&&(t=0)),this.outer.find(".lg-item").removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.getSlideItem(e).addClass("lg-prev-slide"),this.getSlideItem(t).addClass("lg-next-slide")},l.prototype.goToNextSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index+10?(this.index--,this.LGel.trigger(s,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):i?(this.index=this.galleryItems.length-1,this.LGel.trigger(s,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-left-end"),setTimeout(function(){e.outer.removeClass("lg-left-end")},400)))},l.prototype.keyPress=function(){var t=this;a(window).on("keydown.lg.global"+this.lgId,function(e){t.lgOpened&&!0===t.settings.escKey&&27===e.keyCode&&(e.preventDefault(),t.settings.allowMediaOverlap&&t.outer.hasClass("lg-can-toggle")&&t.outer.hasClass("lg-components-open")?t.outer.removeClass("lg-components-open"):t.closeGallery()),t.lgOpened&&t.galleryItems.length>1&&(37===e.keyCode&&(e.preventDefault(),t.goToPrevSlide()),39===e.keyCode&&(e.preventDefault(),t.goToNextSlide()))})},l.prototype.arrow=function(){var t=this;this.getElementById("lg-prev").on("click.lg",function(){t.goToPrevSlide()}),this.getElementById("lg-next").on("click.lg",function(){t.goToNextSlide()})},l.prototype.arrowDisable=function(t){if(!this.settings.loop&&this.settings.hideControlOnEnd){var e=this.getElementById("lg-prev"),i=this.getElementById("lg-next");t+1===this.galleryItems.length?i.attr("disabled","disabled").addClass("disabled"):i.removeAttr("disabled").removeClass("disabled"),0===t?e.attr("disabled","disabled").addClass("disabled"):e.removeAttr("disabled").removeClass("disabled")}},l.prototype.setTranslate=function(t,e,i,o,s){void 0===o&&(o=1),void 0===s&&(s=1),t.css("transform","translate3d("+e+"px, "+i+"px, 0px) scale3d("+o+", "+s+", 1)")},l.prototype.mousewheel=function(){var t=this,e=0;this.outer.on("wheel.lg",function(i){if(i.deltaY&&!(t.galleryItems.length<2)){i.preventDefault();var o=(new Date).getTime();o-e<1e3||(e=o,i.deltaY>0?t.goToNextSlide():i.deltaY<0&&t.goToPrevSlide())}})},l.prototype.isSlideElement=function(t){return t.hasClass("lg-outer")||t.hasClass("lg-item")||t.hasClass("lg-img-wrap")||t.hasClass("lg-img-rotate")},l.prototype.isPosterElement=function(t){var e=this.getSlideItem(this.index).find(".lg-video-play-button").get();return t.hasClass("lg-video-poster")||t.hasClass("lg-video-play-button")||e&&e.contains(t.get())},l.prototype.toggleMaximize=function(){var t=this;this.getElementById("lg-maximize").on("click.lg",function(){t.$container.toggleClass("lg-inline"),t.refreshOnResize()})},l.prototype.invalidateItems=function(){for(var t=0;t',this.core.$toolbar.append(t),this.fullScreen()}},i.prototype.isFullScreen=function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},i.prototype.requestFullscreen=function(){var t=document.documentElement;t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()},i.prototype.exitFullscreen=function(){document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()},i.prototype.fullScreen=function(){var t=this;this.$LG(document).on("fullscreenchange.lg.global"+this.core.lgId+" \n webkitfullscreenchange.lg.global"+this.core.lgId+" \n mozfullscreenchange.lg.global"+this.core.lgId+" \n MSFullscreenChange.lg.global"+this.core.lgId,function(){t.core.lgOpened&&t.core.outer.toggleClass("lg-fullscreen-on")}),this.core.outer.find(".lg-fullscreen").first().on("click.lg",function(){t.isFullScreen()?t.exitFullscreen():t.requestFullscreen()})},i.prototype.closeGallery=function(){this.isFullScreen()&&this.exitFullscreen()},i.prototype.destroy=function(){this.$LG(document).off("fullscreenchange.lg.global"+this.core.lgId+" \n webkitfullscreenchange.lg.global"+this.core.lgId+" \n mozfullscreenchange.lg.global"+this.core.lgId+" \n MSFullscreenChange.lg.global"+this.core.lgId)},i}()}()},569(t){t.exports=function(){"use strict";var t=function(){return(t=Object.assign||function(t){for(var e,i=1,o=arguments.length;i':"";this.settings.actualSize&&(t+=''),this.core.outer.addClass("lg-use-transition-for-zoom"),this.core.$toolbar.first().append(t)},i.prototype.enableZoom=function(t){var e=this,i=this.settings.enableZoomAfter+t.detail.delay;this.$LG("body").first().hasClass("lg-from-hash")&&t.detail.delay?i=0:this.$LG("body").first().removeClass("lg-from-hash"),this.zoomableTimeout=setTimeout(function(){e.isImageSlide(e.core.index)&&(e.core.getSlideItem(t.detail.index).addClass("lg-zoomable"),t.detail.index===e.core.index&&e.setZoomEssentials())},i+30)},i.prototype.enableZoomOnSlideItemLoad=function(){this.core.LGel.on("lgSlideItemLoad.zoom",this.enableZoom.bind(this))},i.prototype.getDragCords=function(t){return{x:t.pageX,y:t.pageY}},i.prototype.getSwipeCords=function(t){return{x:t.touches[0].pageX,y:t.touches[0].pageY}},i.prototype.getDragAllowedAxises=function(t,e){if(!this.containerRect)return{allowX:!1,allowY:!1};var i=this.core.getSlideItem(this.core.index).find(".lg-image").first().get(),o=0,s=0,r=i.getBoundingClientRect();t?(o=i.offsetHeight*t,s=i.offsetWidth*t):e?(o=r.height+e*r.height,s=r.width+e*r.width):(o=r.height,s=r.width);var n=o>this.containerRect.height;return{allowX:s>this.containerRect.width,allowY:n}},i.prototype.setZoomEssentials=function(){this.containerRect=this.core.$content.get().getBoundingClientRect()},i.prototype.zoomImage=function(t,e,i,o){if(!(Math.abs(e)<=0)){var s,r,n=this.containerRect.width/2+this.containerRect.left,a=this.containerRect.height/2+this.containerRect.top+this.scrollTop;1===t&&(this.positionChanged=!1);var l=this.getDragAllowedAxises(0,e),c=l.allowY,d=l.allowX;this.positionChanged&&(s=this.left/(this.scale-e),r=this.top/(this.scale-e),this.pageX=n-s,this.pageY=a-r,this.positionChanged=!1);var u,h,g=this.getPossibleSwipeDragCords(e),m=n-this.pageX,p=a-this.pageY;if(t-e>1){var f=(t-e)/Math.abs(e);u=(m=(e<0?-m:m)+this.left*(f+(e<0?-1:1)))/f,h=(p=(e<0?-p:p)+this.top*(f+(e<0?-1:1)))/f}else u=m*(f=(t-e)*e),h=p*f;i&&(d?this.isBeyondPossibleLeft(u,g.minX)?u=g.minX:this.isBeyondPossibleRight(u,g.maxX)&&(u=g.maxX):t>1&&(ug.maxX&&(u=g.maxX)),c?this.isBeyondPossibleTop(h,g.minY)?h=g.minY:this.isBeyondPossibleBottom(h,g.maxY)&&(h=g.maxY):t>1&&(hg.maxY&&(h=g.maxY))),this.setZoomStyles({x:u,y:h,scale:t}),this.left=u,this.top=h,o&&this.setZoomImageSize()}},i.prototype.resetImageTranslate=function(t){if(this.isImageSlide(t)){var e=this.core.getSlideItem(t).find(".lg-image").first();this.imageReset=!1,e.removeClass("reset-transition reset-transition-y reset-transition-x"),this.core.outer.removeClass("lg-actual-size"),e.css("width","auto").css("height","auto"),setTimeout(function(){e.removeClass("no-transition")},10)}},i.prototype.setZoomImageSize=function(){var t=this,e=this.core.getSlideItem(this.core.index).find(".lg-image").first();setTimeout(function(){var i=t.getCurrentImageActualSizeScale();t.scale>=i&&(e.addClass("no-transition"),t.imageReset=!0)},500),setTimeout(function(){var i=t.getCurrentImageActualSizeScale();if(t.scale>=i){var o=t.getDragAllowedAxises(t.scale);e.css("width",e.get().naturalWidth+"px").css("height",e.get().naturalHeight+"px"),t.core.outer.addClass("lg-actual-size"),o.allowX&&o.allowY?e.addClass("reset-transition"):o.allowX&&!o.allowY?e.addClass("reset-transition-x"):!o.allowX&&o.allowY&&e.addClass("reset-transition-y")}},550)},i.prototype.setZoomStyles=function(t){var e=this.core.getSlideItem(this.core.index).find(".lg-img-wrap").first(),i=this.core.getSlideItem(this.core.index).find(".lg-image").first(),o=this.core.outer.find(".lg-current .lg-dummy-img").first();this.scale=t.scale,i.css("transform","scale3d("+t.scale+", "+t.scale+", 1)"),o.css("transform","scale3d("+t.scale+", "+t.scale+", 1)");var s="translate3d("+t.x+"px, "+t.y+"px, 0)";e.css("transform",s)},i.prototype.setActualSize=function(t,e){var i=this;if(!this.zoomInProgress){this.zoomInProgress=!0;var o=this.core.galleryItems[this.core.index];this.resetImageTranslate(t),setTimeout(function(){if(o.src&&!i.core.outer.hasClass("lg-first-slide-loading")){var t=i.getCurrentImageActualSizeScale(),s=i.scale;i.core.outer.hasClass("lg-zoomed")?i.scale=1:i.scale=i.getScale(t),i.setPageCords(e),i.beginZoom(i.scale),i.zoomImage(i.scale,i.scale-s,!0,!0)}},50),setTimeout(function(){i.core.outer.removeClass("lg-grabbing").addClass("lg-grab")},60),setTimeout(function(){i.zoomInProgress=!1},610)}},i.prototype.getNaturalWidth=function(t){var e=this.core.getSlideItem(t).find(".lg-image").first(),i=this.core.galleryItems[t].width;return i?parseFloat(i):e.get().naturalWidth},i.prototype.getActualSizeScale=function(t,e){return t>=e?t/e||2:1},i.prototype.getCurrentImageActualSizeScale=function(){var t=this.core.getSlideItem(this.core.index).find(".lg-image").first().get().offsetWidth,e=this.getNaturalWidth(this.core.index)||t;return this.getActualSizeScale(e,t)},i.prototype.getPageCords=function(t){var e={};if(t)e.x=t.pageX||t.touches[0].pageX,e.y=t.pageY||t.touches[0].pageY;else{var i=this.core.$content.get().getBoundingClientRect();e.x=i.width/2+i.left,e.y=i.height/2+this.scrollTop+i.top}return e},i.prototype.setPageCords=function(t){var e=this.getPageCords(t);this.pageX=e.x,this.pageY=e.y},i.prototype.manageActualPixelClassNames=function(){this.core.getElementById("lg-actual-size").removeClass(this.settings.actualSizeIcons.zoomIn).addClass(this.settings.actualSizeIcons.zoomOut)},i.prototype.beginZoom=function(t){return this.core.outer.removeClass("lg-zoom-drag-transition lg-zoom-dragging"),t>1?(this.core.outer.addClass("lg-zoomed"),this.manageActualPixelClassNames()):this.resetZoom(),t>1},i.prototype.getScale=function(t){var e=this.getCurrentImageActualSizeScale();return t<1?t=1:t>e&&(t=e),t},i.prototype.init=function(){var t=this;if(this.settings.zoom){this.buildTemplates(),this.enableZoomOnSlideItemLoad();var e=null;this.core.outer.on("dblclick.lg",function(e){t.$LG(e.target).hasClass("lg-image")&&t.setActualSize(t.core.index,e)}),this.core.outer.on("touchstart.lg",function(i){var o=t.$LG(i.target);1===i.touches.length&&o.hasClass("lg-image")&&(e?(clearTimeout(e),e=null,i.preventDefault(),t.setActualSize(t.core.index,i)):e=setTimeout(function(){e=null},300))}),this.core.LGel.on("lgContainerResize.zoom lgRotateRight.zoom lgRotateLeft.zoom lgFlipHorizontal.zoom lgFlipVertical.zoom",function(){if(t.core.lgOpened&&t.isImageSlide(t.core.index)&&!t.core.touchAction){var e=t.core.getSlideItem(t.core.index).find(".lg-img-wrap").first();t.top=0,t.left=0,t.setZoomEssentials(),t.setZoomSwipeStyles(e,{x:0,y:0}),t.positionChanged=!0}}),this.$LG(window).on("scroll.lg.zoom.global"+this.core.lgId,function(){t.core.lgOpened&&(t.scrollTop=t.$LG(window).scrollTop())}),this.core.getElementById("lg-zoom-out").on("click.lg",function(){if(t.isImageSlide(t.core.index)){var e=0;t.imageReset&&(t.resetImageTranslate(t.core.index),e=50),setTimeout(function(){var e=t.scale-t.settings.scale;e<1&&(e=1),t.beginZoom(e),t.zoomImage(e,-t.settings.scale,!0,!t.settings.infiniteZoom)},e)}}),this.core.getElementById("lg-zoom-in").on("click.lg",function(){t.zoomIn()}),this.core.getElementById("lg-actual-size").on("click.lg",function(){t.setActualSize(t.core.index)}),this.core.LGel.on("lgBeforeOpen.zoom",function(){t.core.outer.find(".lg-item").removeClass("lg-zoomable")}),this.core.LGel.on("lgAfterOpen.zoom",function(){t.scrollTop=t.$LG(window).scrollTop(),t.pageX=t.core.outer.width()/2,t.pageY=t.core.outer.height()/2+t.scrollTop,t.scale=1}),this.core.LGel.on("lgAfterSlide.zoom",function(e){var i=e.detail.prevIndex;t.scale=1,t.positionChanged=!1,t.zoomInProgress=!1,t.resetZoom(i),t.resetImageTranslate(i),t.isImageSlide(t.core.index)&&t.setZoomEssentials()}),this.zoomDrag(),this.pinchZoom(),this.zoomSwipe(),this.zoomableTimeout=!1,this.positionChanged=!1,this.zoomInProgress=!1}},i.prototype.zoomIn=function(){if(this.isImageSlide(this.core.index)){var t=this.scale+this.settings.scale;this.settings.infiniteZoom||(t=this.getScale(t)),this.beginZoom(t),this.zoomImage(t,Math.min(this.settings.scale,t-this.scale),!0,!this.settings.infiniteZoom)}},i.prototype.resetZoom=function(t){this.core.outer.removeClass("lg-zoomed lg-zoom-drag-transition");var e=this.core.getElementById("lg-actual-size"),i=this.core.getSlideItem(void 0!==t?t:this.core.index);e.removeClass(this.settings.actualSizeIcons.zoomOut).addClass(this.settings.actualSizeIcons.zoomIn),i.find(".lg-img-wrap").first().removeAttr("style"),i.find(".lg-image").first().removeAttr("style"),this.scale=1,this.left=0,this.top=0,this.setPageCords()},i.prototype.getTouchDistance=function(t){return Math.sqrt((t.touches[0].pageX-t.touches[1].pageX)*(t.touches[0].pageX-t.touches[1].pageX)+(t.touches[0].pageY-t.touches[1].pageY)*(t.touches[0].pageY-t.touches[1].pageY))},i.prototype.pinchZoom=function(){var t=this,e=0,i=!1,o=1,s=0,r=this.core.getSlideItem(this.core.index);this.core.outer.on("touchstart.lg",function(i){if(r=t.core.getSlideItem(t.core.index),t.isImageSlide(t.core.index)&&2===i.touches.length){if(i.preventDefault(),t.core.outer.hasClass("lg-first-slide-loading"))return;o=t.scale||1,t.core.outer.removeClass("lg-zoom-drag-transition lg-zoom-dragging"),t.setPageCords(i),t.resetImageTranslate(t.core.index),t.core.touchAction="pinch",e=t.getTouchDistance(i)}}),this.core.$inner.on("touchmove.lg",function(n){if(2===n.touches.length&&"pinch"===t.core.touchAction&&(t.$LG(n.target).hasClass("lg-item")||r.get().contains(n.target))){n.preventDefault();var a=t.getTouchDistance(n),l=e-a;if(!i&&Math.abs(l)>5&&(i=!0),i){s=t.scale;var c=Math.max(1,o+.02*-l);t.scale=Math.round(100*(c+Number.EPSILON))/100;var d=t.scale-s;t.zoomImage(t.scale,Math.round(100*(d+Number.EPSILON))/100,!1,!1)}}}),this.core.$inner.on("touchend.lg",function(o){if("pinch"===t.core.touchAction&&(t.$LG(o.target).hasClass("lg-item")||r.get().contains(o.target))){if(i=!1,e=0,t.scale<=1)t.resetZoom();else{var s=t.getCurrentImageActualSizeScale();if(t.scale>=s){var n=s-t.scale;0===n&&(n=.01),t.zoomImage(s,n,!1,!0)}t.manageActualPixelClassNames(),t.core.outer.addClass("lg-zoomed")}t.core.touchAction=void 0}})},i.prototype.touchendZoom=function(t,e,i,o,s){var r=e.x-t.x,n=e.y-t.y,a=Math.abs(r)/s+1,l=Math.abs(n)/s+1;a>2&&(a+=1),l>2&&(l+=1),r*=a,n*=l;var c=this.core.getSlideItem(this.core.index).find(".lg-img-wrap").first(),d={};d.x=this.left+r,d.y=this.top+n;var u=this.getPossibleSwipeDragCords();(Math.abs(r)>15||Math.abs(n)>15)&&(o&&(this.isBeyondPossibleTop(d.y,u.minY)?d.y=u.minY:this.isBeyondPossibleBottom(d.y,u.maxY)&&(d.y=u.maxY)),i&&(this.isBeyondPossibleLeft(d.x,u.minX)?d.x=u.minX:this.isBeyondPossibleRight(d.x,u.maxX)&&(d.x=u.maxX)),o?this.top=d.y:d.y=this.top,i?this.left=d.x:d.x=this.left,this.setZoomSwipeStyles(c,d),this.positionChanged=!0)},i.prototype.getZoomSwipeCords=function(t,e,i,o,s){var r={};if(o){if(r.y=this.top+(e.y-t.y),this.isBeyondPossibleTop(r.y,s.minY)){var n=s.minY-r.y;r.y=s.minY-n/6}else if(this.isBeyondPossibleBottom(r.y,s.maxY)){var a=r.y-s.maxY;r.y=s.maxY+a/6}}else r.y=this.top;if(i){if(r.x=this.left+(e.x-t.x),this.isBeyondPossibleLeft(r.x,s.minX)){var l=s.minX-r.x;r.x=s.minX-l/6}else if(this.isBeyondPossibleRight(r.x,s.maxX)){var c=r.x-s.maxX;r.x=s.maxX+c/6}}else r.x=this.left;return r},i.prototype.isBeyondPossibleLeft=function(t,e){return t>=e},i.prototype.isBeyondPossibleRight=function(t,e){return t<=e},i.prototype.isBeyondPossibleTop=function(t,e){return t>=e},i.prototype.isBeyondPossibleBottom=function(t,e){return t<=e},i.prototype.isImageSlide=function(t){var e=this.core.galleryItems[t];return"image"===this.core.getSlideType(e)},i.prototype.getPossibleSwipeDragCords=function(t){var e=this.core.getSlideItem(this.core.index).find(".lg-image").first(),i=this.core.mediaContainerPosition.bottom,o=e.get().getBoundingClientRect(),s=o.height,r=o.width;return t&&(s+=t*s,r+=t*r),{minY:(s-this.containerRect.height)/2,maxY:(this.containerRect.height-s)/2+i,minX:(r-this.containerRect.width)/2,maxX:(this.containerRect.width-r)/2}},i.prototype.setZoomSwipeStyles=function(t,e){t.css("transform","translate3d("+e.x+"px, "+e.y+"px, 0)")},i.prototype.zoomSwipe=function(){var t,e,i=this,o={},s={},r=!1,n=!1,a=!1,l=new Date,c=(new Date,this.core.getSlideItem(this.core.index));this.core.$inner.on("touchstart.lg",function(s){if(i.isImageSlide(i.core.index)&&(c=i.core.getSlideItem(i.core.index),(i.$LG(s.target).hasClass("lg-item")||c.get().contains(s.target))&&1===s.touches.length&&i.core.outer.hasClass("lg-zoomed"))){s.preventDefault(),l=new Date,i.core.touchAction="zoomSwipe",e=i.core.getSlideItem(i.core.index).find(".lg-img-wrap").first();var r=i.getDragAllowedAxises(0);a=r.allowY,((n=r.allowX)||a)&&(o=i.getSwipeCords(s)),t=i.getPossibleSwipeDragCords(),i.core.outer.addClass("lg-zoom-dragging lg-zoom-drag-transition")}}),this.core.$inner.on("touchmove.lg",function(l){if(1===l.touches.length&&"zoomSwipe"===i.core.touchAction&&(i.$LG(l.target).hasClass("lg-item")||c.get().contains(l.target))){l.preventDefault(),i.core.touchAction="zoomSwipe",s=i.getSwipeCords(l);var d=i.getZoomSwipeCords(o,s,n,a,t);(Math.abs(s.x-o.x)>15||Math.abs(s.y-o.y)>15)&&(r=!0,i.setZoomSwipeStyles(e,d))}}),this.core.$inner.on("touchend.lg",function(t){if("zoomSwipe"===i.core.touchAction&&(i.$LG(t.target).hasClass("lg-item")||c.get().contains(t.target))){if(t.preventDefault(),i.core.touchAction=void 0,i.core.outer.removeClass("lg-zoom-dragging"),!r)return;r=!1;var e=(new Date).valueOf()-l.valueOf();i.touchendZoom(o,s,n,a,e)}})},i.prototype.zoomDrag=function(){var t,e,i,o,s=this,r={},n={},a=!1,l=!1,c=!1,d=!1;this.core.outer.on("mousedown.lg.zoom",function(e){if(s.isImageSlide(s.core.index)){var n=s.core.getSlideItem(s.core.index);if(s.$LG(e.target).hasClass("lg-item")||n.get().contains(e.target)){t=new Date,o=s.core.getSlideItem(s.core.index).find(".lg-img-wrap").first();var l=s.getDragAllowedAxises(0);d=l.allowY,c=l.allowX,s.core.outer.hasClass("lg-zoomed")&&s.$LG(e.target).hasClass("lg-object")&&(c||d)&&(e.preventDefault(),r=s.getDragCords(e),i=s.getPossibleSwipeDragCords(),a=!0,s.core.outer.removeClass("lg-grab").addClass("lg-grabbing lg-zoom-drag-transition lg-zoom-dragging"))}}}),this.$LG(window).on("mousemove.lg.zoom.global"+this.core.lgId,function(t){if(a){l=!0,n=s.getDragCords(t);var e=s.getZoomSwipeCords(r,n,c,d,i);s.setZoomSwipeStyles(o,e)}}),this.$LG(window).on("mouseup.lg.zoom.global"+this.core.lgId,function(i){if(a){if(e=new Date,a=!1,s.core.outer.removeClass("lg-zoom-dragging"),l&&(r.x!==n.x||r.y!==n.y)){n=s.getDragCords(i);var o=e.valueOf()-t.valueOf();s.touchendZoom(r,n,c,d,o)}l=!1}s.core.outer.removeClass("lg-grabbing").addClass("lg-grab")})},i.prototype.closeGallery=function(){this.resetZoom(),this.zoomInProgress=!1},i.prototype.destroy=function(){this.$LG(window).off(".lg.zoom.global"+this.core.lgId),this.core.LGel.off(".lg.zoom"),this.core.LGel.off(".zoom"),clearTimeout(this.zoomableTimeout),this.zoomableTimeout=!1},i}()}()},816(t){t.exports=function(){function t(t,e,i){return e.addEventListener?e.addEventListener(t,i,!1):e.attachEvent("on"+t,i)}function e(t,e,i){return e.removeEventListener?e.removeEventListener(t,i,!1):e.detachEvent("on"+t,i)}function i(t){return"[object Array]"===Object.prototype.toString.call(t)}function o(t,e){return window.getComputedStyle?window.getComputedStyle(e)[t]:e.currentStyle[t]}var s=function(){for(var t=3,e=document.createElement("b"),i=e.all||[];e.innerHTML="\x3c!--[if gt IE "+ ++t+"]>=s&&!i.tag&&(i.tag=t[0].match(/<([^>\s/]*)/)[1].toLowerCase()),1>=this.content_elem.children.length&&(e.data=this.html(t[0]+t[0]+t[0])),i.tag||(i.tag=this.content_elem.children[0].tagName.toLowerCase()),this.getRowsHeight(t))},getRowsHeight:function(t){var e=this.options,i=e.item_height;if(e.cluster_height=0,t.length&&(t=this.content_elem.children).length){var s=t[Math.floor(t.length/2)];return e.item_height=s.offsetHeight,"tr"==e.tag&&"collapse"!=o("borderCollapse",this.content_elem)&&(e.item_height+=parseInt(o("borderSpacing",this.content_elem),10)||0),"tr"!=e.tag&&(t=parseInt(o("marginTop",s),10)||0,s=parseInt(o("marginBottom",s),10)||0,e.item_height+=Math.max(t,s)),e.block_height=e.item_height*e.rows_in_block,e.rows_in_cluster=e.blocks_in_cluster*e.rows_in_block,e.cluster_height=e.blocks_in_cluster*e.block_height,i!=e.item_height}},getClusterNum:function(t){var e=this.options;e.scroll_top=this.scroll_elem.scrollTop;var i=e.cluster_height-e.block_height;return Math.min(Math.floor(e.scroll_top/i),Math.floor(t.length*e.item_height/i))},generateEmptyRow:function(){var t=this.options;if(!t.tag||!t.show_no_data_row)return[];var e=document.createElement(t.tag),i=document.createTextNode(t.no_data_text);if(e.className=t.no_data_class,"tr"==t.tag){var o=document.createElement("td");o.colSpan=100,o.appendChild(i)}return e.appendChild(o||i),[e.outerHTML]},generate:function(t){var e=this.options,i=t.length;if(ir&&n++;o=s&&"tr"==this.options.tag){var i=document.createElement("div");for(i.innerHTML=""+t+"
";t=e.lastChild;)e.removeChild(t);for(i=this.getChildNodes(i.firstChild.firstChild);i.length;)e.appendChild(i.shift())}else e.innerHTML=t},getChildNodes:function(t){for(var e=[],i=0,o=(t=t.children).length;it.length)&&(e=t.length);for(var i=0,o=Array(e);i=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,r=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return r=t.done,t},e:function(t){a=!0,s=t},f:function(){try{r||null==e.return||e.return()}finally{if(a)throw s}}}}(i.keys);try{for(d.s();!(c=d.n()).done;)l(c.value)}catch(t){d.e(t)}finally{d.f()}}else l()}),i.filter&&(s=i.filter(s));var r=s.slice(0,e.resultsList.maxResults);e.feedback={query:t,matches:s,results:r},u("results",e)},p="aria-expanded",f="aria-activedescendant",y="aria-selected",v=function(t,e){t.feedback.selection=o({index:e},t.feedback.results[e])},b=function(t){t.isOpen||((t.wrapper||t.input).setAttribute(p,!0),t.list.removeAttribute("hidden"),t.isOpen=!0,u("open",t))},w=function(t){t.isOpen&&((t.wrapper||t.input).setAttribute(p,!1),t.input.setAttribute(f,""),t.list.setAttribute("hidden",""),t.isOpen=!1,u("close",t))},S=function(t,e){var i=e.resultItem,o=e.list.getElementsByTagName(i.tag),r=!!i.selected&&i.selected.split(" ");if(e.isOpen&&o.length){var n,a,l=e.cursor;t>=o.length&&(t=0),t<0&&(t=o.length-1),e.cursor=t,l>-1&&(o[l].removeAttribute(y),r&&(a=o[l].classList).remove.apply(a,s(r))),o[t].setAttribute(y,!0),r&&(n=o[t].classList).add.apply(n,s(r)),e.input.setAttribute(f,o[e.cursor].id),e.list.scrollTop=o[t].offsetTop-e.list.clientHeight+o[t].clientHeight+5,e.feedback.cursor=e.cursor,v(e,t),u("navigate",e)}},C=function(t){S(t.cursor+1,t)},x=function(t){S(t.cursor-1,t)},I=function(t,e,i){(i=i>=0?i:t.cursor)<0||(t.feedback.event=e,v(t,i),u("selection",t),w(t))};function E(t,e){var i=this;return new Promise(function(s,r){var n,a;return n=e||((a=t.input)instanceof HTMLInputElement||a instanceof HTMLTextAreaElement?a.value:a.innerHTML),function(t,e,i){return e?e(t):t.length>=i}(n=t.query?t.query(n):n,t.trigger,t.threshold)?g(t,n).then(function(e){try{return t.feedback instanceof Error?s():(m(n,t),t.resultsList&&function(t){var e=t.resultsList,i=t.list,s=t.resultItem,r=t.feedback,n=r.matches,a=r.results;if(t.cursor=-1,i.innerHTML="",n.length||e.noResults){var c=new DocumentFragment;a.forEach(function(t,e){var i=l(s.tag,o({id:"".concat(s.id,"_").concat(e),role:"option",innerHTML:t.match,inside:c},s.class&&{class:s.class}));s.element&&s.element(i,t)}),i.append(c),e.element&&e.element(i,r),b(t)}else w(t)}(t),c.call(i))}catch(t){return r(t)}},r):(w(t),c.call(i));function c(){return s()}})}var L=function(t,e){for(var i in t)for(var o in t[i])e(i,o)};function T(t){var e=this;return new Promise(function(i,s){var r,n,a;if(r=t.placeHolder,a={role:"combobox","aria-owns":(n=t.resultsList).id,"aria-haspopup":!0,"aria-expanded":!1},l(t.input,o(o({"aria-controls":n.id,"aria-autocomplete":"both"},r&&{placeholder:r}),!t.wrapper&&o({},a))),t.wrapper&&(t.wrapper=l("div",o({around:t.input,class:t.name+"_wrapper"},a))),n&&(t.list=l(n.tag,o({dest:[n.destination,n.position],id:n.id,role:"listbox",hidden:"hidden"},n.class&&{class:n.class}))),function(t){var e,i,s,r=t.events,n=(e=function(){return E(t)},i=t.debounce,function(){clearTimeout(s),s=setTimeout(function(){return e()},i)}),a=t.events=o({input:o({},r&&r.input)},t.resultsList&&{list:r?o({},r.list):{}}),l={input:{input:function(){n()},keydown:function(e){!function(t,e){switch(t.keyCode){case 40:case 38:t.preventDefault(),40===t.keyCode?C(e):x(e);break;case 13:e.submit||t.preventDefault(),e.cursor>=0&&I(e,t);break;case 9:e.resultsList.tabSelect&&e.cursor>=0&&I(e,t);break;case 27:e.input.value="",u("clear",e),w(e)}}(e,t)},blur:function(){w(t)}},list:{mousedown:function(t){t.preventDefault()},click:function(e){!function(t,e){var i=e.resultItem.tag.toUpperCase(),o=Array.from(e.list.querySelectorAll(i)),s=t.target.closest(i);s&&s.nodeName===i&&I(e,t,o.indexOf(s))}(e,t)}}};L(l,function(e,i){(t.resultsList||"input"===i)&&(a[e][i]||(a[e][i]=l[e][i]))}),L(a,function(e,i){t[e].addEventListener(i,a[e][i])})}(t),t.data.cache)return g(t).then(function(t){try{return c.call(e)}catch(t){return s(t)}},s);function c(){return u("init",t),i()}return c.call(e)})}function A(t){var e=t.prototype;e.init=function(){T(this)},e.start=function(t){E(this,t)},e.unInit=function(){if(this.wrapper){var t=this.wrapper.parentNode;t.insertBefore(this.input,this.wrapper),t.removeChild(this.wrapper)}var e;L((e=this).events,function(t,i){e[t].removeEventListener(i,e.events[t][i])})},e.open=function(){b(this)},e.close=function(){w(this)},e.goTo=function(t){S(t,this)},e.next=function(){C(this)},e.previous=function(){x(this)},e.select=function(t){I(this,null,t)},e.search=function(t,e,i){return h(t,e,i)}}return function t(e){this.options=e,this.id=t.instances=(t.instances||0)+1,this.name="autoComplete",this.wrapper=1,this.threshold=1,this.debounce=0,this.resultsList={position:"afterend",tag:"ul",maxResults:5},this.resultItem={tag:"li"},function(t){var e=t.name,i=t.options,o=t.resultsList,s=t.resultItem;for(var n in i)if("object"===r(i[n]))for(var l in t[n]||(t[n]={}),i[n])t[n][l]=i[n][l];else t[n]=i[n];t.selector=t.selector||"#"+e,o.destination=o.destination||t.selector,o.id=o.id||e+"_list_"+t.id,s.id=s.id||e+"_result",t.input=a(t.selector)}(this),A.call(this,t),T(this)}},t.exports=e()}},e={};function i(o){var s=e[o];if(void 0!==s)return s.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,i),r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=i(816),e=i.n(t);class o{constructor(t,e){this.wrapper=t,this.storage=e,this.filters={}}prefillFromStorage(t){const e=this.storage.get(t);e&&(Object.keys(e).forEach(t=>{if("object"==typeof e[t]&&null!==e[t]&&"from"in e[t]&&"to"in e[t])return;const i=e[t];this.wrapper.querySelectorAll(`input[data-dataTable-filter="${t}"]`).forEach(t=>{const e=t.value.toLowerCase();Array.isArray(i)?i.filter(t=>null!==t).map(t=>t.toLowerCase()).includes(e)&&(t.checked=!0):null!==i&&e===i.toLowerCase()&&(t.checked=!0)})}),Object.entries(e).filter(([t,e])=>"object"==typeof e&&null!==e&&"from"in e&&"to"in e).forEach(([t,e])=>{const i=this.wrapper.querySelector(`input[name="${t}[from]"]`),o=this.wrapper.querySelector(`input[name="${t}[to]"]`);i&&e.from&&(i.valueAsDate=new Date(e.from)),o&&e.to&&(o.valueAsDate=new Date(e.to))}),this.storage.clearAll())}getActiveFilters(){const t={};return this.wrapper.querySelectorAll("[data-dataTable-filter]:checked").forEach(e=>{const i=e.getAttribute("data-dataTable-filter"),o=e.value.toLowerCase();t[i]?Array.isArray(t[i])?t[i].push(o):t[i]=[t[i],o]:t[i]=o}),this.wrapper.querySelectorAll('[data-dataTable-filter*="[]"]').forEach(e=>{const i=e.getAttribute("data-dataTable-filter").replace("[]",""),o=e.querySelector(`input[name="${i}[from]"]`),s=e.querySelector(`input[name="${i}[to]"]`);if(o&&s&&o.valueAsDate&&s.valueAsDate){const e=new Date(o.valueAsNumber).setUTCHours(0,0,0),r=new Date(s.valueAsNumber).setUTCHours(23,59,59);t[i]={from:e,to:r}}}),t}updateDropdownState(t){this.wrapper.querySelectorAll(".filter-dropdown [data-dropdown-toggle]").forEach(t=>{t.classList.remove("active")}),Object.entries(t).forEach(([t,e])=>{if(e&&"object"==typeof e&&"from"in e&&"to"in e){const e=this.wrapper.querySelector(`[data-datatable-filter="${t}[]"]`)?.closest(".filter-dropdown"),i=e.querySelector("[data-dropdown-toggle]");return void(i&&i.classList.add("active"))}const i=this.wrapper.querySelector(`[data-dataTable-filter="${t}"]:checked`)?.closest(".filter-dropdown"),o=i.querySelector("[data-dropdown-toggle]");o&&o.classList.add("active")})}applyFiltersToRows(t,e=""){const i=this.getActiveFilters(),o=e.toLowerCase();return t.forEach(t=>{t.active=!t.searchables||t.searchables.toLowerCase().includes(o);for(const[e,o]of Object.entries(i)){const i=t.filterables[e];o&&"object"==typeof o&&"from"in o&&"to"in o?t.active=t.active&&i>=o.from&&i<=o.to:Array.isArray(o)?t.active=t.active&&o.includes(i?.toLowerCase()):t.active=t.active&&(Array.isArray(i)?i.map(t=>t.toLowerCase()).includes(o):i?.toLowerCase()===o)}}),t}resetAll(){this.wrapper.querySelectorAll('[data-dataTable-filter], [data-dataTable-filter*="[]"] input').forEach(t=>{"radio"===t.type||"checkbox"===t.type?t.checked=!1:t.value=""}),this.storage.clearAll()}resetOne(t){this.wrapper.querySelectorAll(`[data-dataTable-filter][name^="${t}"], [data-dataTable-filter*="[]"] [name^="${t}"]`).forEach(t=>{"radio"===t.type||"checkbox"===t.type?t.checked=!1:t.value=""})}}class s{static calculate(t){return t.filter(t=>t.active).reduce((t,e)=>(Object.entries(e.summables).forEach(([e,i])=>t[e]=(t[e]||0)+i),t),{})}static render(t,e){const i=this.calculate(e);t.querySelectorAll("[data-dataTable-summable]").forEach(t=>{const e=t.getAttribute("data-dataTable-summable");t.innerHTML=void 0!==i[e]?(t=>{t=(t+"").replace(/[^0-9+\-Ee.]/g,"");const e=isFinite(+t)?+t:0,i=isFinite(0)?Math.abs(0):0;let o="";return o=(i?function(t,e){if(-1===(""+t).indexOf("e"))return+(Math.round(t+"e+"+e)+"e-"+e);{const i=(""+t).split("e");let o="";return+i[1]+e>0&&(o="+"),(+(Math.round(+i[0]+"e"+o+(+i[1]+e))+"e-"+e)).toFixed(e)}}(e,i).toString():""+Math.round(e)).split("."),o[0].length>3&&(o[0]=o[0].replace(/\B(?=(?:\d{3})+(?!\d))/g," ")),(o[1]||"").lengtho.addEventListener("click",()=>{const s=o.getAttribute("data-dataTable-sort");s===this.sortOnPrevious?this.sortAsc=!this.sortAsc:this.sortAsc=!0,this.sortOnPrevious=s,this.columns.forEach(t=>t.querySelector(".sorting-icon")?.setAttribute("aria-sort","none")),o.querySelector(".sorting-icon")?.setAttribute("aria-sort",this.sortAsc?"ascending":"descending"),t.sort((t,e)=>{const i=t.sort[s],o=e.sort[s];return void 0===i?1:void 0===o?-1:io?this.sortAsc?1:-1:0}),e.update(t.filter(t=>t.active).map(t=>t.markup)),i.scrollTop=0}))}}class n{constructor(t,e,i){this.wrapper=t,this.tbody=e,this.scrollElem=i,this.cluster=null}init(t){this.cluster=new(e())({rows:t.filter(t=>t.active).map(t=>t.markup),scrollElem:this.scrollElem,contentElem:this.tbody,no_data_class:"clusterize-loading",callbacks:{clusterChanged:()=>{s.render(this.wrapper,t);const e=this.wrapper.querySelector("[data-dataTable-result-count]");e&&(e.innerText=t.filter(t=>t.active).length),document.dispatchEvent(new CustomEvent("dataTableClusterWasChanged",{bubbles:!0,cancelable:!1}))}}})}update(t){this.cluster&&(this.cluster.update(t.filter(t=>t.active).map(t=>t.markup)),this.scrollElem.scrollTop=0)}}class a{constructor(t="dataTableFilters"){this.storageKey=t}clearAll(){localStorage.removeItem(this.storageKey)}get(t){const e=localStorage.getItem(this.storageKey);return e&&JSON.parse(e)[t]||{}}set(t){localStorage.setItem(this.storageKey,JSON.stringify(t))}}const l=6371008.8,c={centimeters:637100880,centimetres:637100880,degrees:360/(2*Math.PI),feet:20902260.511392,inches:39.37*l,kilometers:6371.0088,kilometres:6371.0088,meters:l,metres:l,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:l/1852,radians:1,yards:6967335.223679999},d=Object.defineProperty,u=Object.defineProperties,h=Object.getOwnPropertyDescriptors,g=Object.getOwnPropertySymbols,m=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable,f=(t,e,i)=>e in t?d(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,y=(t,e)=>{for(var i in e||(e={}))m.call(e,i)&&f(t,i,e[i]);if(g)for(var i of g(e))p.call(e,i)&&f(t,i,e[i]);return t},v=(t,e)=>u(t,h(e));function b(t,e,i={}){var o=_(t),s=_(e),r=E(s[1]-o[1]),n=E(s[0]-o[0]),a=E(o[1]),l=E(s[1]),c=Math.pow(Math.sin(r/2),2)+Math.pow(Math.sin(n/2),2)*Math.cos(a)*Math.cos(l);return x(2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c)),i.units)}function w(t,e,i={}){const o={type:"Feature"};return(0===i.id||i.id)&&(o.id=i.id),i.bbox&&(o.bbox=i.bbox),o.properties=e||{},o.geometry=t,o}function S(t,e,i={}){if(!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!A(t[0])||!A(t[1]))throw new Error("coordinates must contain numbers");return w({type:"Point",coordinates:t},e,i)}function C(t,e,i={}){if(t.length<2)throw new Error("coordinates must be an array of two or more positions");return w({type:"LineString",coordinates:t},e,i)}function x(t,e="kilometers"){const i=c[e];if(!i)throw new Error(e+" units is invalid");return t*i}function I(t){return t%(2*Math.PI)*180/Math.PI}function E(t){return t%360*Math.PI/180}function T(t,e="kilometers",i="kilometers"){if(!(t>=0))throw new Error("length must be a positive number");return x(function(t,e="kilometers"){const i=c[e];if(!i)throw new Error(e+" units is invalid");return t/i}(t,e),i)}function A(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}function _(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if("Feature"===t.type&&null!==t.geometry&&"Point"===t.geometry.type)return[...t.geometry.coordinates];if("Point"===t.type)return[...t.coordinates]}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return[...t];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function k(t,e,i){if(!t)throw new Error("No feature passed");if(!i)throw new Error(".featureOf() requires a name");if(!t||"Feature"!==t.type||!t.geometry)throw new Error("Invalid input to "+i+", Feature with geometry required");if(!t.geometry||t.geometry.type!==e)throw new Error("Invalid input to "+i+": must be a "+e+", given "+t.geometry.type)}function z(t,e,i){if(null!==t)for(var o,s,r,n,a,l,c,d,u=0,h=0,g=t.type,m="FeatureCollection"===g,p="Feature"===g,f=m?t.features.length:1,y=0;ya||h>l||g>c)return n=r,a=i,l=h,c=g,void(s=0);var m=C([n,r],t.properties);if(!1===e(m,i,o,g,s))return!1;s++,n=r})&&void 0}}})}function P(t,e,i={}){if(!t||!e)throw new Error("lines and pt are required arguments");const o=_(e);let s=S([1/0,1/0],{dist:1/0,index:-1,multiFeatureIndex:-1,location:-1}),r=0;return O(t,function(t,n,a){const l=function(t){if(Array.isArray(t))return t;if("Feature"===t.type){if(null!==t.geometry)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}(t);for(let t=0;t0?[[...e],!0]:[[...i],!1];const a=D(n,r);if(0===a[0]&&0===a[1]&&0===a[2])return[[...e],!0];const l=F(D(a,n)),c=[-l[0],-l[1],-l[2]],d=q(r,l)>q(r,c)?l:c,u=F(n),h=q(D(o,d),u),g=q(D(d,s),u);return h>=0&&g>=0?[G(d),!1]:q(o,r)>q(s,r)?[[...t],!1]:[[...e],!0]}function q(t,e){return t[0]*e[0]+t[1]*e[1]}function $(t,e,i={}){const o=_(t),s=_(e);s[0]+=s[0]-o[0]>180?-360:o[0]-s[0]>180?360:0;const r=function(t,e,i){const o=i=void 0===i?l:Number(i),s=t[1]*Math.PI/180,r=e[1]*Math.PI/180,n=r-s;let a=Math.abs(e[0]-t[0])*Math.PI/180;a>Math.PI&&(a-=2*Math.PI);const c=Math.log(Math.tan(r/2+Math.PI/4)/Math.tan(s/2+Math.PI/4)),d=Math.abs(c)>1e-11?n/c:Math.cos(s);return Math.sqrt(n*n+d*d*a*a)*o}(o,s);return T(r,"meters",i.units)}class H{constructor(t,e,i){this.wrapper=t,this.config=e,this.modalManager=i,this.placesControl=null,this.mainFeatureGroup=L.featureGroup(),this.routePolylines=[],this.map=L.map(this.wrapper,{scrollWheelZoom:!0,minZoom:1,maxZoom:21}),this.config.tileLayerUrls.forEach(t=>{L.tileLayer(t).addTo(this.map)}),this.defaultPolylineStyle={color:this.config.polylineColor,weight:1.5,opacity:.5,smoothFactor:1,overrideExisting:!0,detectColors:!0},this.inactivePolylineStyle={weight:0,opacity:0},this.map.on("click",t=>this._handleMapClick(t)),this.map.on("popupclose",()=>this._resetRouteStyles()),this.map.on("popupopen",t=>this._handlePopupOpen(t))}_resetRouteStyles(){this.routePolylines.forEach(t=>{t.polyline.setStyle(this.defaultPolylineStyle)})}_handlePopupOpen(t){const e=t.popup.getElement();e&&e.querySelectorAll("a[data-model-content-url]").forEach(t=>{t.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this.modalManager.open(t.getAttribute("data-model-content-url"))})})}_handleMapClick(t){const e=S([t.latlng.lng,t.latlng.lat]);this._resetRouteStyles();const i=[],o=[];if(this.routePolylines.forEach(t=>{const s=C(t.latlngs.map(t=>[t.lng,t.lat]));(function(t,e,i={}){var o,s;const r=null!=(o=i.method)?o:"geodesic",n=null!=(s=i.units)?s:"kilometers";if(!t)throw new Error("pt is required");if(Array.isArray(t)?t=S(t):"Point"===t.type?t=w(t):k(t,"Point","point"),!e)throw new Error("line is required");Array.isArray(e)?e=C(e):"LineString"===e.type?e=w(e):k(e,"LineString","line");let a=1/0;const l=t.geometry.coordinates;return M(e,t=>{if(t){const e=t.geometry.coordinates[0],i=t.geometry.coordinates[1],o=function(t,e,i,o){if("geodesic"===o.method)return P(C([e,i]).geometry,t,{units:"degrees"}).properties.dist;const s=[i[0]-e[0],i[1]-e[1]],r=q([t[0]-e[0],t[1]-e[1]],s);if(r<=0)return $(t,e,{units:"degrees"});const n=q(s,s);if(n<=r)return $(t,i,{units:"degrees"});const a=r/n;return $(t,[e[0]+a*s[0],e[1]+a*s[1]],{units:"degrees"})}(l,e,i,{method:r});o{t.polyline.setStyle(this.inactivePolylineStyle)});const s=`\n
\n
${i.length} nearby route(s):
\n
    \n ${i.map(t=>`\n
  • \n \n ${t.route.name}\n \n
    \n
    ${t.route.startDate}
    \n
    ${t.route.distance}
    \n
    \n
  • `).join("")}\n
\n
`;L.popup(t.latlng,{content:s,maxWidth:300,minWidth:300}).openOn(this.map)}redraw(t){t=t.filter(t=>t.active),this.mainFeatureGroup.clearLayers(),this.routePolylines=[],this.placesControl&&this.map.removeControl(this.placesControl);const e=[],i=new Map,o=L.featureGroup(),s=(t=>{const e=t.reduce((t,e)=>{const i=e.startLocation.state;return i&&(t[i]=(t[i]||0)+1),t},{}),i=Object.keys(e).reduce((t,i)=>e[t]>e[i]?t:i,"");return i||null})(t);t.forEach(t=>{const{countryCode:e,state:r}=t.startLocation;i.has(e)||i.set(e,L.featureGroup());const n=L.Polyline.fromEncoded(t.encodedPolyline).getLatLngs(),a=L.polyline(n,this.defaultPolylineStyle).addTo(i.get(e));this.routePolylines.push({route:t,polyline:a,latlngs:n}),s===r&&L.polyline(n).addTo(o)}),i.forEach((t,i)=>{t.addTo(this.mainFeatureGroup),e.push({countryCode:i,bounds:t.getBounds()})}),this.mainFeatureGroup.addTo(this.map),this.placesControl=L.control.flyToPlaces({places:e}),this.placesControl.addTo(this.map),o.getBounds().isValid()&&this.map.fitBounds(o.getBounds())}}class R{constructor(t,e){this.wrapper=t,this.heatmap=t.querySelector("[data-leaflet-routes]"),this.resetBtn=t.querySelector("[data-dataTable-reset]"),this.config=JSON.parse(this.heatmap.getAttribute("data-heatmap-config")),this.filterManager=new o(t,new a),this.drawer=new H(this.heatmap,this.config,e)}async render(){this.wrapper.querySelectorAll('input[type="date"][data-default-to-today]').forEach(t=>t.valueAsDate=new Date);const t=JSON.parse(this.heatmap.getAttribute("data-leaflet-routes")),e=()=>{const e=this.filterManager.getActiveFilters();this.filterManager.updateDropdownState(e);const i=this.filterManager.applyFiltersToRows(t);this.drawer.redraw(i),this.resetBtn.classList.toggle("hidden",!(Object.keys(e).length>0));const o=this.wrapper.querySelector("[data-dataTable-result-count]");o&&(o.innerText=i.filter(t=>t.active).length)};e(),this.wrapper.querySelectorAll("[data-dataTable-filter]").forEach(t=>t.addEventListener("input",e)),this.resetBtn&&this.resetBtn.addEventListener("click",t=>{t.preventDefault(),this.filterManager.resetAll(),e()}),this.wrapper.querySelectorAll("[data-datatable-filter-clear]").forEach(t=>{t.addEventListener("click",i=>{i.preventDefault();const o=t.getAttribute("data-datatable-filter-clear");this.filterManager.resetOne(o),e()})})}}var j=i(879),Z=i.n(j);class Y{constructor(t){this.chatWrapper=t.querySelector(".chat--wrapper"),this.form=t.querySelector("form"),this.button=this.form.querySelector("button.send-message"),this.textInput=this.form.querySelector("input.message"),this.spinner=this.form.querySelector("div.spinner"),this.placeholderIdle=this.textInput.getAttribute("data-placeholder-idle"),this.placeholderProcessing=this.textInput.getAttribute("data-placeholder-processing"),this.commands=JSON.parse(this.chatWrapper.getAttribute("data-chat-commands")||"{}"),this.autoCompleteJS=null}toggleElements(t){this.textInput.disabled=t,this.button.disabled=t,this.button.classList.toggle("inline-flex",!t),this.button.classList.toggle("hidden",t),this.form.classList.toggle("disabled",t),this.spinner.classList.toggle("hidden",!t),this.textInput.value="",this.textInput.placeholder=t?this.placeholderProcessing:this.placeholderIdle}initAutoComplete(){this.commands&&0!==Object.keys(this.commands).length&&(this.autoCompleteJS=new(Z())({selector:()=>this.textInput,data:{src:Object.keys(this.commands)},threshold:1,trigger:t=>t.startsWith("/"),resultsList:{tabSelect:!0,position:"beforebegin"},resultItem:{highlight:!0,element:(t,e)=>{t.innerHTML=`\n
${e.match}
\n
${this.commands[e.value]}
\n `}},events:{input:{focus:()=>{this.autoCompleteJS.input.value.length&&this.autoCompleteJS.start()}}}}),this.autoCompleteJS.input.addEventListener("selection",t=>{const e=t.detail;this.autoCompleteJS.input.value=this.commands[e.selection.value]||""}))}handleSSE(t){const e=new EventSource(`/chat/sse?message=${encodeURIComponent(t)}`);e.addEventListener("fullMessage",t=>{this.chatWrapper.innerHTML+=t.data.replace(/\\n/g,"\n")}),e.addEventListener("removeThinking",()=>{const t=this.chatWrapper.querySelector(".thinking");t?.remove()}),e.addEventListener("agentResponse",t=>{const e=this.chatWrapper.querySelector("div.message-wrapper:last-child > div.message");e&&(e.innerHTML+=t.data.replace(/\\n/g,"\n"))}),e.addEventListener("done",()=>{e.close(),this.toggleElements(!1),this.textInput.focus()})}bindEvents(){this.form.addEventListener("submit",t=>{t.preventDefault();const e=new FormData(this.form);this.toggleElements(!0),this.handleSSE(e.get("form[message]"))}),this.textInput.addEventListener("keydown",t=>{"Enter"!==t.key||t.shiftKey||(t.preventDefault(),this.form.requestSubmit())})}render(){this.initAutoComplete(),this.bindEvents()}}const X=t=>{const e=document.querySelector("[data-latest-version]"),i=e.querySelector("a");i&&(i.href=i.href.replace("[LATEST_VERSION]",t),i.textContent=i.textContent.replace("[LATEST_VERSION]",t)),e.classList.remove("hidden")};var W=i(360),V=i.n(W),J=i(569),U=i.n(J),K=i(563),Q=i.n(K);class tt{constructor(t){this.trigger=t.querySelector("[data-light-gallery-trigger]"),this.gallery=V()(this.trigger,{dynamic:!0,plugins:[U(),Q()],backdropDuration:200,dynamicEl:[]})}refresh(t){const e=t.map(t=>JSON.parse(t.element.getAttribute("data-light-gallery-element")));this.gallery.refresh(e)}bindEvents(){this.trigger?.addEventListener("click",()=>this.gallery.openGallery())}}class et{constructor(t,e){this.wrapper=t,this.dataTableStorage=e,this.resetBtn=t.querySelector("[data-dataTable-reset]"),this.filterManager=new o(t,new a),this.allImages=Array.from(this.wrapper.querySelectorAll("[data-image]")).map(t=>({element:t,filterables:JSON.parse(t.getAttribute("data-filterables")),active:!0})),this.lightGallery=new tt(this.wrapper)}async render(){const t=()=>{const t=this.filterManager.getActiveFilters();this.filterManager.updateDropdownState(t);const e=this.filterManager.applyFiltersToRows(this.allImages);for(const{element:t,active:i}of e)t.classList.toggle("hidden",!i);this.resetBtn.classList.toggle("hidden",!(Object.keys(t).length>0));const i=e.filter(t=>t.active),o=this.wrapper.querySelector("[data-dataTable-result-count]");o&&(o.innerText=i.length),this.lightGallery.refresh(i)};this.dataTableStorage.set({photoWall:JSON.parse(this.wrapper.getAttribute("data-default-filters"))}),this.filterManager.prefillFromStorage("photoWall"),t(),this.wrapper.querySelectorAll("[data-dataTable-filter]").forEach(e=>e.addEventListener("input",t)),this.lightGallery.bindEvents(),this.resetBtn&&this.resetBtn.addEventListener("click",e=>{e.preventDefault(),this.filterManager.resetAll(),t()}),this.wrapper.querySelectorAll("[data-datatable-filter-clear]").forEach(e=>{e.addEventListener("click",i=>{i.preventDefault();const o=e.getAttribute("data-datatable-filter-clear");this.filterManager.resetOne(o),t()})})}}const it="undefined"!=typeof window,ot=it&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),st=it&&window.devicePixelRatio>1,rt={elements_selector:".lazy",container:ot||it?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_bg_set:"bg-set",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},nt=t=>Object.assign({},rt,t),at=function(t,e){let i;const o="LazyLoad::Initialized",s=new t(e);try{i=new CustomEvent(o,{detail:{instance:s}})}catch(t){i=document.createEvent("CustomEvent"),i.initCustomEvent(o,!1,!1,{instance:s})}window.dispatchEvent(i)},lt="src",ct="srcset",dt="sizes",ut="poster",ht="llOriginalAttrs",gt="data",mt="loading",pt="loaded",ft="applied",yt="error",vt="native",bt="data-",wt="ll-status",St=(t,e)=>t.getAttribute(bt+e),Ct=t=>St(t,wt),xt=(t,e)=>((t,e,i)=>{const o=bt+e;null!==i?t.setAttribute(o,i):t.removeAttribute(o)})(t,wt,e),It=t=>xt(t,null),Et=t=>null===Ct(t),Lt=t=>Ct(t)===vt,Tt=[mt,pt,ft,yt],At=(t,e,i,o)=>{t&&"function"==typeof t&&(void 0===o?void 0===i?t(e):t(e,i):t(e,i,o))},_t=(t,e)=>{it&&""!==e&&t.classList.add(e)},kt=(t,e)=>{it&&""!==e&&t.classList.remove(e)},zt=t=>t.llTempImage,Ot=(t,e)=>{if(!e)return;const i=e._observer;i&&i.unobserve(t)},Mt=(t,e)=>{t&&(t.loadingCount+=e)},Pt=(t,e)=>{t&&(t.toLoadCount=e)},Dt=t=>{let e=[];for(let i,o=0;i=t.children[o];o+=1)"SOURCE"===i.tagName&&e.push(i);return e},Ft=(t,e)=>{const i=t.parentNode;i&&"PICTURE"===i.tagName&&Dt(i).forEach(e)},Bt=(t,e)=>{Dt(t).forEach(e)},Gt=[lt],Nt=[lt,ut],qt=[lt,ct,dt],$t=[gt],Ht=t=>!!t[ht],Rt=t=>t[ht],jt=t=>delete t[ht],Zt=(t,e)=>{if(Ht(t))return;const i={};e.forEach(e=>{i[e]=t.getAttribute(e)}),t[ht]=i},Yt=(t,e)=>{if(!Ht(t))return;const i=Rt(t);e.forEach(e=>{((t,e,i)=>{i?t.setAttribute(e,i):t.removeAttribute(e)})(t,e,i[e])})},Xt=(t,e,i)=>{_t(t,e.class_applied),xt(t,ft),i&&(e.unobserve_completed&&Ot(t,e),At(e.callback_applied,t,i))},Wt=(t,e,i)=>{_t(t,e.class_loading),xt(t,mt),i&&(Mt(i,1),At(e.callback_loading,t,i))},Vt=(t,e,i)=>{i&&t.setAttribute(e,i)},Jt=(t,e)=>{Vt(t,dt,St(t,e.data_sizes)),Vt(t,ct,St(t,e.data_srcset)),Vt(t,lt,St(t,e.data_src))},Ut={IMG:(t,e)=>{Ft(t,t=>{Zt(t,qt),Jt(t,e)}),Zt(t,qt),Jt(t,e)},IFRAME:(t,e)=>{Zt(t,Gt),Vt(t,lt,St(t,e.data_src))},VIDEO:(t,e)=>{Bt(t,t=>{Zt(t,Gt),Vt(t,lt,St(t,e.data_src))}),Zt(t,Nt),Vt(t,ut,St(t,e.data_poster)),Vt(t,lt,St(t,e.data_src)),t.load()},OBJECT:(t,e)=>{Zt(t,$t),Vt(t,gt,St(t,e.data_src))}},Kt=["IMG","IFRAME","VIDEO","OBJECT"],Qt=(t,e)=>{!e||(t=>t.loadingCount>0)(e)||(t=>t.toLoadCount>0)(e)||At(t.callback_finish,e)},te=(t,e,i)=>{t.addEventListener(e,i),t.llEvLisnrs[e]=i},ee=(t,e,i)=>{t.removeEventListener(e,i)},ie=t=>!!t.llEvLisnrs,oe=t=>{if(!ie(t))return;const e=t.llEvLisnrs;for(let i in e){const o=e[i];ee(t,i,o)}delete t.llEvLisnrs},se=(t,e,i)=>{(t=>{delete t.llTempImage})(t),Mt(i,-1),(t=>{t&&(t.toLoadCount-=1)})(i),kt(t,e.class_loading),e.unobserve_completed&&Ot(t,i)},re=(t,e,i)=>{const o=zt(t)||t;ie(o)||((t,e,i)=>{ie(t)||(t.llEvLisnrs={});const o="VIDEO"===t.tagName?"loadeddata":"load";te(t,o,e),te(t,"error",i)})(o,s=>{((t,e,i,o)=>{const s=Lt(e);se(e,i,o),_t(e,i.class_loaded),xt(e,pt),At(i.callback_loaded,e,o),s||Qt(i,o)})(0,t,e,i),oe(o)},s=>{((t,e,i,o)=>{const s=Lt(e);se(e,i,o),_t(e,i.class_error),xt(e,yt),At(i.callback_error,e,o),i.restore_on_error&&Yt(e,qt),s||Qt(i,o)})(0,t,e,i),oe(o)})},ne=(t,e,i)=>{(t=>Kt.indexOf(t.tagName)>-1)(t)?((t,e,i)=>{re(t,e,i),((t,e,i)=>{const o=Ut[t.tagName];o&&(o(t,e),Wt(t,e,i))})(t,e,i)})(t,e,i):((t,e,i)=>{(t=>{t.llTempImage=document.createElement("IMG")})(t),re(t,e,i),(t=>{Ht(t)||(t[ht]={backgroundImage:t.style.backgroundImage})})(t),((t,e,i)=>{const o=St(t,e.data_bg),s=St(t,e.data_bg_hidpi),r=st&&s?s:o;r&&(t.style.backgroundImage=`url("${r}")`,zt(t).setAttribute(lt,r),Wt(t,e,i))})(t,e,i),((t,e,i)=>{const o=St(t,e.data_bg_multi),s=St(t,e.data_bg_multi_hidpi),r=st&&s?s:o;r&&(t.style.backgroundImage=r,Xt(t,e,i))})(t,e,i),((t,e,i)=>{const o=St(t,e.data_bg_set);if(!o)return;const s=o.split("|");let r=s.map(t=>`image-set(${t})`);t.style.backgroundImage=r.join(),""===t.style.backgroundImage&&(r=s.map(t=>`-webkit-image-set(${t})`),t.style.backgroundImage=r.join()),Xt(t,e,i)})(t,e,i)})(t,e,i)},ae=t=>{t.removeAttribute(lt),t.removeAttribute(ct),t.removeAttribute(dt)},le=t=>{Ft(t,t=>{Yt(t,qt)}),Yt(t,qt)},ce={IMG:le,IFRAME:t=>{Yt(t,Gt)},VIDEO:t=>{Bt(t,t=>{Yt(t,Gt)}),Yt(t,Nt),t.load()},OBJECT:t=>{Yt(t,$t)}},de=["IMG","IFRAME","VIDEO"],ue=t=>t.use_native&&"loading"in HTMLImageElement.prototype,he=t=>Array.prototype.slice.call(t),ge=t=>t.container.querySelectorAll(t.elements_selector),me=t=>(t=>Ct(t)===yt)(t),pe=(t,e)=>(t=>he(t).filter(Et))(t||ge(e)),fe=function(t,e){const i=nt(t);this._settings=i,this.loadingCount=0,((t,e)=>{ue(t)||(e._observer=new IntersectionObserver(i=>{((t,e,i)=>{t.forEach(t=>(t=>t.isIntersecting||t.intersectionRatio>0)(t)?((t,e,i,o)=>{const s=(t=>Tt.indexOf(Ct(t))>=0)(t);xt(t,"entered"),_t(t,i.class_entered),kt(t,i.class_exited),((t,e,i)=>{e.unobserve_entered&&Ot(t,i)})(t,i,o),At(i.callback_enter,t,e,o),s||ne(t,i,o)})(t.target,t,e,i):((t,e,i,o)=>{Et(t)||(_t(t,i.class_exited),((t,e,i,o)=>{i.cancel_on_exit&&(t=>Ct(t)===mt)(t)&&"IMG"===t.tagName&&(oe(t),(t=>{Ft(t,t=>{ae(t)}),ae(t)})(t),le(t),kt(t,i.class_loading),Mt(o,-1),It(t),At(i.callback_cancel,t,e,o))})(t,e,i,o),At(i.callback_exit,t,e,o))})(t.target,t,e,i))})(i,t,e)},(t=>({root:t.container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))(t)))})(i,this),((t,e)=>{it&&(e._onlineHandler=()=>{((t,e)=>{(t=>he(t).filter(me))(ge(t)).forEach(e=>{kt(e,t.class_error),It(e)}),e.update()})(t,e)},window.addEventListener("online",e._onlineHandler))})(i,this),this.update(e)};fe.prototype={update:function(t){const e=this._settings,i=pe(t,e);Pt(this,i.length),ot?this.loadAll(i):ue(e)?((t,e,i)=>{t.forEach(t=>{-1!==de.indexOf(t.tagName)&&((t,e,i)=>{t.setAttribute("loading","lazy"),re(t,e,i),((t,e)=>{const i=Ut[t.tagName];i&&i(t,e)})(t,e),xt(t,vt)})(t,e,i)}),Pt(i,0)})(i,e,this):((t,e)=>{(t=>{t.disconnect()})(t),((t,e)=>{e.forEach(e=>{t.observe(e)})})(t,e)})(this._observer,i)},destroy:function(){this._observer&&this._observer.disconnect(),(t=>{it&&window.removeEventListener("online",t._onlineHandler)})(this),ge(this._settings).forEach(t=>{jt(t)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){const e=this._settings;pe(t,e).forEach(t=>{Ot(t,this),ne(t,e,this)})},restoreAll:function(){const t=this._settings;ge(t).forEach(e=>{((t,e)=>{(t=>{const e=ce[t.tagName];e?e(t):(t=>{if(!Ht(t))return;const e=Rt(t);t.style.backgroundImage=e.backgroundImage})(t)})(t),((t,e)=>{Et(t)||Lt(t)||(kt(t,e.class_entered),kt(t,e.class_exited),kt(t,e.class_applied),kt(t,e.class_loading),kt(t,e.class_loaded),kt(t,e.class_error))})(t,e),It(t),jt(t)})(e,t)})}},fe.load=(t,e)=>{const i=nt(e);ne(t,i)},fe.resetStatus=t=>{It(t)},it&&((t,e)=>{if(e)if(e.length)for(let i,o=0;i=e[o];o+=1)at(t,i);else at(t,e)})(fe,window.lazyLoadOptions);const ye=document.querySelector("main"),ve=new a,be=new class{constructor(t){this.app=t,this.appContent=t.querySelector("#js-loaded-content"),this.spinner=t.querySelector("#spinner"),this.menu=document.querySelector("aside"),this.menuItems=document.querySelectorAll("nav a[data-router-navigate]:not([data-router-disabled]), aside li a[data-router-navigate]:not([data-router-disabled])"),this.mobileNavTriggerEl=document.querySelector('[data-drawer-target="drawer-navigation"]'),this.defaultRoute="/dashboard"}showLoader(){this.spinner.classList.remove("hidden"),this.spinner.classList.add("flex"),this.appContent.classList.add("hidden")}hideLoader(){this.spinner.classList.remove("flex"),this.spinner.classList.add("hidden"),this.appContent.classList.remove("hidden")}determineActiveMenuLink(t){const e=document.querySelector(`aside li a[data-router-navigate="${t}"]`);if(e)return e;const i=t.replace(/\/[^\/]*$/,"");return i===t||""===i?null:this.determineActiveMenuLink(i)}async renderContent(t,e){this.menu.hasAttribute("aria-hidden")||this.mobileNavTriggerEl.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})),this.showLoader();const i=await fetch(`${t}.html`,{cache:"no-store"});this.appContent.innerHTML=await i.text(),window.scrollTo(0,0),this.hideLoader(),this.app.setAttribute("data-router-current",t),this.app.setAttribute("data-modal-current",e),this.menuItems.forEach(t=>t.setAttribute("aria-selected","false"));const o=this.determineActiveMenuLink(t);o?.setAttribute("aria-selected","true"),o?.hasAttribute("data-router-sub-menu")&&o.closest("ul")?.classList.remove("hidden");const s=document.querySelectorAll("main a[data-router-navigate]:not([data-router-disabled])");this.registerNavItems(s);const r=t.replace(window.statisticsForStrava.appUrl.basePath,"").replace(/^\/+/,"").replaceAll("/","-");document.dispatchEvent(new CustomEvent("pageWasLoaded",{bubbles:!0,detail:{page:r,modalId:e}})),document.dispatchEvent(new CustomEvent(`pageWasLoaded.${r}`,{bubbles:!0,detail:{page:r,modalId:e}}))}registerNavItems(t){t.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();const i=t.getAttribute("data-router-navigate");document.dispatchEvent(new CustomEvent("navigationLinkHasBeenClicked",{bubbles:!0,detail:{link:t}})),this.navigateTo(i,null,t.hasAttribute("data-router-force-reload"))})})}registerBrowserBackAndForth(){window.onpopstate=t=>{t.state&&this.renderContent(t.state.route,t.state.modal)}}navigateTo(t,e,i=!1){(this.app.getAttribute("data-router-current")!==t||i)&&(this.renderContent(t,e),this.pushRouteToHistoryState(t,e))}pushRouteToHistoryState(t,e){const i=e?`${t}#${e}`:t;window.history.pushState({route:t,modal:e},"",i)}pushCurrentRouteToHistoryState(t){this.pushRouteToHistoryState(this.currentRoute(),t)}currentRoute(){return location.pathname.replace("/","")?location.pathname:this.defaultRoute}boot(){if(null===this.appContent)return;const t=this.currentRoute(),e=location.hash.replace("#","");this.registerNavItems(this.menuItems),this.registerBrowserBackAndForth(),this.renderContent(t,e),window.history.replaceState({route:t,modal:e},"",t+location.hash)}}(ye);be.boot();const we=new class{constructor(t){this.$main=t,this.$sideNav=document.querySelector("aside"),this.$topNav=document.querySelector("nav")}init(){const t="true"===localStorage.getItem("sideNavCollapsed");[this.$main,this.$sideNav,this.$topNav].forEach(e=>e.classList.toggle("sidebar-is-collapsed",t)),document.getElementById("toggle-sidebar-collapsed-state").addEventListener("click",()=>{const t=this.$main.classList.toggle("sidebar-is-collapsed");[this.$sideNav,this.$topNav].forEach(e=>e.classList.toggle("sidebar-is-collapsed",t)),localStorage.setItem("sideNavCollapsed",String(t)),document.dispatchEvent(new Event("sidebarWasResized"))})}}(ye),Se=new class{constructor(t){this.router=t,this.initElements=null,this.modalSkeletonNode=document.getElementById("modal-skeleton"),this.modalContent=this.modalSkeletonNode.querySelector("#modal-content"),this.modalSpinner=this.modalSkeletonNode.querySelector(".spinner"),this.modal=null}setInitElements(t){this.initElements=t}init(t){t.querySelectorAll("a[data-model-content-url]").forEach(t=>{t.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation();const i=t.getAttribute("data-model-content-url");this.open(i),this.router.pushCurrentRouteToHistoryState(i)})})}open(t){this.close(),this.modalSpinner.classList.remove("hidden"),this.modalSpinner.classList.add("flex"),this.modal=new Modal(this.modalSkeletonNode,{placement:"bottom",closable:!0,backdropClasses:"bg-gray-900/50 fixed inset-0 z-1400",onShow:async()=>{const e=await fetch(t,{cache:"no-store"});this.modalSpinner.classList.add("hidden"),this.modalSpinner.classList.remove("flex"),this.modalContent.innerHTML=await e.text(),this.initElements(this.modalSkeletonNode),this.modalContent.querySelector("button.close")&&this.modalContent.querySelector("button.close").addEventListener("click",t=>{t.preventDefault(),t.stopPropagation(),this.modal.hide(),this.router.pushCurrentRouteToHistoryState()}),document.body.addEventListener("keydown",t=>{"Escape"===t.key&&this.router.pushCurrentRouteToHistoryState()},{once:!0}),document.body.addEventListener("click",t=>{"modal-skeleton"===t.target.id&&this.router.pushCurrentRouteToHistoryState()},{once:!0});const i=this.modalSkeletonNode.querySelectorAll("a[data-router-navigate]:not([data-router-disabled])");this.router.registerNavItems(i);const o=t.replace(/^\/+/,"").replaceAll("/","-");document.dispatchEvent(new CustomEvent("modalWasLoaded."+o,{bubbles:!0,cancelable:!1,detail:{modal:this.modalSkeletonNode}}))},onHide:()=>{this.modalContent.innerHTML=""}}),this.modal.show()}close(){this.modal&&this.modal.hide()}}(be),Ce=new class{constructor(t,e,i){this.router=t,this.dataTableStorage=e,this.modalManager=i,this.allCharts=[],this.chartsPerTab=[],echarts.registerTheme("v5",(()=>{const t=["#f6efa6","#d88273","#bf444c"];return{color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:t,loading:{textColor:"red"},bar:{defaultBarGap:"20%",select:{itemStyle:{borderColor:"#212121",borderWidth:1}}},boxplot:{emphasis:{itemStyle:{shadowColor:"rgba(0,0,0,0.2)"}}},graph:{lineStyle:{color:"#aaa"},select:{itemStyle:{borderColor:"#212121"}}},heatmap:{select:{itemStyle:{borderColor:"#212121"}}},line:{symbolSize:4},pictorialBar:{select:{itemStyle:{borderColor:"#212121",borderWidth:1}}},pie:{radius:[0,"75%"],labelLine:{length2:15}},map:{defaultItemStyleColor:"#eee",label:{color:"#000"},itemStyle:{borderColor:"#444",areaColor:"#eee"},emphasis:{label:{color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}}},timeAxis:{axisLine:{lineStyle:{color:"#6E7079"}},axisLabel:{color:null},splitLine:{lineStyle:{color:["#E0E6F1"]}},splitArea:{areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}},minorSplitLine:{color:"#F4F7FD"}},logAxis:{axisLine:{lineStyle:{color:"#6E7079"}},axisLabel:{color:null},splitLine:{lineStyle:{color:["#E0E6F1"]}},splitArea:{areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}},minorSplitLine:{color:"#F4F7FD"}},valueAxis:{axisLine:{lineStyle:{color:"#6E7079"}},axisLabel:{color:null},splitLine:{lineStyle:{color:["#E0E6F1"]}},splitArea:{areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}},minorSplitLine:{color:"#F4F7FD"}},categoryAxis:{axisLine:{lineStyle:{color:"#6E7079"}},axisLabel:{color:null},splitLine:{lineStyle:{color:["#E0E6F1"]}},splitArea:{areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}},minorSplitLine:{color:"#F4F7FD"},axisTick:{show:!0}},axisPointer:{lineStyle:{color:"#B9BEC9"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{backgroundColor:"auto",color:"#fff"},handle:{color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2}},brush:{brushStyle:{color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},defaultOutOfBrushColor:"#ddd"},calendar:{splitLine:{lineStyle:{color:"#000"}},itemStyle:{borderColor:"#ccc"},dayLabel:{margin:"50%",color:"#000"},monthLabel:{margin:5,color:"#000"},yearLabel:{margin:30,color:"#ccc"}},dataZoom:{borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleStyle:{color:"#D2DBEE",opacity:.7},textStyle:{color:"#6E7079"},brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7",opacity:.7}},defaultLocationEdgeGap:7},geo:{defaultItemStyleColor:"#eee",label:{color:"#000"},itemStyle:{borderColor:"#444"},emphasis:{label:{color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},select:{label:{color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}}},grid:{left:"10%",top:60,bottom:70,borderColor:"#ccc"},legend:{top:0,bottom:null,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",itemGap:10,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",lineStyle:{inactiveColor:"#ccc"},textStyle:{color:"#333"},selectorLabel:{color:"#666",borderColor:"#666"},emphasis:{selectorLabel:{color:"#eee",backgroundColor:"#666"}},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageTextStyle:{color:"#333"}},title:{left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",textStyle:{color:"#464646"},subtextStyle:{color:"#6E7079"}},toolbox:{borderColor:"#ccc",padding:5,itemGap:8,iconStyle:{borderColor:"#666"},emphasis:{iconStyle:{borderColor:"#3E98C5"}}},tooltip:{axisPointer:{crossStyle:{color:"#999"}},textStyle:{color:"#666"},backgroundColor:"#fff",borderWidth:1,defaultBorderColor:"#fff"},visualMap:{color:[t[2],t[1],t[0]],inactive:["rgba(0,0,0,0)"],indicatorStyle:{shadowColor:"rgba(0,0,0,0.2)"},backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",padding:5,textStyle:{color:"#333"}}}})())}init(t){const e=this.getClickHandlers(),i=[];t.querySelectorAll("[data-echarts-options]").forEach(t=>{const o=echarts.init(t,"v5"),s=JSON.parse(t.getAttribute("data-echarts-options"));["tooltip.formatter","tooltip.valueFormatter","yAxis.axisLabel.formatter","yAxis[].axisLabel.formatter","series.symbolSize","dataZoom[].labelFormatter"].forEach(t=>((t,e)=>{const i=e.split("."),o=(t,e)=>{if(!t||0===e.length)return;const i=e[0],s=e.slice(1),r=i.endsWith("[]"),n=r?i.slice(0,-2):i;if(r){const e=t?.[n];Array.isArray(e)&&e.forEach(t=>o(t,s))}else 0===s.length?t?.[n]&&t[n]in window.statisticsForStrava.callbacks&&(t[n]=window.statisticsForStrava.callbacks[t[n]]):o(t?.[n],s)};o(t,i)})(s,t)),o.setOption(s);const r=t.getAttribute("data-echarts-click");r&&e[r]&&o.on("click",function(i){const o=JSON.parse(t.getAttribute("data-echarts-click-data")||"{}");e[r](i,o)}),t.hasAttribute("data-echarts-connect")&&i.push(o),this.allCharts.push(o);const n=((t,e)=>{const i=[];let o=t.parentElement;for(;o;)e&&!o.matches(e)||i.push(o),o=o.parentElement;return i})(t,'div[role="tabpanel"]');for(const t of n){const e=t.getAttribute("id");this.chartsPerTab[e]??=[],this.chartsPerTab[e].push(o)}}),echarts.connect(i)}getClickHandlers(){return{handleMonthlyStatsClick:(t,e)=>{if(!t||!t.dataIndex||!t.seriesName)return;const i=(t.dataIndex+1).toString().padStart(2,"0"),o=`month/month-${t.seriesName}-${i}.html`;this.modalManager.open(o),this.router.pushCurrentRouteToHistoryState(o)},handleWeeklyStatsClick:(t,e)=>{if(!t||!t.dataIndex)return;const i=e.weeks;!t.dataIndex in i||(this.dataTableStorage.set({activities:{sportType:e.sportTypes,"start-date":{from:i[t.dataIndex].from,to:i[t.dataIndex].to}}}),this.router.navigateTo("/activities"))},handleActivityGridChartClick:(t,e)=>{!t||!t.value||t.value<1||(this.dataTableStorage.set({activities:{"start-date":{from:t.value[0],to:t.value[0]}}}),this.router.navigateTo("/activities"))}}}reset(){this.allCharts=[],this.chartsPerTab=[]}resizeAll(){this.allCharts.filter(t=>t.getDom().offsetParent).forEach(t=>t.resize())}resizeInTab(t){t in this.chartsPerTab&&this.chartsPerTab[t].filter(t=>t.getDom().offsetParent).forEach(t=>t.resize())}}(be,ve,Se),xe=new class{init(t){t.querySelectorAll("[data-leaflet]").forEach(function(t){const e=JSON.parse(t.getAttribute("data-leaflet")),i=L.map(t,{scrollWheelZoom:e.scrollWheelZoom||!1,minZoom:e.minZoom,maxZoom:e.maxZoom,zoomSnap:.5,zoomDelta:.5});e.tileLayer&&L.tileLayer(e.tileLayer).addTo(i);const o=L.featureGroup();if(e.routes.forEach(t=>{const i=L.Polyline.fromEncoded(t).getLatLngs();L.polyline(i,{color:"#fc6719",weight:2,opacity:.9,lineJoin:"round"}).addTo(o);const s=(t,e)=>{L.circleMarker(t,{radius:8,color:"#303030",fillColor:e,fillOpacity:1,opacity:1}).addTo(o)};e.showStartMarker&&s(i[0],"#3ba272"),e.showEndMarker&&s(i.at(-1),"#BD2D22")}),e.imageOverlay&&(L.imageOverlay(e.imageOverlay,e.bounds,{attribution:'© Zwift'}).addTo(i),i.setMaxBounds(e.bounds)),o.addTo(i),i.fitBounds(o.getBounds(),{maxZoom:e.maxZoom}),e.gpxLink&&L.control.downloadGpx({gpxLink:e.gpxLink}).addTo(i),!t.hasAttribute("data-leaflet-echart-connect"))return;const s=document.querySelector("div[data-echarts-options][data-leaflet-echart-connect]");if(!s)return;const r=JSON.parse(s.getAttribute("data-leaflet-echart-connect"));if(!r)return;const n=L.circleMarker([0,0],{radius:6,color:"#303030",fillColor:"#F26722",fillOpacity:0,opacity:0}).addTo(i),a=echarts.getInstanceByDom(s),l=i.getZoom();a.on("updateAxisPointer",function(t){if(!t.dataIndex||!t.dataIndex in r)return void n.setStyle({opacity:0,fillOpacity:0});const e=r[t.dataIndex];n.setLatLng(e),n.setStyle({opacity:1,fillOpacity:1}),(i.getZoom()>l||!i.getBounds().contains(e))&&i.panTo(e)})})}},Ie=new class{constructor(t){this.chartManager=t}init(t){t.querySelectorAll("[data-tabs]").forEach(t=>{const e=[];let i=null;t.querySelectorAll('[role="tab"]').forEach(function(t){const o=t.getAttribute("data-tabs-target");e.push({id:o,triggerEl:t,targetEl:document.querySelector(o)}),t.hasAttribute("data-tab-default")&&(i=o)}),new Tabs(t,e,{defaultTabId:i,activeClasses:t.getAttribute("data-tabs-active-classes")||"text-strava-orange border-strava-orange hover:text-gray-600 hover:border-gray-300",inactiveClasses:t.getAttribute("data-tabs-inactive-classes")||"text-gray-500 hover:text-gray-600 border-gray-100 hover:border-gray-300",onShow:(t,e)=>{const i=e.id.replace("#","");this.chartManager.resizeInTab(i)}})})}}(Ce),Ee=new class{constructor(t){this.storage=t}init(){document.querySelectorAll("div[data-dataTable-settings]").forEach(t=>{const e=t.querySelector("table"),i=e?.querySelector("tbody"),s=t.querySelector(".scroll-area"),a=t.querySelector('input[type="search"]'),l=t.querySelector("[data-dataTable-reset]"),c=JSON.parse(t.getAttribute("data-dataTable-settings")),d=new o(t,this.storage),u=new n(t,i,s),h=new r(t.querySelectorAll("thead th[data-dataTable-sort]"));e&&i&&a&&(t.querySelectorAll('input[type="date"][data-default-to-today]').forEach(t=>t.valueAsDate=new Date),fetch(c.url,{cache:"no-store"}).then(async e=>{const i=await e.json();u.init(i);const o=()=>{const t=a.value.trim(),e=d.getActiveFilters();d.updateDropdownState(e);const o=d.applyFiltersToRows(i,t);u.update(o),l.classList.toggle("hidden",!(Object.keys(e).length>0||t.length>0))};d.prefillFromStorage(c.name),o(),a.addEventListener("input",((t,e=300)=>{let i;return(...o)=>{clearTimeout(i),i=setTimeout(()=>{t.apply(void 0,o)},e)}})(o)),t.querySelectorAll("[data-dataTable-filter]").forEach(t=>t.addEventListener("input",o)),h.attachListeners(i,u.cluster,s),l&&l.addEventListener("click",t=>{t.preventDefault(),a.value="",d.resetAll(),o()}),t.querySelectorAll("[data-datatable-filter-clear]").forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();const i=t.getAttribute("data-datatable-filter-clear");d.resetOne(i),o()})})}))})}}(ve),Le=new fe({thresholds:"50px",callback_error:t=>{t.setAttribute("src",window.statisticsForStrava.placeholderBrokenImage)}}),Te=t=>{Le.update(),Ie.init(t),initPopovers(),initTooltips(),initDropdowns(),initAccordions(),Se.init(t),Ce.init(t),xe.init(t)};Se.setInitElements(Te),we.init(),document.addEventListener("pageWasLoaded",t=>{Se.close(),Ee.init(),Ce.reset(),Te(document),t.detail&&t.detail.modalId&&Se.open(t.detail.modalId)}),document.addEventListener("pageWasLoaded.heatmap",()=>{const t=document.querySelector(".heatmap-wrapper");new R(t,Se).render()}),document.addEventListener("pageWasLoaded.photos",()=>{const t=document.querySelector(".photo-wall-wrapper");new et(t,ve).render()}),document.addEventListener("navigationLinkHasBeenClicked",t=>{t.detail&&t.detail.link&&t.detail.link.hasAttribute("data-dataTable-filters")&&ve.set(JSON.parse(t.detail.link.getAttribute("data-dataTable-filters")))}),document.addEventListener("dataTableClusterWasChanged",()=>{Se.init(document)}),window.addEventListener("resize",function(){Ce.resizeAll()}),document.addEventListener("sidebarWasResized",function(){Ce.resizeAll()});const Ae=document.querySelector("a[data-modal-custom-ai]");Ae&&Ae.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const e=Ae.getAttribute("data-modal-custom-ai");Se.open(e),be.pushCurrentRouteToHistoryState(e)}),document.addEventListener("modalWasLoaded.ai-chat",t=>{const e=t.detail.modal;new Y(e).render()}),(async()=>{await(async()=>{const t=document.querySelector("[data-latest-version]");if(!t)return;const e=t.dataset.currentVersion;if(!e)return;const i="latestReleaseCache",o=Date.now(),s=JSON.parse(localStorage.getItem(i)||"null");if(s&&o-s.timestamp<216e5)((t,e)=>{t=t.replace(/^v/,""),e=e.replace(/^v/,"");const i=t.split(".").map(Number),o=e.split(".").map(Number);for(let t=0;ts)return 1;if(e".github/workflows/docker-image.yml"===t.path))return;X(s),localStorage.setItem(i,JSON.stringify({latestVersion:s,timestamp:o}))}catch(t){console.error("Error checking latest release:",t)}})()})()})()})(); \ No newline at end of file +(()=>{var t={360(t){t.exports=function(){"use strict";var t=function(){return t=Object.assign||function(t){for(var e,i=1,o=arguments.length;i";e.append(o)}else e.html(t)})},u=function(t,e,i,o){void 0===i&&(i=0);var s=a(t).attr("data-lg-size")||o;if(s){var r=s.split(",");if(r[1])for(var n=window.innerWidth,l=0;ln){s=c;break}l===r.length-1&&(s=c)}var d=s.split("-"),u=parseInt(d[0],10),h=parseInt(d[1],10),g=e.width(),m=e.height()-i,p=Math.min(g,u),f=Math.min(m,h),y=Math.min(p/u,f/h);return{width:u*y,height:h*y}}},h=function(t,e,i,o,s){if(s){var r=a(t).find("img").first();if(r.get()){var n=e.get().getBoundingClientRect(),l=n.width,c=e.height()-(i+o),d=r.width(),u=r.height(),h=r.style(),g=(l-d)/2-r.offset().left+(parseFloat(h.paddingLeft)||0)+(parseFloat(h.borderLeft)||0)+a(window).scrollLeft()+n.left,m=(c-u)/2-r.offset().top+(parseFloat(h.paddingTop)||0)+(parseFloat(h.borderTop)||0)+a(window).scrollTop()+i;return"translate3d("+(g*=-1)+"px, "+(m*=-1)+"px, 0) scale3d("+d/s.width+", "+u/s.height+", 1)"}}},g=function(t,e,i,o,s,r){var n="',a="";return r&&(a=("string"==typeof r?JSON.parse(r):r).map(function(t){var e="";return Object.keys(t).forEach(function(i){e+=" "+i+'="'+t[i]+'"'}),""})),""+a+n},m=function(t,e,i,o){var s=[],r=function(){for(var t=0,e=0,i=arguments.length;e-1&&(u=d),u&&(e[u]=l.value)}}var h=a(t),g=h.find("img").first().attr("alt"),m=h.attr("title"),p=o?h.attr(o):h.find("img").first().attr("src");e.thumb=p,i&&!e.subHtml&&(e.subHtml=m||g||""),e.alt=g||m||"",s.push(e)}),s},p=0,f=function(){function l(t,e){if(this.lgOpened=!1,this.index=0,this.plugins=[],this.lGalleryOn=!1,this.lgBusy=!1,this.currentItemsInDom=[],this.prevScrollTop=0,this.bodyPaddingRight=0,this.isDummyImageRemoved=!1,this.dragOrSwipeEnabled=!1,this.mediaContainerPosition={top:0,bottom:0},!t)return this;if(p++,this.lgId=p,this.el=t,this.LGel=a(t),this.generateSettings(e),this.buildModules(),this.settings.dynamic&&void 0!==this.settings.dynamicEl&&!Array.isArray(this.settings.dynamicEl))throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.galleryItems=this.getItems(),this.normalizeSettings(),this.init(),this.validateLicense(),this}return l.prototype.generateSettings=function(e){if(this.settings=t(t({},r),e),this.settings.isMobile&&"function"==typeof this.settings.isMobile?this.settings.isMobile():/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)){var i=t(t({},this.settings.mobileSettings),this.settings.mobileSettings);this.settings=t(t({},this.settings),i)}},l.prototype.normalizeSettings=function(){if(this.settings.slideEndAnimation&&(this.settings.hideControlOnEnd=!1),this.settings.closable||(this.settings.swipeToClose=!1),this.zoomFromOrigin=this.settings.zoomFromOrigin,this.settings.dynamic&&(this.zoomFromOrigin=!1),this.settings.container){var t=this.settings.container;if("function"==typeof t)this.settings.container=t();else if("string"==typeof t){var e=document.querySelector(t);this.settings.container=null!=e?e:document.body}}else this.settings.container=document.body;this.settings.preload=Math.min(this.settings.preload,this.galleryItems.length)},l.prototype.init=function(){var t=this;this.addSlideVideoInfo(this.galleryItems),this.buildStructure(),this.LGel.trigger("lgInit",{instance:this}),this.settings.keyPress&&this.keyPress(),setTimeout(function(){t.enableDrag(),t.enableSwipe(),t.triggerPosterClick()},50),this.arrow(),this.settings.mousewheel&&this.mousewheel(),this.settings.dynamic||this.openGalleryOnItemClick()},l.prototype.openGalleryOnItemClick=function(){for(var t=this,e=function(e){var o=i.items[e],s=a(o),r=n.generateUUID();s.attr("data-lg-id",r).on("click.lgcustom-item-"+r,function(i){i.preventDefault();var s=t.settings.index||e;t.openGallery(s,o)})},i=this,o=0;o '+this.settings.prevHtml+' \n "),".lg-item"!==this.settings.appendSubHtmlTo&&(i='
');var o="";this.settings.allowMediaOverlap&&(o+="lg-media-overlap ");var s=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",r=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",n="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),l=this.settings.closable&&this.settings.showCloseIcon?'':"",c=this.settings.showMaximizeIcon?'':"",d='\n \n ";a(this.settings.container).append(d),document.body!==this.settings.container&&a(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var u=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(u+="lg-grab "),this.outer.addClass(u),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append(''),this.counter(),a(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,function(){t.refreshOnResize()}),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},l.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index].__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var e=this.mediaContainerPosition,i=e.top,o=e.bottom;if(this.currentImageSize=u(this.items[this.index],this.outer,i+o,t&&this.settings.videoMaxSize),t&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var s=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",s)}this.LGel.trigger("lgContainerResize")}},l.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e);this.getSlideItem(t).find(".lg-video-cont").attr("style",i)},l.prototype.updateSlides=function(t,i){if(this.index>t.length-1&&(this.index=t.length-1),1===t.length&&(this.index=0),t.length){var o=this.galleryItems[i].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some(function(t,e){return t.src===o&&(s=e,!0)}),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(e)}else this.closeGallery()},l.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if("this"===this.settings.selector)this.items.push(this.el);else if(this.settings.selector)if("string"==typeof this.settings.selector)if(this.settings.selectWithin){var t=a(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return m(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},l.prototype.shouldHideScrollbar=function(){return this.settings.hideScrollbar&&document.body===this.settings.container},l.prototype.hideScrollbar=function(){if(this.shouldHideScrollbar()){this.bodyPaddingRight=parseFloat(a("body").style().paddingRight);var t=document.documentElement.getBoundingClientRect(),e=window.innerWidth-t.width;a(document.body).css("padding-right",e+this.bodyPaddingRight+"px"),a(document.body).addClass("lg-overlay-open")}},l.prototype.resetScrollBar=function(){this.shouldHideScrollbar()&&(a(document.body).css("padding-right",this.bodyPaddingRight+"px"),a(document.body).removeClass("lg-overlay-open"))},l.prototype.openGallery=function(t,e){var i=this;if(void 0===t&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.removeClass("lg-hide-items"),this.hideScrollbar(),this.$container.addClass("lg-show");var o=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=o;var s="";o.forEach(function(t){s=s+'
'}),this.$inner.append(s),this.addHtml(t);var r="";this.mediaContainerPosition=this.getMediaContainerPosition();var n=this.mediaContainerPosition,l=n.top,c=n.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(l,c);var d=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=u(e,this.outer,l+c,d&&this.settings.videoMaxSize),r=h(e,this.outer,l,c,this.currentImageSize)),this.zoomFromOrigin&&r||(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var g=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout(function(){i.outer.addClass("lg-components-open")},g),this.index=t,this.LGel.trigger("lgBeforeOpen"),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=a(window).scrollTop(),setTimeout(function(){if(i.zoomFromOrigin&&r){var e=i.getSlideItem(t);e.css("transform",r),setTimeout(function(){e.addClass("lg-start-progress lg-start-end-progress").css("transition-duration",i.settings.startAnimationDuration+"ms"),i.outer.addClass("lg-zoom-from-image")}),setTimeout(function(){e.css("transform","translate3d(0, 0, 0)")},100)}setTimeout(function(){i.$backdrop.addClass("in"),i.$container.addClass("lg-show-in")},10),setTimeout(function(){i.settings.trapFocus&&document.body===i.settings.container&&i.trapFocus()},i.settings.backdropDuration+50),i.zoomFromOrigin&&r||setTimeout(function(){i.outer.addClass("lg-visible")},i.settings.backdropDuration),i.slide(t,!1,!1,!1),i.LGel.trigger("lgAfterOpen")}),document.body===this.settings.container&&a("html").addClass("lg-on")}},l.prototype.getMediaContainerPosition=function(){if(this.settings.allowMediaOverlap)return{top:0,bottom:0};var t=this.$toolbar.get().clientHeight||0,e=this.outer.find(".lg-components .lg-sub-html").get(),i=this.settings.defaultCaptionHeight||e&&e.clientHeight||0,o=this.outer.find(".lg-thumb-outer").get();return{top:t,bottom:(o?o.clientHeight:0)+i}},l.prototype.setMediaContainerPosition=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.$content.css("top",t+"px").css("bottom",e+"px")},l.prototype.hideBars=function(){var t=this;setTimeout(function(){t.outer.removeClass("lg-hide-items"),t.settings.hideBarsDelay>0&&(t.outer.on("mousemove.lg click.lg touchstart.lg",function(){t.outer.removeClass("lg-hide-items"),clearTimeout(t.hideBarTimeout),t.hideBarTimeout=setTimeout(function(){t.outer.addClass("lg-hide-items")},t.settings.hideBarsDelay)}),t.outer.trigger("mousemove.lg"))},this.settings.showBarsAfter)},l.prototype.initPictureFill=function(t){if(this.settings.supportLegacyBrowser)try{picturefill({elements:[t.get()]})}catch(t){console.warn("lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.")}},l.prototype.counter=function(){if(this.settings.counter){var t='
\n '+(this.index+1)+' /\n '+this.galleryItems.length+"
";this.outer.find(this.settings.appendCounterTo).append(t)}},l.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var o=e.substring(0,1);"."!==o&&"#"!==o||(e=this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?a(this.items).eq(t).find(e).first().html():a(e).first().html())}else e="";if(".lg-item"!==this.settings.appendSubHtmlTo)i?d(i,this.outer.find(".lg-sub-html"),"replace"):this.outer.find(".lg-sub-html").html(e);else{var s=a(this.getSlideItemId(t));i?d(i,s,"append"):s.append('
'+e+"
")}null!=e&&(""===e?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger("lgAfterAppendSubHtml",{index:t})},l.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},l.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+"px;\n margin-left: -"+t.width/2+"px;\n margin-top: -"+t.height/2+"px;\n height:"+t.height+"px":""},l.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+"px;\n height:"+t.height+"px":""},l.prototype.getDummyImageContent=function(t,e,i){var o;if(this.settings.dynamic||(o=a(this.items).eq(e)),o){var s;if(!(s=this.settings.exThumbImage?o.attr(this.settings.exThumbImage):o.find("img").first().attr("src")))return"";var r=this.getDummyImgStyles(this.currentImageSize),n=document.createElement("img");return n.alt=i||"",n.src=s,n.className="lg-dummy-img",n.style.cssText=r,t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),n}return""},l.prototype.setImgMarkup=function(t,e,i){var o,s=this.galleryItems[i],r=s.alt,n=s.srcset,l=s.sizes,c=s.sources,d=r?'alt="'+r+'"':"";o=this.isFirstSlideWithZoomAnimation()?this.getDummyImageContent(e,i,d):g(i,t,d,n,l,c);var u=document.createElement("picture");u.className="lg-img-wrap",a(u).append(o),e.prepend(u)},l.prototype.onSlideObjectLoad=function(t,e,i,o){var s=t.find(".lg-object").first();(function(t){return!!t&&!!t.complete&&0!==t.naturalWidth})(s.get())||e?i():(s.on("load.lg error.lg",function(){i&&i()}),s.on("error.lg",function(){o&&o()}))},l.prototype.onLgObjectLoad=function(t,e,i,o,s,r){var n=this;this.onSlideObjectLoad(t,r,function(){n.triggerSlideItemLoad(t,e,i,o,s)},function(){t.addClass("lg-complete lg-complete_"),t.html(''+n.settings.strings.mediaLoadingFailed+"")})},l.prototype.triggerSlideItemLoad=function(t,e,i,o,s){var r=this,n=this.galleryItems[e],a=s&&"video"===this.getSlideType(n)&&!n.poster?o:0;setTimeout(function(){t.addClass("lg-complete lg-complete_"),r.LGel.trigger("lgSlideItemLoad",{index:e,delay:i||0,isFirstSlide:s})},a)},l.prototype.isFirstSlideWithZoomAnimation=function(){return!(this.lGalleryOn||!this.zoomFromOrigin||!this.currentImageSize)},l.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach(function(t,i){t.__slideVideoInfo=function(t,e,i){if(!t)return e?{html5:!0}:void console.error("lightGallery :- data-src is not provided on slide item "+(i+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");var o=t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),s=t.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),r=t.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);return o?{youtube:o}:s?{vimeo:s}:r?{wistia:r}:void 0}(t.src,!!t.video,i),t.__slideVideoInfo&&e.settings.loadYouTubePoster&&!t.poster&&t.__slideVideoInfo.youtube&&(t.poster="//img.youtube.com/vi/"+t.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")})},l.prototype.loadContent=function(t,e){var i=this,o=this.galleryItems[t],s=a(this.getSlideItemId(t)),r=o.poster,n=o.srcset,l=o.sizes,c=o.sources,d=o.src,h=o.video,m=h&&"string"==typeof h?JSON.parse(h):h;if(o.responsive){var p=o.responsive.split(",");d=function(t){for(var e=[],i=[],o="",s=0;sn){o=i[a];break}return o}(p)||d}var f=o.__slideVideoInfo,y="",v=!!o.iframe,b=!this.lGalleryOn,w=0;if(b&&(w=this.zoomFromOrigin&&this.currentImageSize?this.settings.startAnimationDuration+10:this.settings.backdropDuration+10),!s.hasClass("lg-loaded")){if(f){var S=this.mediaContainerPosition,C=S.top,x=S.bottom,I=u(this.items[t],this.outer,C+x,f&&this.settings.videoMaxSize);y=this.getVideoContStyle(I)}if(v){var E=function(t,e,i,o,s,r){return'
\n \n
'}(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,d,o.iframeTitle);s.prepend(E)}else if(r){var L="";b&&this.zoomFromOrigin&&this.currentImageSize&&(L=this.getDummyImageContent(s,t,"")),E=function(t,e,i,o,s){var r;r=s&&s.youtube?"lg-has-youtube":s&&s.vimeo?"lg-has-vimeo":"lg-has-html5";var n=e;return"string"!=typeof e&&(n=e.outerHTML),'
\n
\n \n '+o+'\n \n \n \n \n \n \n \n
\n '+n+'\n \n
'}(r,L||"",y,this.settings.strings.playVideo,f),s.prepend(E)}else if(f)E='
',s.prepend(E);else if(this.setImgMarkup(d,s,t),n||c){var T=s.find(".lg-object");this.initPictureFill(T)}(r||f)&&this.LGel.trigger("lgHasVideo",{index:t,src:d,html5Video:m,hasPoster:!!r}),this.LGel.trigger("lgAfterAppendSlide",{index:t}),this.lGalleryOn&&".lg-item"===this.settings.appendSubHtmlTo&&this.addHtml(t)}var A=0;w&&!a(document.body).hasClass("lg-from-hash")&&(A=w),this.isFirstSlideWithZoomAnimation()&&(setTimeout(function(){s.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")},this.settings.startAnimationDuration+100),s.hasClass("lg-loaded")||setTimeout(function(){if("image"===i.getSlideType(o)){var e=o.alt,a=e?'alt="'+e+'"':"";if(s.find(".lg-img-wrap").append(g(t,d,a,n,l,o.sources)),n||c){var u=s.find(".lg-object");i.initPictureFill(u)}}("image"===i.getSlideType(o)||"video"===i.getSlideType(o)&&r)&&(i.onLgObjectLoad(s,t,w,A,!0,!1),i.onSlideObjectLoad(s,!(!f||!f.html5||r),function(){i.loadContentOnFirstSlideLoad(t,s,A)},function(){i.loadContentOnFirstSlideLoad(t,s,A)}))},this.settings.startAnimationDuration+100)),s.addClass("lg-loaded"),this.isFirstSlideWithZoomAnimation()&&("video"!==this.getSlideType(o)||r)||this.onLgObjectLoad(s,t,w,A,b,!(!f||!f.html5||r)),this.zoomFromOrigin&&this.currentImageSize||!s.hasClass("lg-complete_")||this.lGalleryOn||setTimeout(function(){s.addClass("lg-complete")},this.settings.backdropDuration),this.lGalleryOn=!0,!0===e&&(s.hasClass("lg-complete_")?this.preload(t):s.find(".lg-object").first().on("load.lg error.lg",function(){i.preload(t)}))},l.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var o=this;setTimeout(function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),o.outer.removeClass("lg-first-slide-loading"),o.isDummyImageRemoved=!0,o.preload(t)},i+300)},l.prototype.getItemsToBeInsertedToDom=function(t,e,i){var o=this;void 0===i&&(i=0);var s=[],r=Math.max(i,3);r=Math.min(r,this.galleryItems.length);var n="lg-item-"+this.lgId+"-"+e;if(this.galleryItems.length<=3)return this.galleryItems.forEach(function(t,e){s.push("lg-item-"+o.lgId+"-"+e)}),s;if(t<(this.galleryItems.length-1)/2){for(var a=t;a>t-r/2&&a>=0;a--)s.push("lg-item-"+this.lgId+"-"+a);var l=s.length;for(a=0;a')}),this.currentItemsInDom.forEach(function(t){-1===o.indexOf(t)&&a("#"+t).remove()}),o},l.prototype.getPreviousSlideIndex=function(){var t=0;try{var e=this.outer.find(".lg-current").first().attr("id");t=parseInt(e.split("-")[3])||0}catch(e){t=0}return t},l.prototype.setDownloadValue=function(t){if(this.settings.download){var e=this.galleryItems[t];if(!1===e.downloadUrl||"false"===e.downloadUrl)this.outer.addClass("lg-hide-download");else{var i=this.getElementById("lg-download");this.outer.removeClass("lg-hide-download"),i.attr("href",e.downloadUrl||e.src),e.download&&i.attr("download",e.download)}}},l.prototype.makeSlideAnimation=function(t,e,i){var o=this;this.lGalleryOn&&i.addClass("lg-slide-progress"),setTimeout(function(){o.outer.addClass("lg-no-trans"),o.outer.find(".lg-item").removeClass("lg-prev-slide lg-next-slide"),"prev"===t?(e.addClass("lg-prev-slide"),i.addClass("lg-next-slide")):(e.addClass("lg-next-slide"),i.addClass("lg-prev-slide")),setTimeout(function(){o.outer.find(".lg-item").removeClass("lg-current"),e.addClass("lg-current"),o.outer.removeClass("lg-no-trans")},50)},this.lGalleryOn?this.settings.slideDelay:0)},l.prototype.slide=function(t,e,i,o){var s=this,r=this.getPreviousSlideIndex();if(this.currentItemsInDom=this.organizeSlideItems(t,r),!this.lGalleryOn||r!==t){var n=this.galleryItems.length;if(!this.lgBusy){this.settings.counter&&this.updateCurrentCounter(t);var a=this.getSlideItem(t),l=this.getSlideItem(r),c=this.galleryItems[t],d=c.__slideVideoInfo;if(this.outer.attr("data-lg-slide-type",this.getSlideType(c)),this.setDownloadValue(t),d){var h=this.mediaContainerPosition,g=h.top,m=h.bottom,p=u(this.items[t],this.outer,g+m,d&&this.settings.videoMaxSize);this.resizeVideoSlide(t,p)}if(this.LGel.trigger("lgBeforeSlide",{prevIndex:r,index:t,fromTouch:!!e,fromThumb:!!i}),this.lgBusy=!0,clearTimeout(this.hideBarTimeout),this.arrowDisable(t),o||(tr&&(o="next")),e){this.outer.find(".lg-item").removeClass("lg-prev-slide lg-current lg-next-slide");var f=void 0,y=void 0;n>2?(f=t-1,y=t+1,(0===t&&r===n-1||t===n-1&&0===r)&&(y=0,f=n-1)):(f=0,y=1),"prev"===o?this.getSlideItem(y).addClass("lg-next-slide"):this.getSlideItem(f).addClass("lg-prev-slide"),a.addClass("lg-current")}else this.makeSlideAnimation(o,a,l);this.lGalleryOn?setTimeout(function(){s.loadContent(t,!0),".lg-item"!==s.settings.appendSubHtmlTo&&s.addHtml(t)},this.settings.speed+50+(e?0:this.settings.slideDelay)):this.loadContent(t,!0),setTimeout(function(){s.lgBusy=!1,l.removeClass("lg-slide-progress"),s.LGel.trigger("lgAfterSlide",{prevIndex:r,index:t,fromTouch:e,fromThumb:i})},(this.lGalleryOn?this.settings.speed+100:100)+(e?0:this.settings.slideDelay))}this.index=t}},l.prototype.updateCurrentCounter=function(t){this.getElementById("lg-counter-current").html(t+1+"")},l.prototype.updateCounterTotal=function(){this.getElementById("lg-counter-all").html(this.galleryItems.length+"")},l.prototype.getSlideType=function(t){return t.__slideVideoInfo?"video":t.iframe?"iframe":"image"},l.prototype.touchMove=function(t,e,i){var o=e.pageX-t.pageX,s=e.pageY-t.pageY,r=!1;if(this.swipeDirection?r=!0:Math.abs(o)>15?(this.swipeDirection="horizontal",r=!0):Math.abs(s)>15&&(this.swipeDirection="vertical",r=!0),r){var n=this.getSlideItem(this.index);if("horizontal"===this.swipeDirection){null==i||i.preventDefault(),this.outer.addClass("lg-dragging"),this.setTranslate(n,o,0);var a=n.get().offsetWidth,l=15*a/100-Math.abs(10*o/100);this.setTranslate(this.outer.find(".lg-prev-slide").first(),-a+o-l,0),this.setTranslate(this.outer.find(".lg-next-slide").first(),a+o+l,0)}else if("vertical"===this.swipeDirection&&this.settings.swipeToClose){null==i||i.preventDefault(),this.$container.addClass("lg-dragging-vertical");var c=1-Math.abs(s)/window.innerHeight;this.$backdrop.css("opacity",c);var d=1-Math.abs(s)/(2*window.innerWidth);this.setTranslate(n,0,s,d,d),Math.abs(s)>100&&this.outer.addClass("lg-hide-items").removeClass("lg-components-open")}}},l.prototype.touchEnd=function(t,e,o){var s,r=this;"lg-slide"!==this.settings.mode&&this.outer.addClass("lg-slide"),setTimeout(function(){r.$container.removeClass("lg-dragging-vertical"),r.outer.removeClass("lg-dragging lg-hide-items").addClass("lg-components-open");var n=!0;if("horizontal"===r.swipeDirection){s=t.pageX-e.pageX;var l=Math.abs(t.pageX-e.pageX);s<0&&l>r.settings.swipeThreshold?(r.goToNextSlide(!0),n=!1):s>0&&l>r.settings.swipeThreshold&&(r.goToPrevSlide(!0),n=!1)}else if("vertical"===r.swipeDirection){if(s=Math.abs(t.pageY-e.pageY),r.settings.closable&&r.settings.swipeToClose&&s>100)return void r.closeGallery();r.$backdrop.css("opacity",1)}if(r.outer.find(".lg-item").removeAttr("style"),n&&Math.abs(t.pageX-e.pageX)<5){var c=a(o.target);r.isPosterElement(c)&&r.LGel.trigger(i)}r.swipeDirection=void 0}),setTimeout(function(){r.outer.hasClass("lg-dragging")||"lg-slide"===r.settings.mode||r.outer.removeClass("lg-slide")},this.settings.speed+100)},l.prototype.enableSwipe=function(){var t=this,e={},o={},s=!1,r=!1;this.settings.enableSwipe&&(this.$inner.on("touchstart.lg",function(i){t.dragOrSwipeEnabled=!0;var o=t.getSlideItem(t.index);!a(i.target).hasClass("lg-item")&&!o.get().contains(i.target)||t.outer.hasClass("lg-zoomed")||t.lgBusy||1!==i.touches.length||(r=!0,t.touchAction="swipe",t.manageSwipeClass(),e={pageX:i.touches[0].pageX,pageY:i.touches[0].pageY})}),this.$inner.on("touchmove.lg",function(i){r&&"swipe"===t.touchAction&&1===i.touches.length&&(o={pageX:i.touches[0].pageX,pageY:i.touches[0].pageY},t.touchMove(e,o,i),s=!0)}),this.$inner.on("touchend.lg",function(n){if("swipe"===t.touchAction){if(s)s=!1,t.touchEnd(o,e,n);else if(r){var l=a(n.target);t.isPosterElement(l)&&t.LGel.trigger(i)}t.touchAction=void 0,r=!1}}))},l.prototype.enableDrag=function(){var t=this,e={},o={},s=!1,r=!1;this.settings.enableDrag&&(this.outer.on("mousedown.lg",function(i){t.dragOrSwipeEnabled=!0;var o=t.getSlideItem(t.index);(a(i.target).hasClass("lg-item")||o.get().contains(i.target))&&(t.outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.lgBusy||(t.manageSwipeClass(),e={pageX:i.pageX,pageY:i.pageY},s=!0,t.outer.get().scrollLeft+=1,t.outer.get().scrollLeft-=1,t.outer.removeClass("lg-grab").addClass("lg-grabbing"),t.LGel.trigger("lgDragStart"))))}),a(window).on("mousemove.lg.global"+this.lgId,function(i){s&&t.lgOpened&&(r=!0,o={pageX:i.pageX,pageY:i.pageY},t.touchMove(e,o),t.LGel.trigger("lgDragMove"))}),a(window).on("mouseup.lg.global"+this.lgId,function(n){if(t.lgOpened){var l=a(n.target);r?(r=!1,t.touchEnd(o,e,n),t.LGel.trigger("lgDragEnd")):t.isPosterElement(l)&&t.LGel.trigger(i),s&&(s=!1,t.outer.removeClass("lg-grabbing").addClass("lg-grab"))}}))},l.prototype.triggerPosterClick=function(){var t=this;this.$inner.on("click.lg",function(e){!t.dragOrSwipeEnabled&&t.isPosterElement(a(e.target))&&t.LGel.trigger(i)})},l.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1;this.settings.loop&&this.galleryItems.length>2&&(0===this.index?e=this.galleryItems.length-1:this.index===this.galleryItems.length-1&&(t=0)),this.outer.find(".lg-item").removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.getSlideItem(e).addClass("lg-prev-slide"),this.getSlideItem(t).addClass("lg-next-slide")},l.prototype.goToNextSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index+10?(this.index--,this.LGel.trigger(s,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):i?(this.index=this.galleryItems.length-1,this.LGel.trigger(s,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-left-end"),setTimeout(function(){e.outer.removeClass("lg-left-end")},400)))},l.prototype.keyPress=function(){var t=this;a(window).on("keydown.lg.global"+this.lgId,function(e){t.lgOpened&&!0===t.settings.escKey&&27===e.keyCode&&(e.preventDefault(),t.settings.allowMediaOverlap&&t.outer.hasClass("lg-can-toggle")&&t.outer.hasClass("lg-components-open")?t.outer.removeClass("lg-components-open"):t.closeGallery()),t.lgOpened&&t.galleryItems.length>1&&(37===e.keyCode&&(e.preventDefault(),t.goToPrevSlide()),39===e.keyCode&&(e.preventDefault(),t.goToNextSlide()))})},l.prototype.arrow=function(){var t=this;this.getElementById("lg-prev").on("click.lg",function(){t.goToPrevSlide()}),this.getElementById("lg-next").on("click.lg",function(){t.goToNextSlide()})},l.prototype.arrowDisable=function(t){if(!this.settings.loop&&this.settings.hideControlOnEnd){var e=this.getElementById("lg-prev"),i=this.getElementById("lg-next");t+1===this.galleryItems.length?i.attr("disabled","disabled").addClass("disabled"):i.removeAttr("disabled").removeClass("disabled"),0===t?e.attr("disabled","disabled").addClass("disabled"):e.removeAttr("disabled").removeClass("disabled")}},l.prototype.setTranslate=function(t,e,i,o,s){void 0===o&&(o=1),void 0===s&&(s=1),t.css("transform","translate3d("+e+"px, "+i+"px, 0px) scale3d("+o+", "+s+", 1)")},l.prototype.mousewheel=function(){var t=this,e=0;this.outer.on("wheel.lg",function(i){if(i.deltaY&&!(t.galleryItems.length<2)){i.preventDefault();var o=(new Date).getTime();o-e<1e3||(e=o,i.deltaY>0?t.goToNextSlide():i.deltaY<0&&t.goToPrevSlide())}})},l.prototype.isSlideElement=function(t){return t.hasClass("lg-outer")||t.hasClass("lg-item")||t.hasClass("lg-img-wrap")||t.hasClass("lg-img-rotate")},l.prototype.isPosterElement=function(t){var e=this.getSlideItem(this.index).find(".lg-video-play-button").get();return t.hasClass("lg-video-poster")||t.hasClass("lg-video-play-button")||e&&e.contains(t.get())},l.prototype.toggleMaximize=function(){var t=this;this.getElementById("lg-maximize").on("click.lg",function(){t.$container.toggleClass("lg-inline"),t.refreshOnResize()})},l.prototype.invalidateItems=function(){for(var t=0;t',this.core.$toolbar.append(t),this.fullScreen()}},i.prototype.isFullScreen=function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},i.prototype.requestFullscreen=function(){var t=document.documentElement;t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()},i.prototype.exitFullscreen=function(){document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()},i.prototype.fullScreen=function(){var t=this;this.$LG(document).on("fullscreenchange.lg.global"+this.core.lgId+" \n webkitfullscreenchange.lg.global"+this.core.lgId+" \n mozfullscreenchange.lg.global"+this.core.lgId+" \n MSFullscreenChange.lg.global"+this.core.lgId,function(){t.core.lgOpened&&t.core.outer.toggleClass("lg-fullscreen-on")}),this.core.outer.find(".lg-fullscreen").first().on("click.lg",function(){t.isFullScreen()?t.exitFullscreen():t.requestFullscreen()})},i.prototype.closeGallery=function(){this.isFullScreen()&&this.exitFullscreen()},i.prototype.destroy=function(){this.$LG(document).off("fullscreenchange.lg.global"+this.core.lgId+" \n webkitfullscreenchange.lg.global"+this.core.lgId+" \n mozfullscreenchange.lg.global"+this.core.lgId+" \n MSFullscreenChange.lg.global"+this.core.lgId)},i}()}()},569(t){t.exports=function(){"use strict";var t=function(){return(t=Object.assign||function(t){for(var e,i=1,o=arguments.length;i':"";this.settings.actualSize&&(t+=''),this.core.outer.addClass("lg-use-transition-for-zoom"),this.core.$toolbar.first().append(t)},i.prototype.enableZoom=function(t){var e=this,i=this.settings.enableZoomAfter+t.detail.delay;this.$LG("body").first().hasClass("lg-from-hash")&&t.detail.delay?i=0:this.$LG("body").first().removeClass("lg-from-hash"),this.zoomableTimeout=setTimeout(function(){e.isImageSlide(e.core.index)&&(e.core.getSlideItem(t.detail.index).addClass("lg-zoomable"),t.detail.index===e.core.index&&e.setZoomEssentials())},i+30)},i.prototype.enableZoomOnSlideItemLoad=function(){this.core.LGel.on("lgSlideItemLoad.zoom",this.enableZoom.bind(this))},i.prototype.getDragCords=function(t){return{x:t.pageX,y:t.pageY}},i.prototype.getSwipeCords=function(t){return{x:t.touches[0].pageX,y:t.touches[0].pageY}},i.prototype.getDragAllowedAxises=function(t,e){if(!this.containerRect)return{allowX:!1,allowY:!1};var i=this.core.getSlideItem(this.core.index).find(".lg-image").first().get(),o=0,s=0,r=i.getBoundingClientRect();t?(o=i.offsetHeight*t,s=i.offsetWidth*t):e?(o=r.height+e*r.height,s=r.width+e*r.width):(o=r.height,s=r.width);var n=o>this.containerRect.height;return{allowX:s>this.containerRect.width,allowY:n}},i.prototype.setZoomEssentials=function(){this.containerRect=this.core.$content.get().getBoundingClientRect()},i.prototype.zoomImage=function(t,e,i,o){if(!(Math.abs(e)<=0)){var s,r,n=this.containerRect.width/2+this.containerRect.left,a=this.containerRect.height/2+this.containerRect.top+this.scrollTop;1===t&&(this.positionChanged=!1);var l=this.getDragAllowedAxises(0,e),c=l.allowY,d=l.allowX;this.positionChanged&&(s=this.left/(this.scale-e),r=this.top/(this.scale-e),this.pageX=n-s,this.pageY=a-r,this.positionChanged=!1);var u,h,g=this.getPossibleSwipeDragCords(e),m=n-this.pageX,p=a-this.pageY;if(t-e>1){var f=(t-e)/Math.abs(e);u=(m=(e<0?-m:m)+this.left*(f+(e<0?-1:1)))/f,h=(p=(e<0?-p:p)+this.top*(f+(e<0?-1:1)))/f}else u=m*(f=(t-e)*e),h=p*f;i&&(d?this.isBeyondPossibleLeft(u,g.minX)?u=g.minX:this.isBeyondPossibleRight(u,g.maxX)&&(u=g.maxX):t>1&&(ug.maxX&&(u=g.maxX)),c?this.isBeyondPossibleTop(h,g.minY)?h=g.minY:this.isBeyondPossibleBottom(h,g.maxY)&&(h=g.maxY):t>1&&(hg.maxY&&(h=g.maxY))),this.setZoomStyles({x:u,y:h,scale:t}),this.left=u,this.top=h,o&&this.setZoomImageSize()}},i.prototype.resetImageTranslate=function(t){if(this.isImageSlide(t)){var e=this.core.getSlideItem(t).find(".lg-image").first();this.imageReset=!1,e.removeClass("reset-transition reset-transition-y reset-transition-x"),this.core.outer.removeClass("lg-actual-size"),e.css("width","auto").css("height","auto"),setTimeout(function(){e.removeClass("no-transition")},10)}},i.prototype.setZoomImageSize=function(){var t=this,e=this.core.getSlideItem(this.core.index).find(".lg-image").first();setTimeout(function(){var i=t.getCurrentImageActualSizeScale();t.scale>=i&&(e.addClass("no-transition"),t.imageReset=!0)},500),setTimeout(function(){var i=t.getCurrentImageActualSizeScale();if(t.scale>=i){var o=t.getDragAllowedAxises(t.scale);e.css("width",e.get().naturalWidth+"px").css("height",e.get().naturalHeight+"px"),t.core.outer.addClass("lg-actual-size"),o.allowX&&o.allowY?e.addClass("reset-transition"):o.allowX&&!o.allowY?e.addClass("reset-transition-x"):!o.allowX&&o.allowY&&e.addClass("reset-transition-y")}},550)},i.prototype.setZoomStyles=function(t){var e=this.core.getSlideItem(this.core.index).find(".lg-img-wrap").first(),i=this.core.getSlideItem(this.core.index).find(".lg-image").first(),o=this.core.outer.find(".lg-current .lg-dummy-img").first();this.scale=t.scale,i.css("transform","scale3d("+t.scale+", "+t.scale+", 1)"),o.css("transform","scale3d("+t.scale+", "+t.scale+", 1)");var s="translate3d("+t.x+"px, "+t.y+"px, 0)";e.css("transform",s)},i.prototype.setActualSize=function(t,e){var i=this;if(!this.zoomInProgress){this.zoomInProgress=!0;var o=this.core.galleryItems[this.core.index];this.resetImageTranslate(t),setTimeout(function(){if(o.src&&!i.core.outer.hasClass("lg-first-slide-loading")){var t=i.getCurrentImageActualSizeScale(),s=i.scale;i.core.outer.hasClass("lg-zoomed")?i.scale=1:i.scale=i.getScale(t),i.setPageCords(e),i.beginZoom(i.scale),i.zoomImage(i.scale,i.scale-s,!0,!0)}},50),setTimeout(function(){i.core.outer.removeClass("lg-grabbing").addClass("lg-grab")},60),setTimeout(function(){i.zoomInProgress=!1},610)}},i.prototype.getNaturalWidth=function(t){var e=this.core.getSlideItem(t).find(".lg-image").first(),i=this.core.galleryItems[t].width;return i?parseFloat(i):e.get().naturalWidth},i.prototype.getActualSizeScale=function(t,e){return t>=e?t/e||2:1},i.prototype.getCurrentImageActualSizeScale=function(){var t=this.core.getSlideItem(this.core.index).find(".lg-image").first().get().offsetWidth,e=this.getNaturalWidth(this.core.index)||t;return this.getActualSizeScale(e,t)},i.prototype.getPageCords=function(t){var e={};if(t)e.x=t.pageX||t.touches[0].pageX,e.y=t.pageY||t.touches[0].pageY;else{var i=this.core.$content.get().getBoundingClientRect();e.x=i.width/2+i.left,e.y=i.height/2+this.scrollTop+i.top}return e},i.prototype.setPageCords=function(t){var e=this.getPageCords(t);this.pageX=e.x,this.pageY=e.y},i.prototype.manageActualPixelClassNames=function(){this.core.getElementById("lg-actual-size").removeClass(this.settings.actualSizeIcons.zoomIn).addClass(this.settings.actualSizeIcons.zoomOut)},i.prototype.beginZoom=function(t){return this.core.outer.removeClass("lg-zoom-drag-transition lg-zoom-dragging"),t>1?(this.core.outer.addClass("lg-zoomed"),this.manageActualPixelClassNames()):this.resetZoom(),t>1},i.prototype.getScale=function(t){var e=this.getCurrentImageActualSizeScale();return t<1?t=1:t>e&&(t=e),t},i.prototype.init=function(){var t=this;if(this.settings.zoom){this.buildTemplates(),this.enableZoomOnSlideItemLoad();var e=null;this.core.outer.on("dblclick.lg",function(e){t.$LG(e.target).hasClass("lg-image")&&t.setActualSize(t.core.index,e)}),this.core.outer.on("touchstart.lg",function(i){var o=t.$LG(i.target);1===i.touches.length&&o.hasClass("lg-image")&&(e?(clearTimeout(e),e=null,i.preventDefault(),t.setActualSize(t.core.index,i)):e=setTimeout(function(){e=null},300))}),this.core.LGel.on("lgContainerResize.zoom lgRotateRight.zoom lgRotateLeft.zoom lgFlipHorizontal.zoom lgFlipVertical.zoom",function(){if(t.core.lgOpened&&t.isImageSlide(t.core.index)&&!t.core.touchAction){var e=t.core.getSlideItem(t.core.index).find(".lg-img-wrap").first();t.top=0,t.left=0,t.setZoomEssentials(),t.setZoomSwipeStyles(e,{x:0,y:0}),t.positionChanged=!0}}),this.$LG(window).on("scroll.lg.zoom.global"+this.core.lgId,function(){t.core.lgOpened&&(t.scrollTop=t.$LG(window).scrollTop())}),this.core.getElementById("lg-zoom-out").on("click.lg",function(){if(t.isImageSlide(t.core.index)){var e=0;t.imageReset&&(t.resetImageTranslate(t.core.index),e=50),setTimeout(function(){var e=t.scale-t.settings.scale;e<1&&(e=1),t.beginZoom(e),t.zoomImage(e,-t.settings.scale,!0,!t.settings.infiniteZoom)},e)}}),this.core.getElementById("lg-zoom-in").on("click.lg",function(){t.zoomIn()}),this.core.getElementById("lg-actual-size").on("click.lg",function(){t.setActualSize(t.core.index)}),this.core.LGel.on("lgBeforeOpen.zoom",function(){t.core.outer.find(".lg-item").removeClass("lg-zoomable")}),this.core.LGel.on("lgAfterOpen.zoom",function(){t.scrollTop=t.$LG(window).scrollTop(),t.pageX=t.core.outer.width()/2,t.pageY=t.core.outer.height()/2+t.scrollTop,t.scale=1}),this.core.LGel.on("lgAfterSlide.zoom",function(e){var i=e.detail.prevIndex;t.scale=1,t.positionChanged=!1,t.zoomInProgress=!1,t.resetZoom(i),t.resetImageTranslate(i),t.isImageSlide(t.core.index)&&t.setZoomEssentials()}),this.zoomDrag(),this.pinchZoom(),this.zoomSwipe(),this.zoomableTimeout=!1,this.positionChanged=!1,this.zoomInProgress=!1}},i.prototype.zoomIn=function(){if(this.isImageSlide(this.core.index)){var t=this.scale+this.settings.scale;this.settings.infiniteZoom||(t=this.getScale(t)),this.beginZoom(t),this.zoomImage(t,Math.min(this.settings.scale,t-this.scale),!0,!this.settings.infiniteZoom)}},i.prototype.resetZoom=function(t){this.core.outer.removeClass("lg-zoomed lg-zoom-drag-transition");var e=this.core.getElementById("lg-actual-size"),i=this.core.getSlideItem(void 0!==t?t:this.core.index);e.removeClass(this.settings.actualSizeIcons.zoomOut).addClass(this.settings.actualSizeIcons.zoomIn),i.find(".lg-img-wrap").first().removeAttr("style"),i.find(".lg-image").first().removeAttr("style"),this.scale=1,this.left=0,this.top=0,this.setPageCords()},i.prototype.getTouchDistance=function(t){return Math.sqrt((t.touches[0].pageX-t.touches[1].pageX)*(t.touches[0].pageX-t.touches[1].pageX)+(t.touches[0].pageY-t.touches[1].pageY)*(t.touches[0].pageY-t.touches[1].pageY))},i.prototype.pinchZoom=function(){var t=this,e=0,i=!1,o=1,s=0,r=this.core.getSlideItem(this.core.index);this.core.outer.on("touchstart.lg",function(i){if(r=t.core.getSlideItem(t.core.index),t.isImageSlide(t.core.index)&&2===i.touches.length){if(i.preventDefault(),t.core.outer.hasClass("lg-first-slide-loading"))return;o=t.scale||1,t.core.outer.removeClass("lg-zoom-drag-transition lg-zoom-dragging"),t.setPageCords(i),t.resetImageTranslate(t.core.index),t.core.touchAction="pinch",e=t.getTouchDistance(i)}}),this.core.$inner.on("touchmove.lg",function(n){if(2===n.touches.length&&"pinch"===t.core.touchAction&&(t.$LG(n.target).hasClass("lg-item")||r.get().contains(n.target))){n.preventDefault();var a=t.getTouchDistance(n),l=e-a;if(!i&&Math.abs(l)>5&&(i=!0),i){s=t.scale;var c=Math.max(1,o+.02*-l);t.scale=Math.round(100*(c+Number.EPSILON))/100;var d=t.scale-s;t.zoomImage(t.scale,Math.round(100*(d+Number.EPSILON))/100,!1,!1)}}}),this.core.$inner.on("touchend.lg",function(o){if("pinch"===t.core.touchAction&&(t.$LG(o.target).hasClass("lg-item")||r.get().contains(o.target))){if(i=!1,e=0,t.scale<=1)t.resetZoom();else{var s=t.getCurrentImageActualSizeScale();if(t.scale>=s){var n=s-t.scale;0===n&&(n=.01),t.zoomImage(s,n,!1,!0)}t.manageActualPixelClassNames(),t.core.outer.addClass("lg-zoomed")}t.core.touchAction=void 0}})},i.prototype.touchendZoom=function(t,e,i,o,s){var r=e.x-t.x,n=e.y-t.y,a=Math.abs(r)/s+1,l=Math.abs(n)/s+1;a>2&&(a+=1),l>2&&(l+=1),r*=a,n*=l;var c=this.core.getSlideItem(this.core.index).find(".lg-img-wrap").first(),d={};d.x=this.left+r,d.y=this.top+n;var u=this.getPossibleSwipeDragCords();(Math.abs(r)>15||Math.abs(n)>15)&&(o&&(this.isBeyondPossibleTop(d.y,u.minY)?d.y=u.minY:this.isBeyondPossibleBottom(d.y,u.maxY)&&(d.y=u.maxY)),i&&(this.isBeyondPossibleLeft(d.x,u.minX)?d.x=u.minX:this.isBeyondPossibleRight(d.x,u.maxX)&&(d.x=u.maxX)),o?this.top=d.y:d.y=this.top,i?this.left=d.x:d.x=this.left,this.setZoomSwipeStyles(c,d),this.positionChanged=!0)},i.prototype.getZoomSwipeCords=function(t,e,i,o,s){var r={};if(o){if(r.y=this.top+(e.y-t.y),this.isBeyondPossibleTop(r.y,s.minY)){var n=s.minY-r.y;r.y=s.minY-n/6}else if(this.isBeyondPossibleBottom(r.y,s.maxY)){var a=r.y-s.maxY;r.y=s.maxY+a/6}}else r.y=this.top;if(i){if(r.x=this.left+(e.x-t.x),this.isBeyondPossibleLeft(r.x,s.minX)){var l=s.minX-r.x;r.x=s.minX-l/6}else if(this.isBeyondPossibleRight(r.x,s.maxX)){var c=r.x-s.maxX;r.x=s.maxX+c/6}}else r.x=this.left;return r},i.prototype.isBeyondPossibleLeft=function(t,e){return t>=e},i.prototype.isBeyondPossibleRight=function(t,e){return t<=e},i.prototype.isBeyondPossibleTop=function(t,e){return t>=e},i.prototype.isBeyondPossibleBottom=function(t,e){return t<=e},i.prototype.isImageSlide=function(t){var e=this.core.galleryItems[t];return"image"===this.core.getSlideType(e)},i.prototype.getPossibleSwipeDragCords=function(t){var e=this.core.getSlideItem(this.core.index).find(".lg-image").first(),i=this.core.mediaContainerPosition.bottom,o=e.get().getBoundingClientRect(),s=o.height,r=o.width;return t&&(s+=t*s,r+=t*r),{minY:(s-this.containerRect.height)/2,maxY:(this.containerRect.height-s)/2+i,minX:(r-this.containerRect.width)/2,maxX:(this.containerRect.width-r)/2}},i.prototype.setZoomSwipeStyles=function(t,e){t.css("transform","translate3d("+e.x+"px, "+e.y+"px, 0)")},i.prototype.zoomSwipe=function(){var t,e,i=this,o={},s={},r=!1,n=!1,a=!1,l=new Date,c=(new Date,this.core.getSlideItem(this.core.index));this.core.$inner.on("touchstart.lg",function(s){if(i.isImageSlide(i.core.index)&&(c=i.core.getSlideItem(i.core.index),(i.$LG(s.target).hasClass("lg-item")||c.get().contains(s.target))&&1===s.touches.length&&i.core.outer.hasClass("lg-zoomed"))){s.preventDefault(),l=new Date,i.core.touchAction="zoomSwipe",e=i.core.getSlideItem(i.core.index).find(".lg-img-wrap").first();var r=i.getDragAllowedAxises(0);a=r.allowY,((n=r.allowX)||a)&&(o=i.getSwipeCords(s)),t=i.getPossibleSwipeDragCords(),i.core.outer.addClass("lg-zoom-dragging lg-zoom-drag-transition")}}),this.core.$inner.on("touchmove.lg",function(l){if(1===l.touches.length&&"zoomSwipe"===i.core.touchAction&&(i.$LG(l.target).hasClass("lg-item")||c.get().contains(l.target))){l.preventDefault(),i.core.touchAction="zoomSwipe",s=i.getSwipeCords(l);var d=i.getZoomSwipeCords(o,s,n,a,t);(Math.abs(s.x-o.x)>15||Math.abs(s.y-o.y)>15)&&(r=!0,i.setZoomSwipeStyles(e,d))}}),this.core.$inner.on("touchend.lg",function(t){if("zoomSwipe"===i.core.touchAction&&(i.$LG(t.target).hasClass("lg-item")||c.get().contains(t.target))){if(t.preventDefault(),i.core.touchAction=void 0,i.core.outer.removeClass("lg-zoom-dragging"),!r)return;r=!1;var e=(new Date).valueOf()-l.valueOf();i.touchendZoom(o,s,n,a,e)}})},i.prototype.zoomDrag=function(){var t,e,i,o,s=this,r={},n={},a=!1,l=!1,c=!1,d=!1;this.core.outer.on("mousedown.lg.zoom",function(e){if(s.isImageSlide(s.core.index)){var n=s.core.getSlideItem(s.core.index);if(s.$LG(e.target).hasClass("lg-item")||n.get().contains(e.target)){t=new Date,o=s.core.getSlideItem(s.core.index).find(".lg-img-wrap").first();var l=s.getDragAllowedAxises(0);d=l.allowY,c=l.allowX,s.core.outer.hasClass("lg-zoomed")&&s.$LG(e.target).hasClass("lg-object")&&(c||d)&&(e.preventDefault(),r=s.getDragCords(e),i=s.getPossibleSwipeDragCords(),a=!0,s.core.outer.removeClass("lg-grab").addClass("lg-grabbing lg-zoom-drag-transition lg-zoom-dragging"))}}}),this.$LG(window).on("mousemove.lg.zoom.global"+this.core.lgId,function(t){if(a){l=!0,n=s.getDragCords(t);var e=s.getZoomSwipeCords(r,n,c,d,i);s.setZoomSwipeStyles(o,e)}}),this.$LG(window).on("mouseup.lg.zoom.global"+this.core.lgId,function(i){if(a){if(e=new Date,a=!1,s.core.outer.removeClass("lg-zoom-dragging"),l&&(r.x!==n.x||r.y!==n.y)){n=s.getDragCords(i);var o=e.valueOf()-t.valueOf();s.touchendZoom(r,n,c,d,o)}l=!1}s.core.outer.removeClass("lg-grabbing").addClass("lg-grab")})},i.prototype.closeGallery=function(){this.resetZoom(),this.zoomInProgress=!1},i.prototype.destroy=function(){this.$LG(window).off(".lg.zoom.global"+this.core.lgId),this.core.LGel.off(".lg.zoom"),this.core.LGel.off(".zoom"),clearTimeout(this.zoomableTimeout),this.zoomableTimeout=!1},i}()}()},816(t){t.exports=function(){function t(t,e,i){return e.addEventListener?e.addEventListener(t,i,!1):e.attachEvent("on"+t,i)}function e(t,e,i){return e.removeEventListener?e.removeEventListener(t,i,!1):e.detachEvent("on"+t,i)}function i(t){return"[object Array]"===Object.prototype.toString.call(t)}function o(t,e){return window.getComputedStyle?window.getComputedStyle(e)[t]:e.currentStyle[t]}var s=function(){for(var t=3,e=document.createElement("b"),i=e.all||[];e.innerHTML="\x3c!--[if gt IE "+ ++t+"]>=s&&!i.tag&&(i.tag=t[0].match(/<([^>\s/]*)/)[1].toLowerCase()),1>=this.content_elem.children.length&&(e.data=this.html(t[0]+t[0]+t[0])),i.tag||(i.tag=this.content_elem.children[0].tagName.toLowerCase()),this.getRowsHeight(t))},getRowsHeight:function(t){var e=this.options,i=e.item_height;if(e.cluster_height=0,t.length&&(t=this.content_elem.children).length){var s=t[Math.floor(t.length/2)];return e.item_height=s.offsetHeight,"tr"==e.tag&&"collapse"!=o("borderCollapse",this.content_elem)&&(e.item_height+=parseInt(o("borderSpacing",this.content_elem),10)||0),"tr"!=e.tag&&(t=parseInt(o("marginTop",s),10)||0,s=parseInt(o("marginBottom",s),10)||0,e.item_height+=Math.max(t,s)),e.block_height=e.item_height*e.rows_in_block,e.rows_in_cluster=e.blocks_in_cluster*e.rows_in_block,e.cluster_height=e.blocks_in_cluster*e.block_height,i!=e.item_height}},getClusterNum:function(t){var e=this.options;e.scroll_top=this.scroll_elem.scrollTop;var i=e.cluster_height-e.block_height;return Math.min(Math.floor(e.scroll_top/i),Math.floor(t.length*e.item_height/i))},generateEmptyRow:function(){var t=this.options;if(!t.tag||!t.show_no_data_row)return[];var e=document.createElement(t.tag),i=document.createTextNode(t.no_data_text);if(e.className=t.no_data_class,"tr"==t.tag){var o=document.createElement("td");o.colSpan=100,o.appendChild(i)}return e.appendChild(o||i),[e.outerHTML]},generate:function(t){var e=this.options,i=t.length;if(ir&&n++;o=s&&"tr"==this.options.tag){var i=document.createElement("div");for(i.innerHTML=""+t+"
";t=e.lastChild;)e.removeChild(t);for(i=this.getChildNodes(i.firstChild.firstChild);i.length;)e.appendChild(i.shift())}else e.innerHTML=t},getChildNodes:function(t){for(var e=[],i=0,o=(t=t.children).length;it.length)&&(e=t.length);for(var i=0,o=Array(e);i=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,r=!0,a=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return r=t.done,t},e:function(t){a=!0,s=t},f:function(){try{r||null==e.return||e.return()}finally{if(a)throw s}}}}(i.keys);try{for(d.s();!(c=d.n()).done;)l(c.value)}catch(t){d.e(t)}finally{d.f()}}else l()}),i.filter&&(s=i.filter(s));var r=s.slice(0,e.resultsList.maxResults);e.feedback={query:t,matches:s,results:r},u("results",e)},p="aria-expanded",f="aria-activedescendant",y="aria-selected",v=function(t,e){t.feedback.selection=o({index:e},t.feedback.results[e])},b=function(t){t.isOpen||((t.wrapper||t.input).setAttribute(p,!0),t.list.removeAttribute("hidden"),t.isOpen=!0,u("open",t))},w=function(t){t.isOpen&&((t.wrapper||t.input).setAttribute(p,!1),t.input.setAttribute(f,""),t.list.setAttribute("hidden",""),t.isOpen=!1,u("close",t))},S=function(t,e){var i=e.resultItem,o=e.list.getElementsByTagName(i.tag),r=!!i.selected&&i.selected.split(" ");if(e.isOpen&&o.length){var n,a,l=e.cursor;t>=o.length&&(t=0),t<0&&(t=o.length-1),e.cursor=t,l>-1&&(o[l].removeAttribute(y),r&&(a=o[l].classList).remove.apply(a,s(r))),o[t].setAttribute(y,!0),r&&(n=o[t].classList).add.apply(n,s(r)),e.input.setAttribute(f,o[e.cursor].id),e.list.scrollTop=o[t].offsetTop-e.list.clientHeight+o[t].clientHeight+5,e.feedback.cursor=e.cursor,v(e,t),u("navigate",e)}},C=function(t){S(t.cursor+1,t)},x=function(t){S(t.cursor-1,t)},I=function(t,e,i){(i=i>=0?i:t.cursor)<0||(t.feedback.event=e,v(t,i),u("selection",t),w(t))};function E(t,e){var i=this;return new Promise(function(s,r){var n,a;return n=e||((a=t.input)instanceof HTMLInputElement||a instanceof HTMLTextAreaElement?a.value:a.innerHTML),function(t,e,i){return e?e(t):t.length>=i}(n=t.query?t.query(n):n,t.trigger,t.threshold)?g(t,n).then(function(e){try{return t.feedback instanceof Error?s():(m(n,t),t.resultsList&&function(t){var e=t.resultsList,i=t.list,s=t.resultItem,r=t.feedback,n=r.matches,a=r.results;if(t.cursor=-1,i.innerHTML="",n.length||e.noResults){var c=new DocumentFragment;a.forEach(function(t,e){var i=l(s.tag,o({id:"".concat(s.id,"_").concat(e),role:"option",innerHTML:t.match,inside:c},s.class&&{class:s.class}));s.element&&s.element(i,t)}),i.append(c),e.element&&e.element(i,r),b(t)}else w(t)}(t),c.call(i))}catch(t){return r(t)}},r):(w(t),c.call(i));function c(){return s()}})}var L=function(t,e){for(var i in t)for(var o in t[i])e(i,o)};function T(t){var e=this;return new Promise(function(i,s){var r,n,a;if(r=t.placeHolder,a={role:"combobox","aria-owns":(n=t.resultsList).id,"aria-haspopup":!0,"aria-expanded":!1},l(t.input,o(o({"aria-controls":n.id,"aria-autocomplete":"both"},r&&{placeholder:r}),!t.wrapper&&o({},a))),t.wrapper&&(t.wrapper=l("div",o({around:t.input,class:t.name+"_wrapper"},a))),n&&(t.list=l(n.tag,o({dest:[n.destination,n.position],id:n.id,role:"listbox",hidden:"hidden"},n.class&&{class:n.class}))),function(t){var e,i,s,r=t.events,n=(e=function(){return E(t)},i=t.debounce,function(){clearTimeout(s),s=setTimeout(function(){return e()},i)}),a=t.events=o({input:o({},r&&r.input)},t.resultsList&&{list:r?o({},r.list):{}}),l={input:{input:function(){n()},keydown:function(e){!function(t,e){switch(t.keyCode){case 40:case 38:t.preventDefault(),40===t.keyCode?C(e):x(e);break;case 13:e.submit||t.preventDefault(),e.cursor>=0&&I(e,t);break;case 9:e.resultsList.tabSelect&&e.cursor>=0&&I(e,t);break;case 27:e.input.value="",u("clear",e),w(e)}}(e,t)},blur:function(){w(t)}},list:{mousedown:function(t){t.preventDefault()},click:function(e){!function(t,e){var i=e.resultItem.tag.toUpperCase(),o=Array.from(e.list.querySelectorAll(i)),s=t.target.closest(i);s&&s.nodeName===i&&I(e,t,o.indexOf(s))}(e,t)}}};L(l,function(e,i){(t.resultsList||"input"===i)&&(a[e][i]||(a[e][i]=l[e][i]))}),L(a,function(e,i){t[e].addEventListener(i,a[e][i])})}(t),t.data.cache)return g(t).then(function(t){try{return c.call(e)}catch(t){return s(t)}},s);function c(){return u("init",t),i()}return c.call(e)})}function A(t){var e=t.prototype;e.init=function(){T(this)},e.start=function(t){E(this,t)},e.unInit=function(){if(this.wrapper){var t=this.wrapper.parentNode;t.insertBefore(this.input,this.wrapper),t.removeChild(this.wrapper)}var e;L((e=this).events,function(t,i){e[t].removeEventListener(i,e.events[t][i])})},e.open=function(){b(this)},e.close=function(){w(this)},e.goTo=function(t){S(t,this)},e.next=function(){C(this)},e.previous=function(){x(this)},e.select=function(t){I(this,null,t)},e.search=function(t,e,i){return h(t,e,i)}}return function t(e){this.options=e,this.id=t.instances=(t.instances||0)+1,this.name="autoComplete",this.wrapper=1,this.threshold=1,this.debounce=0,this.resultsList={position:"afterend",tag:"ul",maxResults:5},this.resultItem={tag:"li"},function(t){var e=t.name,i=t.options,o=t.resultsList,s=t.resultItem;for(var n in i)if("object"===r(i[n]))for(var l in t[n]||(t[n]={}),i[n])t[n][l]=i[n][l];else t[n]=i[n];t.selector=t.selector||"#"+e,o.destination=o.destination||t.selector,o.id=o.id||e+"_list_"+t.id,s.id=s.id||e+"_result",t.input=a(t.selector)}(this),A.call(this,t),T(this)}},t.exports=e()}},e={};function i(o){var s=e[o];if(void 0!==s)return s.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,i),r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=i(816),e=i.n(t);class o{constructor(t,e){this.wrapper=t,this.storage=e,this.filters={}}prefillFromStorage(t){const e=this.storage.get(t);e&&(Object.keys(e).forEach(t=>{if("object"==typeof e[t]&&null!==e[t]&&"from"in e[t]&&"to"in e[t])return;const i=e[t];this.wrapper.querySelectorAll(`input[data-dataTable-filter="${t}"]`).forEach(t=>{const e=t.value.toLowerCase();Array.isArray(i)?i.filter(t=>null!==t).map(t=>t.toLowerCase()).includes(e)&&(t.checked=!0):null!==i&&e===i.toLowerCase()&&(t.checked=!0)})}),Object.entries(e).filter(([t,e])=>"object"==typeof e&&null!==e&&"from"in e&&"to"in e).forEach(([t,e])=>{const i=this.wrapper.querySelector(`input[name="${t}[from]"]`),o=this.wrapper.querySelector(`input[name="${t}[to]"]`);i&&e.from&&(i.valueAsDate=new Date(e.from)),o&&e.to&&(o.valueAsDate=new Date(e.to))}),this.storage.clearAll())}getActiveFilters(){const t={};return this.wrapper.querySelectorAll("[data-dataTable-filter]:checked").forEach(e=>{const i=e.getAttribute("data-dataTable-filter"),o=e.value.toLowerCase();t[i]?Array.isArray(t[i])?t[i].push(o):t[i]=[t[i],o]:t[i]=o}),this.wrapper.querySelectorAll('[data-dataTable-filter*="[]"]').forEach(e=>{const i=e.getAttribute("data-dataTable-filter").replace("[]",""),o=e.querySelector(`input[name="${i}[from]"]`),s=e.querySelector(`input[name="${i}[to]"]`);if(o&&s&&o.valueAsDate&&s.valueAsDate){const e=new Date(o.valueAsNumber).setUTCHours(0,0,0),r=new Date(s.valueAsNumber).setUTCHours(23,59,59);t[i]={from:e,to:r}}}),t}updateDropdownState(t){this.wrapper.querySelectorAll(".filter-dropdown [data-dropdown-toggle]").forEach(t=>{t.classList.remove("active")}),Object.entries(t).forEach(([t,e])=>{if(e&&"object"==typeof e&&"from"in e&&"to"in e){const e=this.wrapper.querySelector(`[data-datatable-filter="${t}[]"]`)?.closest(".filter-dropdown"),i=e.querySelector("[data-dropdown-toggle]");return void(i&&i.classList.add("active"))}const i=this.wrapper.querySelector(`[data-dataTable-filter="${t}"]:checked`)?.closest(".filter-dropdown"),o=i.querySelector("[data-dropdown-toggle]");o&&o.classList.add("active")})}applyFiltersToRows(t,e=""){const i=this.getActiveFilters(),o=e.toLowerCase();return t.forEach(t=>{t.active=!t.searchables||t.searchables.toLowerCase().includes(o);for(const[e,o]of Object.entries(i)){const i=t.filterables[e];o&&"object"==typeof o&&"from"in o&&"to"in o?t.active=t.active&&i>=o.from&&i<=o.to:Array.isArray(o)?t.active=t.active&&o.includes(i?.toLowerCase()):t.active=t.active&&(Array.isArray(i)?i.map(t=>t.toLowerCase()).includes(o):i?.toLowerCase()===o)}}),t}resetAll(){this.wrapper.querySelectorAll('[data-dataTable-filter], [data-dataTable-filter*="[]"] input').forEach(t=>{"radio"===t.type||"checkbox"===t.type?t.checked=!1:t.value=""}),this.storage.clearAll()}resetOne(t){this.wrapper.querySelectorAll(`[data-dataTable-filter][name^="${t}"], [data-dataTable-filter*="[]"] [name^="${t}"]`).forEach(t=>{"radio"===t.type||"checkbox"===t.type?t.checked=!1:t.value=""})}}class s{static calculate(t){return t.filter(t=>t.active).reduce((t,e)=>(Object.entries(e.summables).forEach(([e,i])=>t[e]=(t[e]||0)+i),t),{})}static render(t,e){const i=this.calculate(e);t.querySelectorAll("[data-dataTable-summable]").forEach(t=>{const e=t.getAttribute("data-dataTable-summable");t.innerHTML=void 0!==i[e]?(t=>{t=(t+"").replace(/[^0-9+\-Ee.]/g,"");const e=isFinite(+t)?+t:0,i=isFinite(0)?Math.abs(0):0;let o="";return o=(i?function(t,e){if(-1===(""+t).indexOf("e"))return+(Math.round(t+"e+"+e)+"e-"+e);{const i=(""+t).split("e");let o="";return+i[1]+e>0&&(o="+"),(+(Math.round(+i[0]+"e"+o+(+i[1]+e))+"e-"+e)).toFixed(e)}}(e,i).toString():""+Math.round(e)).split("."),o[0].length>3&&(o[0]=o[0].replace(/\B(?=(?:\d{3})+(?!\d))/g," ")),(o[1]||"").lengtho.addEventListener("click",()=>{const s=o.getAttribute("data-dataTable-sort");s===this.sortOnPrevious?this.sortAsc=!this.sortAsc:this.sortAsc=!0,this.sortOnPrevious=s,this.columns.forEach(t=>t.querySelector(".sorting-icon")?.setAttribute("aria-sort","none")),o.querySelector(".sorting-icon")?.setAttribute("aria-sort",this.sortAsc?"ascending":"descending"),t.sort((t,e)=>{const i=t.sort[s],o=e.sort[s];return void 0===i?1:void 0===o?-1:io?this.sortAsc?1:-1:0}),e.update(t.filter(t=>t.active).map(t=>t.markup)),i.scrollTop=0}))}}class n{constructor(t,e,i){this.wrapper=t,this.tbody=e,this.scrollElem=i,this.cluster=null}init(t){this.cluster=new(e())({rows:t.filter(t=>t.active).map(t=>t.markup),scrollElem:this.scrollElem,contentElem:this.tbody,no_data_class:"clusterize-loading",callbacks:{clusterChanged:()=>{s.render(this.wrapper,t);const e=this.wrapper.querySelector("[data-dataTable-result-count]");e&&(e.innerText=t.filter(t=>t.active).length),document.dispatchEvent(new CustomEvent("dataTableClusterWasChanged",{bubbles:!0,cancelable:!1}))}}})}update(t){this.cluster&&(this.cluster.update(t.filter(t=>t.active).map(t=>t.markup)),this.scrollElem.scrollTop=0)}}class a{constructor(t="dataTableFilters"){this.storageKey=t}clearAll(){localStorage.removeItem(this.storageKey)}get(t){const e=localStorage.getItem(this.storageKey);return e&&JSON.parse(e)[t]||{}}set(t){localStorage.setItem(this.storageKey,JSON.stringify(t))}}const l=6371008.8,c={centimeters:637100880,centimetres:637100880,degrees:360/(2*Math.PI),feet:20902260.511392,inches:39.37*l,kilometers:6371.0088,kilometres:6371.0088,meters:l,metres:l,miles:3958.761333810546,millimeters:6371008800,millimetres:6371008800,nauticalmiles:l/1852,radians:1,yards:6967335.223679999},d=Object.defineProperty,u=Object.defineProperties,h=Object.getOwnPropertyDescriptors,g=Object.getOwnPropertySymbols,m=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable,f=(t,e,i)=>e in t?d(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,y=(t,e)=>{for(var i in e||(e={}))m.call(e,i)&&f(t,i,e[i]);if(g)for(var i of g(e))p.call(e,i)&&f(t,i,e[i]);return t},v=(t,e)=>u(t,h(e));function b(t,e,i={}){var o=_(t),s=_(e),r=E(s[1]-o[1]),n=E(s[0]-o[0]),a=E(o[1]),l=E(s[1]),c=Math.pow(Math.sin(r/2),2)+Math.pow(Math.sin(n/2),2)*Math.cos(a)*Math.cos(l);return x(2*Math.atan2(Math.sqrt(c),Math.sqrt(1-c)),i.units)}function w(t,e,i={}){const o={type:"Feature"};return(0===i.id||i.id)&&(o.id=i.id),i.bbox&&(o.bbox=i.bbox),o.properties=e||{},o.geometry=t,o}function S(t,e,i={}){if(!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!A(t[0])||!A(t[1]))throw new Error("coordinates must contain numbers");return w({type:"Point",coordinates:t},e,i)}function C(t,e,i={}){if(t.length<2)throw new Error("coordinates must be an array of two or more positions");return w({type:"LineString",coordinates:t},e,i)}function x(t,e="kilometers"){const i=c[e];if(!i)throw new Error(e+" units is invalid");return t*i}function I(t){return t%(2*Math.PI)*180/Math.PI}function E(t){return t%360*Math.PI/180}function T(t,e="kilometers",i="kilometers"){if(!(t>=0))throw new Error("length must be a positive number");return x(function(t,e="kilometers"){const i=c[e];if(!i)throw new Error(e+" units is invalid");return t/i}(t,e),i)}function A(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}function _(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if("Feature"===t.type&&null!==t.geometry&&"Point"===t.geometry.type)return[...t.geometry.coordinates];if("Point"===t.type)return[...t.coordinates]}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return[...t];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function k(t,e,i){if(!t)throw new Error("No feature passed");if(!i)throw new Error(".featureOf() requires a name");if(!t||"Feature"!==t.type||!t.geometry)throw new Error("Invalid input to "+i+", Feature with geometry required");if(!t.geometry||t.geometry.type!==e)throw new Error("Invalid input to "+i+": must be a "+e+", given "+t.geometry.type)}function z(t,e,i){if(null!==t)for(var o,s,r,n,a,l,c,d,u=0,h=0,g=t.type,m="FeatureCollection"===g,p="Feature"===g,f=m?t.features.length:1,y=0;ya||h>l||g>c)return n=r,a=i,l=h,c=g,void(s=0);var m=C([n,r],t.properties);if(!1===e(m,i,o,g,s))return!1;s++,n=r})&&void 0}}})}function P(t,e,i={}){if(!t||!e)throw new Error("lines and pt are required arguments");const o=_(e);let s=S([1/0,1/0],{dist:1/0,index:-1,multiFeatureIndex:-1,location:-1}),r=0;return O(t,function(t,n,a){const l=function(t){if(Array.isArray(t))return t;if("Feature"===t.type){if(null!==t.geometry)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}(t);for(let t=0;t0?[[...e],!0]:[[...i],!1];const a=D(n,r);if(0===a[0]&&0===a[1]&&0===a[2])return[[...e],!0];const l=F(D(a,n)),c=[-l[0],-l[1],-l[2]],d=q(r,l)>q(r,c)?l:c,u=F(n),h=q(D(o,d),u),g=q(D(d,s),u);return h>=0&&g>=0?[G(d),!1]:q(o,r)>q(s,r)?[[...t],!1]:[[...e],!0]}function q(t,e){return t[0]*e[0]+t[1]*e[1]}function $(t,e,i={}){const o=_(t),s=_(e);s[0]+=s[0]-o[0]>180?-360:o[0]-s[0]>180?360:0;const r=function(t,e,i){const o=i=void 0===i?l:Number(i),s=t[1]*Math.PI/180,r=e[1]*Math.PI/180,n=r-s;let a=Math.abs(e[0]-t[0])*Math.PI/180;a>Math.PI&&(a-=2*Math.PI);const c=Math.log(Math.tan(r/2+Math.PI/4)/Math.tan(s/2+Math.PI/4)),d=Math.abs(c)>1e-11?n/c:Math.cos(s);return Math.sqrt(n*n+d*d*a*a)*o}(o,s);return T(r,"meters",i.units)}class H{constructor(t,e,i){this.wrapper=t,this.config=e,this.modalManager=i,this.placesControl=null,this.mainFeatureGroup=L.featureGroup(),this.routePolylines=[],this.map=L.map(this.wrapper,{scrollWheelZoom:!0,minZoom:1,maxZoom:21}),this.config.tileLayerUrls.forEach(t=>{L.tileLayer(t).addTo(this.map)}),this.defaultPolylineStyle={color:this.config.polylineColor,weight:1.5,opacity:.5,smoothFactor:1,overrideExisting:!0,detectColors:!0},this.inactivePolylineStyle={weight:0,opacity:0},this.map.on("click",t=>this._handleMapClick(t)),this.map.on("popupclose",()=>this._resetRouteStyles()),this.map.on("popupopen",t=>this._handlePopupOpen(t))}_resetRouteStyles(){this.routePolylines.forEach(t=>{t.polyline.setStyle(this.defaultPolylineStyle)})}_handlePopupOpen(t){const e=t.popup.getElement();e&&e.querySelectorAll("a[data-model-content-url]").forEach(t=>{t.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this.modalManager.open(t.getAttribute("data-model-content-url"))})})}_handleMapClick(t){const e=S([t.latlng.lng,t.latlng.lat]);this._resetRouteStyles();const i=[],o=[];if(this.routePolylines.forEach(t=>{const s=C(t.latlngs.map(t=>[t.lng,t.lat]));(function(t,e,i={}){var o,s;const r=null!=(o=i.method)?o:"geodesic",n=null!=(s=i.units)?s:"kilometers";if(!t)throw new Error("pt is required");if(Array.isArray(t)?t=S(t):"Point"===t.type?t=w(t):k(t,"Point","point"),!e)throw new Error("line is required");Array.isArray(e)?e=C(e):"LineString"===e.type?e=w(e):k(e,"LineString","line");let a=1/0;const l=t.geometry.coordinates;return M(e,t=>{if(t){const e=t.geometry.coordinates[0],i=t.geometry.coordinates[1],o=function(t,e,i,o){if("geodesic"===o.method)return P(C([e,i]).geometry,t,{units:"degrees"}).properties.dist;const s=[i[0]-e[0],i[1]-e[1]],r=q([t[0]-e[0],t[1]-e[1]],s);if(r<=0)return $(t,e,{units:"degrees"});const n=q(s,s);if(n<=r)return $(t,i,{units:"degrees"});const a=r/n;return $(t,[e[0]+a*s[0],e[1]+a*s[1]],{units:"degrees"})}(l,e,i,{method:r});o{t.polyline.setStyle(this.inactivePolylineStyle)});const s=`\n
\n
${i.length} nearby route(s):
\n
    \n ${i.map(t=>`\n
  • \n \n ${t.route.name}\n \n
    \n
    ${t.route.startDate}
    \n
    ${t.route.distance}
    \n
    \n
  • `).join("")}\n
\n
`;L.popup(t.latlng,{content:s,maxWidth:300,minWidth:300}).openOn(this.map)}redraw(t){t=t.filter(t=>t.active),this.mainFeatureGroup.clearLayers(),this.routePolylines=[],this.placesControl&&this.map.removeControl(this.placesControl);const e=[],i=new Map,o=L.featureGroup(),s=(t=>{const e=t.reduce((t,e)=>{const i=e.startLocation.state;return i&&(t[i]=(t[i]||0)+1),t},{}),i=Object.keys(e).reduce((t,i)=>e[t]>e[i]?t:i,"");return i||null})(t);t.forEach(t=>{const{countryCode:e,state:r}=t.startLocation;i.has(e)||i.set(e,L.featureGroup());const n=L.Polyline.fromEncoded(t.encodedPolyline).getLatLngs(),a=L.polyline(n,this.defaultPolylineStyle).addTo(i.get(e));this.routePolylines.push({route:t,polyline:a,latlngs:n}),s===r&&L.polyline(n).addTo(o)}),i.forEach((t,i)=>{t.addTo(this.mainFeatureGroup),e.push({countryCode:i,bounds:t.getBounds()})}),this.mainFeatureGroup.addTo(this.map),this.placesControl=L.control.flyToPlaces({places:e}),this.placesControl.addTo(this.map),o.getBounds().isValid()&&this.map.fitBounds(o.getBounds())}}class R{constructor(t,e){this.wrapper=t,this.heatmap=t.querySelector("[data-leaflet-routes]"),this.resetBtn=t.querySelector("[data-dataTable-reset]"),this.config=JSON.parse(this.heatmap.getAttribute("data-heatmap-config")),this.filterManager=new o(t,new a),this.drawer=new H(this.heatmap,this.config,e)}async render(){this.wrapper.querySelectorAll('input[type="date"][data-default-to-today]').forEach(t=>t.valueAsDate=new Date);const t=JSON.parse(this.heatmap.getAttribute("data-leaflet-routes")),e=()=>{const e=this.filterManager.getActiveFilters();this.filterManager.updateDropdownState(e);const i=this.filterManager.applyFiltersToRows(t);this.drawer.redraw(i),this.resetBtn.classList.toggle("hidden",!(Object.keys(e).length>0));const o=this.wrapper.querySelector("[data-dataTable-result-count]");o&&(o.innerText=i.filter(t=>t.active).length)};e(),this.wrapper.querySelectorAll("[data-dataTable-filter]").forEach(t=>t.addEventListener("input",e)),this.resetBtn&&this.resetBtn.addEventListener("click",t=>{t.preventDefault(),this.filterManager.resetAll(),e()}),this.wrapper.querySelectorAll("[data-datatable-filter-clear]").forEach(t=>{t.addEventListener("click",i=>{i.preventDefault();const o=t.getAttribute("data-datatable-filter-clear");this.filterManager.resetOne(o),e()})})}}var j=i(879),Z=i.n(j);class Y{constructor(t){this.chatWrapper=t.querySelector(".chat--wrapper"),this.form=t.querySelector("form"),this.button=this.form.querySelector("button.send-message"),this.textInput=this.form.querySelector("input.message"),this.spinner=this.form.querySelector("div.spinner"),this.placeholderIdle=this.textInput.getAttribute("data-placeholder-idle"),this.placeholderProcessing=this.textInput.getAttribute("data-placeholder-processing"),this.commands=JSON.parse(this.chatWrapper.getAttribute("data-chat-commands")||"{}"),this.autoCompleteJS=null}toggleElements(t){this.textInput.disabled=t,this.button.disabled=t,this.button.classList.toggle("inline-flex",!t),this.button.classList.toggle("hidden",t),this.form.classList.toggle("disabled",t),this.spinner.classList.toggle("hidden",!t),this.textInput.value="",this.textInput.placeholder=t?this.placeholderProcessing:this.placeholderIdle}initAutoComplete(){this.commands&&0!==Object.keys(this.commands).length&&(this.autoCompleteJS=new(Z())({selector:()=>this.textInput,data:{src:Object.keys(this.commands)},threshold:1,trigger:t=>t.startsWith("/"),resultsList:{tabSelect:!0,position:"beforebegin"},resultItem:{highlight:!0,element:(t,e)=>{t.innerHTML=`\n
${e.match}
\n
${this.commands[e.value]}
\n `}},events:{input:{focus:()=>{this.autoCompleteJS.input.value.length&&this.autoCompleteJS.start()}}}}),this.autoCompleteJS.input.addEventListener("selection",t=>{const e=t.detail;this.autoCompleteJS.input.value=this.commands[e.selection.value]||""}))}handleSSE(t){const e=new EventSource(`/chat/sse?message=${encodeURIComponent(t)}`);e.addEventListener("fullMessage",t=>{this.chatWrapper.innerHTML+=t.data.replace(/\\n/g,"\n")}),e.addEventListener("removeThinking",()=>{const t=this.chatWrapper.querySelector(".thinking");t?.remove()}),e.addEventListener("agentResponse",t=>{const e=this.chatWrapper.querySelector("div.message-wrapper:last-child > div.message");e&&(e.innerHTML+=t.data.replace(/\\n/g,"\n"))}),e.addEventListener("done",()=>{e.close(),this.toggleElements(!1),this.textInput.focus()})}bindEvents(){this.form.addEventListener("submit",t=>{t.preventDefault();const e=new FormData(this.form);this.toggleElements(!0),this.handleSSE(e.get("form[message]"))}),this.textInput.addEventListener("keydown",t=>{"Enter"!==t.key||t.shiftKey||(t.preventDefault(),this.form.requestSubmit())})}render(){this.initAutoComplete(),this.bindEvents()}}const X=t=>{const e=document.querySelector("[data-latest-version]"),i=e.querySelector("a");i&&(i.href=i.href.replace("[LATEST_VERSION]",t),i.textContent=i.textContent.replace("[LATEST_VERSION]",t)),e.classList.remove("hidden")};var W=i(360),V=i.n(W),J=i(569),U=i.n(J),K=i(563),Q=i.n(K);class tt{constructor(t){this.trigger=t.querySelector("[data-light-gallery-trigger]"),this.gallery=V()(this.trigger,{dynamic:!0,plugins:[U(),Q()],backdropDuration:200,dynamicEl:[]})}refresh(t){const e=t.map(t=>JSON.parse(t.element.getAttribute("data-light-gallery-element")));this.gallery.refresh(e)}bindEvents(){this.trigger?.addEventListener("click",()=>this.gallery.openGallery())}}class et{constructor(t,e){this.wrapper=t,this.dataTableStorage=e,this.resetBtn=t.querySelector("[data-dataTable-reset]"),this.filterManager=new o(t,new a),this.allImages=Array.from(this.wrapper.querySelectorAll("[data-image]")).map(t=>({element:t,filterables:JSON.parse(t.getAttribute("data-filterables")),active:!0})),this.lightGallery=new tt(this.wrapper)}async render(){const t=()=>{const t=this.filterManager.getActiveFilters();this.filterManager.updateDropdownState(t);const e=this.filterManager.applyFiltersToRows(this.allImages);for(const{element:t,active:i}of e)t.classList.toggle("hidden",!i);this.resetBtn.classList.toggle("hidden",!(Object.keys(t).length>0));const i=e.filter(t=>t.active),o=this.wrapper.querySelector("[data-dataTable-result-count]");o&&(o.innerText=i.length),this.lightGallery.refresh(i)};this.dataTableStorage.set({photoWall:JSON.parse(this.wrapper.getAttribute("data-default-filters"))}),this.filterManager.prefillFromStorage("photoWall"),t(),this.wrapper.querySelectorAll("[data-dataTable-filter]").forEach(e=>e.addEventListener("input",t)),this.lightGallery.bindEvents(),this.resetBtn&&this.resetBtn.addEventListener("click",e=>{e.preventDefault(),this.filterManager.resetAll(),t()}),this.wrapper.querySelectorAll("[data-datatable-filter-clear]").forEach(e=>{e.addEventListener("click",i=>{i.preventDefault();const o=e.getAttribute("data-datatable-filter-clear");this.filterManager.resetOne(o),t()})})}}const it="undefined"!=typeof window,ot=it&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),st=it&&window.devicePixelRatio>1,rt={elements_selector:".lazy",container:ot||it?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_bg_set:"bg-set",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},nt=t=>Object.assign({},rt,t),at=function(t,e){let i;const o="LazyLoad::Initialized",s=new t(e);try{i=new CustomEvent(o,{detail:{instance:s}})}catch(t){i=document.createEvent("CustomEvent"),i.initCustomEvent(o,!1,!1,{instance:s})}window.dispatchEvent(i)},lt="src",ct="srcset",dt="sizes",ut="poster",ht="llOriginalAttrs",gt="data",mt="loading",pt="loaded",ft="applied",yt="error",vt="native",bt="data-",wt="ll-status",St=(t,e)=>t.getAttribute(bt+e),Ct=t=>St(t,wt),xt=(t,e)=>((t,e,i)=>{const o=bt+e;null!==i?t.setAttribute(o,i):t.removeAttribute(o)})(t,wt,e),It=t=>xt(t,null),Et=t=>null===Ct(t),Lt=t=>Ct(t)===vt,Tt=[mt,pt,ft,yt],At=(t,e,i,o)=>{t&&"function"==typeof t&&(void 0===o?void 0===i?t(e):t(e,i):t(e,i,o))},_t=(t,e)=>{it&&""!==e&&t.classList.add(e)},kt=(t,e)=>{it&&""!==e&&t.classList.remove(e)},zt=t=>t.llTempImage,Ot=(t,e)=>{if(!e)return;const i=e._observer;i&&i.unobserve(t)},Mt=(t,e)=>{t&&(t.loadingCount+=e)},Pt=(t,e)=>{t&&(t.toLoadCount=e)},Dt=t=>{let e=[];for(let i,o=0;i=t.children[o];o+=1)"SOURCE"===i.tagName&&e.push(i);return e},Ft=(t,e)=>{const i=t.parentNode;i&&"PICTURE"===i.tagName&&Dt(i).forEach(e)},Bt=(t,e)=>{Dt(t).forEach(e)},Gt=[lt],Nt=[lt,ut],qt=[lt,ct,dt],$t=[gt],Ht=t=>!!t[ht],Rt=t=>t[ht],jt=t=>delete t[ht],Zt=(t,e)=>{if(Ht(t))return;const i={};e.forEach(e=>{i[e]=t.getAttribute(e)}),t[ht]=i},Yt=(t,e)=>{if(!Ht(t))return;const i=Rt(t);e.forEach(e=>{((t,e,i)=>{i?t.setAttribute(e,i):t.removeAttribute(e)})(t,e,i[e])})},Xt=(t,e,i)=>{_t(t,e.class_applied),xt(t,ft),i&&(e.unobserve_completed&&Ot(t,e),At(e.callback_applied,t,i))},Wt=(t,e,i)=>{_t(t,e.class_loading),xt(t,mt),i&&(Mt(i,1),At(e.callback_loading,t,i))},Vt=(t,e,i)=>{i&&t.setAttribute(e,i)},Jt=(t,e)=>{Vt(t,dt,St(t,e.data_sizes)),Vt(t,ct,St(t,e.data_srcset)),Vt(t,lt,St(t,e.data_src))},Ut={IMG:(t,e)=>{Ft(t,t=>{Zt(t,qt),Jt(t,e)}),Zt(t,qt),Jt(t,e)},IFRAME:(t,e)=>{Zt(t,Gt),Vt(t,lt,St(t,e.data_src))},VIDEO:(t,e)=>{Bt(t,t=>{Zt(t,Gt),Vt(t,lt,St(t,e.data_src))}),Zt(t,Nt),Vt(t,ut,St(t,e.data_poster)),Vt(t,lt,St(t,e.data_src)),t.load()},OBJECT:(t,e)=>{Zt(t,$t),Vt(t,gt,St(t,e.data_src))}},Kt=["IMG","IFRAME","VIDEO","OBJECT"],Qt=(t,e)=>{!e||(t=>t.loadingCount>0)(e)||(t=>t.toLoadCount>0)(e)||At(t.callback_finish,e)},te=(t,e,i)=>{t.addEventListener(e,i),t.llEvLisnrs[e]=i},ee=(t,e,i)=>{t.removeEventListener(e,i)},ie=t=>!!t.llEvLisnrs,oe=t=>{if(!ie(t))return;const e=t.llEvLisnrs;for(let i in e){const o=e[i];ee(t,i,o)}delete t.llEvLisnrs},se=(t,e,i)=>{(t=>{delete t.llTempImage})(t),Mt(i,-1),(t=>{t&&(t.toLoadCount-=1)})(i),kt(t,e.class_loading),e.unobserve_completed&&Ot(t,i)},re=(t,e,i)=>{const o=zt(t)||t;ie(o)||((t,e,i)=>{ie(t)||(t.llEvLisnrs={});const o="VIDEO"===t.tagName?"loadeddata":"load";te(t,o,e),te(t,"error",i)})(o,s=>{((t,e,i,o)=>{const s=Lt(e);se(e,i,o),_t(e,i.class_loaded),xt(e,pt),At(i.callback_loaded,e,o),s||Qt(i,o)})(0,t,e,i),oe(o)},s=>{((t,e,i,o)=>{const s=Lt(e);se(e,i,o),_t(e,i.class_error),xt(e,yt),At(i.callback_error,e,o),i.restore_on_error&&Yt(e,qt),s||Qt(i,o)})(0,t,e,i),oe(o)})},ne=(t,e,i)=>{(t=>Kt.indexOf(t.tagName)>-1)(t)?((t,e,i)=>{re(t,e,i),((t,e,i)=>{const o=Ut[t.tagName];o&&(o(t,e),Wt(t,e,i))})(t,e,i)})(t,e,i):((t,e,i)=>{(t=>{t.llTempImage=document.createElement("IMG")})(t),re(t,e,i),(t=>{Ht(t)||(t[ht]={backgroundImage:t.style.backgroundImage})})(t),((t,e,i)=>{const o=St(t,e.data_bg),s=St(t,e.data_bg_hidpi),r=st&&s?s:o;r&&(t.style.backgroundImage=`url("${r}")`,zt(t).setAttribute(lt,r),Wt(t,e,i))})(t,e,i),((t,e,i)=>{const o=St(t,e.data_bg_multi),s=St(t,e.data_bg_multi_hidpi),r=st&&s?s:o;r&&(t.style.backgroundImage=r,Xt(t,e,i))})(t,e,i),((t,e,i)=>{const o=St(t,e.data_bg_set);if(!o)return;const s=o.split("|");let r=s.map(t=>`image-set(${t})`);t.style.backgroundImage=r.join(),""===t.style.backgroundImage&&(r=s.map(t=>`-webkit-image-set(${t})`),t.style.backgroundImage=r.join()),Xt(t,e,i)})(t,e,i)})(t,e,i)},ae=t=>{t.removeAttribute(lt),t.removeAttribute(ct),t.removeAttribute(dt)},le=t=>{Ft(t,t=>{Yt(t,qt)}),Yt(t,qt)},ce={IMG:le,IFRAME:t=>{Yt(t,Gt)},VIDEO:t=>{Bt(t,t=>{Yt(t,Gt)}),Yt(t,Nt),t.load()},OBJECT:t=>{Yt(t,$t)}},de=["IMG","IFRAME","VIDEO"],ue=t=>t.use_native&&"loading"in HTMLImageElement.prototype,he=t=>Array.prototype.slice.call(t),ge=t=>t.container.querySelectorAll(t.elements_selector),me=t=>(t=>Ct(t)===yt)(t),pe=(t,e)=>(t=>he(t).filter(Et))(t||ge(e)),fe=function(t,e){const i=nt(t);this._settings=i,this.loadingCount=0,((t,e)=>{ue(t)||(e._observer=new IntersectionObserver(i=>{((t,e,i)=>{t.forEach(t=>(t=>t.isIntersecting||t.intersectionRatio>0)(t)?((t,e,i,o)=>{const s=(t=>Tt.indexOf(Ct(t))>=0)(t);xt(t,"entered"),_t(t,i.class_entered),kt(t,i.class_exited),((t,e,i)=>{e.unobserve_entered&&Ot(t,i)})(t,i,o),At(i.callback_enter,t,e,o),s||ne(t,i,o)})(t.target,t,e,i):((t,e,i,o)=>{Et(t)||(_t(t,i.class_exited),((t,e,i,o)=>{i.cancel_on_exit&&(t=>Ct(t)===mt)(t)&&"IMG"===t.tagName&&(oe(t),(t=>{Ft(t,t=>{ae(t)}),ae(t)})(t),le(t),kt(t,i.class_loading),Mt(o,-1),It(t),At(i.callback_cancel,t,e,o))})(t,e,i,o),At(i.callback_exit,t,e,o))})(t.target,t,e,i))})(i,t,e)},(t=>({root:t.container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))(t)))})(i,this),((t,e)=>{it&&(e._onlineHandler=()=>{((t,e)=>{(t=>he(t).filter(me))(ge(t)).forEach(e=>{kt(e,t.class_error),It(e)}),e.update()})(t,e)},window.addEventListener("online",e._onlineHandler))})(i,this),this.update(e)};fe.prototype={update:function(t){const e=this._settings,i=pe(t,e);Pt(this,i.length),ot?this.loadAll(i):ue(e)?((t,e,i)=>{t.forEach(t=>{-1!==de.indexOf(t.tagName)&&((t,e,i)=>{t.setAttribute("loading","lazy"),re(t,e,i),((t,e)=>{const i=Ut[t.tagName];i&&i(t,e)})(t,e),xt(t,vt)})(t,e,i)}),Pt(i,0)})(i,e,this):((t,e)=>{(t=>{t.disconnect()})(t),((t,e)=>{e.forEach(e=>{t.observe(e)})})(t,e)})(this._observer,i)},destroy:function(){this._observer&&this._observer.disconnect(),(t=>{it&&window.removeEventListener("online",t._onlineHandler)})(this),ge(this._settings).forEach(t=>{jt(t)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){const e=this._settings;pe(t,e).forEach(t=>{Ot(t,this),ne(t,e,this)})},restoreAll:function(){const t=this._settings;ge(t).forEach(e=>{((t,e)=>{(t=>{const e=ce[t.tagName];e?e(t):(t=>{if(!Ht(t))return;const e=Rt(t);t.style.backgroundImage=e.backgroundImage})(t)})(t),((t,e)=>{Et(t)||Lt(t)||(kt(t,e.class_entered),kt(t,e.class_exited),kt(t,e.class_applied),kt(t,e.class_loading),kt(t,e.class_loaded),kt(t,e.class_error))})(t,e),It(t),jt(t)})(e,t)})}},fe.load=(t,e)=>{const i=nt(e);ne(t,i)},fe.resetStatus=t=>{It(t)},it&&((t,e)=>{if(e)if(e.length)for(let i,o=0;i=e[o];o+=1)at(t,i);else at(t,e)})(fe,window.lazyLoadOptions);const ye=document.querySelector("main"),ve=new a,be=new class{constructor(t){this.app=t,this.appContent=t.querySelector("#js-loaded-content"),this.spinner=t.querySelector("#spinner"),this.menu=document.querySelector("aside"),this.menuItems=document.querySelectorAll("nav a[data-router-navigate]:not([data-router-disabled]), aside li a[data-router-navigate]:not([data-router-disabled])"),this.mobileNavTriggerEl=document.querySelector('[data-drawer-target="drawer-navigation"]'),this.defaultRoute="/dashboard"}showLoader(){this.spinner.classList.remove("hidden"),this.spinner.classList.add("flex"),this.appContent.classList.add("hidden")}hideLoader(){this.spinner.classList.remove("flex"),this.spinner.classList.add("hidden"),this.appContent.classList.remove("hidden")}determineActiveMenuLink(t){const e=document.querySelector(`aside li a[data-router-navigate="${t}"]`);if(e)return e;const i=t.replace(/\/[^\/]*$/,"");return i===t||""===i?null:this.determineActiveMenuLink(i)}async renderContent(t,e){this.menu.hasAttribute("aria-hidden")||this.mobileNavTriggerEl.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window})),this.showLoader();const i=await fetch(`${t}.html`,{cache:"no-store"});this.appContent.innerHTML=await i.text(),window.scrollTo(0,0),this.hideLoader(),this.app.setAttribute("data-router-current",t),this.app.setAttribute("data-modal-current",e),this.menuItems.forEach(t=>t.setAttribute("aria-selected","false"));const o=this.determineActiveMenuLink(t);o?.setAttribute("aria-selected","true"),o?.hasAttribute("data-router-sub-menu")&&o.closest("ul")?.classList.remove("hidden");const s=document.querySelectorAll("main a[data-router-navigate]:not([data-router-disabled])");this.registerNavItems(s);const r=t.replace(window.statisticsForStrava.appUrl.basePath,"").replace(/^\/+/,"").replaceAll("/","-");document.dispatchEvent(new CustomEvent("pageWasLoaded",{bubbles:!0,detail:{page:r,modalId:e}})),document.dispatchEvent(new CustomEvent(`pageWasLoaded.${r}`,{bubbles:!0,detail:{page:r,modalId:e}}))}registerNavItems(t){t.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();const i=t.getAttribute("data-router-navigate");document.dispatchEvent(new CustomEvent("navigationLinkHasBeenClicked",{bubbles:!0,detail:{link:t}})),this.navigateTo(i,null,t.hasAttribute("data-router-force-reload"))})})}registerBrowserBackAndForth(){window.onpopstate=t=>{t.state&&this.renderContent(t.state.route,t.state.modal)}}navigateTo(t,e,i=!1){(this.app.getAttribute("data-router-current")!==t||i)&&(this.renderContent(t,e),this.pushRouteToHistoryState(t,e))}pushRouteToHistoryState(t,e){const i=e?`${t}#${e}`:t;window.history.pushState({route:t,modal:e},"",i)}pushCurrentRouteToHistoryState(t){this.pushRouteToHistoryState(this.currentRoute(),t)}currentRoute(){return location.pathname.replace("/","")?location.pathname:this.defaultRoute}boot(){if(null===this.appContent)return;const t=this.currentRoute(),e=location.hash.replace("#","");this.registerNavItems(this.menuItems),this.registerBrowserBackAndForth(),this.renderContent(t,e),window.history.replaceState({route:t,modal:e},"",t+location.hash)}}(ye);be.boot();const we=new class{constructor(t){this.$main=t,this.$sideNav=document.querySelector("aside"),this.$topNav=document.querySelector("nav")}init(){const t="true"===localStorage.getItem("sideNavCollapsed");[this.$main,this.$sideNav,this.$topNav].forEach(e=>e.classList.toggle("sidebar-is-collapsed",t)),document.getElementById("toggle-sidebar-collapsed-state").addEventListener("click",()=>{const t=this.$main.classList.toggle("sidebar-is-collapsed");[this.$sideNav,this.$topNav].forEach(e=>e.classList.toggle("sidebar-is-collapsed",t)),localStorage.setItem("sideNavCollapsed",String(t)),document.dispatchEvent(new Event("sidebarWasResized"))})}}(ye),Se=new class{constructor(t){this.router=t,this.initElements=null,this.modalSkeletonNode=document.getElementById("modal-skeleton"),this.modalContent=this.modalSkeletonNode.querySelector("#modal-content"),this.modalSpinner=this.modalSkeletonNode.querySelector(".spinner"),this.modal=null}setInitElements(t){this.initElements=t}init(t){t.querySelectorAll("a[data-model-content-url]").forEach(t=>{t.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation();const i=t.getAttribute("data-model-content-url");this.open(i),this.router.pushCurrentRouteToHistoryState(i)})})}open(t){this.close(),this.modalSpinner.classList.remove("hidden"),this.modalSpinner.classList.add("flex"),this.modal=new Modal(this.modalSkeletonNode,{placement:"bottom",closable:!0,backdropClasses:"bg-gray-900/50 fixed inset-0 z-1400",onShow:async()=>{const e=await fetch(t,{cache:"no-store"});this.modalSpinner.classList.add("hidden"),this.modalSpinner.classList.remove("flex"),this.modalContent.innerHTML=await e.text(),this.initElements(this.modalSkeletonNode),this.modalContent.querySelector("button.close")&&this.modalContent.querySelector("button.close").addEventListener("click",t=>{t.preventDefault(),t.stopPropagation(),this.modal.hide(),this.router.pushCurrentRouteToHistoryState()}),document.body.addEventListener("keydown",t=>{"Escape"===t.key&&this.router.pushCurrentRouteToHistoryState()},{once:!0}),document.body.addEventListener("click",t=>{"modal-skeleton"===t.target.id&&this.router.pushCurrentRouteToHistoryState()},{once:!0});const i=this.modalSkeletonNode.querySelectorAll("a[data-router-navigate]:not([data-router-disabled])");this.router.registerNavItems(i);const o=t.replace(/^\/+/,"").replaceAll("/","-");document.dispatchEvent(new CustomEvent("modalWasLoaded."+o,{bubbles:!0,cancelable:!1,detail:{modal:this.modalSkeletonNode}}))},onHide:()=>{this.modalContent.innerHTML=""}}),this.modal.show()}close(){this.modal&&this.modal.hide()}}(be),Ce=new class{constructor(t,e,i){this.router=t,this.dataTableStorage=e,this.modalManager=i,this.allCharts=[],this.chartsPerTab=[],echarts.registerTheme("v5",(()=>{const t=["#f6efa6","#d88273","#bf444c"];return{color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:t,loading:{textColor:"red"},bar:{defaultBarGap:"20%",select:{itemStyle:{borderColor:"#212121",borderWidth:1}}},boxplot:{emphasis:{itemStyle:{shadowColor:"rgba(0,0,0,0.2)"}}},graph:{lineStyle:{color:"#aaa"},select:{itemStyle:{borderColor:"#212121"}}},heatmap:{select:{itemStyle:{borderColor:"#212121"}}},line:{symbolSize:4},pictorialBar:{select:{itemStyle:{borderColor:"#212121",borderWidth:1}}},pie:{radius:[0,"75%"],labelLine:{length2:15}},map:{defaultItemStyleColor:"#eee",label:{color:"#000"},itemStyle:{borderColor:"#444",areaColor:"#eee"},emphasis:{label:{color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}}},timeAxis:{axisLine:{lineStyle:{color:"#6E7079"}},axisLabel:{color:null},splitLine:{lineStyle:{color:["#E0E6F1"]}},splitArea:{areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}},minorSplitLine:{color:"#F4F7FD"}},logAxis:{axisLine:{lineStyle:{color:"#6E7079"}},axisLabel:{color:null},splitLine:{lineStyle:{color:["#E0E6F1"]}},splitArea:{areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}},minorSplitLine:{color:"#F4F7FD"}},valueAxis:{axisLine:{lineStyle:{color:"#6E7079"}},axisLabel:{color:null},splitLine:{lineStyle:{color:["#E0E6F1"]}},splitArea:{areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}},minorSplitLine:{color:"#F4F7FD"}},categoryAxis:{axisLine:{lineStyle:{color:"#6E7079"}},axisLabel:{color:null},splitLine:{lineStyle:{color:["#E0E6F1"]}},splitArea:{areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}},minorSplitLine:{color:"#F4F7FD"},axisTick:{show:!0}},axisPointer:{lineStyle:{color:"#B9BEC9"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{backgroundColor:"auto",color:"#fff"},handle:{color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2}},brush:{brushStyle:{color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},defaultOutOfBrushColor:"#ddd"},calendar:{splitLine:{lineStyle:{color:"#000"}},itemStyle:{borderColor:"#ccc"},dayLabel:{margin:"50%",color:"#000"},monthLabel:{margin:5,color:"#000"},yearLabel:{margin:30,color:"#ccc"}},dataZoom:{borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleStyle:{color:"#D2DBEE",opacity:.7},textStyle:{color:"#6E7079"},brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7",opacity:.7}},defaultLocationEdgeGap:7},geo:{defaultItemStyleColor:"#eee",label:{color:"#000"},itemStyle:{borderColor:"#444"},emphasis:{label:{color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},select:{label:{color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}}},grid:{left:"10%",top:60,bottom:70,borderColor:"#ccc"},legend:{top:0,bottom:null,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",itemGap:10,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",lineStyle:{inactiveColor:"#ccc"},textStyle:{color:"#333"},selectorLabel:{color:"#666",borderColor:"#666"},emphasis:{selectorLabel:{color:"#eee",backgroundColor:"#666"}},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageTextStyle:{color:"#333"}},title:{left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",textStyle:{color:"#464646"},subtextStyle:{color:"#6E7079"}},toolbox:{borderColor:"#ccc",padding:5,itemGap:8,iconStyle:{borderColor:"#666"},emphasis:{iconStyle:{borderColor:"#3E98C5"}}},tooltip:{axisPointer:{crossStyle:{color:"#999"}},textStyle:{color:"#666"},backgroundColor:"#fff",borderWidth:1,defaultBorderColor:"#fff"},visualMap:{color:[t[2],t[1],t[0]],inactive:["rgba(0,0,0,0)"],indicatorStyle:{shadowColor:"rgba(0,0,0,0.2)"},backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",padding:5,textStyle:{color:"#333"}}}})())}init(t){const e=this.getClickHandlers(),i=[];t.querySelectorAll("[data-echarts-options]").forEach(t=>{const o=echarts.init(t,"v5"),s=JSON.parse(t.getAttribute("data-echarts-options"));["tooltip.formatter","tooltip.valueFormatter","yAxis.axisLabel.formatter","yAxis[].axisLabel.formatter","series.symbolSize","dataZoom[].labelFormatter"].forEach(t=>((t,e)=>{const i=e.split("."),o=(t,e)=>{if(!t||0===e.length)return;const i=e[0],s=e.slice(1),r=i.endsWith("[]"),n=r?i.slice(0,-2):i;if(r){const e=t?.[n];Array.isArray(e)&&e.forEach(t=>o(t,s))}else 0===s.length?t?.[n]&&t[n]in window.statisticsForStrava.callbacks&&(t[n]=window.statisticsForStrava.callbacks[t[n]]):o(t?.[n],s)};o(t,i)})(s,t)),o.setOption(s);const r=t.getAttribute("data-echarts-click");r&&e[r]&&o.on("click",function(i){const o=JSON.parse(t.getAttribute("data-echarts-click-data")||"{}");e[r](i,o)}),t.hasAttribute("data-echarts-connect")&&i.push(o),this.allCharts.push(o);const n=((t,e)=>{const i=[];let o=t.parentElement;for(;o;)e&&!o.matches(e)||i.push(o),o=o.parentElement;return i})(t,'div[role="tabpanel"]');for(const t of n){const e=t.getAttribute("id");this.chartsPerTab[e]??=[],this.chartsPerTab[e].push(o)}}),echarts.connect(i)}getClickHandlers(){return{handleMonthlyStatsClick:(t,e)=>{if(!t||!t.dataIndex||!t.seriesName)return;const i=(t.dataIndex+1).toString().padStart(2,"0"),o=`month/month-${t.seriesName}-${i}.html`;this.modalManager.open(o),this.router.pushCurrentRouteToHistoryState(o)},handleWeeklyStatsClick:(t,e)=>{if(!t||!t.dataIndex)return;const i=e.weeks;!t.dataIndex in i||(this.dataTableStorage.set({activities:{sportType:e.sportTypes,"start-date":{from:i[t.dataIndex].from,to:i[t.dataIndex].to}}}),this.router.navigateTo("/activities"))},handleActivityGridChartClick:(t,e)=>{!t||!t.value||t.value<1||(this.dataTableStorage.set({activities:{"start-date":{from:t.value[0],to:t.value[0]}}}),this.router.navigateTo("/activities"))}}}reset(){this.allCharts=[],this.chartsPerTab=[]}resizeAll(){this.allCharts.filter(t=>t.getDom().offsetParent).forEach(t=>t.resize())}resizeInTab(t){t in this.chartsPerTab&&this.chartsPerTab[t].filter(t=>t.getDom().offsetParent).forEach(t=>t.resize())}}(be,ve,Se),xe=new class{init(t){t.querySelectorAll("[data-leaflet]").forEach(function(t){const e=JSON.parse(t.getAttribute("data-leaflet")),i=L.map(t,{scrollWheelZoom:e.scrollWheelZoom||!1,minZoom:e.minZoom,maxZoom:e.maxZoom,zoomSnap:.5,zoomDelta:.5});e.tileLayer&&L.tileLayer(e.tileLayer).addTo(i);const o=L.featureGroup();if(e.routes.forEach(t=>{const i=L.Polyline.fromEncoded(t).getLatLngs();L.polyline(i,{color:"#fc6719",weight:2,opacity:.9,lineJoin:"round"}).addTo(o);const s=(t,e)=>{L.circleMarker(t,{radius:8,color:"#303030",fillColor:e,fillOpacity:1,opacity:1}).addTo(o)};e.showStartMarker&&s(i[0],"#3ba272"),e.showEndMarker&&s(i.at(-1),"#BD2D22")}),e.imageOverlay&&(L.imageOverlay(e.imageOverlay,e.bounds,{attribution:'© Zwift'}).addTo(i),i.setMaxBounds(e.bounds)),o.addTo(i),i.fitBounds(o.getBounds(),{maxZoom:e.maxZoom}),e.gpxLink&&L.control.downloadGpx({gpxLink:e.gpxLink}).addTo(i),!t.hasAttribute("data-leaflet-echart-connect"))return;const s=document.querySelector("div[data-echarts-options][data-leaflet-echart-connect]");if(!s)return;const r=JSON.parse(s.getAttribute("data-leaflet-echart-connect"));if(!r)return;const n=L.circleMarker([0,0],{radius:6,color:"#303030",fillColor:"#F26722",fillOpacity:0,opacity:0}).addTo(i),a=echarts.getInstanceByDom(s),l=i.getZoom();a.on("updateAxisPointer",function(t){if(!t.dataIndex||!t.dataIndex in r)return void n.setStyle({opacity:0,fillOpacity:0});const e=r[t.dataIndex];n.setLatLng(e),n.setStyle({opacity:1,fillOpacity:1}),(i.getZoom()>l||!i.getBounds().contains(e))&&i.panTo(e)})})}},Ie=new class{constructor(t){this.chartManager=t}init(t){t.querySelectorAll("[data-tabs]").forEach(t=>{const e=[];let i=null;t.querySelectorAll('[role="tab"]').forEach(function(t){const o=t.getAttribute("data-tabs-target");e.push({id:o,triggerEl:t,targetEl:document.querySelector(o)}),t.hasAttribute("data-tab-default")&&(i=o)}),new Tabs(t,e,{defaultTabId:i,activeClasses:t.getAttribute("data-tabs-active-classes")||"text-strava-orange border-strava-orange hover:text-gray-600 hover:border-gray-300",inactiveClasses:t.getAttribute("data-tabs-inactive-classes")||"text-gray-500 hover:text-gray-600 border-gray-100 hover:border-gray-300",onShow:(t,e)=>{const i=e.id.replace("#","");this.chartManager.resizeInTab(i)}})})}}(Ce),Ee=new class{constructor(t){this.storage=t}init(){document.querySelectorAll("div[data-dataTable-settings]").forEach(t=>{const e=t.querySelector("table"),i=e?.querySelector("tbody"),s=t.querySelector(".scroll-area"),a=t.querySelector('input[type="search"]'),l=t.querySelector("[data-dataTable-reset]"),c=JSON.parse(t.getAttribute("data-dataTable-settings")),d=new o(t,this.storage),u=new n(t,i,s),h=new r(t.querySelectorAll("thead th[data-dataTable-sort]"));e&&i&&a&&(t.querySelectorAll('input[type="date"][data-default-to-today]').forEach(t=>t.valueAsDate=new Date),fetch(c.url,{cache:"no-store"}).then(async e=>{const i=await e.json();u.init(i);const o=()=>{const t=a.value.trim(),e=d.getActiveFilters();d.updateDropdownState(e);const o=d.applyFiltersToRows(i,t);u.update(o),l.classList.toggle("hidden",!(Object.keys(e).length>0||t.length>0))};d.prefillFromStorage(c.name),o(),a.addEventListener("input",((t,e=300)=>{let i;return(...o)=>{clearTimeout(i),i=setTimeout(()=>{t.apply(void 0,o)},e)}})(o)),t.querySelectorAll("[data-dataTable-filter]").forEach(t=>t.addEventListener("input",o)),h.attachListeners(i,u.cluster,s),l&&l.addEventListener("click",t=>{t.preventDefault(),a.value="",d.resetAll(),o()}),t.querySelectorAll("[data-datatable-filter-clear]").forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();const i=t.getAttribute("data-datatable-filter-clear");d.resetOne(i),o()})})}))})}}(ve),Le=new class{constructor(t){this.chartManager=t}init(t){t.querySelectorAll("[data-fullscreen-trigger]").forEach(t=>{t.addEventListener("click",e=>{if(e.preventDefault(),document.fullscreenElement)return;const i=t.closest("[data-fullscreen-content]");i.requestFullscreen().then(()=>{this.chartManager.resizeAll()}),i.addEventListener("fullscreenchange",()=>{t.classList.toggle("hidden",Boolean(document.fullscreenElement)),i.classList.toggle("fullscreen-is-enabled",Boolean(document.fullscreenElement)),i.classList.toggle("group",Boolean(document.fullscreenElement))})})})}}(Ce),Te=new fe({thresholds:"50px",callback_error:t=>{t.setAttribute("src",window.statisticsForStrava.placeholderBrokenImage)}}),Ae=t=>{Te.update(),Ie.init(t),initPopovers(),initTooltips(),initDropdowns(),initAccordions(),Se.init(t),Ce.init(t),xe.init(t),Le.init(t)};Se.setInitElements(Ae),we.init(),document.addEventListener("pageWasLoaded",t=>{Se.close(),Ee.init(),Ce.reset(),Ae(document),t.detail&&t.detail.modalId&&Se.open(t.detail.modalId)}),document.addEventListener("pageWasLoaded.heatmap",()=>{const t=document.querySelector(".heatmap-wrapper");new R(t,Se).render()}),document.addEventListener("pageWasLoaded.photos",()=>{const t=document.querySelector(".photo-wall-wrapper");new et(t,ve).render()}),document.addEventListener("navigationLinkHasBeenClicked",t=>{t.detail&&t.detail.link&&t.detail.link.hasAttribute("data-dataTable-filters")&&ve.set(JSON.parse(t.detail.link.getAttribute("data-dataTable-filters")))}),document.addEventListener("dataTableClusterWasChanged",()=>{Se.init(document)}),window.addEventListener("resize",function(){Ce.resizeAll()}),document.addEventListener("sidebarWasResized",function(){Ce.resizeAll()});const _e=document.querySelector("a[data-modal-custom-ai]");_e&&_e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const e=_e.getAttribute("data-modal-custom-ai");Se.open(e),be.pushCurrentRouteToHistoryState(e)}),document.addEventListener("modalWasLoaded.ai-chat",t=>{const e=t.detail.modal;new Y(e).render()}),(async()=>{await(async()=>{const t=document.querySelector("[data-latest-version]");if(!t)return;const e=t.dataset.currentVersion;if(!e)return;const i="latestReleaseCache",o=Date.now(),s=JSON.parse(localStorage.getItem(i)||"null");if(s&&o-s.timestamp<216e5)((t,e)=>{t=t.replace(/^v/,""),e=e.replace(/^v/,"");const i=t.split(".").map(Number),o=e.split(".").map(Number);for(let t=0;ts)return 1;if(e".github/workflows/docker-image.yml"===t.path))return;X(s),localStorage.setItem(i,JSON.stringify({latestVersion:s,timestamp:o}))}catch(t){console.error("Error checking latest release:",t)}})()})()})()})(); \ No newline at end of file diff --git a/public/js/fullscreen.js b/public/js/fullscreen.js new file mode 100644 index 000000000..06178e144 --- /dev/null +++ b/public/js/fullscreen.js @@ -0,0 +1,38 @@ +export default class FullscreenManager { + constructor(chartManager) { + this.chartManager = chartManager; + } + + init(rootNode) { + rootNode.querySelectorAll('[data-fullscreen-trigger]').forEach((el) => { + el.addEventListener('click', (e) => { + e.preventDefault(); + + if (document.fullscreenElement) { + return; + } + + const fullScreenContent = el.closest('[data-fullscreen-content]'); + fullScreenContent.requestFullscreen().then(() => { + this.chartManager.resizeAll(); + }); + + fullScreenContent.addEventListener('fullscreenchange', () => { + el.classList.toggle( + 'hidden', + Boolean(document.fullscreenElement) + ); + fullScreenContent.classList.toggle( + 'fullscreen-is-enabled', + Boolean(document.fullscreenElement) + ); + fullScreenContent.classList.toggle( + 'group', + Boolean(document.fullscreenElement) + ); + }); + + }); + }); + } +} \ No newline at end of file diff --git a/src/Domain/Activity/ActivityIntensity.php b/src/Domain/Activity/ActivityIntensity.php index 0961475ec..fcef80577 100644 --- a/src/Domain/Activity/ActivityIntensity.php +++ b/src/Domain/Activity/ActivityIntensity.php @@ -11,6 +11,8 @@ final class ActivityIntensity { + public const int HIGH_THRESHOLD_VALUE = 67; + /** @var array */ public static array $cachedIntensities = []; @@ -46,8 +48,13 @@ public function calculateForDate(SerializableDateTime $on): int return self::$cachedIntensities[$cacheKey]; } - private function calculateForActivity(Activity $activity): ?int + public function calculateForActivity(Activity $activity): int { + $cacheKey = (string) $activity->getId(); + if (array_key_exists($cacheKey, self::$cachedIntensities) && null !== self::$cachedIntensities[$cacheKey]) { + return self::$cachedIntensities[$cacheKey]; + } + if (ActivityType::RIDE === $activity->getSportType()->getActivityType()) { try { // To calculate intensity, we need @@ -59,7 +66,10 @@ private function calculateForActivity(Activity $activity): ?int // Use more complicated and more accurate calculation. // intensityFactor = averagePower / FTP // (durationInSeconds * averagePower * intensityFactor) / (FTP x 3600) * 100 - return (int) round(($activity->getMovingTimeInSeconds() * $averagePower * ($averagePower / $ftp->getValue())) / ($ftp->getValue() * 3600) * 100); + $intensity = (int) round(($activity->getMovingTimeInSeconds() * $averagePower * ($averagePower / $ftp->getValue())) / ($ftp->getValue() * 3600) * 100); + self::$cachedIntensities[$cacheKey] = $intensity; + + return self::$cachedIntensities[$cacheKey]; } } catch (EntityNotFound) { } @@ -74,9 +84,14 @@ private function calculateForActivity(Activity $activity): ?int // (durationInSeconds x averageHeartRate x intensityFactor) / (maxHeartRate x 3600) x 100 $maxHeartRate = round($athleteMaxHeartRate * 0.92); - return (int) round(($activity->getMovingTimeInSeconds() * $averageHeartRate * ($averageHeartRate / $maxHeartRate)) / ($maxHeartRate * 3600) * 100); + $intensity = (int) round(($activity->getMovingTimeInSeconds() * $averageHeartRate * ($averageHeartRate / $maxHeartRate)) / ($maxHeartRate * 3600) * 100); + self::$cachedIntensities[$cacheKey] = $intensity; + + return self::$cachedIntensities[$cacheKey]; } - return null; + self::$cachedIntensities[$cacheKey] = 0; + + return 0; } } diff --git a/src/Domain/Dashboard/DashboardLayout.php b/src/Domain/Dashboard/DashboardLayout.php index d4c001faf..9b27c3fbc 100644 --- a/src/Domain/Dashboard/DashboardLayout.php +++ b/src/Domain/Dashboard/DashboardLayout.php @@ -20,32 +20,32 @@ public function getIterator(): \Traversable /** * @return list */ - private static function default(): array + public static function default(): array { return [ ['widget' => 'mostRecentActivities', 'width' => 66, 'enabled' => true, 'config' => ['numberOfActivitiesToDisplay' => 5]], ['widget' => 'introText', 'width' => 33, 'enabled' => true], ['widget' => 'trainingGoals', 'width' => 33, 'enabled' => false, 'config' => ['goals' => []]], ['widget' => 'weeklyStats', 'width' => 100, 'enabled' => true, 'config' => ['metricsDisplayOrder' => ['distance', 'movingTime', 'elevation']]], + ['widget' => 'activityGrid', 'width' => 100, 'enabled' => true], + ['widget' => 'streaks', 'width' => 33, 'enabled' => true], + ['widget' => 'athleteProfile', 'width' => 33, 'enabled' => true], + ['widget' => 'eddington', 'width' => 33, 'enabled' => true], ['widget' => 'peakPowerOutputs', 'width' => 50, 'enabled' => true], ['widget' => 'heartRateZones', 'width' => 50, 'enabled' => true], - ['widget' => 'activityGrid', 'width' => 100, 'enabled' => true], ['widget' => 'monthlyStats', 'width' => 100, 'enabled' => true, 'config' => [ 'enableLastXYearsByDefault' => 10, 'metricsDisplayOrder' => ['distance', 'movingTime', 'elevation'], ]], ['widget' => 'trainingLoad', 'width' => 100, 'enabled' => true], ['widget' => 'weekdayStats', 'width' => 50, 'enabled' => true], ['widget' => 'dayTimeStats', 'width' => 50, 'enabled' => true], - ['widget' => 'distanceBreakdown', 'width' => 100, 'enabled' => true], - ['widget' => 'bestEfforts', 'width' => 100, 'enabled' => true], + ['widget' => 'distanceBreakdown', 'width' => 50, 'enabled' => true], + ['widget' => 'gearStats', 'width' => 50, 'enabled' => true, 'config' => ['includeRetiredGear' => true]], ['widget' => 'yearlyStats', 'width' => 100, 'enabled' => true, 'config' => ['enableLastXYearsByDefault' => 10, 'metricsDisplayOrder' => ['distance', 'movingTime', 'elevation']]], ['widget' => 'zwiftStats', 'width' => 50, 'enabled' => true], - ['widget' => 'gearStats', 'width' => 50, 'enabled' => true, 'config' => ['includeRetiredGear' => true]], - ['widget' => 'streaks', 'width' => 50, 'enabled' => true], - ['widget' => 'eddington', 'width' => 50, 'enabled' => true], + ['widget' => 'ftpHistory', 'width' => 50, 'enabled' => true], ['widget' => 'challengeConsistency', 'width' => 50, 'enabled' => true, 'config' => ['challenges' => []]], ['widget' => 'mostRecentChallengesCompleted', 'width' => 50, 'enabled' => true, 'config' => ['numberOfChallengesToDisplay' => 5]], - ['widget' => 'ftpHistory', 'width' => 50, 'enabled' => true], ['widget' => 'athleteWeightHistory', 'width' => 50, 'enabled' => true], ]; } diff --git a/src/Domain/Dashboard/Widget/AthleteProfile/AthleteProfileChart.php b/src/Domain/Dashboard/Widget/AthleteProfile/AthleteProfileChart.php new file mode 100644 index 000000000..57f416d32 --- /dev/null +++ b/src/Domain/Dashboard/Widget/AthleteProfile/AthleteProfileChart.php @@ -0,0 +1,87 @@ + */ + private array $chartData, + private TranslatorInterface $translator, + ) { + } + + /** + * @param array $chartData + */ + public static function create( + array $chartData, + TranslatorInterface $translator, + ): self { + return new self( + chartData: $chartData, + translator: $translator + ); + } + + /** + * @return array + */ + public function build(): array + { + $chartData = []; + + foreach ($this->chartData as $lastXDays => $data) { + $chartData[] = [ + 'value' => $data, + 'name' => $this->translator->trans('last {numberOfDays} days', ['{numberOfDays}' => $lastXDays]), + ]; + } + + return [ + 'backgroundColor' => null, + 'animation' => true, + 'grid' => [ + 'left' => '5px', + 'right' => '5px', + 'bottom' => '5px', + 'containLabel' => true, + ], + 'legend' => [ + 'show' => true, + 'orient' => 'vertical', + 'right' => 0, + ], + 'tooltip' => [ + 'show' => true, + 'valueFormatter' => 'formatPercentage', + ], + 'radar' => [ + 'indicator' => [ + ['name' => $this->translator->trans('Volume'), 'max' => 100], + ['name' => $this->translator->trans('Consistency'), 'max' => 100], + ['name' => $this->translator->trans('Intensity'), 'max' => 100], + ['name' => $this->translator->trans('Duration'), 'max' => 100], + ['name' => $this->translator->trans('Density'), 'max' => 100], + ['name' => $this->translator->trans('Variety'), 'max' => 100], + ], + ], + 'series' => [ + [ + 'type' => 'radar', + 'symbolSize' => 5, + 'lineStyle' => [ + 'width' => 1, + 'opacity' => 1, + ], + 'areaStyle' => [ + 'opacity' => 0.1, + ], + 'data' => $chartData, + ], + ], + ]; + } +} diff --git a/src/Domain/Dashboard/Widget/AthleteProfile/AthleteProfileWidget.php b/src/Domain/Dashboard/Widget/AthleteProfile/AthleteProfileWidget.php new file mode 100644 index 000000000..dbd27d073 --- /dev/null +++ b/src/Domain/Dashboard/Widget/AthleteProfile/AthleteProfileWidget.php @@ -0,0 +1,113 @@ +queryBus->ask(new FindAthleteProfileMetrics(DateRange::lastXDays($now, $lastXDays))); + $numberOfActivities = $findAthleteProfileMetricsResponse->getNumberOfActivities(); + if (0 === $numberOfActivities) { + continue; + } + + $movingTimeInHours = $findAthleteProfileMetricsResponse->getMovingTime(); + $numberOfActiveDays = $findAthleteProfileMetricsResponse->getNumberOfActiveDays(); + + // VOLUME: 10 h/week = very active amateur (works across sports). + $weeklyHours = $movingTimeInHours->toFloat() / ($lastXDays / 7); + $volume = min(100, $weeklyHours / 10 * 100); + + // CONSISTENCY: 5 days/week = excellent consistency. + $activeDaysRatio = $numberOfActiveDays / $lastXDays; + $consistency = min(100, $activeDaysRatio / 0.7 * 100); + + // INTENSITY: 25% = realistic upper bound for sustainable hard training. + $countActivitiesWithHighEffort = 0; + foreach ($findAthleteProfileMetricsResponse->getActivityIds() as $activityId) { + $activityIntensity = $this->activityIntensity->calculateForActivity($this->activitiesEnricher->getEnrichedActivity($activityId)); + if (ActivityIntensity::HIGH_THRESHOLD_VALUE > $activityIntensity) { + continue; + } + ++$countActivitiesWithHighEffort; + } + $intensity = min(100, ($countActivitiesWithHighEffort / $numberOfActivities) / 0.25 * 100); + + // DURATION: Median > 90 min = endurance-leaning athlete. + $activityMovingTimes = $findAthleteProfileMetricsResponse->getActivityMovingTimesInSeconds(); + sort($activityMovingTimes); + + $middleIndex = (int) floor(count($activityMovingTimes) / 2); + sort($activityMovingTimes, SORT_NUMERIC); + $medianInSeconds = $activityMovingTimes[$middleIndex]; + // Handle the even case by averaging the middle 2 items. + if (0 == count($activityMovingTimes) % 2) { + $medianInSeconds = ($medianInSeconds + $activityMovingTimes[$middleIndex - 1]) / 2; + } + $duration = min(100, Seconds::from($medianInSeconds)->toMinute()->toFloat() / 90 * 100); + + // DENSITY: 2h per training day = high density. + $averageTrainingDurationPerDay = $movingTimeInHours->toFloat() / $numberOfActiveDays; + $density = min(100, $averageTrainingDurationPerDay / 2 * 100); + + // VARIETY: 0.5 is the anchor that defines "max meaningful variety" + $dominantSportFraction = $findAthleteProfileMetricsResponse->getNumberOfActivitiesInMostPopularActivityType() / $numberOfActivities; + $variety = min(100, (1 - $dominantSportFraction) / 0.5 * 100); + + $chartData[$lastXDays] = [ + round($volume), + round($consistency), + round($intensity), + round($duration), + round($density), + round($variety), + ]; + } + + if (empty($chartData)) { + return null; + } + + return $this->twig->load('html/dashboard/widget/widget--athlete-profile.html.twig')->render([ + 'athleteProfileChart' => Json::encode( + AthleteProfileChart::create( + chartData: $chartData, + translator: $this->translator + )->build() + ), + ]); + } +} diff --git a/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetrics.php b/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetrics.php new file mode 100644 index 000000000..1e0fc0488 --- /dev/null +++ b/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetrics.php @@ -0,0 +1,28 @@ + + */ +final readonly class FindAthleteProfileMetrics implements Query +{ + public function __construct( + private DateRange $dateRange, + ) { + } + + public function getFrom(): SerializableDateTime + { + return $this->dateRange->getFrom(); + } + + public function getTo(): SerializableDateTime + { + return $this->dateRange->getTill(); + } +} diff --git a/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetricsQueryHandler.php b/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetricsQueryHandler.php new file mode 100644 index 000000000..a983df44e --- /dev/null +++ b/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetricsQueryHandler.php @@ -0,0 +1,85 @@ + (string) $query->getFrom()->format('Y-m-d'), + 'endDate' => (string) $query->getTo()->format('Y-m-d'), + ]; + + $aggregatedResult = $this->connection->executeQuery( + <<fetchAssociative(); + + $numberOfActiveDays = (int) $this->connection->executeQuery( + <<fetchOne(); + + $activityMovingTimes = $this->connection->executeQuery( + <<fetchAllKeyValue(); + + $numberOfActivitiesInMostPopularActivityType = (int) $this->connection->executeQuery( + <<fetchOne(); + + return new FindAthleteProfileMetricsResponse( + activityIds: ActivityIds::fromArray(array_map( + ActivityId::fromString(...), + array_keys($activityMovingTimes) + )), + movingTime: Seconds::from($aggregatedResult['movingTime'] ?? 0)->toHour(), + numberOfActivities: $aggregatedResult['numberOfActivities'] ?? 0, + numberOfActiveDays: $numberOfActiveDays, + numberOfActivitiesInMostPopularActivityType: $numberOfActivitiesInMostPopularActivityType, + activityMovingTimesInSeconds: array_values($activityMovingTimes), + ); + } +} diff --git a/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetricsResponse.php b/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetricsResponse.php new file mode 100644 index 000000000..2526e637a --- /dev/null +++ b/src/Domain/Dashboard/Widget/AthleteProfile/FindAthleteProfileMetrics/FindAthleteProfileMetricsResponse.php @@ -0,0 +1,56 @@ +activityIds; + } + + public function getMovingTime(): Hour + { + return $this->movingTime; + } + + public function getNumberOfActivities(): int + { + return $this->numberOfActivities; + } + + public function getNumberOfActiveDays(): int + { + return $this->numberOfActiveDays; + } + + public function getNumberOfActivitiesInMostPopularActivityType(): int + { + return $this->numberOfActivitiesInMostPopularActivityType; + } + + /** + * @return int[] + */ + public function getActivityMovingTimesInSeconds(): array + { + return $this->activityMovingTimesInSeconds; + } +} diff --git a/src/Domain/Dashboard/Widget/DaytimeStats/DayTimeStatsWidget.php b/src/Domain/Dashboard/Widget/DaytimeStats/DayTimeStatsWidget.php index 31314fddc..0a18ca873 100644 --- a/src/Domain/Dashboard/Widget/DaytimeStats/DayTimeStatsWidget.php +++ b/src/Domain/Dashboard/Widget/DaytimeStats/DayTimeStatsWidget.php @@ -39,7 +39,7 @@ public function render(SerializableDateTime $now, WidgetConfiguration $configura $dayTimeStats = DaytimeStats::create($activities); $statsPerActivityType[$activityType] = [ 'chart' => Json::encode( - DaytimeStatsCharts::create( + DaytimeStatsChart::create( daytimeStats: $dayTimeStats, translator: $this->translator, )->build(), @@ -55,7 +55,7 @@ public function render(SerializableDateTime $now, WidgetConfiguration $configura return $this->twig->load('html/dashboard/widget/widget--day-time-stats.html.twig')->render([ 'allActivities' => [ 'chart' => Json::encode( - DaytimeStatsCharts::create( + DaytimeStatsChart::create( daytimeStats: $allDayTimeStats, translator: $this->translator, )->build(), diff --git a/src/Domain/Dashboard/Widget/DaytimeStats/DaytimeStatsCharts.php b/src/Domain/Dashboard/Widget/DaytimeStats/DaytimeStatsChart.php similarity index 96% rename from src/Domain/Dashboard/Widget/DaytimeStats/DaytimeStatsCharts.php rename to src/Domain/Dashboard/Widget/DaytimeStats/DaytimeStatsChart.php index a9b58672e..ad8b242ee 100644 --- a/src/Domain/Dashboard/Widget/DaytimeStats/DaytimeStatsCharts.php +++ b/src/Domain/Dashboard/Widget/DaytimeStats/DaytimeStatsChart.php @@ -4,7 +4,7 @@ use Symfony\Contracts\Translation\TranslatorInterface; -final readonly class DaytimeStatsCharts +final readonly class DaytimeStatsChart { private function __construct( private DaytimeStats $daytimeStats, @@ -23,7 +23,7 @@ public static function create( } /** - * @return array + * @return array */ public function build(): array { diff --git a/src/Domain/Dashboard/Widget/PeakPowerOutputsWidget.php b/src/Domain/Dashboard/Widget/PeakPowerOutputsWidget.php index e4d7973ea..537af45ad 100644 --- a/src/Domain/Dashboard/Widget/PeakPowerOutputsWidget.php +++ b/src/Domain/Dashboard/Widget/PeakPowerOutputsWidget.php @@ -78,14 +78,14 @@ public function render(SerializableDateTime $now, WidgetConfiguration $configura powerOutputs: $bestAllTimePowerOutputsPerActivityType[$activityType->value], ); $bestPowerOutputs->add( - description: $this->translator->trans('Last 45 days'), + description: $this->translator->trans('Last {numberOfDays} days', ['{numberOfDays}' => 45]), powerOutputs: $this->activityPowerRepository->findBestForSportTypesInDateRange( sportTypes: SportTypes::thatSupportPeakPowerOutputs($activityType), dateRange: DateRange::lastXDays($now, 45) ) ); $bestPowerOutputs->add( - description: $this->translator->trans('Last 90 days'), + description: $this->translator->trans('Last {numberOfDays} days', ['{numberOfDays}' => 90]), powerOutputs: $this->activityPowerRepository->findBestForSportTypesInDateRange( sportTypes: SportTypes::thatSupportPeakPowerOutputs($activityType), dateRange: DateRange::lastXDays($now, 90) diff --git a/src/Infrastructure/Twig/SvgsTwigExtension.php b/src/Infrastructure/Twig/SvgsTwigExtension.php index 794e91f5c..09cdc51ff 100644 --- a/src/Infrastructure/Twig/SvgsTwigExtension.php +++ b/src/Infrastructure/Twig/SvgsTwigExtension.php @@ -20,6 +20,7 @@ public function svg(string $name, ?string $classes = null): string 'delta' => '', 'distance' => '', 'elevation' => '', + 'expand' => '', 'hashtag' => ' ', 'heart-rate' => '', 'history' => '', @@ -48,9 +49,6 @@ public function svg(string $name, ?string $classes = null): string return $svg; } - /** - * @codeCoverageIgnore - */ #[AsTwigFunction('svgSportType', isSafe: ['html'])] public function svgSportType(SportType $sportType, ?string $classes = null): string { diff --git a/templates/html/dashboard/dashboard.html.twig b/templates/html/dashboard/dashboard.html.twig index e204e9c7e..4f1a42caf 100644 --- a/templates/html/dashboard/dashboard.html.twig +++ b/templates/html/dashboard/dashboard.html.twig @@ -8,7 +8,7 @@ {% autoescape false %}
{% for renderedWidget in widgets %} -
+
{{ renderedWidget.getRenderedHtml() }}
{% endfor %} diff --git a/templates/html/dashboard/widget/widget--activity-grid.html.twig b/templates/html/dashboard/widget/widget--activity-grid.html.twig index 979a91c8c..b5b231144 100644 --- a/templates/html/dashboard/widget/widget--activity-grid.html.twig +++ b/templates/html/dashboard/widget/widget--activity-grid.html.twig @@ -2,7 +2,7 @@ {% autoescape false %}

{{ "Activity heatmap"|trans }}

- -