1<!DOCTYPE html><html><head> 2 <meta charset="utf-8"> 3 4 <title>Training Dashboard - Quantified Self</title> 5 6 <base href="/"> 7 8 <!-- View Port --> 9 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0"> 10 11 <meta name="description" content="Connect Garmin, Suunto, COROS and Wahoo. Analyze training, sleep and HRV in one dashboard; log blood pressure and weight, and add timeline notes."> 12 <meta name="author" content="Dimitrios Kanellopoulos"> 13 <!-- OG:META --> 14 <meta property="og:title" content="Training Dashboard - Quantified Self"> 15 <meta property="og:description" content="Connect Garmin, Suunto, COROS and Wahoo. Analyze training, sleep and HRV in one dashboard; log blood pressure and weight, and add timeline notes."> 16 <meta property="og:image" content="https://quantified-self.io/assets/images/og-image-v4.jpg"> 17 <meta property="og:image:alt" content="Quantified Self training charts and activity analysis"> 18 <meta property="og:type" content="website"> 19 <meta property="og:url" content="https://quantified-self.io/"> 20 <meta name="twitter:card" content="summary_large_image"> 21 <meta name="twitter:description" content="Connect Garmin, Suunto, COROS and Wahoo. Analyze training, sleep and HRV in one dashboard; log blood pressure and weight, and add timeline notes."> 22 <meta name="twitter:image" content="https://quantified-self.io/assets/images/og-image-v4.jpg"> 23 <meta property="og:site_name" content="Quantified Self"> 24 <meta name="twitter:image:alt" content="Quantified Self training charts and activity analysis"> 25 26 <meta name="apple-mobile-web-app-capable" content="yes"> 27 <meta name="mobile-web-app-capable" content="yes"> 28 <meta name="apple-mobile-web-app-title" content="Quantified Self"> 29 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> 30 31 <link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"> 32 <link rel="icon" type="image/png" sizes="32x32" href="assets/favicons/favicon-32x32.png"> 33 <link rel="icon" type="image/png" sizes="16x16" href="assets/favicons/favicon-16x16.png"> 34 <link rel="mask-icon" href="assets/favicons/safari-pinned-tab.svg" color="#03a9f4"> 35 <meta name="msapplication-TileColor" content="#03a9f4"> 36 <meta name="msapplication-config" content="assets/favicons/browserconfig.xml"> 37 <link rel="manifest" href="manifest.json"> 38 <meta name="theme-color" content="#03a9f4"> 39 40 41 42 <!-- Fonts are bundled locally via @fontsource imports in styles.scss --> 43<link rel="stylesheet" href="styles-D5LMU2BY.css"><style ng-app-id="ng">[_nghost-ng-c1933515739]{display:block}</style><style ng-app-id="ng">.qs-loader-overlay[_ngcontent-ng-c1881274973]{position:fixed;inset:0;z-index:1200}mat-sidenav-container[_ngcontent-ng-c1881274973]{height:100vh;background:var(--mat-sys-surface)}@supports (height: 100dvh){mat-sidenav-container[_ngcontent-ng-c1881274973]{height:100dvh}}mat-sidenav-content[_ngcontent-ng-c1881274973]{background:var(--mat-sys-surface)}.app-shell-scroll-content[_ngcontent-ng-c1881274973]{transition:padding-top .18s ease}mat-sidenav[_ngcontent-ng-c1881274973]{width:300px;min-width:300px;max-width:360px;background:var(--mat-sys-surface-container-lowest);border-right:1px solid var(--mat-sys-outline-variant)}mat-sidenav[_ngcontent-ng-c1881274973] .mat-drawer-inner-container[_ngcontent-ng-c1881274973]{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}mat-sidenav[_ngcontent-ng-c1881274973] .mat-drawer-inner-container[_ngcontent-ng-c1881274973]::-webkit-scrollbar{display:none;width:0;height:0}mat-progress-bar[_ngcontent-ng-c1881274973]{position:fixed;top:0;left:0;width:100%;z-index:10003}.dark-theme[_nghost-ng-c1881274973] mat-sidenav[_ngcontent-ng-c1881274973], .dark-theme [_nghost-ng-c1881274973] mat-sidenav[_ngcontent-ng-c1881274973]{border-right:1px solid var(--mat-sys-outline-variant)}.theme-reveal-overlay[_ngcontent-ng-c1881274973]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:99999;pointer-events:none;background:linear-gradient(90deg,var(--mat-sys-surface) 0%,var(--mat-sys-surface) 50%,transparent 50%,transparent 100%);background-size:200% 100%;background-position:100% 0;animation:_ngcontent-ng-c1881274973_gradient-sweep .6s ease-in-out forwards}.theme-reveal-overlay.dark-theme[_ngcontent-ng-c1881274973]{background:linear-gradient(90deg,var(--mat-sys-surface) 0%,var(--mat-sys-surface) 50%,transparent 50%,transparent 100%);background-size:200% 100%;background-position:100% 0}@keyframes _ngcontent-ng-c1881274973_gradient-sweep{0%{background-position:100% 0}50%{background-position:0% 0}to{background-position:-100% 0}}.router-outlet-container[_ngcontent-ng-c1881274973]{position:relative}</style><style ng-app-id="ng">.grace-period-banner[_ngcontent-ng-c122525178]{background-color:#fff3cd;color:#856404;padding:12px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #ffeeba;z-index:1002;position:fixed;top:0;left:0;right:0;font-size:14px;line-height:1.4}.grace-period-banner[_ngcontent-ng-c122525178] .banner-warning-icon[_ngcontent-ng-c122525178]{flex-shrink:0;color:#856404;font-size:20px;height:20px;width:20px}.grace-period-banner[_ngcontent-ng-c122525178] .banner-text[_ngcontent-ng-c122525178]{flex:1;min-width:0}.grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178]{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;color:#856404}.grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178] mat-icon[_ngcontent-ng-c122525178]{font-size:18px;width:18px;height:18px;line-height:18px}.grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178]:hover{background-color:#8564041a}.grace-period-banner[_ngcontent-ng-c122525178] a[_ngcontent-ng-c122525178]{color:#856404;font-weight:400;text-decoration:underline;cursor:pointer}.grace-period-banner[_ngcontent-ng-c122525178] a[_ngcontent-ng-c122525178]:hover{color:#533f03}@media only screen and (max-width: 599.98px){.grace-period-banner[_ngcontent-ng-c122525178]{padding:10px 12px;gap:8px;font-size:13px}.grace-period-banner[_ngcontent-ng-c122525178] .banner-warning-icon[_ngcontent-ng-c122525178]{font-size:18px;height:18px;width:18px}.grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178]{width:28px;height:28px}.grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178] mat-icon[_ngcontent-ng-c122525178]{font-size:16px;width:16px;height:16px;line-height:16px}}.dark-theme[_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178], .dark-theme [_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178]{background-color:#332b00;color:#ffda6a;border-bottom:1px solid #4d4100}.dark-theme[_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] .banner-warning-icon[_ngcontent-ng-c122525178], .dark-theme [_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] .banner-warning-icon[_ngcontent-ng-c122525178]{color:#ffda6a}.dark-theme[_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178], .dark-theme [_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178]{color:#ffda6a}.dark-theme[_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178]:hover, .dark-theme [_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] .banner-close-btn[_ngcontent-ng-c122525178]:hover{background-color:#ffda6a1a}.dark-theme[_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] a[_ngcontent-ng-c122525178], .dark-theme [_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] a[_ngcontent-ng-c122525178]{color:#ffda6a}.dark-theme[_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] a[_ngcontent-ng-c122525178]:hover, .dark-theme [_nghost-ng-c122525178] .grace-period-banner[_ngcontent-ng-c122525178] a[_ngcontent-ng-c122525178]:hover{color:#fff}</style><style ng-app-id="ng">.route-loading-overlay[_ngcontent-ng-c64824633]{position:fixed;inset:0;width:100%;height:100%;background-color:#ffffffb3;z-index:9999;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dark-theme[_nghost-ng-c64824633] .route-loading-overlay[_ngcontent-ng-c64824633], .dar
43k-theme [_nghost-ng-c64824633] .route-loading-overlay[_ngcontent-ng-c64824633]{background-color:#1e1e1eb3}</style><style ng-app-id="ng">.mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color, var(--mat-sys-on-background));background-color:var(--mat-sidenav-content-background-color, var(--mat-sys-background));box-sizing:border-box;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color, color-mix(in srgb, var(--mat-sys-neutral-variant20) 40%, transparent))}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}@media(forced-colors: active){.mat-drawer-backdrop{opacity:.5}}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-content.mat-drawer-content-hidden{opacity:0}
43.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color, var(--mat-sys-on-surface-variant));box-shadow:var(--mat-sidenav-container-elevation-shadow, none);background-color:var(--mat-sidenav-container-background-color, var(--mat-sys-surface));border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));width:var(--mat-sidenav-container-width, 360px);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}@media(forced-colors: active){.mat-drawer,[dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}}@media(forced-colors: active){[dir=rtl] .mat-drawer,.mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-left-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-bottom-right-radius:var(--mat-sidenav-container-shape, var(--mat-sys-corner-large));border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer-transition .mat-drawer{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating){visibility:hidden;box-shadow:none}.mat-drawer:not(.mat-drawer-opened):not(.mat-drawer-animating) .mat-drawer-inner-container{display:none}.mat-drawer.mat-drawer-opened.mat-drawer-opened{transform:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color, transparent);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color, transparent);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto}.mat-sidenav-fixed{position:fixed} 44</style><style ng-app-id="ng">.impersonation-banner[_ngcontent-ng-c1820644598]{position:sticky;top:var(--qs-visible-top-offset, var(--qs-layout-top-offset, 0px));z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:color-mix(in srgb,var(--mat-sys-secondary-container) 92%,var(--mat-sys-surface-container-lowest));color:var(--mat-sys-on-secondary-container);border-bottom:1px solid var(--mat-sys-outline-variant);box-shadow:0 1px color-mix(in srgb,var(--mat-sys-on-surface) 6%,transparent)}.impersonation-banner__copy[_ngcontent-ng-c1820644598]{display:flex;align-items:center;gap:12px;min-width:0;font:var(--mat-sys-body-medium)}.impersonation-banner__action[_ngcontent-ng-c1820644598]{flex-shrink:0;color:inherit;border-color:color-mix(in srgb,var(--mat-sys-on-secondary-container) 18%,transparent)}.impersonation-banner[_ngcontent-ng-c1820644598] mat-icon[_ngcontent-ng-c1820644598]{color:inherit}@media (max-width: 599.98px){.impersonation-banner[_ngcontent-ng-c1820644598]{flex-direction:column;align-items:stretch}.impersonation-banner__action[_ngcontent-ng-c1820644598]{width:100%;justify-content:center}}</style><style ng-app-id="ng">[_nghost-ng-c2645642140]{display:block}.custom-header[_ngcontent-ng-c2645642140]{display:flex!important;align-items:center;height:64px;padding:0 16px;background-color:var(--mat-sys-surface-container-lowest);box-shadow:0 2px 4px color-mix(in srgb,var(--mat-sys-on-surface) 8%,transparent);position:fixed;top:0;left:0;right:0;z-index:1001;overflow:visible!important;transition:top .18s ease,transform .18s ease;will-change:top,transform}.app-shell-header--hidden[_nghost-ng-c2645642140] .custom-header[_ngcontent-ng-c2645642140]{transform:translateY(calc(-100% - var(--qs-banner-height, 0px)))}.mat-tab-link[_ngcontent-ng-c2645642140]{min-width:auto!important;padding:0 12px;
44height:100%;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s}.mat-tab-link[_ngcontent-ng-c2645642140]:hover{opacity:1}.mat-tab-link[_ngcontent-ng-c2645642140] mat-icon[_ngcontent-ng-c2645642140]{margin:0;color:var(--mat-sys-on-surface-variant)}mat-icon.header-logo[_ngcontent-ng-c2645642140]{margin-left:16px;width:36px;height:36px;font-size:36px;display:flex;align-items:center;justify-content:center;align-self:center;line-height:1;cursor:pointer}.fill-space[_ngcontent-ng-c2645642140]{flex:1 1 auto}.right[_ngcontent-ng-c2645642140]{margin-left:8px}nav[_ngcontent-ng-c2645642140] button[mat-flat-button][_ngcontent-ng-c2645642140], nav[_ngcontent-ng-c2645642140] button[mat-stroked-button][_ngcontent-ng-c2645642140]{border-radius:20px;padding:0 24px;height:40px;line-height:40px;font-weight:400;box-shadow:none!important;align-self:center;display:inline-flex;align-items:center;justify-content:center}.responsive-action-button[_ngcontent-ng-c2645642140]{gap:8px}.responsive-action-button--mobile[_ngcontent-ng-c2645642140]{display:none!important}.responsive-action-icon-button[_ngcontent-ng-c2645642140]{box-shadow:none!important}.responsive-action-icon-button[_ngcontent-ng-c2645642140] mat-icon[_ngcontent-ng-c2645642140]{margin:0;width:20px;height:20px;font-size:20px;line-height:20px}nav[_ngcontent-ng-c2645642140] button[mat-icon-button][_ngcontent-ng-c2645642140]{padding:0;width:40px;height:40px;min-width:40px;align-self:center;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}nav[_ngcontent-ng-c2645642140] button.admin-button[_ngcontent-ng-c2645642140]{border-radius:50%;padding:0;width:40px;height:40px;min-width:40px;background:linear-gradient(135deg,var(--mat-sys-primary) 0%,var(--mat-sys-secondary) 100%);color:var(--mat-sys-on-primary);transition:transform .2s ease,box-shadow .2s ease;display:flex!important;align-items:center;justify-content:center}nav[_ngcontent-ng-c2645642140] button.admin-button[_ngcontent-ng-c2645642140]:hover{transform:scale(1.05);box-shadow:0 4px 12px color-mix(in srgb,var(--mat-sys-primary) 30%,transparent)!important}nav[_ngcontent-ng-c2645642140] button.admin-button[_ngcontent-ng-c2645642140] mat-icon[_ngcontent-ng-c2645642140]{color:var(--mat-sys-on-primary);font-size:22px;width:22px;height:22px;margin:0}nav[_ngcontent-ng-c2645642140] button.hamburger-link[_ngcontent-ng-c2645642140]{border-radius:50%;padding:0;width:40px;min-width:40px;margin-right:8px;flex-shrink:0}@media (max-width: 959.98px){.responsive-action-button--desktop[_ngcontent-ng-c2645642140]{display:none!important}.responsive-action-button--mobile[_ngcontent-ng-c2645642140]{display:inline-flex!important}.responsive-action-icon-button[_ngcontent-ng-c2645642140]{width:40px;height:40px;min-width:40px;align-items:center;justify-content:center}}.dark-theme[_nghost-ng-c2645642140] .custom-header[_ngcontent-ng-c2645642140], .dark-theme [_nghost-ng-c2645642140] .custom-header[_ngcontent-ng-c2645642140]{background-color:var(--mat-sys-surface-container-lowest);border-bottom:1px solid var(--mat-sys-outline-variant);box-shadow:0 2px 4px color-mix(in srgb,var(--mat-sys-shadow) 20%,transparent)}.dark-theme[_nghost-ng-c2645642140] .mat-tab-link[_ngcontent-ng-c2645642140] mat-icon[_ngcontent-ng-c2645642140], .dark-theme [_nghost-ng-c2645642140] .mat-tab-link[_ngcontent-ng-c2645642140] mat-icon[_ngcontent-ng-c2645642140]{color:color-mix(in srgb,var(--mat-sys-on-surface) 70%,transparent)}.dark-theme[_nghost-ng-c2645642140] .mat-tab-link[_ngcontent-ng-c2645642140]:hover mat-icon[_ngcontent-ng-c2645642140], .dark-theme [_nghost-ng-c2645642140] .mat-tab-link[_ngcontent-ng-c2645642140]:hover mat-icon[_ngcontent-ng-c2645642140]{color:var(--mat-sys-on-surface)}</style><style ng-app-id="ng">.mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));flex-shrink:0;text-align:center;width:var(--mat-icon-button-state-layer-size, 40px);height:var(--mat-icon-button-state-layer-size, 40px);padding:calc(calc(var(--mat-icon-button-state-layer-size, 40px) - var(--mat-icon-button-icon-size, 24px)) / 2);font-size:var(--mat-icon-button-icon-size, 24px);color:var(--mat-icon-button-icon-color, var(--mat-sys-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}
44.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-icon-button:focus>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-icon-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-icon-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-icon-button-touch-target-size, 48px);display:var(--mat-icon-button-touch-target-display, block);left:50%;width:var(--mat-icon-button-touch-target-size, 48px);transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mat-icon-button-icon-size, 24px);height:var(--mat-icon-button-icon-size, 24px);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%))}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1} 45</style><style ng-app-id="ng">@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-button-base.mat-tonal-button,.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}} 46</style><style ng-app-id="ng">.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}} 47</style><style ng-app-id="ng">mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto} 48</style><style ng-app-id="ng">[_nghost-ng-c3105694440]{display:inline-flex;align-items:center}.indicator-button[_ngcontent-ng-c3105694440]{display:inline-flex;align-items:center;justify-content:center}.indicator-content[_ngcontent-ng-c3105694440]{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;line-height:0}.indicator-content[_ngcontent-ng-c3105694440] mat-icon[_ngcontent-ng-c3105694440]{width:20px;height:20px;font-size:20px;color:var(--mat-sys-on-surface-variant)}.jobs-header[_ngcontent-ng-c3105694440]{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:6px 10px}.jobs-header-main[_ngcontent-ng-c3105694440]{display:flex;align-items:center;justify-content:space-between;gap:8px}.jobs-title[_ngcontent-ng-c3105694440]{font:var(--mat-sys-label-small);font-size:12px;line-height:1.2;color:var(--mat-sys-on-surface)}.jobs-summary[_ngcontent-ng-c3105694440]{font:var(--mat-sys-label-small);font-size:12px;line-height:1.2;color:var(--mat-sys-on-surface-variant)}.jobs-list[_ngcontent-ng-c3105694440]{display:flex;flex-direction:column;max-height:min(52vh,360px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.job-item[_ngcontent-ng-c3105694440]{display:flex;align-items:center;padding:4px 10px;gap:8px}.job-icon[_ngcontent-ng-c3105694440]{display:inline-flex;align-items:center;justify-content:center;width:24px}.job-info[_ngcontent-ng-c3105694440]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.job-title[_ngcontent-ng-c3105694440]{font:var(--mat-sys-label-small);font-size:13px;line-height:1.3;color:var(--mat-sys-on-surface);min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.job-subline[_ngcontent-ng-c3105694440]{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.job-status-text[_ngcontent-ng-c3105694440], .job-details[_ngcontent-ng-c3105694440]{font:var(--mat-sys-label-small);font-size:12px;line-height:1.2;color:var(--mat-sys-on-surface-variant);white-space:nowrap}.empty-state[_ngcontent-ng-c3105694440]{padding:6px 10px;font:var(--mat-sys-label-small);font-size:10px;line-height:1.2;color:var(--mat-sys-on-surface-variant)}</style><style ng-app-id="ng">mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;outline:0}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mat-menu-item-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mat-menu-item-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-menu-item-label-text-tracking, var(--mat-sys-label-large-tracking));font-weight:var(--mat-menu-item-label-text-weight, var(--mat-sys-label-large-weight))}@keyframes _mat-menu-enter{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:none}}@keyframes _mat-menu-exit{from{opacity:1}to{opacity:0}
48}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;box-sizing:border-box;outline:0;animation:_mat-menu-enter 120ms cubic-bezier(0, 0, 0.2, 1);border-radius:var(--mat-menu-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mat-menu-container-color, var(--mat-sys-surface-container));box-shadow:var(--mat-menu-container-elevation-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));will-change:transform,opacity}.mat-mdc-menu-panel.mat-menu-panel-exit-animation{animation:_mat-menu-exit 100ms 25ms linear forwards}.mat-mdc-menu-panel.mat-menu-panel-animations-disabled{animation:none}.mat-mdc-menu-panel.mat-menu-panel-animating{pointer-events:none}.mat-mdc-menu-panel.mat-menu-panel-animating:has(.mat-mdc-menu-content:empty){display:none}@media(forced-colors: active){.mat-mdc-menu-panel{outline:solid 1px}}.mat-mdc-menu-panel .mat-divider{color:var(--mat-menu-divider-color, var(--mat-sys-surface-variant));margin-bottom:var(--mat-menu-divider-bottom-spacing, 8px);margin-top:var(--mat-menu-divider-top-spacing, 8px)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px;padding-left:var(--mat-menu-item-leading-spacing, 12px);padding-right:var(--mat-menu-item-trailing-spacing, 12px);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-menu-item::-moz-focus-inner{border:0}[dir=rtl] .mat-mdc-menu-item{padding-left:var(--mat-menu-item-trailing-spacing, 12px);padding-right:var(--mat-menu-item-leading-spacing, 12px)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-trailing-spacing, 12px)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-trailing-spacing, 12px);padding-right:var(--mat-menu-item-with-icon-leading-spacing, 12px)}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item:focus{outline:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing, 12px);height:var(--mat-menu-item-icon-size, 24px);width:var(--mat-menu-item-icon-size, 24px)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing, 12px)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}@media(forced-colors: active){.mat-mdc-menu-item{margin-top:1px}}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size, 24px);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing, 12px)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing, 12px);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1);transform-origin:center}@media(forced-colors: active){.mat-mdc-menu-submenu-icon{fill:CanvasText}}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none} 49</style><style ng-app-id="ng">.mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline-variant));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline-variant));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px} 50</style><style ng-app-id="ng">.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0} 51</style><style ng-app-id="ng">[_nghost-ng-c3317298122]{display:block;width:100%;height:100%}mat-toolbar[_ngcontent-ng-c3317298122]{width:100%}mat-nav-list[_ngcontent-ng-c3317298122]{width:100%}mat-toolbar-row[_ngcontent-ng-c3317298122]{outline:none;font-weight:400;height:60px;cursor:pointer;transition:background-color .2s ease}mat-toolbar-row[_ngcontent-ng-c3317298122]:hover{background-color:#00000008}.dark-theme[_nghost-ng-c3317298122] mat-toolbar-row[_ngcontent-ng-c3317298122]:hover, .dark-theme [_nghost-ng-c3317298122] mat-toolbar-row[_ngcontent-ng-c3317298122]:hover{background-color:#ffffff0d}.mat-toolbar[_ngcontent-ng-c3317298122]{background:inherit}mat-icon.app-icon[_ngcontent-ng-c3317298122]{font-size:32px;height:40px;width:40px;margin-right:12px;margin-left:0}.sidenav-profile[_ngcontent-ng-c3317298122]{display:flex;align-items:center;gap:14px;padding:20px 16px;margin:8px 12px 16px;background:linear-gradient(135deg,color-mix(in srgb,var(--mat-sys-primary) 8%,transparent),color-mix(in srgb,var(--mat-sys-primary) 3%,transparent));border-radius:16px;border:1px solid color-mix(in srgb,var(--mat-sys-primary) 10%,transparent);transition:transform .2s ease,box-shadow .2s ease}.sidenav-profile[_ngcontent-ng-c3317298122]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.dark-theme[_nghost-ng-c3317298122] .sidenav-profile[_ngcontent-ng-c3317298122], .dark-theme [_nghost-ng-c3317298122] .sidenav-profile[_ngcontent-ng-c3317298122]{background:linear-gradient(135deg,color-mix(in srgb,var(--mat-sys-primary) 10%,transparent),color-mix(in srgb,var(--mat-sys-primary) 3%,transparent));border-color:color-mix(in srgb,var(--mat-sys-primary) 15%,transparent)}.dark-theme[_nghost-ng-c3317298122] .sidenav-profile[_ngcontent-ng-c3317298122]:hover, .dark-theme [_nghost-ng-c3317298122] .sidenav-profile[_ngcontent-ng-c3317298122]:hover{box-shadow:0 4px 12px #0000004d}
51.sidenav-avatar[_ngcontent-ng-c3317298122]{width:48px;height:48px;border-radius:50%;background-size:cover;background-position:center;flex-shrink:0;box-shadow:0 2px 8px #0000001f;border:2px solid rgba(255,255,255,.8)}.dark-theme[_nghost-ng-c3317298122] .sidenav-avatar[_ngcontent-ng-c3317298122], .dark-theme [_nghost-ng-c3317298122] .sidenav-avatar[_ngcontent-ng-c3317298122]{border-color:#fff3}.sidenav-user-info[_ngcontent-ng-c3317298122]{display:flex;flex-direction:column;min-width:0;flex:1}.sidenav-user-name[_ngcontent-ng-c3317298122]{font-weight:500;font-size:.95rem;line-height:1.3;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidenav-user-email[_ngcontent-ng-c3317298122]{font-size:.75rem;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.sidenav-pro-badge[_ngcontent-ng-c3317298122]{display:inline-flex;align-items:center;gap:4px;font-size:.65rem;font-weight:600;color:#fff;background:linear-gradient(135deg,gold,#ffa000);padding:2px 8px;border-radius:10px;margin-top:6px;text-transform:uppercase;letter-spacing:.5px;width:fit-content}.sidenav-pro-badge[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{width:12px;height:12px;font-size:12px;margin:0}.sidenav-basic-badge[_ngcontent-ng-c3317298122]{display:inline-flex;align-items:center;gap:4px;font-size:.65rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#78909c,#455a64);padding:2px 8px;border-radius:10px;margin-top:6px;text-transform:uppercase;letter-spacing:.5px;width:fit-content}.sidenav-basic-badge[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{width:12px;height:12px;font-size:12px;margin:0}.sidenav-section-header[_ngcontent-ng-c3317298122]{display:flex;align-items:center;padding:16px 16px 8px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;opacity:.5;color:inherit}mat-nav-list[_ngcontent-ng-c3317298122]{padding-top:0;width:100%}mat-list-item[_ngcontent-ng-c3317298122]{margin:2px 0;border-radius:0!important;transition:all .2s ease;height:48px!important;width:100%}.sidenav-subitem-guide[_ngcontent-ng-c3317298122]{position:relative;margin-inline-start:20px;padding-inline-start:12px}.sidenav-subitem-guide[_ngcontent-ng-c3317298122]:before{content:"";position:absolute;inset-block:6px;inset-inline-start:0;width:2px;border-radius:2px;background:color-mix(in srgb,var(--mat-sys-on-surface) 18%,transparent);transition:background-color .2s ease}.sidenav-subitem-guide-active[_ngcontent-ng-c3317298122]:before{background:var(--mat-sys-primary)}mat-list-item.sidenav-subitem[_ngcontent-ng-c3317298122]{padding-inline-start:0}mat-list-item.sidenav-subitem[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{width:20px;height:20px;margin-inline:4px 12px;font-size:20px}.sidenav-status-label[_ngcontent-ng-c3317298122]{margin-inline-end:16px;color:var(--mat-sys-primary);font-size:.625rem;font-weight:700;line-height:1;letter-spacing:.08em;text-transform:uppercase}[_nghost-ng-c3317298122] mat-list-item:not(.theme-toggle-item) .mat-mdc-list-item-unscoped-content{display:flex;align-items:center;width:100%}mat-list-item[_ngcontent-ng-c3317298122]:not(.theme-toggle-item):hover{background-color:var(--mat-sys-state-hover, rgba(0, 0, 0, .04))!important}.dark-theme[_nghost-ng-c3317298122] mat-list-item[_ngcontent-ng-c3317298122]:not(.theme-toggle-item):hover, .dark-theme [_nghost-ng-c3317298122] mat-list-item[_ngcontent-ng-c3317298122]:not(.theme-toggle-item):hover{background-color:var(--mat-sys-state-hover, rgba(255, 255, 255, .06))!important}.active[_ngcontent-ng-c3317298122]{font-weight:500!important;background:linear-gradient(90deg,color-mix(in srgb,var(--mat-sys-primary) 12%,transparent),color-mix(in srgb,var(--mat-sys-primary) 4%,transparent))!important;border-left:3px solid var(--mat-sys-primary)!important}mat-list-item.active[_ngcontent-ng-c3317298122]:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--mat-sys-primary) 15%,transparent),color-mix(in srgb,var(--mat-sys-primary) 7%,transparent))!important}.dark-theme[_nghost-ng-c3317298122] .active[_ngcontent-ng-c3317298122], .dark-theme [_nghost-ng-c3317298122] .active[_ngcontent-ng-c3317298122]{background:linear-gradient(90deg,color-mix(in srgb,var(--mat-sys-primary) 15%,transparent),color-mix(in srgb,var(--mat-sys-primary) 5%,transparent))!important}.dark-theme[_nghost-ng-c3317298122] mat-list-item.active[_ngcontent-ng-c3317298122]:hover, .dark-theme [_nghost-ng-c3317298122] mat-list-item.active[_ngcontent-ng-c3317298122]:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--mat-sys-primary) 18%,transparent),color-mix(in srgb,var(--mat-sys-primary) 8%,transparent))!important}mat-list-item.sidenav-subitem.active[_ngcontent-ng-c3317298122]{border-left:0!important;border-inline-start:0!important}mat-icon[_ngcontent-ng-c3317298122]{display:inline-flex;align-items:center;justify-content:center;line-height:1;vertical-align:middle;margin-right:16px;margin-left:8px;opacity:.8;transition:opacity .2s ease,transform .2s ease}mat-list-item[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122] svg[_ngcontent-ng-c3317298122], mat-list-item[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122] svg[_ngcontent-ng-c3317298122] path[_ngcontent-ng-c3317298122], mat-list-item[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122] svg[_ngcontent-ng-c3317298122] circle[_ng
51content-ng-c3317298122], mat-list-item[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122] svg[_ngcontent-ng-c3317298122] polygon[_ngcontent-ng-c3317298122], mat-list-item[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122] svg[_ngcontent-ng-c3317298122] rect[_ngcontent-ng-c3317298122]{fill:currentColor!important}mat-list-item[_ngcontent-ng-c3317298122]:not(.theme-toggle-item):hover mat-icon[_ngcontent-ng-c3317298122]{opacity:1;transform:scale(1.05)}.active[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{opacity:1;color:var(--mat-sys-primary)}.dark-theme[_nghost-ng-c3317298122] .active[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122], .dark-theme [_nghost-ng-c3317298122] .active[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{color:var(--mat-sys-primary)}.icon-container[_ngcontent-ng-c3317298122]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:#0000000d;margin-right:12px;margin-left:4px;transition:background-color .2s ease}.icon-container[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{margin:0;width:20px;height:20px;font-size:20px}.dark-theme[_nghost-ng-c3317298122] .icon-container[_ngcontent-ng-c3317298122], .dark-theme [_nghost-ng-c3317298122] .icon-container[_ngcontent-ng-c3317298122]{background:#ffffff14}.fill-space[_ngcontent-ng-c3317298122]{flex:1 1 auto}.theme-toggle-item[_ngcontent-ng-c3317298122]{min-height:56px!important;background-color:transparent!important;--mat-list-list-item-hover-state-layer-color: transparent;--mat-list-list-item-hover-state-layer-opacity: 0;--mat-list-list-item-focus-state-layer-opacity: 0;--mdc-list-list-item-hover-state-layer-color: transparent;--mdc-list-list-item-hover-state-layer-opacity: 0;--mdc-list-list-item-focus-state-layer-opacity: 0}.theme-toggle-item[_ngcontent-ng-c3317298122]:hover{background-color:transparent!important;box-shadow:none!important}.theme-toggle-item[_ngcontent-ng-c3317298122]:before, .theme-toggle-item[_ngcontent-ng-c3317298122]:hover:before, .theme-toggle-item[_ngcontent-ng-c3317298122]:focus:before{opacity:0!important;background-color:transparent!important}.theme-toggle-item[_ngcontent-ng-c3317298122]:hover mat-icon[_ngcontent-ng-c3317298122]{transform:none}.theme-toggle-row[_ngcontent-ng-c3317298122]{width:100%;display:flex;justify-content:center}.theme-toggle-group[_ngcontent-ng-c3317298122]{margin:0 auto;width:100%;max-width:276px;display:flex}[_nghost-ng-c3317298122] .theme-toggle-group .mat-button-toggle-label-content{padding:0 8px!important}.theme-toggle-group[_ngcontent-ng-c3317298122] mat-button-toggle[_ngcontent-ng-c3317298122]{flex:1 1 0;min-width:0}.theme-toggle-group[_ngcontent-ng-c3317298122] mat-button-toggle[_ngcontent-ng-c3317298122]:hover:not(.mat-button-toggle-checked){background-color:var(--mat-sys-state-hover, rgba(0, 0, 0, .04))}.dark-theme[_nghost-ng-c3317298122] .theme-toggle-group[_ngcontent-ng-c3317298122] mat-button-toggle[_ngcontent-ng-c3317298122]:hover:not(.mat-button-toggle-checked), .dark-theme [_nghost-ng-c3317298122] .theme-toggle-group[_ngcontent-ng-c3317298122] mat-button-toggle[_ngcontent-ng-c3317298122]:hover:not(.mat-button-toggle-checked){background-color:var(--mat-sys-state-hover, rgba(255, 255, 255, .06))}.theme-toggle-option[_ngcontent-ng-c3317298122]{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:auto;white-space:nowrap;font-size:.78rem;line-height:1}.theme-toggle-option[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{margin:0!important;padding:0;width:18px;height:18px;font-size:18px;line-height:18px;opacity:1}mat-list-item[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]:last-child{opacity:.4;margin-right:8px;transition:opacity .2s ease}mat-list-item[_ngcontent-ng-c3317298122]:hover mat-icon[_ngcontent-ng-c3317298122]:last-child{opacity:.7}.pro-badge[_ngcontent-ng-c3317298122]{font-size:.65em;font-weight:700;background:linear-gradient(135deg,gold,#ffa000);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-left:4px}.lock-icon[_ngcontent-ng-c3317298122]{opacity:.6;margin-right:0}mat-divider[_ngcontent-ng-c3317298122]{margin:8px 16px!important;opacity:.5}.sidenav-footer[_ngcontent-ng-c3317298122]{margin-top:16px;padding:12px 8px;border-top:1px solid var(--mat-sys-outline-variant, rgba(0, 0, 0, .08))}.dark-theme[_nghost-ng-c3317298122] .sidenav-footer[_ngcontent-ng-c3317298122], .dark-theme [_nghost-ng-c3317298122] .sidenav-footer[_ngcontent-ng-c3317298122]{border-top-color:#ffffff14}.sidenav-footer-links[_ngcontent-ng-c3317298122]{display:flex;justify-content:center;gap:4px}.sidenav-cta-button[_ngcontent-ng-c3317298122]{width:100%;margin-bottom:10px}.sidenav-cta-button[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{margin:0 8px 0 0;opacity:1}.sidenav-footer-links[_ngcontent-ng-c3317298122] button[_ngcontent-ng-c3317298122], .sidenav-footer-links[_ngcontent-ng-c3317298122] a[mat-icon-button][_ngcontent-ng-c3317298122]{width:40px;height:40px;padding:8px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;transition:opacity .2s ease,background-color .2s ease}.sidenav-footer-links[_ngcontent-ng-c3317298122] button[_ngcontent-ng-c3317298122]:hover, .sidenav-footer-links[_ngcontent-ng-c3317298122] a[mat-icon-button][_ngcontent-ng-c3317298122]:hover{opacity:1;background-color:var(--mat-sys-surface-container-high, rgba(0, 0, 0, .06))}.dark-theme[_nghost-ng-c3317298122] .sidenav-footer-links[_ngcontent-ng-c3317298122] button[_ngcontent-ng-c3317298122]:hover, .dark-theme [_nghost-ng-c3317298122] .sidenav-footer-links[_ngcontent-ng-c3317298122] button[_ngcontent-ng-c3317298122]:hover, .dark-theme[_nghost-ng-c3317298122] .sidenav-footer-links[_ngcontent-ng-c3317298122] a[mat-icon-button][_ngcontent-ng-c3317298122]:hover, .dark-theme [_nghost-ng-c3317298122] .sidenav-footer-links[_ngcontent-ng-c3317298122] a[mat-icon-button][_ngcontent-ng-c3317298122]:hover{background-color:#ffffff14}.sidenav-footer-links[_ngcontent-ng-c3317298122] button[_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122], .sidenav-footer-links[_ngcontent-ng-c3317298122] a[mat-icon-button][_ngcontent-ng-c3317298122] mat-icon[_ngcontent-ng-c3317298122]{margin:0;opacity:1;width:24px;height:24px;font-size:24px;line-height:24px}@media only screen and (max-width: 599.98px){.sidenav-profile[_ngcontent-ng-c3317298122]{padding:16px 12px;margin:8px}
51.sidenav-avatar[_ngcontent-ng-c3317298122]{width:42px;height:42px}mat-list-item[_ngcontent-ng-c3317298122]{margin:2px 4px}}</style><style ng-app-id="ng">.mat-toolbar{background:var(--mat-toolbar-container-background-color, var(--mat-sys-surface));color:var(--mat-toolbar-container-text-color, var(--mat-sys-on-surface))}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font, var(--mat-sys-title-large-font));font-size:var(--mat-toolbar-title-text-size, var(--mat-sys-title-large-size));line-height:var(--mat-toolbar-title-text-line-height, var(--mat-sys-title-large-line-height));font-weight:var(--mat-toolbar-title-text-weight, var(--mat-sys-title-large-weight));letter-spacing:var(--mat-toolbar-title-text-tracking, var(--mat-sys-title-large-tracking));margin:0}@media(forced-colors: active){.mat-toolbar{outline:solid 1px}}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mat-button-text-label-text-color: var(--mat-toolbar-container-text-color, var(--mat-sys-on-surface));--mat-button-outlined-label-text-color: var(--mat-toolbar-container-text-color, var(--mat-sys-on-surface))}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height, 64px)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height, 56px)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height, 64px)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height, 56px)}} 52</style><style ng-app-id="ng">.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item{display:flex;position:relative;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer;padding-left:16px;padding-right:16px;background-color:var(--mat-list-list-item-container-color, transparent);border-radius:var(--mat-list-list-item-container-shape, var(--mat-sys-corner-none))}.mdc-list-item.mdc-list-item--selected{background-color:var(--mat-list-list-item-selected-container-color)}.mdc-list-item:focus{outline:0}.mdc-list-item.mdc-list-item--disabled{cursor:auto}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mat-list-list-item-one-line-container-height, 48px)}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mat-list-list-item-two-line-container-height, 64px)}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mat-list-list-item-three-line-container-height, 88px)}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--selected::before,.mdc-list-item.mdc-list-item--selected:focus::before,.mdc-list-item:not(.mdc-list-item--selected):focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;content:"";pointer-events:none}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mat-list-list-item-leading-icon-color, var(--mat-sys-on-surface-variant));width:var(--mat-list-list-item-leading-icon-size, 24px);height:var(--mat-list-list-item-leading-icon-size, 24px);margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mat-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mat-list-list-item-leading-avatar-size, 40px);height:var(--mat-list-list-item-leading-avatar-size, 40px);margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item--with-leading-avatar .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px;border-radius:50%}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mat-list-list-item-trailing-supporting-text-font, var(--mat-sys-label-small-font));line-height:var(--mat-list-list-item-trailing-supporting-text-line-height, var(--mat-sys-label-small-line-height));font-size:var(--mat-list-list-item-trailing-supporting-text-size, var(--mat-sys-label-small-size));font-weight:var(--mat-list-list-item-trailing-supporting-text-weight, var(--mat-sys-label-small-weight));letter-spacing:var(--mat-list-list-item-trailing-supporting-text-tracking, var(--mat-sys-label-small-tracking))}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mat-list-list-item-trailing-icon-color, var(--mat-sys-on-surface-variant));width:var(--mat-list-list-item-trailing-icon-size, 24px);height:var(--mat-list-list-item-trailing-icon-size, 24px)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mat-list-list-item-hover-trailing-icon-color)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mat-list-list-item-trailing-supporting-text-color, var(--mat-sys-on-surface-variant))}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mat-list-list-item-selected-trailing-icon-color, var(--mat-sys-primary))}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;color:var(--mat-list-list-item-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-list-list-item-label-text-font, var(--mat-sys-body-large-font));line-height:var(--mat-list-list-item-label-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-list-list-item-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-list-list-item-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-list-list-item-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mat-list-list-item-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mat-list-list-item-focus-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;color:var(--mat-list-list-item-supporting-text-color, var(--mat-sys-on-surface-variant));font-family:var(--mat-list-list-item-supporting-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-list-list-item-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-list-list-item-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mat-list-list-item-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-list-list-item-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:"";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:16px}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:16px;padding-right:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:"";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before,.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:"";vertical-align:0}.mdc-list-item--with-trailing-icon.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:0;padding-right:0}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-webkit-user-select:none;user-select:none;margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;line-height:normal;align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before,.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:"";vertical-align:0}.mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start,.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:16px;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:0;padding-right:16px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-left:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item--with-leading-avatar,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-icon,[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item--with-leading-avatar{padding-right:0}.mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-group__subheader{margin:.75rem 16px}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text{opacity:var(--mat-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mat-list-list-item-disabled-leading-icon-color, var(--mat-sys-on-surface));opacity:var(--mat-list-list-item-disabled-leading-icon-opacity, 0.38)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mat-list-list-item-disabled-trailing-icon-color, var(--mat-sys-on-surface));opacity:var(--mat-list-list-item-disabled-trailing-icon-opacity, 0.38)}.mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing,[dir=rtl] .mat-mdc-list-item.mat-mdc-list-item-both-leading-and-trailing{padding-left:0;padding-right:0}.mdc-list-item.mdc-list-item--disabled .m
52dc-list-item__primary-text{color:var(--mat-list-list-item-disabled-label-text-color, var(--mat-sys-on-surface))}.mdc-list-item:hover::before{background-color:var(--mat-list-list-item-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-list-list-item-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mat-list-list-item-disabled-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-list-list-item-disabled-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item:focus::before{background-color:var(--mat-list-list-item-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-list-list-item-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mat-list-list-item-disabled-label-text-opacity, 0.3)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mat-list-list-item-leading-avatar-shape, var(--mat-sys-corner-full));background-color:var(--mat-list-list-item-leading-avatar-color, var(--mat-sys-primary-container))}.mat-mdc-list-item-icon{font-size:var(--mat-list-list-item-leading-icon-size, 24px)}@media(forced-colors: active){a.mdc-list-item--activated::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:"";opacity:0;pointer-events:none;border-radius:inherit}.mat-mdc-list-item>.mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-focus-indicator::before{content:""}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:start}mat-action-list button::-moz-focus-inner{border:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-inline-start:var(--mat-list-list-item-leading-icon-start-space, 16px);margin-inline-end:var(--mat-list-list-item-leading-icon-end-space, 16px)}.mat-mdc-nav-list .mat-mdc-list-item{border-radius:var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full));--mat-focus-indicator-border-radius: var(--mat-list-active-indicator-shape, var(--mat-sys-corner-full))}.mat-mdc-nav-list .mat-mdc-list-item.mdc-list-item--activated{background-color:var(--mat-list-active-indicator-color, var(--mat-sys-secondary-container))} 53</style><style ng-app-id="ng">.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none} 54</style><style ng-app-id="ng">.mat-button-toggle-standalone,.mat-button-toggle-group{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:var(--mat-button-toggle-legacy-shape);transform:translateZ(0)}.mat-button-toggle-standalone:not([class*=mat-elevation-z]),.mat-button-toggle-group:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}@media(forced-colors: active){.mat-button-toggle-standalone,.mat-button-toggle-group{outline:solid 1px}}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{border-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard .mat-pseudo-checkbox,.mat-button-toggle-group-appearance-standard .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container))}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard:not([class*=mat-elevation-z]),.mat-button-toggle-group-appearance-standard:not([class*=mat-elevation-z]){box-shadow:none}@media(forced-colors: active){.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,.mat-button-toggle-group-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative;color:var(--mat-button-toggle-legacy-text-color);font-family:var(--mat-button-toggle-legacy-label-text-font);font-size:var(--mat-button-toggle-legacy-label-text-size);line-height:var(--mat-button-toggle-legacy-label-text-line-height);font-weight:var(--mat-button-toggle-legacy-label-text-weight);letter-spacing:var(--mat-button-toggle-legacy-label-text-tracking);--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-button-toggle-legacy-selected-state-text-color)}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-legacy-focus-state-layer-opacity)}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle-checkbox-wrapper{display:inline-block;justify-content:flex-start;align-items:center;width:0;height:18px;line-height:18px;overflow:hidden;box-sizing:border-box;position:absolute;top:50%;left:16px;transform:translate3d(0, -50%, 0)}
54[dir=rtl] .mat-button-toggle-checkbox-wrapper{left:auto;right:16px}.mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:12px}[dir=rtl] .mat-button-toggle-appearance-standard .mat-button-toggle-checkbox-wrapper{left:auto;right:12px}.mat-button-toggle-checked .mat-button-toggle-checkbox-wrapper{width:18px}.mat-button-toggle-animations-enabled .mat-button-toggle-checkbox-wrapper{transition:width 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-checkbox-wrapper{transition:none}.mat-button-toggle-checked{color:var(--mat-button-toggle-legacy-selected-state-text-color);background-color:var(--mat-button-toggle-legacy-selected-state-background-color)}.mat-button-toggle-disabled{pointer-events:none;color:var(--mat-button-toggle-legacy-disabled-state-text-color);background-color:var(--mat-button-toggle-legacy-disabled-state-background-color);--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-legacy-disabled-state-text-color)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:var(--mat-button-toggle-legacy-disabled-selected-state-background-color)}.mat-button-toggle-disabled-interactive{pointer-events:auto}.mat-button-toggle-appearance-standard{color:var(--mat-button-toggle-text-color, var(--mat-sys-on-surface));background-color:var(--mat-button-toggle-background-color, transparent);font-family:var(--mat-button-toggle-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-toggle-label-text-size, var(--mat-sys-label-large-size));line-height:var(--mat-button-toggle-label-text-line-height, var(--mat-sys-label-large-line-height));font-weight:var(--mat-button-toggle-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-button-toggle-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-left:none;border-right:none;border-top:solid 1px var(--mat-button-toggle-divider-color, var(--mat-sys-outline))}.mat-button-toggle-appearance-standard.mat-button-toggle-checked{color:var(--mat-button-toggle-selected-state-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-button-toggle-selected-state-background-color, var(--mat-sys-secondary-container))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{color:var(--mat-button-toggle-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-toggle-disabled-state-background-color, transparent)}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled .mat-pseudo-checkbox{--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color: var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled.mat-button-toggle-checked{color:var(--mat-button-toggle-disabled-selected-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-toggle-disabled-selected-state-background-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{background-color:var(--mat-button-toggle-state-layer-color, var(--mat-sys-on-surface))}.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-button-toggle-appearance-standard.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:var(--mat-button-toggle-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}@media(hover: none){.mat-button-toggle-appearance-standard:hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;user-select:none;display:inline-block;padding:0 16px;line-height:var(--mat-button-toggle-legacy-height);position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0 12px;line-height:var(--mat-button-toggle-height, 40px)}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;pointer-events:none;opacity:0;background-color:var(--mat-button-toggle-legacy-state-layer-color)}@media(forced-colors: active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 500px;opacity:.5;height:0}.mat-button-toggle-checked:hover .mat-button-toggle-focus-overlay{opacity:.6}.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 500px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:none;color:inherit;padding:0;margin:0;font:inherit;outline:none;width:100%;cursor:pointer}.mat-button-toggle-animations-enabled .mat-button-toggle-button{transition:padding 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-button-toggle-vertical .mat-button-toggle-button{transition:none}
54.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}.mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:30px}[dir=rtl] .mat-button-toggle-checked .mat-button-toggle-button:has(.mat-button-toggle-checkbox-wrapper){padding-left:0;padding-right:30px}.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{--mat-focus-indicator-border-radius: var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard:not(.mat-button-toggle-vertical) .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:last-of-type .mat-button-toggle-button::before{border-bottom-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-bottom-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))}.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle:first-of-type .mat-button-toggle-button::before{border-top-right-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large));border-top-left-radius:var(--mat-button-toggle-shape, var(--mat-sys-corner-extra-large))} 55</style><style ng-app-id="ng">.mat-mdc-button-base{text-decoration:none}.mat-mdc-button-base .mat-icon{min-height:fit-content;flex-shrink:0}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-button-text-horizontal-padding, 12px);height:var(--mat-button-text-container-height, 40px);font-family:var(--mat-button-text-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-text-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-text-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-text-label-text-transform);font-weight:var(--mat-button-text-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mat-button-text-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mat-button-text-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-text-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-button-text-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-offset, -4px);margin-left:var(--mat-button-text-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-text-icon-spacing, 8px);margin-left:var(--mat-button-text-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-button-text-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-text-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-text-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-text-touch-target-size, 48px);display:var(--mat-button-text-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}
55.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-filled-container-height, 40px);font-family:var(--mat-button-filled-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-filled-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-filled-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-filled-label-text-transform);font-weight:var(--mat-button-filled-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-filled-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-offset, -8px);margin-left:var(--mat-button-filled-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-filled-icon-spacing, 8px);margin-left:var(--mat-button-filled-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-button-filled-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-filled-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-filled-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-filled-touch-target-size, 48px);display:var(--mat-button-filled-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mat-button-filled-label-text-color, var(--mat-sys-on-primary));background-color:var(--mat-button-filled-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mat-button-filled-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mat-button-protected-container-elevation-shadow, var(--mat-sys-level1));height:var(--mat-button-protected-container-height, 40px);font-family:var(--mat-button-protected-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-protected-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-protected-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-protected-label-text-transform);font-weight:var(--mat-button-protected-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-protected-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-offset, -8px);margin-left:var(--mat-button-protected-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-protected-icon-spacing, 8px);margin-left:var(--mat-button-protected-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-button-protected-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-protected-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-protected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-protected-touch-target-size, 48px);display:var(--mat-button-protected-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-raised-button:not(:disabled){color:var(--mat-button-protected-label-text-color, var(--mat-sys-primary));background-color:var(--mat-button-protected-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mat-button-protected-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mat-button-protected-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mat-button-protected-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mat-button-protected-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-protected-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-protected-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mat-button-protected-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-outlined-container-height, 40px);font-family:var(--mat-button-outlined-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-outlined-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-outlined-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-outlined-label-text-transform);font-weight:var(--mat-button-outlined-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mat-button-outlined-container-shape, var(--mat-sys-corner-full));border-width:var(--mat-button-outlined-outline-width, 1px);padding:0 var(--mat-button-outlined-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-offset, -8px);margin-left:var(--mat-button-outlined-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-outlined-icon-spacing, 8px);margin-left:var(--mat-button-outlined-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-button-outlined-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-outlined-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-outlined-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-outlined-touch-target-size, 48px);display:var(--mat-button-outlined-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-outlined-button:not(:disabled){color:var(--mat-button-outlined-label-text-color, var(--mat-sys-primary));border-color:var(--mat-button-outlined-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mat-button-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}
55.mat-tonal-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mat-button-tonal-container-height, 40px);font-family:var(--mat-button-tonal-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-button-tonal-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mat-button-tonal-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mat-button-tonal-label-text-transform);font-weight:var(--mat-button-tonal-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-button-tonal-horizontal-padding, 24px)}.mat-tonal-button:not(:disabled){color:var(--mat-button-tonal-label-text-color, var(--mat-sys-on-secondary-container));background-color:var(--mat-button-tonal-container-color, var(--mat-sys-secondary-container))}.mat-tonal-button,.mat-tonal-button .mdc-button__ripple{border-radius:var(--mat-button-tonal-container-shape, var(--mat-sys-corner-full))}.mat-tonal-button[disabled],.mat-tonal-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-button-tonal-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-button-tonal-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-tonal-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}[dir=rtl] .mat-tonal-button>.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}.mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-offset, -8px);margin-left:var(--mat-button-tonal-icon-spacing, 8px)}[dir=rtl] .mat-tonal-button .mdc-button__label+.mat-icon{margin-right:var(--mat-button-tonal-icon-spacing, 8px);margin-left:var(--mat-button-tonal-icon-offset, -8px)}.mat-tonal-button .mat-ripple-element{background-color:var(--mat-button-tonal-ripple-color, color-mix(in srgb, var(--mat-sys-on-secondary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-tonal-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-tonal-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-button-tonal-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-tonal-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-tonal-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-tonal-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-tonal-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-button-tonal-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-tonal-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-button-tonal-touch-target-size, 48px);display:var(--mat-button-tonal-touch-target-display, block);left:0;right:0;transform:translateY(-50%)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button,.mat-tonal-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before,.mat-tonal-button .mat-mdc-button-ripple,.mat-tonal-button .mat-mdc-button-persistent-ripple,.mat-tonal-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-tonal-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before,.mat-tonal-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}
55.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon,.mat-tonal-button .mdc-button__label,.mat-tonal-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator,.mat-tonal-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before,.mat-tonal-button:focus>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable,.mat-tonal-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon,.mat-tonal-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-tonal-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)} 56</style><style ng-app-id="ng">.mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-content{position:absolute;text-align:center;display:inline-block;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;pointer-events:none;background-color:var(--mat-badge-background-color, var(--mat-sys-error));color:var(--mat-badge-text-color, var(--mat-sys-on-error));font-family:var(--mat-badge-text-font, var(--mat-sys-label-small-font));font-weight:var(--mat-badge-text-weight, var(--mat-sys-label-small-weight));border-radius:var(--mat-badge-container-shape, var(--mat-sys-corner-full))}.mat-badge-above .mat-badge-content{bottom:100%}.mat-badge-below .mat-badge-content{top:100%}.mat-badge-before .mat-badge-content{right:100%}[dir=rtl] .mat-badge-before .mat-badge-content{right:auto;left:100%}.mat-badge-after .mat-badge-content{left:100%}[dir=rtl] .mat-badge-after .mat-badge-content{left:auto;right:100%}@media(forced-colors: active){.mat-badge-content{outline:solid 1px;border-radius:0}}.mat-badge-disabled .mat-badge-content{background-color:var(--mat-badge-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-error) 38%, transparent));color:var(--mat-badge-disabled-state-text-color, var(--mat-sys-on-error))}.mat-badge-hidden .mat-badge-content{display:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:var(--mat-badge-legacy-small-size-container-size, unset);height:var(--mat-badge-legacy-small-size-container-size, unset);min-width:var(--mat-badge-small-size-container-size, 6px);min-height:var(--mat-badge-small-size-container-size, 6px);line-height:var(--mat-badge-small-size-line-height, 6px);padding:var(--mat-badge-small-size-container-padding, 0);font-size:var(--mat-badge-small-size-text-size, 0);margin:var(--mat-badge-small-size-container-offset, -6px 0)}.mat-badge-small.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-small-size-container-overlap-offset, -6px)}.mat-badge-medium .mat-badge-content{width:var(--mat-badge-legacy-container-size, unset);height:var(--mat-badge-legacy-container-size, unset);min-width:var(--mat-badge-container-size, 16px);min-height:var(--mat-badge-container-size, 16px);line-height:var(--mat-badge-line-height, 16px);padding:var(--mat-badge-container-padding, 0 4px);font-size:var(--mat-badge-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-container-offset, -12px 0)}.mat-badge-medium.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-container-overlap-offset, -12px)}.mat-badge-large .mat-badge-content{width:var(--mat-badge-legacy-large-size-container-size, unset);height:var(--mat-badge-legacy-large-size-container-size, unset);min-width:var(--mat-badge-large-size-container-size, 16px);min-height:var(--mat-badge-large-size-container-size, 16px);line-height:var(--mat-badge-large-size-line-height, 16px);padding:var(--mat-badge-large-size-container-padding, 0 4px);font-size:var(--mat-badge-large-size-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-large-size-container-offset, -12px 0)}.mat-badge-large.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-large-size-container-overlap-offset, -12px)} 57</style><style ng-app-id="ng">.mat-mdc-fab-base{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;
57transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus>.mat-focus-indicator::before{content:""}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mat-fab-container-color, var(--mat-sys-primary-container));border-radius:var(--mat-fab-container-shape, var(--mat-sys-corner-large));color:var(--mat-fab-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mat-fab-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:hover{box-shadow:var(--mat-fab-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-fab:focus{box-shadow:var(--mat-fab-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mat-fab-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-fab-touch-target-size, 48px);display:var(--mat-fab-touch-target-display, block);left:50%;width:var(--mat-fab-touch-target-size, 48px);transform:translate(-50%, -50%)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mat-fab-small-container-color, var(--mat-sys-primary-container));border-radius:var(--mat-fab-small-container-shape, var(--mat-sys-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-sys-on-primary-container, inherit));box-shadow:var(--mat-fab-small-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:hover{box-shadow:var(--mat-fab-small-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mat-fab-small-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mat-fab-small-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mat-fab-small-disabled-state-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:var(--mat-fab-small-touch-target-size, 48px);display:var(--mat-fab-small-touch-target-display);left:50%;width:var(--mat-fab-small-touch-target-size, 48px);transform:translate(-50%, -50%)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary-container) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-sys-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-mini-fab:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;box-shadow:var(--mat-fab-extended-container-elevation-shadow, var(--mat-sys-level3));height:var(--mat-fab-extended-container-height, 56px);border-radius:var(--mat-fab-extended-container-shape, var(--mat-sys-corner-large));font-family:var(--mat-fab-extended-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mat-fab-extended-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mat-fab-extended-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mat-fab-extended-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-mdc-extended-fab:hover{box-shadow:var(--mat-fab-extended-hover-container-elevation-shadow, var(--mat-sys-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mat-fab-extended-focus-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mat-fab-extended-pressed-container-elevation-shadow, var(--mat-sys-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%} 58</style><style ng-app-id="ng">[_nghost-ng-c249951845]{display:block}.public-footer[_ngcontent-ng-c249951845]{margin-top:3rem;border-top:1px solid var(--mat-sys-outline-variant);background:var(--mat-sys-surface-container-low);color:var(--mat-sys-on-surface)}
58.public-footer__content[_ngcontent-ng-c249951845], .public-footer__bottom[_ngcontent-ng-c249951845]{max-width:78rem;margin:0 auto;padding-inline:clamp(1rem,4vw,2rem)}.public-footer__content[_ngcontent-ng-c249951845]{display:grid;grid-template-columns:minmax(15rem,1.6fr) repeat(3,minmax(9rem,1fr));gap:clamp(1.75rem,4vw,3.5rem);padding-block:3rem 2.5rem}.public-footer__brand[_ngcontent-ng-c249951845], .public-footer__column[_ngcontent-ng-c249951845]{min-width:0}.public-footer__wordmark[_ngcontent-ng-c249951845]{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.public-footer__wordmark[_ngcontent-ng-c249951845] a[_ngcontent-ng-c249951845]{color:var(--mat-sys-on-surface);text-decoration:none}.public-footer__brand[_ngcontent-ng-c249951845] p[_ngcontent-ng-c249951845], .public-footer__operator[_ngcontent-ng-c249951845], address[_ngcontent-ng-c249951845], .public-footer__bottom[_ngcontent-ng-c249951845] p[_ngcontent-ng-c249951845]{margin:0;color:var(--mat-sys-on-surface-variant);font-size:.875rem;line-height:1.55}.public-footer__brand[_ngcontent-ng-c249951845] p[_ngcontent-ng-c249951845]{max-width:21rem;margin-block:.75rem 1rem}.public-footer__column[_ngcontent-ng-c249951845] h2[_ngcontent-ng-c249951845]{margin:0 0 .75rem;font-size:.875rem;font-weight:700;letter-spacing:.02em}.public-footer__column[_ngcontent-ng-c249951845] ul[_ngcontent-ng-c249951845]{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.public-footer[_ngcontent-ng-c249951845] a[_ngcontent-ng-c249951845]:not([mat-stroked-button]){color:inherit;font-size:.875rem;line-height:1.45;text-decoration:none}.public-footer[_ngcontent-ng-c249951845] a[_ngcontent-ng-c249951845]:not([mat-stroked-button]):hover, .public-footer[_ngcontent-ng-c249951845] a[_ngcontent-ng-c249951845]:not([mat-stroked-button]):focus-visible{color:var(--mat-sys-primary);text-decoration:underline}.public-footer__company[_ngcontent-ng-c249951845]{display:grid;align-content:start;gap:.55rem}.public-footer__company[_ngcontent-ng-c249951845] h2[_ngcontent-ng-c249951845]{margin-bottom:.2rem}address[_ngcontent-ng-c249951845]{display:grid;font-style:normal}.public-footer__bottom[_ngcontent-ng-c249951845]{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4rem;border-top:1px solid var(--mat-sys-outline-variant)}.public-footer__bottom[_ngcontent-ng-c249951845] nav[_ngcontent-ng-c249951845]{display:flex;flex-wrap:wrap;gap:1rem}@media (max-width: 900px){.public-footer__content[_ngcontent-ng-c249951845]{grid-template-columns:minmax(15rem,1.4fr) repeat(2,minmax(9rem,1fr))}.public-footer__company[_ngcontent-ng-c249951845]{grid-column:1/-1}}@media (max-width: 600px){.public-footer[_ngcontent-ng-c249951845]{margin-top:2rem}.public-footer__content[_ngcontent-ng-c249951845]{grid-template-columns:1fr;gap:1.75rem;padding-block:2.25rem 2rem}.public-footer__company[_ngcontent-ng-c249951845]{grid-column:auto}.public-footer__bottom[_ngcontent-ng-c249951845]{align-items:flex-start;flex-direction:column;padding-block:1rem}}</style><meta name="twitter:title" content="Training Dashboard - Quantified Self"><link rel="canonical" href="https://quantified-self.io/">
58<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","name":"Quantified Self","applicationCategory":"HealthApplication","operatingSystem":"Web","description":"Connect Garmin, Suunto, COROS and Wahoo. Analyze training, sleep and HRV in one dashboard; log blood pressure and weight, and add timeline notes.","featureList":["Week, Month, and Year activity calendar with duration-scaled activity groups","Curated training analysis for readiness, load, intensity, durability, sleep context, and best builds","Training plans with named date phases and standalone structured workouts for running and cycling","Automatic Garmin to Suunto activity sync","Automatic COROS to Suunto activity sync","Automatic Wahoo to Suunto activity sync","Activity and route delivery to Wahoo","Permission-scoped MCP access for compatible clients","Sync past activities to Suunto by date","Sleep, heart rate, and HRV trends with source-separated history","Manual blood pressure, weight, body composition, blood oxygen, and VOâ max logging","Timeline notes for travel, sickness, stress, and time away"],"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"url":"https://quantified-self.io/"}</script>
58<style ng-app-id="ng">[_nghost-ng-c1145454070]{display:flex;flex-direction:column;min-height:100vh;background-color:var(--mat-sys-surface);color:var(--mat-sys-on-surface);overflow-x:hidden}@keyframes _ngcontent-ng-c1145454070_fadeInUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-on-scroll[_ngcontent-ng-c1145454070], .features-section[_ngcontent-ng-c1145454070] .section-subtitle[_ngcontent-ng-c1145454070], .features-section[_ngcontent-ng-c1145454070] .section-title[_ngcontent-ng-c1145454070], .integrations-section[_ngcontent-ng-c1145454070]{opacity:0;transform:translate3d(0,40px,0);transition:opacity .45s cubic-bezier(.2,.8,.2,1),transform .45s cubic-bezier(.2,.8,.2,1)}.animate-on-scroll.is-visible[_ngcontent-ng-c1145454070], .features-section[_ngcontent-ng-c1145454070] .is-visible.section-subtitle[_ngcontent-ng-c1145454070], .features-section[_ngcontent-ng-c1145454070] .is-visible.section-title[_ngcontent-ng-c1145454070], .is-visible.integrations-section[_ngcontent-ng-c1145454070]{opacity:1;transform:translateZ(0)}.compact-row-stack[_ngcontent-ng-c1145454070]{border-top:1px solid var(--mat-sys-outline-variant)}@media (max-width: 959.98px){.public-below-fold[_ngcontent-ng-c1145454070]{content-visibility:auto;contain-intrinsic-size:auto 1800px}.features-section.public-below-fold[_ngcontent-ng-c1145454070]{contain-intrinsic-size:auto 6400px}.ai-insights-section.public-below-fold[_ngcontent-ng-c1145454070]{contain-intrinsic-size:auto 1800px}.analysis-section.public-below-fold[_ngcontent-ng-c1145454070]{contain-intrinsic-size:auto 2600px}}@keyframes _ngcontent-ng-c1145454070_gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.highlight-text[_ngcontent-ng-c1145454070]{background:linear-gradient(135deg,var(--mat-sys-primary) 0%,#FF9800 50%,var(--mat-sys-primary) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent;animation:_ngcontent-ng-c1145454070_gradientShift 6s ease infinite}.hero-section[_ngcontent-ng-c1145454070]{position:relative;display:flex;justify-content:center;align-items:center;text-align:center;padding:2rem 2rem 5rem;padding-bottom:1em;background:radial-gradient(circle at 50% 0%,var(--mat-sys-surface-container-high) 0%,var(--mat-sys-surface) 70%)}.hero-section[_ngcontent-ng-c1145454070] .hero-content[_ngcontent-ng-c1145454070]{max-width:900px;display:flex;flex-direction:column;align-items:center;gap:2rem}.hero-section[_ngcontent-ng-c1145454070] .hero-content[_ngcontent-ng-c1145454070] > *[_ngcontent-ng-c1145454070]:not(.hero-title):not(.hero-subtitle){opacity:0;animation:_ngcontent-ng-c1145454070_fadeInUp .6s cubic-bezier(.2,.8,.2,1) forwards}.hero-section[_ngcontent-ng-c1145454070] .hero-content[_ngcontent-ng-c1145454070] .brand-badge[_ngcontent-ng-c1145454070]{animation-delay:.
5805s}.hero-section[_ngcontent-ng-c1145454070] .hero-content[_ngcontent-ng-c1145454070] .hero-actions[_ngcontent-ng-c1145454070]{animation-delay:.1s}.hero-section[_ngcontent-ng-c1145454070] .hero-content[_ngcontent-ng-c1145454070] .trust-indicators[_ngcontent-ng-c1145454070]{animation-delay:.3s}.hero-section[_ngcontent-ng-c1145454070] .brand-badge[_ngcontent-ng-c1145454070]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;border-radius:999px;color:var(--mat-sys-on-surface-variant);font-size:1.5rem;font-weight:500;margin-bottom:0rem;transition:transform .3s ease}.hero-section[_ngcontent-ng-c1145454070] .brand-badge[_ngcontent-ng-c1145454070]:hover{transform:scale(1.05)}.hero-section[_ngcontent-ng-c1145454070] .brand-badge[_ngcontent-ng-c1145454070] p[_ngcontent-ng-c1145454070]{margin:0}.hero-section[_ngcontent-ng-c1145454070] .brand-badge[_ngcontent-ng-c1145454070] .brand-logo[_ngcontent-ng-c1145454070]{width:64px;height:64px}.hero-section[_ngcontent-ng-c1145454070] .hero-title[_ngcontent-ng-c1145454070]{font-family:var(--mat-sys-display-large-font-family-name);font-size:clamp(2.5rem,5vw,4rem);line-height:1.1;font-weight:800;letter-spacing:-.02em;margin:0;display:flex;flex-direction:column;align-items:center;gap:.45em}.hero-section[_ngcontent-ng-c1145454070] .hero-title[_ngcontent-ng-c1145454070] .hero-title-divider[_ngcontent-ng-c1145454070]{width:min(100%,720px);border-top:1px solid var(--mat-sys-outline-variant)}.hero-section[_ngcontent-ng-c1145454070] .hero-subtitle[_ngcontent-ng-c1145454070]{font-size:1.25rem;line-height:1.6;color:var(--mat-sys-on-surface-variant);max-width:600px;margin-bottom:1.5rem}.hero-section[_ngcontent-ng-c1145454070] .hero-actions[_ngcontent-ng-c1145454070]{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap;justify-content:center}.hero-section[_ngcontent-ng-c1145454070] .hero-actions[_ngcontent-ng-c1145454070] .cta-button[_ngcontent-ng-c1145454070]{padding:1.5rem 2rem;font-size:1.1rem;border-radius:999px;transition:transform .2s ease,box-shadow .2s ease}.hero-section[_ngcontent-ng-c1145454070] .hero-actions[_ngcontent-ng-c1145454070] .cta-button[_ngcontent-ng-c1145454070]:hover{transform:translateY(-2px)}.hero-section[_ngcontent-ng-c1145454070] .hero-actions[_ngcontent-ng-c1145454070] .cta-button.primary[_ngcontent-ng-c1145454070]:hover{box-shadow:0 4px 12px color-mix(in srgb,var(--mat-sys-primary) 30%,transparent)}.hero-section[_ngcontent-ng-c1145454070] .trust-indicators[_ngcontent-ng-c1145454070]{display:flex;gap:2rem;font-size:.875rem;color:var(--mat-sys-on-surface-variant);opacity:.8;flex-wrap:wrap;justify-content:center;padding-bottom:.5rem}.hero-section[_ngcontent-ng-c1145454070] .trust-indicators[_ngcontent-ng-c1145454070] .indicator[_ngcontent-ng-c1145454070]{display:flex;align-items:center;gap:.4rem;transition:opacity .2s}.hero-section[_ngcontent-ng-c1145454070] .trust-indicators[_ngcontent-ng-c1145454070] .indicator[_ngcontent-ng-c1145454070]:hover{opacity:1;color:var(--mat-sys-on-surface)}.hero-section[_ngcontent-ng-c1145454070] .trust-indicators[_ngcontent-ng-c1145454070] .indicator[_ngcontent-ng-c1145454070] mat-icon[_ngcontent-ng-c1145454070]{font-size:18px;width:18px;height:18px;color:var(--mat-sys-primary)}.integrations-section[_ngcontent-ng-c1145454070]{display:flex;box-sizing:border-box;width:100%;min-width:0;flex-direction:column;align-items:center;padding:6rem 2rem;padding-top:0;background-color:var(--mat-sys-surface);border-bottom:1px solid var(--mat-sys-outline-variant);
58transition-delay:.05s}.integrations-section[_ngcontent-ng-c1145454070] .section-label[_ngcontent-ng-c1145454070]{font-size:2.5rem;font-weight:700;letter-spacing:-.02em;color:var(--mat-sys-on-surface);margin:0 0 .75rem;opacity:1;text-align:center}.integrations-section[_ngcontent-ng-c1145454070] .integration-intro[_ngcontent-ng-c1145454070]{max-width:760px;margin:0 0 2rem;color:var(--mat-sys-on-surface-variant);font-size:1.1rem;line-height:1.6;text-align:center}.integrations-section[_ngcontent-ng-c1145454070] .logos-container[_ngcontent-ng-c1145454070]{display:flex;align-items:center;gap:3rem;flex-wrap:wrap;justify-content:center;opacity:1;transition:opacity .3s ease}.integrations-section[_ngcontent-ng-c1145454070] .logos-container[_ngcontent-ng-c1145454070]:hover{opacity:1}.integrations-section[_ngcontent-ng-c1145454070] .logos-container[_ngcontent-ng-c1145454070] .partner-logo[_ngcontent-ng-c1145454070]{width:90px;height:90px}.integrations-section[_ngcontent-ng-c1145454070] .logos-container[_ngcontent-ng-c1145454070] .partner-logo.wide[_ngcontent-ng-c1145454070]{width:90px}.integrations-section[_ngcontent-ng-c1145454070] .integration-followup-list[_ngcontent-ng-c1145454070]{width:min(1020px,100%);min-width:0;margin-top:3rem}.integrations-section[_ngcontent-ng-c1145454070] .integration-capability[_ngcontent-ng-c1145454070]{width:100%;min-width:0;max-width:100%}.integrations-section[_ngcontent-ng-c1145454070] .integration-capability-details[_ngcontent-ng-c1145454070]{display:grid;width:100%;min-width:0;max-width:100%;gap:.35rem;padding-top:.75rem;border-top:1px solid var(--mat-sys-outline-variant)}.integrations-section[_ngcontent-ng-c1145454070] .integration-capability-details[_ngcontent-ng-c1145454070] p[_ngcontent-ng-c1145454070]{min-width:0;margin:0;color:var(--mat-sys-on-surface-variant);font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}.integrations-section[_ngcontent-ng-c1145454070] .integration-capability-details[_ngcontent-ng-c1145454070] > [data-nosnippet][_ngcontent-ng-c1145454070]{width:100%;min-width:0;max-width:100%}.integrations-section[_ngcontent-ng-c1145454070] .integration-capability-details[_ngcontent-ng-c1145454070] app-provider-data-flow-matrix[_ngcontent-ng-c1145454070]{display:block;width:100%;min-width:0;max-width:100%;margin-bottom:.4rem}.integrations-section[_ngcontent-ng-c1145454070] .integrations-cta[_ngcontent-ng-c1145454070]{margin-top:2rem}@media only screen and (max-width: 900px){.integrations-section[_ngcontent-ng-c1145454070] .integration-followup-list[_ngcontent-ng-c1145454070]{margin-top:2rem}}.features-section[_ngcontent-ng-c1145454070]{padding:1rem 2rem 2rem;max-width:1200px;width:100%;margin:0 auto;box-sizing:border-box}.features-section[_ngcontent-ng-c1145454070] .section-title[_ngcontent-ng-c1145454070]{text-align:center;font-size:2.5rem;margin-bottom:4rem;font-weight:600}.features-section[_ngcontent-ng-c1145454070] .section-subtitle[_ngcontent-ng-c1145454070]{max-width:820px;margin:-2.5rem auto 2.5rem;text-align:center;font-size:1.1rem;line-height:1.7;color:var(--mat-sys-on-surface-variant)}.features-section[_ngcontent-ng-c1145454070] .training-preview-stack[_ngcontent-ng-c1145454070]{margin-bottom:2rem}.features-section[_ngcontent-ng-c1145454070] .training-preview-data[_ngcontent-ng-c1145454070]{display:grid;min-width:0}.features-section[_ngcontent-ng-c1145454070] .features-grid[_ngcontent-ng-c1145454070]{display:block}.features-section[_ngcontent-ng-c1145454070] .features-grid[_ngcontent-ng-c1145454070] >
58 *[_ngcontent-ng-c1145454070]:nth-child(1){transition-delay:.04s}.features-section[_ngcontent-ng-c1145454070] .features-grid[_ngcontent-ng-c1145454070] > *[_ngcontent-ng-c1145454070]:nth-child(2){transition-delay:.08s}.features-section[_ngcontent-ng-c1145454070] .features-grid[_ngcontent-ng-c1145454070] > *[_ngcontent-ng-c1145454070]:nth-child(3){transition-delay:.12s}.features-section[_ngcontent-ng-c1145454070] .features-grid[_ngcontent-ng-c1145454070] > *[_ngcontent-ng-c1145454070]:nth-child(4){transition-delay:.16s}.features-section[_ngcontent-ng-c1145454070] .section-actions[_ngcontent-ng-c1145454070]{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:2rem}.training-plans-section[_ngcontent-ng-c1145454070] .training-plans-row-stack[_ngcontent-ng-c1145454070]{margin-bottom:1.5rem}.training-plans-section[_ngcontent-ng-c1145454070] .training-plans-mcp-example[_ngcontent-ng-c1145454070]{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;max-width:1024px;margin:0 auto 1.5rem;padding:1.25rem;text-align:left;background:var(--mat-sys-surface-container-low);border:1px solid var(--mat-sys-outline-variant);border-radius:1rem}.training-plans-section[_ngcontent-ng-c1145454070] .training-plans-mcp-example[_ngcontent-ng-c1145454070] > mat-icon[_ngcontent-ng-c1145454070]{color:var(--mat-sys-primary)}.training-plans-section[_ngcontent-ng-c1145454070] .training-plans-mcp-example[_ngcontent-ng-c1145454070] h3[_ngcontent-ng-c1145454070]{margin:0 0 .5rem;font:var(--mat-sys-title-medium);color:var(--mat-sys-on-surface)}.training-plans-section[_ngcontent-ng-c1145454070] .training-plans-mcp-example[_ngcontent-ng-c1145454070] blockquote[_ngcontent-ng-c1145454070], .training-plans-section[_ngcontent-ng-c1145454070] .training-plans-mcp-example[_ngcontent-ng-c1145454070] p[_ngcontent-ng-c1145454070]{margin:0}.training-plans-section[_ngcontent-ng-c1145454070] .training-plans-mcp-example[_ngcontent-ng-c1145454070] p[_ngcontent-ng-c1145454070]{color:var(--mat-sys-on-surface-variant);line-height:1.6}.training-plans-section[_ngcontent-ng-c1145454070] .training-plans-home-preview[_ngcontent-ng-c1145454070]{display:block;max-width:1024px;margin:0 auto}.training-plans-section[_ngcontent-ng-c1145454070] a[_ngcontent-ng-c1145454070]:focus-visible{outline:3px solid var(--mat-sys-primary);outline-offset:3px}@media (prefers-reduced-motion: reduce){.animate-on-scroll[_ngcontent-ng-c1145454070], .integrations-section[_ngcontent-ng-c1145454070], .features-section[_ngcontent-ng-c1145454070] .section-title[_ngcontent-ng-c1145454070], .features-section[_ngcontent-ng-c1145454070] .section-subtitle[_ngcontent-ng-c1145454070], .hero-section[_ngcontent-ng-c1145454070] .hero-content[_ngcontent-ng-c1145454070] > *[_ngcontent-ng-c1145454070]{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}.highlight-text[_ngcontent-ng-c1145454070]{animation:none}}.ai-insights-section[_ngcontent-ng-c1145454070]{padding-top:.5rem;margin-top:-.75rem}.ai-insights-section[_ngcontent-ng-c1145454070] .ai-insights-header[_ngcontent-ng-c1145454070]{text-align:center;margin-bottom:1.5rem}.ai-insights-section[_ngcontent-ng-c1145454070] .ai-insights-header[_ngcontent-ng-c1145454070] .section-title[_ngcontent-ng-c1145454070]{margin-bottom:1rem;font-size:2.5rem;font-weight:700;opacity:1;transform:none}.ai-insights-section[_ngcontent-ng-c1145454070] .ai-insights-header[_ngcontent-ng-c1145454070] .section-subtitle[_ngcontent-ng-c1145454070]{font-size:1.2rem;color:var(--mat-sys-on-surface-variant);max-width:760px;margin:0 auto;line-height:1.6;opacity:1;transform:none}.ai-insights-section[_ngcontent-ng-c1145454070] .ai-insights-examples[_ngcontent-ng-c1145454070]{margin-top:1.5rem}.ai-insights-section[_ngcontent-ng-c1145454070] .ai-insights-actions[_ngcontent-ng-c1145454070]{margin-bottom:0}.ai-insights-section[_ngcontent-ng-c1145454070] .ai-insights-cta-note[_ngcontent-ng-c1145454070]{margin:.75rem 0 0;text-align:center;color:var(--mat-sys-on-surface-variant);font-size:.95rem}.ai-insights-section[_ngcontent-ng-c1145454070] .mcp-access-stack[_ngcontent-ng-c1145454070]{margin-top:2rem}.analysis-section[_ngcontent-ng-c1145454070]{padding:2.5rem 2rem 6rem;max-width:1200px;margin:0 auto}.analysis-section[_ngcontent-ng-c1145454070] .analysis-header[_ngcontent-ng-c1145454070]{text-align:center;margin-bottom:4rem}.analysis-section[_ngcontent-ng-c1145454070] .analysis-header[_ngcontent-ng-c1145454070] .analysis-header-icon[_ngcontent-ng-c1145454070]{width:48px;height:48px;margin-bottom:1rem;font-size:48px;color:var(--mat-sys-primary)}.analysis-section[_ngcontent-ng-c1145454070] .analysis-header[_ngcontent-ng-c1145454070] .section-title[_ngcontent-ng-c1145454070]{margin:0 0 1rem;font-size:2.5rem;font-weight:700}.analysis-section[_ngcontent-ng-c1145454070] .analysis-header[_ngcontent-ng-c1145454070] .section-subtitle[_ngcontent-ng-c1145454070]{font-size:1.25rem;color:var(--mat-sys-on-surface-variant);max-width:600px;margin:0 auto}.analysis-section[_ngcontent-ng-c1145454070] .analysis-header[_ngcontent-ng-c1145454070] .analysis-actions[_ngcontent-ng-c1145454070]{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.25rem}.analysis-section[_ngcontent-ng-c1145454070] .analysis-grid[_ngcontent-ng-c1145454070]{display:block}.footprint-section[_ngcontent-ng-c1145454070]{padding:5rem 2rem 2.5rem;text-align:center;background:linear-gradient(135deg,var(--mat-sys-surface) 0%,var(--mat-sys-surface-container-low) 100%);border-top:1px solid var(--mat-sys-outline-variant)}.footprint-section[_ngcontent-ng-c1145454070] .footprint-content[_ngcontent-ng-c1145454070]{max-width:1040px;margin:0 auto}.footprint-section[_ngcontent-ng-c1145454070] .footprint-text[_ngcontent-ng-c1145454070]{display:flex;flex-direction:column;align-items:center;max-width:700px;margin:0 auto}.footprint-section[_ngcontent-ng-c1145454070] .footprint-text[_ngcontent-ng-c1145454070] > p[_ngcontent-ng-c1145454070]{margin-bottom:0}.footprint-section[_ngcontent-ng-c1145454070] .footprint-icon[_ngcontent-ng-c1145454070]{font-size:56px;width:56px;height:56px;margin-bottom:1.5rem}.footprint-section[_ngcontent-ng-c1145454070] h2[_ngcontent-ng-c1145454070]{font-size:2.25rem;margin-bottom:1rem;color:var(--mat-sys-on-surface)}.footprint-section[_ngcontent-ng-c1145454070] p[_ngcontent-ng-c1145454070]{font-size:1.15rem;line-height:1.7;color:var(--mat-sys-on-surface-variant);margin-bottom:2rem}.footprint-section[_ngcontent-ng-c1145454070] .footprint-cta[_ngcontent-ng-c1145454070]{border-radius:999px;padding:.75rem 1.5rem;margin-top:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.footprint-section[_ngcontent-ng-c1145454070] .footprint-cta[_ngcontent-ng-c1145454070]:hover{transform:translateY(-2px)}.footprint-section[_ngcontent-ng-c1145454070] .footprint-map-stage[_ngcontent-ng-c1145454070]{height:clamp(320px,48vw,520px);margin-top:2.5rem}.footprint-section[_ngcontent-ng-c1145454070] .footprint-map-caption[_ngcontent-ng-c1145454070]{margin:.75rem 0 0;font-size:.85rem;line-height:1.4}.sovereignty-section[_ngcontent-ng-c1145454070]{background-color:var(--mat-sys-surface-container);padding:6rem 2rem;text-align:center}.sovereignty-section[_ngcontent-ng-c1145454070] .content-wrapper[_ngcontent-ng-c1145454070]{max-width:700px;margin:0 auto}.sovereignty-section[_ngcontent-ng-c1145454070] .large-icon[_ngcontent-ng-c1145454070]{font-size:64px;width:64px;
58height:64px;color:var(--mat-sys-primary);margin-bottom:1.5rem}.sovereignty-section[_ngcontent-ng-c1145454070] h2[_ngcontent-ng-c1145454070]{font-size:2.5rem;margin-bottom:1.5rem}.sovereignty-section[_ngcontent-ng-c1145454070] p[_ngcontent-ng-c1145454070]{font-size:1.25rem;line-height:1.6;color:var(--mat-sys-on-surface-variant);margin-bottom:2.5rem}@media only screen and (max-width: 599.98px){.hero-section[_ngcontent-ng-c1145454070]{padding:4rem 1.5rem 2rem;padding-bottom:1em}.hero-section[_ngcontent-ng-c1145454070] .hero-title[_ngcontent-ng-c1145454070]{font-size:2.5rem}.features-section[_ngcontent-ng-c1145454070] .section-subtitle[_ngcontent-ng-c1145454070]{margin-top:-2rem;margin-bottom:2rem;font-size:1rem}.trust-indicators[_ngcontent-ng-c1145454070]{flex-direction:column;gap:.5rem}.ai-insights-section[_ngcontent-ng-c1145454070]{margin-top:-.25rem}.ai-insights-section[_ngcontent-ng-c1145454070] .section-subtitle[_ngcontent-ng-c1145454070]{font-size:1.05rem}.ai-insights-section[_ngcontent-ng-c1145454070] .section-actions[_ngcontent-ng-c1145454070]{flex-direction:column;align-items:stretch;gap:.75rem}.ai-insights-section[_ngcontent-ng-c1145454070] .section-actions[_ngcontent-ng-c1145454070] a[mat-stroked-button][_ngcontent-ng-c1145454070]{width:100%;max-width:360px;margin:0 auto}}</style><style ng-app-id="ng">[_nghost-ng-c3442194223]{display:block;min-width:0;border-bottom:1px solid var(--mat-sys-outline-variant)}.compact-row-host--without-divider[_nghost-ng-c3442194223]{border-bottom:0}.compact-row-host--fill-height[_nghost-ng-c3442194223]{display:flex;flex-direction:column}.compact-row-host--fill-height[_nghost-ng-c3442194223] .compact-row[_ngcontent-ng-c3442194223]{flex:1;grid-template-rows:auto minmax(0,1fr)}.compact-row-host--fill-height[_nghost-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223]{align-self:stretch;display:flex;flex-direction:column}.compact-row[_ngcontent-ng-c3442194223]{display:grid;grid-template-columns:48px minmax(180px,240px) minmax(0,1fr) auto;align-items:start;gap:1.25rem;padding:1.25rem .5rem}.compact-row__icon[_ngcontent-ng-c3442194223]{display:flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:16px}.compact-row__icon[_ngcontent-ng-c3442194223] mat-icon[_ngcontent-ng-c3442194223]{width:24px;height:24px;font-size:24px}.compact-row--primary[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223]{color:var(--mat-sys-on-primary-container);background:var(--mat-sys-primary-container)}.compact-row--secondary[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223]{color:var(--mat-sys-on-secondary-container);background:var(--mat-sys-secondary-container)}.compact-row--tertiary[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223]{color:var(--mat-sys-on-tertiary-container);background:var(--mat-sys-tertiary-container)}.compact-row--neutral[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223]{color:var(--mat-sys-on-surface-variant);background:var(--mat-sys-surface-container-high)}.compact-row__title[_ngcontent-ng-c3442194223]{display:flex;min-width:0;gap:.5rem;min-height:48px;align-self:start;align-items:center;margin:0;color:var(--mat-sys-on-surface);font-size:1.25rem;font-weight:600;line-height:1.2}.compact-row__title[_ngcontent-ng-c3442194223] > span[_ngcontent-ng-c3442194223]{min-width:0;overflow-wrap:anywhere}.compact-row__body[_ngcontent-ng-c3442194223]{display:grid;min-width:0;gap:1rem;padding-top:.15rem}.compact-row__summary[_ngcontent-ng-c3442194223]{margin:0;color:var(--mat-sys-on-surface-variant);font-size:1rem;line-height:1.55}.compact-row__action[_ngcontent-ng-c3442194223]{display:grid;align-self:center;white-space:nowrap}.compact-row__action[_ngcontent-ng-c3442194223]:empty{display:none}.compact-row--without-icon[_ngcontent-ng-c3442194223]{grid-template-columns:minmax(180px,240px) minmax(0,1fr) auto}@media (max-width: 900px){.compact-row--columns[_ngcontent-ng-c3442194223]{grid-template-columns:48px minmax(0,1fr);gap:1rem;padding:1.25rem 0}.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223], .compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:2}.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{justify-self:start}.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223]{grid-template-columns:minmax(0,1fr)}.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223], .compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:1}}@media (max-width: 520px){.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223], .compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:1/-1}.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{width:100%}}.compact-row--stacked[_ngcontent-ng-c3442194223]{grid-template-columns:48px minmax(0,1fr) auto}.compact-row--stacked[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223]{grid-column:1;grid-row:1;align-self:center}.compact-row--stacked[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223]{grid-column:2;grid-row:1;align-self:center}.compact-row--stacked[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:3;grid-row:1;justify-self:end}.compact-row--stacked[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223]{grid-column:1/-1;grid-row:2}.compact-row--stacked.compact-row--without-icon[_ngcontent-ng-c3442194223]{grid-template-columns:minmax(0,1fr) auto}.compact-row--stacked.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223]{grid-column:1}.compact-row--stacked.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:2}.compact-row--compact[_ngcontent-ng-c3442194223]{gap:.4rem .5rem;padding:.5rem 0}.compact-row--compact[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223]{width:32px;height:32px;border-radius:10px}.compact-row--compact[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223] mat-icon[_ngcontent-ng-c3442194223]{width:18px;height:18px;font-size:18px}.compact-row--compact[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223]{min-height:32px;font:var(--mat-sys-title-small);font-weight:600}.compact-row--compact[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223]{gap:.25rem;padding-top:0}.compact-row--compact[_ngcontent-ng-c3442194223] .compact-row__summary[_ngcontent-ng-c3442194223]{font:var(--mat-sys-body-small)}.compact-row--compact.compact-row--stacked[_ngcontent-ng-c3442194223]:not(.compact-row--without-icon){grid-template-columns:32px minmax(0,1fr) auto}.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223]{grid-template-columns:24px minmax(140px,180px) minmax(0,1fr) auto;align-items:center;padding:.375rem 0}.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223]{width:24px;height:24px;border-radius:8px}
58.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223] mat-icon[_ngcontent-ng-c3442194223]{width:16px;height:16px;font-size:16px}.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223]{min-height:24px;align-self:center;overflow-wrap:anywhere}.compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223]{grid-template-columns:minmax(140px,180px) minmax(0,1fr) auto}@media (max-width: 900px){.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223]{grid-template-columns:24px minmax(0,1fr) auto}.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__icon[_ngcontent-ng-c3442194223]{grid-column:1;grid-row:1}.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223]{grid-column:2;grid-row:1}.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:3;grid-row:1;justify-self:end;width:auto}.compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223]{grid-column:2/-1;grid-row:2}.compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223]{grid-template-columns:minmax(0,1fr) auto}.compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223]{grid-column:1}.compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:2}.compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223]{grid-column:1/-1}}@media (max-width: 520px){.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223]{grid-template-columns:24px minmax(0,1fr)}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223]{grid-column:2;grid-row:2}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:1/-1;grid-row:3;width:100%}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223]{grid-template-columns:minmax(0,1fr)}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223], .compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223], .compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:1}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223]{grid-row:1}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223]{grid-row:2}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--columns.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-row:3}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--stacked.compact-row--without-icon[_ngcontent-ng-c3442194223]{grid-template-columns:minmax(0,1fr)}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--stacked.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__title[_ngcontent-ng-c3442194223]{grid-column:1;grid-row:1}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--stacked.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__body[_ngcontent-ng-c3442194223]{grid-column:1;grid-row:2}.compact-row-host--mobile-action-full[_nghost-ng-c3442194223] .compact-row--compact.compact-row--stacked.compact-row--without-icon[_ngcontent-ng-c3442194223] .compact-row__action[_ngcontent-ng-c3442194223]{grid-column:1;grid-row:3;justify-self:start;width:100%}}</style><style ng-app-id="ng">[_nghost-ng-c2834714424]{display:block;width:100%;min-width:0;max-width:100%}.provider-data-flow-matrix[_ngcontent-ng-c2834714424]{width:100%;min-width:0;max-width:100%}.provider-data-flow-matrix__scroll[_ngcontent-ng-c2834714424]{box-sizing:border-box;width:100%;max-width:100%;margin-top:16px;overflow-x:auto;overscroll-behavior-inline:contain;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.provider-data-flow-matrix__scroll[_ngcontent-ng-c2834714424]:focus-visible{outline:2px solid var(--mat-sys-primary);outline-offset:2px}.provider-data-flow-matrix__mobile[_ngcontent-ng-c2834714424]{display:none}.provider-data-flow-matrix__table[_ngcontent-ng-c2834714424]{width:100%;min-width:640px;border-collapse:collapse;table-layout:fixed}.provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] caption[_ngcontent-ng-c2834714424]{margin-bottom:8px;color:var(--mat-sys-on-surface);font-size:.82rem;font-weight:650;text-align:left}.provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] th[_ngcontent-ng-c2834714424], .provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] td[_ngcontent-ng-c2834714424]{padding:8px;vertical-align:top}.provider-data-flow-matrix__provider-label[_ngcontent-ng-c2834714424]{display:inline-flex;align-items:center;gap:4px}.provider-data-flow-matrix__provider-status[_ngcontent-ng-c2834714424]{width:16px;height:16px;color:var(--qs-theme-success);font-size:16px}.provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] thead[_ngcontent-ng-c2834714424] th[_ngcontent-ng-c2834714424]{border-bottom:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface-variant);font-size:.78rem;font-weight:650;line-height:1.25;text-align:center}.provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] thead[_ngcontent-ng-c2834714424] th[_ngcontent-ng-c2834714424]:first-child, .provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] tbody[_ngcontent-ng-c2834714424] th[_ngcontent-ng-c2834714424]{width:92px;text-align:left}.provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] tbody[_ngcontent-ng-c2834714424] th[_ngcontent-ng-c2834714424]{border-bottom:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface);font-size:.8rem;font-weight:650;line-height:1.25}.provider-data-flow-matrix__cell[_ngcontent-ng-c2834714424]{min-width:116px;border-bottom:1px solid var(--mat-sys-outline-variant);border-left:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface);text-align:center}
58.provider-data-flow-matrix__cell--same[_ngcontent-ng-c2834714424], .provider-data-flow-matrix__empty[_ngcontent-ng-c2834714424]{color:var(--mat-sys-on-surface-variant)}.provider-data-flow-matrix__routes[_ngcontent-ng-c2834714424]{display:grid;gap:8px}.provider-data-flow-matrix__route[_ngcontent-ng-c2834714424]{width:100%;min-width:0;padding:4px;color:var(--mat-sys-on-surface);font-size:.8rem;font-weight:650;line-height:1.25;text-align:center}.provider-data-flow-matrix__route[_ngcontent-ng-c2834714424]:not(button){display:block;box-sizing:border-box}.provider-data-flow-matrix__route-content[_ngcontent-ng-c2834714424]{display:grid;justify-items:center;gap:3px}.provider-data-flow-matrix__route-label[_ngcontent-ng-c2834714424]{line-height:1.25}.provider-data-flow-matrix__route--activity[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__route-label[_ngcontent-ng-c2834714424]{color:var(--mat-sys-primary)}.provider-data-flow-matrix__route--route[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__route-label[_ngcontent-ng-c2834714424]{color:var(--mat-sys-tertiary)}.provider-data-flow-matrix__route[_ngcontent-ng-c2834714424] small[_ngcontent-ng-c2834714424]{color:var(--mat-sys-on-surface-variant);font-size:.72rem;font-weight:600;line-height:1.25}.provider-data-flow-matrix__route--active[_ngcontent-ng-c2834714424] small[_ngcontent-ng-c2834714424]{color:var(--qs-theme-success)}.provider-data-flow-matrix__route--attention[_ngcontent-ng-c2834714424], .provider-data-flow-matrix__route--attention[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__route-label[_ngcontent-ng-c2834714424], .provider-data-flow-matrix__route--attention[_ngcontent-ng-c2834714424] small[_ngcontent-ng-c2834714424]{color:var(--mat-sys-error)}.provider-data-flow-matrix__route[_ngcontent-ng-c2834714424] small[_ngcontent-ng-c2834714424] mat-icon[_ngcontent-ng-c2834714424]{width:14px;height:14px;margin-right:2px;vertical-align:text-bottom;font-size:14px}.provider-data-flow-matrix--compact[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__scroll[_ngcontent-ng-c2834714424]{margin-top:0}.provider-data-flow-matrix--compact[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__table[_ngcontent-ng-c2834714424]{min-width:560px}.provider-data-flow-matrix--compact[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] th[_ngcontent-ng-c2834714424], .provider-data-flow-matrix--compact[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__table[_ngcontent-ng-c2834714424] td[_ngcontent-ng-c2834714424]{padding:6px}.provider-data-flow-matrix--compact[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__route[_ngcontent-ng-c2834714424]{padding:2px;font-size:.75rem}@media (max-width: 768px){.provider-data-flow-matrix__scroll[_ngcontent-ng-c2834714424]{display:none}.provider-data-flow-matrix__mobile[_ngcontent-ng-c2834714424]{display:grid;gap:16px;margin-top:16px}.provider-data-flow-matrix__mobile-group[_ngcontent-ng-c2834714424] + .provider-data-flow-matrix__mobile-group[_ngcontent-ng-c2834714424]{padding-top:16px;border-top:1px solid var(--mat-sys-outline-variant)}.provider-data-flow-matrix__mobile-group[_ngcontent-ng-c2834714424] h2[_ngcontent-ng-c2834714424], .provider-data-flow-matrix__mobile-target[_ngcontent-ng-c2834714424] h3[_ngcontent-ng-c2834714424]{margin:0;color:var(--mat-sys-on-surface);font-size:.85rem;font-weight:650;line-height:1.35}.provider-data-flow-matrix__mobile-group[_ngcontent-ng-c2834714424] h2[_ngcontent-ng-c2834714424]{margin-bottom:6px}.provider-data-flow-matrix__mobile-target[_ngcontent-ng-c2834714424]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px 0;border-top:1px solid var(--mat-sys-outline-variant)}.provider-data-flow-matrix__mobile-target[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__routes[_ngcontent-ng-c2834714424]{grid-auto-flow:column;grid-auto-columns:max-content;justify-content:end;gap:10px;text-align:right}.provider-data-flow-matrix__mobile-target[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__route[_ngcontent-ng-c2834714424]{width:auto;text-align:right}.provider-data-flow-matrix__mobile-target[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__route-content[_ngcontent-ng-c2834714424]{justify-items:end}.provider-data-flow-matrix--compact[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__scroll[_ngcontent-ng-c2834714424]{display:block}.provider-data-flow-matrix--compact[_ngcontent-ng-c2834714424] .provider-data-flow-matrix__mobile[_ngcontent-ng-c2834714424]{display:none}}</style><style ng-app-id="ng">[_nghost-ng-c1381355651]{display:block;min-width:0;margin-top:1rem}[_nghost-ng-c1381355651], [_nghost-ng-c1381355651] > *[_ngcontent-ng-c1381355651], .preview-content[_ngcontent-ng-c1381355651] > *[_ngcontent-ng-c1381355651]{box-sizing:border-box}.preview-content[_ngcontent-ng-c1381355651]{min-width:0}.preview-placeholder--readiness[_ngcontent-ng-c1381355651]{min-height:14rem}.preview-placeholder--explorer[_ngcontent-ng-c1381355651]{min-height:30rem}.preview-placeholder--training-plans[_ngcontent-ng-c1381355651]{min-height:46rem}.preview-placeholder[_ngcontent-ng-c1381355651], .map-stage[_ngcontent-ng-c1381355651]{width:100%;border:1px solid var(--mat-sys-outline-variant);border-radius:16px;background:linear-gradient(135deg,transparent 25%,color-mix(in srgb,var(--mat-sys-primary) 5%,transparent) 50%,transparent 75%),var(--mat-sys-surface-container-low)}.preview-placeholder--training[_ngcontent-ng-c1381355651], .preview-placeholder--flow[_ngcontent-ng-c1381355651]{min-height:22rem}.preview-placeholder--health[_ngcontent-ng-c1381355651]{min-height:15rem}.preview-placeholder--health-sleep[_ngcontent-ng-c1381355651]{min-height:28rem}.preview-placeholder--dashboard[_ngcontent-ng-c1381355651]{min-height:30rem}.preview-placeholder--reviewer[_ngcontent-ng-c1381355651]{min-height:116rem}.preview-placeholder--assistant[_ngcontent-ng-c1381355651], .preview-placeholder--mcp[_ngcontent-ng-c1381355651]{min-height:12rem}.preview-placeholder--signals[_ngcontent-ng-c1381355651]{min-height:43rem}.preview-placeholder--workout[_ngcontent-ng-c1381355651]{min-height:40rem}.map-stage[_ngcontent-ng-c1381355651]{height:clamp(20rem,48vw,32.5rem);overflow:hidden}.preview-placeholder--map[_ngcontent-ng-c1381355651]{height:100%;border:0;border-radius:0}@media (max-width: 440px){.preview-placeholder--training-plans[_ngcontent-ng-c1381355651]{min-height:42rem}.preview-placeholder--signals[_ngcontent-ng-c1381355651], .preview-placeholder--workout[_ngcontent-ng-c1381355651]{min-height:64rem}.preview-placeholder--reviewer[_ngcontent-ng-c1381355651]{min-height:161rem}}</style></head> 59 60<body><!--nghm--> 61 <app-root ng-version="20.3.17" _nghost-ng-c1933515739="" ngh="3" ng-server-context="ssg"><app-shell _ngcontent-ng-c1933515739="" _nghost-ng-c1881274973="" class="ng-tns-c1881274973-0" ngh="31"><!----><!----><div _ngcontent-ng-c1881274973="" class="app-layout-wrapper ng-tns-c1881274973-0 ng-star-inserted" style="--qs-layout-top-offset: 64px; --qs-effective-top-offset: 64px; --qs-visible-top-offset: 64px; --qs-banner-height: 0px;"><app-grace-period-banner _ngcontent-ng-c1881274973="" class="ng-tns-c1881274973-0" _nghost-ng-c122525178="" ngh="0"><!----></app-grace-period-banner><app-route-loader _ngcontent-ng-c1881274973="" class="ng-tns-c1881274973-0" _nghost-ng-c64824633="" ngh="1"><!----></app-route-loader><!----><app-shell-header _ngcontent-ng-c1881274973="" _nghost-ng-c2645642140="" class="ng-tns-c1881274973-0 ng-star-inserted" ngh="8"><nav _ngcontent-ng-c2645642140="" class="custom-header mat-typography" style="top: 0px;"><button _ngcontent-ng-c2645642140="" mat-icon-button="" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base hamburger-link mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-centered="" ngh="2"><span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple"></span><mat-icon _ngcontent-ng-c2645642140="" role="img" class="mat-icon notranslate larger_icon material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">menu</mat-icon>
61<span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><mat-icon _ngcontent-ng-c2645642140="" role="img" svgicon="logo" class="mat-icon notranslate app-icon header-logo material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="svg" data-mat-icon-name="logo" data-mat-icon-namespace="material-symbols-rounded" ngh="3"><svg focusable="false"></svg></mat-icon><span _ngcontent-ng-c2645642140="" class="fill-space"></span><!----><app-processing-indicator _ngcontent-ng-c2645642140="" class="right" _nghost-ng-c3105694440="" ngh="5"><!----><mat-menu _ngcontent-ng-c3105694440="" class="" ngh="4"><!----></mat-menu></app-processing-indicator><button _ngcontent-ng-c2645642140="" mat-icon-button="" mattooltip="What's New" aria-label="View recent updates" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger right mat-unthemed _mat-animation-noopable ng-star-inserted" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-centered="" ngh="2"><span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple"></span><mat-icon _ngcontent-ng-c2645642140="" role="img" aria-hidden="false" class="mat-icon notranslate mat-badge qs-app-badge qs-app-badge--small material-symbols-rounded mat-icon-no-color mat-badge-overlap mat-badge-above mat-badge-after mat-badge-medium mat-badge-hidden" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">campaign<span id="mat-badge-content-0" aria-hidden="true" class="mat-badge-content _mat-animation-noopable mat-badge-active">0</span></mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><!----><!----><!----><!----><!----><button _ngcontent-ng-c2645642140="" mat-flat-button="" class="mdc-button mat-mdc-button-base right qs-mat-accent responsive-action-button responsive-action-button--desktop mdc-button--unelevated mat-mdc-unelevated-button mat-unthemed _mat-animation-noopable ng-star-inserted" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" ngh="6"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"><span _ngcontent-ng-c2645642140="">Login or Register</span></span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><button _ngcontent-ng-c2645642140="" mat-mini-fab="" mattooltip="Login or Register" aria-label="Login or Register" class="mdc-fab mat-mdc-fab-base mdc-fab--mini mat-mdc-mini-fab mat-mdc-button-base mat-mdc-tooltip-trigger right qs-mat-accent responsive-action-icon-button responsive-action-button--mobile mat-accent _mat-animation-noopable ng-star-inserted" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" ngh="7"><span class="mat-mdc-button-persistent-ripple mdc-fab__ripple"></span><mat-icon _ngcontent-ng-c2645642140="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">login</mat-icon><span class="mdc-button__label"></span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><!----><!----></nav></app-shell-header><!----><mat-sidenav-container _ngcontent-ng-c1881274973="" class="mat-drawer-container mat-sidenav-container app-sidenav-container ng-tns-c1881274973-0 ng-star-inserted" ngh="9"><div class="mat-drawer-backdrop ng-star-inserted"></div><!----><mat-sidenav _ngcontent-ng-c1881274973="" class="mat-drawer mat-sidenav ng-tns-c1881274973-0 mat-drawer-over mat-sidenav-fixed ng-star-inserted" tabindex="-1" style="top: 64px; bottom: 0px;" ngh="3"><div cdkscrollable="" class="mat-drawer-inner-container"><app-sidenav _ngcontent-ng-c1881274973="" _nghost-ng-c3317298122="" ngh="12"><mat-toolbar _ngcontent-ng-c3317298122="" class="mat-toolbar mat-nav-list mat-toolbar-multiple-rows" ngh="3"><mat-toolbar-row _ngcontent-ng-c3317298122="" class="mat-toolbar-row mat-elevation-z0 mat-list-item mat-app-background"><mat-icon _ngcontent-ng-c3317298122="" role="img" svgicon="logo" class="mat-icon notranslate app-icon material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="svg" data-mat-icon-name="logo" data-mat-icon-namespace="material-symbols-rounded" ngh="3"><svg focusable="false"></svg></mat-icon> Quantified Self <span _ngcontent-ng-c3317298122="" style="font-size: 0.6em;">10.18.2</span></mat-toolbar-row></mat-toolbar><mat-nav-list _ngcontent-ng-c3317298122="" role="navigation" class="mat-mdc-nav-list mat-mdc-list-base mdc-list" aria-disabled="false" ngh="3"><!----><mat-list-item _ngcontent-ng-c3317298122="" routerlinkactive="active" routerlink="/" class="mat-mdc-list-item mdc-list-item mat-mdc-list-item-interactive _mat-animation-noopable mat-mdc-list-item-single-line mdc-list-item--with-one-line ng-star-inserted active" tabindex="0" aria-disabled="false" ngh="10"><span class="mdc-list-item__content"><span class="mat-mdc-list-item-unscoped-content mdc-list-item__primary-text"><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">home</mat-icon>
61<span _ngcontent-ng-c3317298122="">Home</span></span></span><div class="mat-focus-indicator"></div></mat-list-item><!----><!----><mat-list-item _ngcontent-ng-c3317298122="" routerlinkactive="active" routerlink="/tools/compare" class="mat-mdc-list-item mdc-list-item mat-mdc-list-item-interactive _mat-animation-noopable mat-mdc-list-item-single-line mdc-list-item--with-one-line ng-star-inserted" tabindex="0" aria-disabled="false" ngh="10"><span class="mdc-list-item__content"><span class="mat-mdc-list-item-unscoped-content mdc-list-item__primary-text"><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">compare_arrows</mat-icon><span _ngcontent-ng-c3317298122="">Compare Files</span></span></span><div class="mat-focus-indicator"></div></mat-list-item><!----><mat-list-item _ngcontent-ng-c3317298122="" routerlinkactive="active" routerlink="/pricing" class="mat-mdc-list-item mdc-list-item mat-mdc-list-item-interactive _mat-animation-noopable mat-mdc-list-item-single-line mdc-list-item--with-one-line ng-star-inserted" tabindex="0" aria-disabled="false" ngh="10"><span class="mdc-list-item__content"><span class="mat-mdc-list-item-unscoped-content mdc-list-item__primary-text"><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">card_membership</mat-icon><span _ngcontent-ng-c3317298122="">Membership</span></span></span><div class="mat-focus-indicator"></div></mat-list-item><!----><mat-list-item _ngcontent-ng-c3317298122="" routerlinkactive="active" routerlink="/login" class="mat-mdc-list-item mdc-list-item mat-mdc-list-item-interactive _mat-animation-noopable mat-mdc-list-item-single-line mdc-list-item--with-one-line ng-star-inserted" tabindex="0" aria-disabled="false" ngh="10"><span class="mdc-list-item__content"><span class="mat-mdc-list-item-unscoped-content mdc-list-item__primary-text"><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">assignment_ind</mat-icon><span _ngcontent-ng-c3317298122="">Login</span></span></span><div class="mat-focus-indicator"></div></mat-list-item><!----><!----><div _ngcontent-ng-c3317298122="" class="sidenav-section-header">Preferences</div><mat-list-item _ngcontent-ng-c3317298122="" aria-label="Theme preference" class="mat-mdc-list-item mdc-list-item theme-toggle-item mat-mdc-list-item-interactive _mat-animation-noopable mat-mdc-list-item-single-line mdc-list-item--with-one-line" aria-disabled="false" ngh="10"><span class="mdc-list-item__content"><span class="mat-mdc-list-item-unscoped-content mdc-list-item__primary-text"><div _ngcontent-ng-c3317298122="" class="theme-toggle-row"><mat-button-toggle-group _ngcontent-ng-c3317298122="" name="theme" aria-label="Theme selection" hidesingleselectionindicator="" class="mat-button-toggle-group theme-toggle-group mat-button-toggle-group-appearance-standard" role="radiogroup" aria-disabled="false"><mat-button-toggle _ngcontent-ng-c3317298122="" role="presentation" hidesingleselectionindicator="" class="mat-button-toggle mat-button-toggle-appearance-standard" id="mat-button-toggle-0" ngh="11"><button type="button" class="mat-button-toggle-button mat-focus-indicator" id="mat-button-toggle-0-button" role="radio" tabindex="-1" aria-checked="false" name="theme" aria-label="Use light theme"><!----><span class="mat-button-toggle-label-content"><span _ngcontent-ng-c3317298122="" class="theme-toggle-option"><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">light_mode</mat-icon><span _ngcontent-ng-c3317298122="">Light</span></span></span></button><span class="mat-button-toggle-focus-overlay"></span><span matripple="" class="mat-ripple mat-button-toggle-ripple"></span></mat-button-toggle><mat-button-toggle _ngcontent-ng-c3317298122="" role="presentation" hidesingleselectionindicator="" class="mat-button-toggle mat-button-toggle-checked mat-button-toggle-appearance-standard" id="mat-button-toggle-1" ngh="11"><button type="button" class="mat-button-toggle-button mat-focus-indicator" id="mat-button-toggle-1-button" role="radio" tabindex="0" aria-checked="true" name="theme" aria-label="Use system theme"><!----><span class="mat-button-toggle-label-content"><span _ngcontent-ng-c3317298122="" class="theme-toggle-option"><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">brightness_auto</mat-icon>
61<span _ngcontent-ng-c3317298122="">System</span></span></span></button><span class="mat-button-toggle-focus-overlay"></span><span matripple="" class="mat-ripple mat-button-toggle-ripple"></span></mat-button-toggle><mat-button-toggle _ngcontent-ng-c3317298122="" role="presentation" hidesingleselectionindicator="" class="mat-button-toggle mat-button-toggle-appearance-standard" id="mat-button-toggle-2" ngh="11"><button type="button" class="mat-button-toggle-button mat-focus-indicator" id="mat-button-toggle-2-button" role="radio" tabindex="-1" aria-checked="false" name="theme" aria-label="Use dark theme"><!----><span class="mat-button-toggle-label-content"><span _ngcontent-ng-c3317298122="" class="theme-toggle-option"><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">dark_mode</mat-icon><span _ngcontent-ng-c3317298122="">Dark</span></span></span></button><span class="mat-button-toggle-focus-overlay"></span><span matripple="" class="mat-ripple mat-button-toggle-ripple"></span></mat-button-toggle></mat-button-toggle-group></div></span></span><div class="mat-focus-indicator"></div></mat-list-item><!----><div _ngcontent-ng-c3317298122="" class="sidenav-footer"><button _ngcontent-ng-c3317298122="" mat-stroked-button="" routerlink="/help" class="mdc-button mat-mdc-button-base sidenav-cta-button mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" ngh="7"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">help</mat-icon><span class="mdc-button__label"><span _ngcontent-ng-c3317298122="">Help & Support</span></span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><div _ngcontent-ng-c3317298122="" class="sidenav-footer-links"><button _ngcontent-ng-c3317298122="" mat-icon-button="" mattooltip="Release Notes" routerlink="/releases" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-centered="" ngh="2"><span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple"></span><mat-icon _ngcontent-ng-c3317298122="" role="img" matbadgesize="small" aria-hidden="false" class="mat-icon notranslate mat-badge qs-app-badge qs-app-badge--small material-symbols-rounded mat-icon-no-color mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">campaign<span id="mat-badge-content-1" aria-hidden="true" class="mat-badge-content _mat-animation-noopable mat-badge-active">0</span></mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><!----><button _ngcontent-ng-c3317298122="" mat-icon-button="" mattooltip="Star on GitHub" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-centered="" ngh="2"><span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple"></span><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">star</mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><!----><a _ngcontent-ng-c3317298122="" mat-icon-button="" mattooltip="Contact Support" aria-label="Contact Support" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-centered="" href="mailto:[email protected]" ngh="2"><span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple"></span><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">email</mat-icon>
61<span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a><!----><button _ngcontent-ng-c3317298122="" mat-icon-button="" mattooltip="Report a Bug" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-centered="" ngh="2"><span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple"></span><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">bug_report</mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><!----><button _ngcontent-ng-c3317298122="" mat-icon-button="" mattooltip="Policies" routerlink="/policies" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-centered="" ngh="2"><span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple"></span><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">policy</mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><!----><button _ngcontent-ng-c3317298122="" mat-icon-button="" mattooltip="Facebook Group" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" mat-ripple-loader-centered="" ngh="2"><span class="mat-mdc-button-persistent-ripple mdc-icon-button__ripple"></span><mat-icon _ngcontent-ng-c3317298122="" role="img" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">groups</mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></button><!----></div></div></mat-nav-list></app-sidenav></div></mat-sidenav><!----><mat-sidenav-content _ngcontent-ng-c1881274973="" class="mat-drawer-content mat-sidenav-content" ngh="3"><div _ngcontent-ng-c1881274973="" class="app-shell-scroll-content" style="padding-top: 64px;"><app-impersonation-banner _ngcontent-ng-c1881274973="" class="ng-tns-c1881274973-0" _nghost-ng-c1820644598="" ngh="13"><!----></app-impersonation-banner><div _ngcontent-ng-c1881274973="" class="router-outlet-container ng-tns-c1881274973-0 ng-trigger ng-trigger-routeAnimations"><router-outlet _ngcontent-ng-c1881274973="" class="ng-tns-c1881274973-0"></router-outlet><app-public-layout class="ng-star-inserted" ngh="30"><router-outlet></router-outlet><app-home _nghost-ng-c1145454070="" class="ng-star-inserted" ngh="28"><div _ngcontent-ng-c1145454070="" class="landing-page"><section _ngcontent-ng-c1145454070="" class="hero-section"><div _ngcontent-ng-c1145454070="" class="hero-content"><div _ngcontent-ng-c1145454070="" class="brand-badge"><p _ngcontent-ng-c1145454070=""><mat-icon _ngcontent-ng-c1145454070="" role="img" svgicon="logo" class="mat-icon notranslate brand-logo material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="svg" data-mat-icon-name="logo" data-mat-icon-namespace="material-symbols-rounded" ngh="3"><svg focusable="false"></svg></mat-icon></p><p _ngcontent-ng-c1145454070="" class="brand-name">Quantified Self.io</p></div><h1 _ngcontent-ng-c1145454070="" class="hero-title"><span _ngcontent-ng-c1145454070="">Your Training Data, Connected.</span><span _ngcontent-ng-c1145454070="" aria-hidden="true" class="hero-title-divider"></span><span _ngcontent-ng-c1145454070="" class="highlight-text">One Dashboard. Every Activity in Context.</span></h1><p _ngcontent-ng-c1145454070="" class="hero-subtitle">
61 Bring Garmin, Suunto, COROS, and Wahoo activities together. Understand readiness, training load, sleep, routes, and performance trends in contextâand keep supported activities synced across services. </p><div _ngcontent-ng-c1145454070="" data-nosnippet="" class="hero-actions"><a _ngcontent-ng-c1145454070="" mat-flat-button="" routerlink="/login" class="mdc-button mat-mdc-button-base cta-button primary qs-mat-primary mdc-button--unelevated mat-mdc-unelevated-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/login" ngh="14"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Get Started Free </span><mat-icon _ngcontent-ng-c1145454070="" role="img" iconpositionend="" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">arrow_forward</mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a><a _ngcontent-ng-c1145454070="" mat-stroked-button="" routerlink="/features/training-analysis" class="mdc-button mat-mdc-button-base mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/features/training-analysis" ngh="14"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Explore Training Analysis </span><mat-icon _ngcontent-ng-c1145454070="" role="img" iconpositionend="" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">monitoring</mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div><div _ngcontent-ng-c1145454070="" class="trust-indicators"><div _ngcontent-ng-c1145454070="" class="indicator"><span _ngcontent-ng-c1145454070="" data-nosnippet=""><mat-icon _ngcontent-ng-c1145454070="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">check_circle</mat-icon></span><span _ngcontent-ng-c1145454070="">Your Data Stays Yours</span></div></div></div></section><section _ngcontent-ng-c1145454070="" class="integrations-section animate-on-scroll public-below-fold"><h2 _ngcontent-ng-c1145454070="" class="section-label">Bring It In. Keep It Moving.</h2><p _ngcontent-ng-c1145454070="" class="integration-intro"> Connect your accounts or upload files yourself. Quantified Self brings your history together and moves supported workouts and routes between Garmin, Suunto, COROS, and Wahoo. </p><div _ngcontent-ng-c1145454070="" class="logos-container"><mat-icon _ngcontent-ng-c1145454070="" role="img" svgicon="garmin" mattooltip="Garmin Connect" class="mat-icon notranslate mat-mdc-tooltip-trigger partner-logo material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="svg" data-mat-icon-name="garmin" data-mat-icon-namespace="material-symbols-rounded" ngh="3"><svg focusable="false"></svg></mat-icon><!----><mat-icon _ngcontent-ng-c1145454070="" role="img" svgicon="suunto" mattooltip="Suunto App - Sync Routes & Activities" class="mat-icon notranslate mat-mdc-tooltip-trigger partner-logo material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="svg" data-mat-icon-name="suunto" data-mat-icon-namespace="material-symbols-rounded" ngh="3"><svg focusable="false"></svg></mat-icon><!----><mat-icon _ngcontent-ng-c1145454070="" role="img" svgicon="coros" mattooltip="COROS" class="mat-icon notranslate mat-mdc-tooltip-trigger partner-logo wide material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="svg" data-mat-icon-name="coros" data-mat-icon-namespace="material-symbols-rounded" ngh="3"><svg focusable="false"></svg></mat-icon><!----><mat-icon _ngcontent-ng-c1145454070="" role="img" svgicon="wahoo" mattooltip="Wahoo" class="mat-icon notranslate mat-mdc-tooltip-trigger partner-logo wide material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="svg" data-mat-icon-name="wahoo" data-mat-icon-namespace="material-symbols-rounded" ngh="3"><svg focusable="false"></svg></mat-icon><!----></div><div _ngcontent-ng-c1145454070="" class="compact-row-stack integration-followup-list"><app-compact-row _ngcontent-ng-c1145454070="" icon="history" icontone="secondary" title="Sync Your History" summary="Connect Garmin, Suunto, COROS, and Wa
61hoo. New activities arrive automatically, and you can import the activity history already stored with each provider." class="integration-capability animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--secondary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">history</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Sync Your History</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Connect Garmin, Suunto, COROS, and Wahoo. New activities arrive automatically, and you can import the activity history already stored with each provider.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" icon="published_with_changes" icontone="secondary" title="Move Workouts and Routes" summary="Choose automatic delivery between supported providers. You can also send past activities by date range without enabling future sync." class="integration-capability animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--secondary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">published_with_changes</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Move Workouts and Routes</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Choose automatic delivery between supported providers. You can also send past activities by date range without enabling future sync.</p><!----><div _ngcontent-ng-c1145454070="" class="integration-capability-details"><div _ngcontent-ng-c1145454070="" data-nosnippet=""><app-provider-data-flow-matrix _ngcontent-ng-c1145454070="" caption="Supported provider paths" _nghost-ng-c2834714424="" ngh="16"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix provider-data-flow-matrix--compact"><div _ngcontent-ng-c2834714424="" tabindex="0" class="provider-data-flow-matrix__scroll" aria-label="Supported provider paths, scroll horizontally to see all providers"><table _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__table"><caption _ngcontent-ng-c2834714424="">Supported provider paths</caption><thead _ngcontent-ng-c2834714424=""><tr _ngcontent-ng-c2834714424=""><th _ngcontent-ng-c2834714424="" scope="col">From · To</th><th _ngcontent-ng-c2834714424="" scope="col" class="ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__provider-label"> Garmin <!----></span></th><th _ngcontent-ng-c2834714424="" scope="col" class="ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__provider-label"> Suunto <!----></span></th><th _ngcontent-ng-c2834714424="" scope="col" class="ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__provider-label"> COROS <!----></span></th><th _ngcontent-ng-c2834714424="" scope="col" class="ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__provider-label"> Wahoo <!----></span></th><!----></tr></thead><tbody _ngcontent-ng-c2834714424=""><tr _ngcontent-ng-c2834714424="" class="ng-star-inserted"><th _ngcontent-ng-c2834714424="" scope="row"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__provider-label"> Garmin <!----></span></th><td _ngcontent-ng-c2834714424="" aria-label="Same provider" class="provider-data-flow-matrix__cell provider-data-flow-matrix__cell--same ng-star-inserted">â</td><!----><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from Garmin to Suunto App"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from Garmin to COROS"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from Garmin to Wahoo"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><!----></tr><tr _ngcontent-ng-c2834714424="" class="ng-star-inserted"><th _ngcontent-ng-c2834714424="" scope="row"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__provider-label"> Suunto <!----></span></th><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--route ng-star-inserted" aria-label="Route delivery from Suunto to Garmin Connect"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Route </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><td _ngcontent-ng-c2834714424="" aria-label="Same provider" class="provider-data-flow-matrix__cell provider-data-flow-matrix__cell--same ng-star-inserted">â</td><!----><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from Suunto to COROS"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--route ng-star-inserted" aria-label="Route delivery from Suunto to COROS"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Route </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from Suunto to Wahoo"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--route ng-star-inserted" aria-label="Route delivery from Suunto to Wahoo"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Route </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><!----></tr><tr _ngcontent-ng-c2834714424="" class="ng-star-inserted"><th _ngcontent-ng-c2834714424="" scope="row"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__provider-label"> COROS <!----></span></th><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__empty ng-star-inserted">â</span><!----></td><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from COROS to Suunto App"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><td _ngcontent-ng-c2834714424="" aria-label="Same provider" class="provider-data-flow-matrix__cell provider-data-flow-matrix__cell--same ng-star-inserted">â</td><!----><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from COROS to Wahoo"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><!----></tr><tr _ngcontent-ng-c2834714424="" class="ng-star-inserted"><th _ngcontent-ng-c2834714424="" scope="row"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__provider-label"> Wahoo <!----></span></th><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__empty ng-star-inserted">â</span><!----></td><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from Wahoo to Suunto App"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><!----><td _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__cell ng-star-inserted"><div _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__routes ng-star-inserted"><!----><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route provider-data-flow-matrix__route--activity ng-star-inserted" aria-label="Activity delivery from Wahoo to COROS"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-content ng-star-inserted"><span _ngcontent-ng-c2834714424="" class="provider-data-flow-matrix__route-label"> Activity </span><!----></span><!----></span><!----><!----></div><!----><!----></td><!----><td _ngcontent-ng-c2834714424="" aria-label="Same provider" class="provider-data-flow-matrix__cell provider-data-flow-matrix__cell--same ng-star-inserted">â</td><!----><!----><!----></tr><!----></tbody></table></div><!----></div><!----></app-provider-data-flow-matrix></div><p _ngcontent-ng-c1145454070=""><strong _ngcontent-ng-c1145454070="">Activity paths:</strong> Automatically deliver new workouts or backfill past activities by date range. </p><p _ngcontent-ng-c1145454070=""><strong _ngcontent-ng-c1145454070="">Route paths:</strong> Deliver imported Suunto routes automatically or on demand. Saved FIT/GPX routes can also be sent manually to Garmin, Suunto, COROS, or Wahoo. </p></div></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" icon="upload_file" title="Upload Your Own Files" summary="Import FIT, TCX, GPX, JSON, and SML activity files into Quantified Self. You can also send FIT activities directly to Suunto, COROS, or Wahoo for one-off transfers." class="integration-capability animate-on-scroll compact-row-host--without-divider" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary">
61<div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">upload_file</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Upload Your Own Files</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Import FIT, TCX, GPX, JSON, and SML activity files into Quantified Self. You can also send FIT activities directly to Suunto, COROS, or Wahoo for one-off transfers.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row></div><a _ngcontent-ng-c1145454070="" mat-stroked-button="" routerlink="/integrations" class="mdc-button mat-mdc-button-base integrations-cta mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/integrations" ngh="6"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Explore Integrations </span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></section><section _ngcontent-ng-c1145454070="" class="features-section public-below-fold"><h2 _ngcontent-ng-c1145454070="" class="section-title animate-on-scroll">Training Load, Readiness, and Recovery</h2><p _ngcontent-ng-c1145454070="" class="section-subtitle animate-on-scroll"> See your current load, fitness, fatigue, form, recovery, intensity balance, and efficiencyâthen explore the charts behind every signal. </p><div _ngcontent-ng-c1145454070="" class="compact-row-stack training-preview-stack"><app-compact-row _ngcontent-ng-c1145454070="" icon="monitor_heart" icontone="secondary" title="Your Training Snapshot" summary="Current state, recovery-aware readiness, recent volume, and exact load-model values in the same hierarchy used by Training." class="training-preview-row animate-on-scroll compact-row-host--without-divider" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--secondary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">monitor_heart</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Your Training Snapshot</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Current state, recovery-aware readiness, recent volume, and exact load-model values in the same hierarchy used by Training.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="training-snapshot" class="training-preview-data" _nghost-ng-c1381355651="" ngh="17"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--training ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="training-readiness" _nghost-ng-c1381355651="" ngh="18"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--readiness ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row></div><div _ngcontent-ng-c1145454070="" class="compact-row-stack features-grid"><app-compact-row _ngcontent-ng-c1145454070="" icon="query_stats" title="Charts Behind Every Signal" summary="See how Form, freshness, intensity, efficiency, and power change over time, with readiness, recovery, and sleep views available in Training." class="feature-card animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary">
61<div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">query_stats</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Charts Behind Every Signal</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">See how Form, freshness, intensity, efficiency, and power change over time, with readiness, recovery, and sleep views available in Training.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="training-signals" _nghost-ng-c1381355651="" ngh="19"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--signals ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" icon="compare_arrows" title="See How Your Training Evolves" summary="Explore your sport's training mix, compare matching builds, and follow power capacity and long-session durability with the evidence behind each result." class="feature-card animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">compare_arrows</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">See How Your Training Evolves</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Explore your sport's training mix, compare matching builds, and follow power capacity and long-session durability with the evidence behind each result.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="training-explorer" _nghost-ng-c1381355651="" ngh="18"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--explorer ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" icon="dashboard_customize" title="Build the Dashboard You Need" summary="Start from a preset or arrange Curated, KPI, Custom, and Map tiles yourself. Each tile keeps its own filters; maps add style and marker-clustering controls." class="feature-card animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">dashboard_customize</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Build the Dashboard You Need</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Start from a preset or arrange Curated, KPI, Custom, and Map tiles yourself. Each tile keeps its own filters; maps add style and marker-clustering controls.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="dashboard" _nghost-ng-c1381355651="" ngh="20">
61<div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--dashboard ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" icon="layers" title="Analyze Every Workout" summary="Compare heart rate, power, altitude, depth, pace, and more in synchronized charts. Inspect intensity zones, grade-colored elevation, inverse depth, aerobic durability, and cadence versus power. Switch between distance, duration, or time where supported, then select a range for stats or zoom in." class="feature-card animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">layers</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Analyze Every Workout</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Compare heart rate, power, altitude, depth, pace, and more in synchronized charts. Inspect intensity zones, grade-colored elevation, inverse depth, aerobic durability, and cadence versus power. Switch between distance, duration, or time where supported, then select a range for stats or zoom in.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="workout-analysis" _nghost-ng-c1381355651="" ngh="21"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--workout ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row></div><div _ngcontent-ng-c1145454070="" class="section-actions training-actions animate-on-scroll"><a _ngcontent-ng-c1145454070="" mat-stroked-button="" routerlink="/features/training-analysis" class="mdc-button mat-mdc-button-base mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/features/training-analysis" ngh="14"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Explore Training Analysis </span><mat-icon _ngcontent-ng-c1145454070="" role="img" iconpositionend="" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">monitoring</mat-icon><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div></section><section _ngcontent-ng-c1145454070="" aria-labelledby="home-training-plans-title" class="features-section training-plans-section public-below-fold"><h2 _ngcontent-ng-c1145454070="" id="home-training-plans-title" class="section-title animate-on-scroll">Plan What Comes Next</h2><p _ngcontent-ng-c1145454070="" class="section-subtitle animate-on-scroll">Build your next workout, save your favorites, and organize your plan into named phases. Plan for running, cycling, swimming, walking, hiking, rowing, or strength.</p><div _ngcontent-ng-c1145454070="" class="compact-row-stack training-plans-row-stack"><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary">
61<div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">event_available</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Standalone or Dated Plans</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Start with one standalone workout, or organize dated plans with phases such as Base, Build, Recovery, or Taper. Use your own names, dates, and colors, with date shifting and history.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--secondary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">repeat</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Build and See Your Workout</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">See your interval profile as you build. Set time, distance, or lap-ended steps, add repeats and heart-rate, power, pace, or cadence targets, then reorder or duplicate blocks. For strength, build exercises, sets, reps or holds, load, and rest.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--tertiary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">library_books</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Save It. Use It Again.</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Keep favorite sessions in your Workout Library. Add a saved workout to one date or repeat it across selected days, in a plan or on its own. Each scheduled copy stays independent.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--tertiary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">devices</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Plan Through MCP</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">With separate Training permissions, compatible MCP clients can read your schedule, assess provider compatibility, and prepare bounded plan, workout, or delivery changes for your approval.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary">
61<div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">sync</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Send Your Workouts</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Send compatible workouts to Garmin, Suunto, or Wahoo with Pro. Choose a plan to sync or send a workout on its own.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll compact-row-host--without-divider ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--secondary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">calendar_month</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Separate Calendar Overlays</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">See standalone workouts, active-plan workouts, and phase labels beside completed activities without adding them to recorded totals or Training analysis.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><!----></div><aside _ngcontent-ng-c1145454070="" aria-labelledby="home-training-plans-example-title" class="training-plans-mcp-example animate-on-scroll"><mat-icon _ngcontent-ng-c1145454070="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">auto_awesome</mat-icon><div _ngcontent-ng-c1145454070=""><h3 _ngcontent-ng-c1145454070="" id="home-training-plans-example-title">Create Today's Workout with Your Training Data and Notes</h3><blockquote _ngcontent-ng-c1145454070=""><p _ngcontent-ng-c1145454070="">âPropose one standalone workout for today using my available HRV, sleep, overnight heart rate, readiness, and recent training load. Check my Timeline notes for illness, injury, stress, travel, or vacation. Consider my usual training pattern for this day of the week, alongside recent completed activities and planned workouts, so the session fits my routine without duplicating training. Explain why it suits today, flag missing information, and show me the duration, intensity, and workout steps before adding anything. If recovery or rest is more appropriate, say so.â</p></blockquote></div></aside><app-public-feature-preview _ngcontent-ng-c1145454070="" class="training-plans-home-preview animate-on-scroll" _nghost-ng-c1381355651="" ngh="22"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--training-plans ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview><div _ngcontent-ng-c1145454070="" class="section-actions animate-on-scroll"><a _ngcontent-ng-c1145454070="" mat-stroked-button="" class="mdc-button mat-mdc-button-base mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/features/training-plans" ngh="14"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Explore Training Plans </span><mat-icon _ngcontent-ng-c1145454070="" role="img" iconpositionend="" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">edit_calendar</mat-icon>
61<span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div></section><section _ngcontent-ng-c1145454070="" aria-labelledby="home-health-title" class="features-section health-section public-below-fold"><h2 _ngcontent-ng-c1145454070="" id="home-health-title" class="section-title animate-on-scroll">Your Health, Beyond Training.</h2><p _ngcontent-ng-c1145454070="" class="section-subtitle animate-on-scroll">Follow sleep, heart rate, HRV, and body measurements over time. Bring supported Garmin, Suunto, and COROS health data together, compare each source, and add your own measurements.</p><div _ngcontent-ng-c1145454070="" class="compact-row-stack"><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">bedtime</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">See How Youâre Sleeping</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Explore sleep duration, stages, and overnight readings, with each provider clearly identified.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" _nghost-ng-c1381355651="" ngh="23"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--health preview-placeholder--health-sleep ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">monitor_heart</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Get to Know Your Usual</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Follow resting heart rate and HRV over time. Compare nightly HRV with your personal range when enough history is available. Add context with notes about travel, sickness, stress, and time away.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" _nghost-ng-c1381355651="" ngh="23"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--health ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" class="animate-on-scroll compact-row-host--without-divider ng-star-inserted" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary">
61<div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">monitor_weight</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Log Your Measurements</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Log blood pressure, weight, body composition, blood oxygen, and VOâ max. Follow your readings over time alongside imported health data, with manual entries clearly labelled.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" _nghost-ng-c1381355651="" ngh="23"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--health ng-star-inserted"></div><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><!----></div><div _ngcontent-ng-c1145454070="" class="section-actions animate-on-scroll"><a _ngcontent-ng-c1145454070="" mat-stroked-button="" routerlink="/features/health" class="mdc-button mat-mdc-button-base mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/features/health" ngh="6"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label">Explore Health</span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div></section><section _ngcontent-ng-c1145454070="" class="features-section ai-insights-section public-below-fold"><div _ngcontent-ng-c1145454070="" class="ai-insights-header animate-on-scroll"><h2 _ngcontent-ng-c1145454070="" class="section-title">Ask About Your Training</h2><p _ngcontent-ng-c1145454070="" class="section-subtitle"> Explore sleep, readiness, training, measurements, and recent activities in one conversation. The Assistant answers from your current dataânot generic fitness advice. </p></div><div _ngcontent-ng-c1145454070="" class="compact-row-stack features-grid"><app-compact-row _ngcontent-ng-c1145454070="" icon="chat" title="Ask in Your Own Words" summary="Start with today, a trend, or a recent workout. Ask follow-up questions without starting over." class="feature-card animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">chat</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Ask in Your Own Words</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Start with today, a trend, or a recent workout. Ask follow-up questions without starting over.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" icon="hub" title="Bring Your Data Together" summary="The Assistant draws from sleep, recovery, training, measurements, and activities when your question needs the broader context." class="feature-card animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary">
61<div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">hub</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Bring Your Data Together</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">The Assistant draws from sleep, recovery, training, measurements, and activities when your question needs the broader context.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row><app-compact-row _ngcontent-ng-c1145454070="" icon="fact_check" title="Check the Evidence" summary="Each answer shows the data behind it, so you can see exactly what supports it." class="feature-card animate-on-scroll" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary"><div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">fact_check</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Check the Evidence</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Each answer shows the data behind it, so you can see exactly what supports it.</p><!----></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"></div></article></app-compact-row></div><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="assistant-example" class="ai-insights-examples animate-on-scroll" _nghost-ng-c1381355651="" ngh="24"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--assistant ng-star-inserted"></div><!----><!----><!----></div></app-public-feature-preview><div _ngcontent-ng-c1145454070="" class="section-actions ai-insights-actions animate-on-scroll"><a _ngcontent-ng-c1145454070="" mat-stroked-button="" routerlink="/features/ai-insights" class="mdc-button mat-mdc-button-base mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/features/ai-insights" ngh="6"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Explore the Assistant </span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div><p _ngcontent-ng-c1145454070="" class="ai-insights-cta-note animate-on-scroll">Your data, current evidence, conversational answers.</p><div _ngcontent-ng-c1145454070="" class="compact-row-stack mcp-access-stack"><app-compact-row _ngcontent-ng-c1145454070="" icon="devices" title="Analyze with ChatGPT or Claude" summary="Connect ChatGPT or Claude through permission-scoped MCP. Ask them to analyze your training or prepare a bounded Training-plan proposal grounded in your approved data. Timeline note, activity-tag, and Training changes each require separate access and your clientâs approval; location access remains separate." class="mcp-access-row animate-on-scroll compact-row-host--without-divider" _nghost-ng-c3442194223="" ngh="15"><article _ngcontent-ng-c3442194223="" class="compact-row compact-row--columns compact-row--primary">
61<div _ngcontent-ng-c3442194223="" data-nosnippet="" class="compact-row__icon ng-star-inserted"><mat-icon _ngcontent-ng-c3442194223="" role="img" aria-hidden="true" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">devices</mat-icon></div><!----><!----><!----><!----><h3 _ngcontent-ng-c3442194223="" class="compact-row__title ng-star-inserted"><span _ngcontent-ng-c3442194223="" class="ng-star-inserted">Analyze with ChatGPT or Claude</span><!----></h3><!----><div _ngcontent-ng-c3442194223="" class="compact-row__body"><p _ngcontent-ng-c3442194223="" class="compact-row__summary ng-star-inserted">Connect ChatGPT or Claude through permission-scoped MCP. Ask them to analyze your training or prepare a bounded Training-plan proposal grounded in your approved data. Timeline note, activity-tag, and Training changes each require separate access and your clientâs approval; location access remains separate.</p><!----><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="mcp-flow" _nghost-ng-c1381355651="" ngh="25"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--mcp ng-star-inserted"></div><!----><!----></div></app-public-feature-preview></div><div _ngcontent-ng-c3442194223="" class="compact-row__action"><a _ngcontent-ng-c1145454070="" compactrowaction="" mat-stroked-button="" routerlink="/features/mcp-server" class="mdc-button mat-mdc-button-base mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/features/mcp-server" ngh="6"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label">Connect ChatGPT or Claude</span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div></article></app-compact-row></div></section><section _ngcontent-ng-c1145454070="" class="footprint-section animate-on-scroll public-below-fold"><div _ngcontent-ng-c1145454070="" class="footprint-content"><div _ngcontent-ng-c1145454070="" class="footprint-text"><mat-icon _ngcontent-ng-c1145454070="" role="img" class="mat-icon notranslate footprint-icon material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">map</mat-icon><h2 _ngcontent-ng-c1145454070="">Map Your Activities</h2><p _ngcontent-ng-c1145454070=""> See every GPS activity together, then filter by date or activity type and explore the trips across your history. </p></div><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="activity-map" class="footprint-map-stage" _nghost-ng-c1381355651="" ngh="26"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" class="map-stage ng-star-inserted"><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--map ng-star-inserted"></div><!----></div><!----><!----><!----><!----><!----></div></app-public-feature-preview><p _ngcontent-ng-c1145454070="" class="footprint-map-caption"><span _ngcontent-ng-c1145454070="" data-nosnippet="">Real activity traces · open-water swimming, trail running, and mountain biking.</span></p><a _ngcontent-ng-c1145454070="" mat-stroked-button="" routerlink="/features/activity-map" class="mdc-button mat-mdc-button-base footprint-cta mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/features/activity-map" ngh="14"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Explore Activity Map </span><mat-icon _ngcontent-ng-c1145454070="" role="img" iconpositionend="" class="mat-icon notranslate material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">explore</mat-icon>
61<span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div></section><section _ngcontent-ng-c1145454070="" class="analysis-section container public-below-fold"><div _ngcontent-ng-c1145454070="" class="analysis-header animate-on-scroll"><mat-icon _ngcontent-ng-c1145454070="" role="img" class="mat-icon notranslate analysis-header-icon material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">rate_review</mat-icon><h2 _ngcontent-ng-c1145454070="" class="section-title">Built for Device Reviewers</h2><p _ngcontent-ng-c1145454070="" class="section-subtitle"> Compare same-session recordings from watches, bike computers, and sensors. Set reference and test devices, auto-align their timelines, and turn GNSS and sensor differences into repeatable evidence. </p><div _ngcontent-ng-c1145454070="" class="analysis-actions"><a _ngcontent-ng-c1145454070="" mat-stroked-button="" routerlink="/features/workout-data-comparison" class="mdc-button mat-mdc-button-base analysis-link mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/features/workout-data-comparison" ngh="6"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Compare Workouts and Devices </span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div></div><app-public-feature-preview _ngcontent-ng-c1145454070="" previewkey="reviewer-benchmark" class="analysis-grid animate-on-scroll" _nghost-ng-c1381355651="" ngh="27"><div _ngcontent-ng-c1381355651="" data-nosnippet="" class="preview-content"><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><div _ngcontent-ng-c1381355651="" aria-hidden="true" class="preview-placeholder preview-placeholder--reviewer ng-star-inserted"></div><!----><!----><!----><!----></div></app-public-feature-preview></section><section _ngcontent-ng-c1145454070="" class="sovereignty-section public-below-fold"><div _ngcontent-ng-c1145454070="" class="content-wrapper"><div _ngcontent-ng-c1145454070="" class="text-content"><mat-icon _ngcontent-ng-c1145454070="" role="img" class="mat-icon notranslate large-icon material-symbols-rounded mat-icon-no-color" aria-hidden="true" data-mat-icon-type="font" data-mat-icon-namespace="material-symbols-rounded" ngh="3">security</mat-icon><h2 _ngcontent-ng-c1145454070="">Your Data. Yours to Keep.</h2><p _ngcontent-ng-c1145454070=""> Download your original activity files whenever you wantâwhether youâre creating a backup, changing services, or analyzing them elsewhere. </p><a _ngcontent-ng-c1145454070="" mat-stroked-button="" routerlink="/login" class="mdc-button mat-mdc-button-base mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/login" ngh="6"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label"> Start Analyzing Now </span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></div></div></section></div></app-home><!----><app-public-footer _nghost-ng-c249951845="" ngh="29"><footer _ngcontent-ng-c249951845="" aria-label="Quantified Self site footer" class="public-footer"><div _ngcontent-ng-c249951845="" class="public-footer__content"><section _ngcontent-ng-c249951845="" aria-labelledby="footer-brand-title" class="public-footer__brand"><h2 _ngcontent-ng-c249951845="" class="public-footer__wordmark"><a _ngcontent-ng-c249951845="" id="footer-brand-title" routerlink="/" href="/">Quantified Self</a></h2><p _ngcontent-ng-c249951845="">Training analysis for athletes who want their activity data in one place.</p><a _ngcontent-ng-c249951845="" mat-stroked-button="" routerlink="/pricing" class="mdc-button mat-mdc-button-base mdc-button--outlined mat-mdc-outlined-button mat-unthemed _mat-animation-noopable" mat-ripple-loader-uninitialized="" mat-ripple-loader-class-name="mat-mdc-button-ripple" href="/pricing" ngh="6"><span class="mat-mdc-button-persistent-ripple mdc-button__ripple"></span><span class="mdc-button__label">Explore membership</span><span class="mat-focus-indicator"></span><span class="mat-mdc-button-touch-target"></span></a></section><nav _ngcontent-ng-c249951845="" aria-labelledby="footer-product-title" class="public-footer__c
61olumn"><h2 _ngcontent-ng-c249951845="" id="footer-product-title">Product</h2><ul _ngcontent-ng-c249951845=""><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/features/activity-calendar" href="/features/activity-calendar">Activity calendar</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/features/training-analysis" href="/features/training-analysis">Training analysis</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/features/training-plans" href="/features/training-plans">Training plans</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/features/training-dashboard" href="/features/training-dashboard">Training dashboard</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/features/health" href="/features/health">Health</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/features/activity-map" href="/features/activity-map">Activity map</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/features/supported-activities" href="/features/supported-activities">Supported activity types</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/features/mcp-server" href="/features/mcp-server">MCP server</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/integrations" href="/integrations">Integrations</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/integrations/wahoo" href="/integrations/wahoo">Wahoo integration</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/tools" href="/tools">Workout data tools</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/guides" href="/guides">Guides</a></li></ul></nav><nav _ngcontent-ng-c249951845="" aria-labelledby="footer-support-title" class="public-footer__column"><h2 _ngcontent-ng-c249951845="" id="footer-support-title">Support</h2><ul _ngcontent-ng-c249951845=""><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/help" href="/help">Help & support</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" href="mailto:[email protected]">[email protected]</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" routerlink="/releases" href="/releases">Release notes</a></li><li _ngcontent-ng-c249951845=""><a _ngcontent-ng-c249951845="" target="_blank" rel="noopener noreferrer" href="https://status.quantified-self.io">System status</a></li></ul></nav><section _ngcontent-ng-c249951845="" aria-labelledby="footer-company-title" class="public-footer__column public-footer__company"><h2 _ngcontent-ng-c249951845="" id="footer-company-title">Company</h2><p _ngcontent-ng-c249951845="" class="public-footer__operator">Quantified Self IO</p><address _ngcontent-ng-c249951845=""><span _ngcontent-ng-c249951845="" class="ng-star-inserted">Kaloudi 15</span><span _ngcontent-ng-c249951845="" class="ng-star-inserted">45500 Ioannina</span><span _ngcontent-ng-c249951845="" class="ng-star-inserted">Greece</span><!----></address><a _ngcontent-ng-c249951845="" href="mailto:[email protected]">[email protected]</a></section></div><div _ngcontent-ng-c249951845="" class="public-footer__bottom"><nav _ngcontent-ng-c249951845="" aria-label="Legal links"><a _ngcontent-ng-c249951845="" target="_blank" rel="noopener noreferrer" href="https://github.com/jimmykane/quantified-self">Source code</a><a _ngcontent-ng-c249951845="" target="_blank" rel="noopener noreferrer" href="https://github.com/jimmykane/quantified-self/blob/main/LICENSE">AGPL-3.0-only</a><a _ngcontent-ng-c249951845="" routerlink="/privacy" href="/privacy">Privacy</a><a _ngcontent-ng-c249951845="" routerlink="/terms" href="/terms">Terms</a><a _ngcontent-ng-c249951845="" routerlink="/policies" href="/policies">Policies</a></nav></div></footer></app-public-footer></app-public-layout><!----></div></div></mat-sidenav-content><!----></mat-sidenav-container><!----></div><!----><!----></app-shell></app-root> 62 <noscript>Please enable JavaScript</noscript> 63
63<script src="assets/theme-init.js"></script>
63 64<link rel="modulepreload" href="chunk-ZH47DXIJ.js"><link rel="modulepreload" href="chunk-KMNTNNJM.js"><link rel="modulepreload" href="chunk-67K7DGL4.js"><link rel="modulepreload" href="chunk-LT65LHO7.js"><link rel="modulepreload" href="chunk-3KYKQZG2.js"><link rel="modulepreload" href="chunk-AGFQOW6S.js"><link rel="modulepreload" href="chunk-WFXD5M4Q.js"><link rel="modulepreload" href="chunk-AHJBTG3O.js"><link rel="modulepreload" href="chunk-VYH2X6VV.js"><link rel="modulepreload" href="chunk-TDGBGZ3K.js">
64<script src="polyfills-JUTM3XWE.js" type="module"></script>
64<script src="main-AWIVPFQF.js" type="module"></script>
64 65 66 67<div class="cdk-live-announcer-element cdk-visually-hidden" aria-atomic="true" aria-live="polite" id="cdk-live-announcer-0"></div>
67<script id="ng-state" type="application/json">{"__nghData__":[{"t":{"0":"t3"},"c":{"0":[]}},{"t":{"0":"t4"},"c":{"0":[]}},{"n":{"2":"hfn2"}},{},{"t":{"0":"t10"},"c":{"0":[]}},{"t":{"0":"t9","9":"t11","13":"t12","14":"t13"},"c":{"0":[]},"d":[3,4,5,6,7,8,9,10,11,13,14]},{"n":{"2":"hfn","5":"hfn2"}},{"n":{"2":"hfn2","5":"hfn3"}},{"n":{"2":"1fn","3":"2f"},"t":{"6":"t8","8":"t14","9":"t15","10":"t16","11":"t17","12":"t18"},"c":{"6":[],"8":[{"i":"t14","r":2,"n":{"1":"0fn","2":"1f"},"c":{"0":[]}}],"9":[],"10":[],"11":[],"12":[{"i":"t18","r":3,"n":{"1":"0fnf","4":"3fn","5":"4f"},"c":{"3":[]}}]}},{"t":{"0":"t19","3":"t20"},"c":{"0":[{"i":"t19","r":1}],"3":[]},"n":{"3":"hfn5"}},{"n":{"1":"hf","4":"1f","9":"hfn"}},{"t":{"2":"t29"},"c":{"2":[]}},{"n":{"1":"0f","7":"6f","17":"16f3","20":"19f2nf","22":"21f","26":"25f2nf","28":"27f","32":"31f2nf","34":"33f","40":"39fn","41":"40f","42":"39fn2f","46":"45fn","47":"46f","49":"48fn","50":"49f","52":"51fn","53":"52f","55":"54fn","56":"55f","58":"57fn","59":"58f","61":"60fn","62":"61f"},"t":{"7":"t22","8":"t23","9":"t24","10":"t25","11":"t26","12":"t27","13":"t28","37":"t30"},"c":{"7":[],"8":[{"i":"t23","r":1,"n":{"1":"0f3","2":"1f"}}],"9":[],"10":[{"i":"t25","r":1,"n":{"1":"0f3","2":"1f"}}],"11":[{"i":"t26","r":1,"n":{"1":"0f3","2":"1f"}}],"12":[{"i":"t27","r":1,"n":{"1":"0f3","2":"1f"}}],"13":[],"37":[],"45":[],"48":[],"51":[],"54":[],"57":[],"60":[]}},{"t":{"0":"t31"},"c":{"0":[]}},{"n":{"2":"hfn","5":"hfn3"}},{"t":{"1":"t32","2":"t33","4":"t34","5":"t35","6":"t36","8":"t37"},"c":{"1":[{"i":"t32","r":1,"n":{"2":"1f"}}],"2":[],"4":[],"5":[],"6":[{"i":"t36","r":1,"c":{"1":[{"i":"t33","r":1,"n":{"1":"hf2n5f"}}]}}],"8":[{"i":"t37","r":1}]}},{"t":{"10":"t38","13":"t40","14":"t52","15":"t49"},"c":{"10":[{"i":"t38","r":1,"t":{"3":"t39"},"c":{"3":[]},"x":4}],"13":[{"i":"t40","r":1,"t":{"4":"t41","6":"t42"},"c":{"4":[],"6":[{"i":"t42","r":3,"n":{"1":"hf4n2f2n"},"t":{"1":"t43","2":"t44"},"c":{"1":[{"i":"t43","r":1}],"2":[]}},{"i":"t42","r":3,"n":{"1":"hf4n2f2n4"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]}}]}}],"2":[]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2f2n7"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]}}]}}],"2":[]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2f2n10"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]}}]}}],"2":[]}}]}}]}},{"i":"t40","r":1,"t":{"4":"t41","6":"t42"},"c":{"4":[],"6":[{"i":"t42","r":3,"n":{"1":"hf4n2fnfn"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]}}]}}],"2":[]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2fnfn4"},"t":{"1":"t43","2":"t44"},"c":{"1":[{"i":"t43","r":1}],"2":[]}},{"i":"t42","r":3,"n":{"1":"hf4n2fnfn7"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]},"x":2}]}}],"2":[]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2fnfn10"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]},"x":2}]}}],"2":[]}}]}}]}},{"i":"t40","r":1,"t":{"4":"t41","6":"t42"},"c":{"4":[],"6":[{"i":"t42","r":3,"n":{"1":"hf4n2fn2fn"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[],"2":[{"i":"t51","r":1}]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2fn2fn4"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]}}]}}],"2":[]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2fn2fn7"},"t":{"1":"t43","2":"t44"},"c":{"1":[{"i":"t43","r":1}],"2":[]}},{"i":"t42","r":3,"n":{"1":"hf4n2fn2fn10"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]}}]}}],"2":[]}}]}}]}},{"i":"t40","r":1,"t":{"4":"t41","6":"t42"},"c":{"4":[],"6":[{"i":"t42","r":3,"n":{"1":"hf4n2fn3fn"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[],"2":[{"i":"t51","r":1}]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2fn3fn4"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]}}]}}],"2":[]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2fn3fn7"},"t":{"1":"t43","2":"t44"},"c":{"1":[],"2":[{"i":"t44","r":1,"t":{"1":"t45","2":"t51"},"c":{"1":[{"i":"t45","r":1,"t":{"2":"t46"},"c":{"2":[{"i":"t46","r":3,"t":{"0":"t47","1":"t48"},"c":{"0":[],"1":[{"i":"t48","r":1,"c":{"1":[{"i":"t49","r":1,"t":{"3":"t50"},"c":{"3":[]}}]}}]}}]}}],"2":[]}}]}},{"i":"t42","r":3,"n":{"1":"hf4n2fn3fn10"},"t":{"1":"t43","2":"t44"},"c":{"1":[{"i":"t43","r":1}],"2":[]}}]}}],"14":[],"15":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[],"4":[{"i":"t56","r":4,"t":{"0":"t57","1":"t58","2":"t59"},"c":{"0":[],"1":[],"2":[{"i":"t58","r":1,"s":0}]}}],"5":[],"6":[],"7":[],"8":[],"9":[],"10":[],"11":[],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[{"i":"t54","r":4,"t":{"0":"t68","1":"t69","2":"t70"},"c":{"0":[],"1":[],"2":[{"i":"t69","r":1,"s":0}]}}],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[],"10":[],"11":[],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[],"4":[],"5":[{"i":"t60","r":4,"t":{"0":"t71","1":"t72","2":"t73"},"c":{"0":[],"1":[],"2":[{"i":"t72","r":1,"s":0}]}}],"6":[],"7":[],"8":[],"9":[],"10":[],"11":[],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[{"i":"t61","r":4,"t":{"0":"t74","1":"t75","2":"t76"},"c":{"0":[],"1":[],"2":[{"i":"t75","r":1,"s":0}]}}],"7":[],"8":[],"9":[],"10":[],"11":[],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[{"i":"t62","r":4,"t":{"0":"t77","1":"t78","2":"t79"},"c":{"0":[],"1":[],"2":[{"i":"t78","r":1,"s":0}]}}],"8":[],"9":[],"10":[],"11":[],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[{"i":"t53","r":4,"t":{"0":"t81","1":"t82","2":"t83"},"c":{"0":[],"1":[],"2":[{"i":"t82","r":1,"s":0}]}}],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[],"10":[],"11":[],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[{"i":"t55","r":4,"t":{"0":"t85","1":"t86","2":"t87"},"c":{"0":[],"1":[],"2":[{"i":"t86","r":1,"s":0}]}}],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[],"10":[],"11":[],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[],"10":[],"11":[{"i":"t66","r":4,"t":{"0":"t88","1":"t89","2":"t90"},"c":{"0":[],"1":[],"2":[{"i":"t89","r":1,"s":0}]}}],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[],"10":[],"11":[],"12":[{"i":"t67","r":4,"t":{"0":"t91","1":"t92","2":"t93"},"c":{"0":[],"1":[],"2":[{"i":"t92","r":1,"s":0}]}}]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[{"i":"t63","r":1,"t":{"1":"t94","2":"t95","3":"t96"},"c":{"1":[],"2":[],"3":[{"i":"t95","r":1,"s":0}]}}],"9":[],"10":[],"11":[],"12":[]}},{"t":{"1":"t53","2":"t54","3":"t55","4":"t56","5":"t60","6":"t61","7":"t62","8":"t63","9":"t64","10":"t65","11":"t66","12":"t67"},"c":{"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[],"10":[{"i":"t65","r":4,"t":{"0":"t97","1":"t98","2":"t99"},"c":{"0":[],"1":[],"2":[{"i":"t98","r":1,"s":0}]}}],"11":[],"12":[]}},{"n":{"18":"17fnf","19":"17fn2","20":"19f","22":"21fnf","23":"21fn2","24":"23f","29":"28f","45":"44f2n7fn2","58":"57fnf","66":"65f2n7fn2","70":"69f2n7fn2","72":"71f2n7fn2","74":"73f2n7fn2","76":"75f2n7fn2","79":"78fnf","80":"78fn2","81":"80f","92":"9
671f","102":"101fnf","103":"101fn2","104":"103f","115":"114fnf","129":"128fnf","134":"133f2n8f","135":"134fnf","136":"133f2n7fn2","141":"140f","151":"150fnf","152":"150fn2","153":"152f","157":"156f","164":"163fnf","170":"169f","176":"175fnf"},"c":{"38":[],"39":[],"40":[],"41":[],"89":[{"i":"t80","r":1,"x":6}],"112":[{"i":"t84","r":1,"n":{"1":"0f2n7fn2"},"x":3}]},"t":{"89":"t80","112":"t84"}},{"n":{"9":"8fnf"},"t":{"73":"t100"},"c":{"73":[{"i":"t100","r":1,"x":3}]}},{"c":{"0":[{"i":"c1145454070","r":1}]}},{"t":{"0":"t0","1":"t101"},"c":{"0":[{"i":"t0","r":3,"t":{"0":"t1","1":"t2","5":"t5","6":"t6"},"c":{"0":[],"1":[],"5":[],"6":[{"i":"t6","r":3,"t":{"0":"t7","2":"t21"},"c":{"0":[{"i":"t7","r":1}],"2":[{"i":"t21","r":1,"n":{"2":"0f2"}}],"7":[{"i":"c3960920204","r":1}]},"n":{"2":"1fn2","3":"1fn4","4":"3f"}}]}}],"1":[]}}]}</script>
67</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.