html{scroll-behavior:smooth;scrollbar-gutter:stable}:root{--bs-primary:#00806e;--bs-primary-rgb:0,128,110;--bs-body-bg:#fafcff;--bs-body-color:#0a0d0f;--bs-secondary-color:#5e6770;--bs-border-color:#bfc8ce;--bs-tertiary-bg:#e0e2e6;--bs-border-radius:.75rem;--bs-border-radius-lg:1rem;--primary-color:var(--bs-primary);--primary-dark:#006b5c;--ds-on-primary:#fff;--ds-surface:var(--bs-body-bg);--ds-surface-container-high:var(--bs-tertiary-bg);--ds-on-surface:var(--bs-body-color);--ds-on-surface-variant:var(--bs-secondary-color);--ds-tertiary:#3a4550;--sport-cycling:#0046a0;--sport-cycling-on:#0d2a52;--sport-cycling-dark:#003578;--sport-running:#823005;--sport-running-on:#3d1a08;--sport-running-dark:#6b2804;--sport-fitness:#b0b1b1;--sport-fitness-on:#b0b1b1;--sport-fitness-fg:#0a0d0f;--brand-teal:#009998;--brand-accent:#00d4b4;--brand-accent-dark:#00b89d;--brand-gradient:linear-gradient(90deg,#00d4b4 0%,var(--sport-cycling)100%);--running-color:var(--sport-running);--running-dark:var(--sport-running-dark);--color-error:#ff5a5f;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-xs:6px;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--motion-fast:.12s;--motion-normal:.18s;--motion-slow:.24s;--motion-easing:cubic-bezier(.4,0,.2,1);--motion-easing-emphasized:cubic-bezier(.2,0,0,1);--bs-body-font-family:var(--font-inter),system-ui,sans-serif;--bs-heading-font-family:var(--font-manrope),system-ui,sans-serif}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{font-family:var(--bs-heading-font-family)}[data-bs-theme=dark]{--bs-primary:#00a48b;--bs-primary-rgb:0,164,139;--bs-body-bg:#0a0d0f;--bs-body-color:#fff;--bs-secondary-color:#9aa4ae;--bs-border-color:#13181d;--bs-tertiary-bg:#1a1f24;--primary-color:var(--bs-primary);--primary-dark:#33b6a2;--ds-tertiary:#bfc8ce;--sport-cycling:#0075ff;--sport-cycling-on:#a6cbff;--sport-cycling-dark:#3d9aff;--sport-running:#e86a1f;--sport-running-on:#ffb899;--sport-running-dark:#f0843f;--sport-fitness:#b0b1b1;--sport-fitness-on:#b0b1b1;--sport-fitness-fg:#0a0d0f}body{flex-direction:column;min-height:100vh;transition:background-color .3s,color .3s;display:flex}main{flex:1}footer{border-top:1px solid var(--bs-border-color);margin-top:auto}.navbar{box-shadow:0 2px 4px #0000001a}.navbar-brand{font-size:1.5rem;font-weight:700}.nav-link{transition:all var(--motion-normal)var(--motion-easing);font-weight:500}button.nav-link{line-height:inherit;background:0 0;border:none}.nav-link:hover{color:var(--primary-color)!important}.btn-primary{background-color:var(--primary-color);border-color:var(--primary-color)}.btn-primary:hover{background-color:var(--primary-dark);border-color:var(--primary-dark)}.btn-cta{background-color:var(--bs-primary);border-color:var(--bs-primary);color:var(--ds-on-primary);font-weight:600}.btn-cta:hover{background-color:var(--primary-dark);border-color:var(--primary-dark);color:var(--ds-on-primary)}.btn-cycling{background-color:var(--sport-cycling);border-color:var(--sport-cycling);color:#fff;font-weight:600}.btn-cycling:hover{background-color:var(--sport-cycling-dark);border-color:var(--sport-cycling-dark);color:#fff}.btn-running{background-color:var(--sport-running);border-color:var(--sport-running);color:#fff;font-weight:600}.btn-running:hover{background-color:var(--sport-running-dark);border-color:var(--sport-running-dark);color:#fff}.btn-fitness{background-color:var(--sport-fitness);border-color:var(--sport-fitness);color:var(--sport-fitness-fg);font-weight:600}.btn-fitness:hover{filter:brightness(.92);color:var(--sport-fitness-fg)}.bg-running-coming-soon{background-color:var(--running-color);color:#fff;font-size:.9rem;font-weight:600}.text-primary{color:var(--primary-color)!important}a{color:var(--primary-color)}a:hover{color:var(--primary-dark)}.theme-toggle{font-size:inherit;cursor:pointer;color:var(--bs-nav-link-color);transition:transform .3s ease,color var(--motion-normal)var(--motion-easing);background:0 0;border:none}.theme-toggle:hover{color:var(--primary-color);transform:scale(1.1)}.card,.btn,.form-control,.alert{transition:all var(--motion-normal)var(--motion-easing)}.btn:focus,.form-control:focus,.theme-toggle:focus,.topbar-toggle:focus-visible,.topbar-btn:focus-visible,.chat-widget-button:focus-visible,.chat-widget-header-btn:focus-visible,.sidebar-item:focus-visible,.chat-widget-suggestion:focus-visible,.chat-widget-history-item:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.step-focus-container:focus,.step-focus-container:focus-visible{outline:none}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--bs-body-bg)}::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.hero-image-wrapper{border-radius:.75rem;overflow:hidden}.hero-image-wrapper img{object-fit:cover}.text-cycling{color:var(--sport-cycling)}.text-running{color:var(--sport-running)}.text-fitness{color:var(--sport-fitness)}.cycling-hero{border-bottom:3px solid var(--sport-cycling)}.cycling-hero h1{color:var(--sport-cycling)}.sport-hero{text-align:center;padding:4rem 0}.sport-hero__inner{flex-direction:column;align-items:center;gap:2rem;max-width:48rem;display:flex}.sport-hero__icon{border-radius:27px}.sport-hero__title{color:var(--sport-cycling-on);font-family:var(--bs-heading-font-family);margin:0;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1.15}.sport-hero__subtitle{color:var(--bs-secondary-color);max-width:40rem;margin:0;font-size:1.05rem;line-height:1.5}.sport-hero__badges{margin-top:.25rem}.sport-hero__bullets{grid-template-columns:repeat(3,minmax(0,14rem));justify-content:center;gap:.75rem 1.5rem;width:100%;max-width:45rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.sport-hero__bullet{color:var(--bs-secondary-color);justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;line-height:1.25;display:flex}.sport-hero__bullet-icon{color:var(--sport-cycling-on);flex-shrink:0}.sport-store-badges{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.sport-feature{padding:3rem 0}.sport-feature__card{background:var(--ds-surface-container-high);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:center;align-items:center;gap:3rem;padding:2.5rem;display:flex}.sport-feature__media{flex:none;justify-content:center;display:flex}.sport-feature__screenshot{object-fit:contain;border-radius:2rem;width:min(300px,70vw);height:auto}.sport-feature__placeholder{aspect-ratio:1/2;border:1px dashed var(--bs-border-color);width:min(300px,70vw);max-height:600px;color:var(--bs-secondary-color);text-align:center;border-radius:2rem;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;font-size:.875rem;display:flex}.sport-feature__copy{flex-direction:column;flex:16rem;gap:1.5rem;max-width:32.5rem;display:flex}.sport-feature__title-row{align-items:flex-start;gap:.75rem;display:flex}.sport-feature__icon{color:var(--sport-cycling-on);flex-shrink:0;margin-top:.15rem}.sport-feature__title{color:var(--sport-cycling-on);font-family:var(--bs-heading-font-family);margin:0;font-size:clamp(1.5rem,2.5vw,1.75rem);font-weight:700;line-height:1.3}.sport-feature__body{color:var(--bs-body-color);margin:0;font-size:1rem;line-height:1.625}.sport-feature__bullets{color:var(--bs-secondary-color);flex-direction:column;gap:.75rem;margin:0;padding:0;font-size:.9375rem;line-height:1.4;list-style:none;display:flex}.sport-feature__bullets li{align-items:flex-start;gap:.75rem;display:flex}.sport-feature__bullets li:before{content:"";background:var(--sport-cycling-on);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:.45rem}.sport-closing{text-align:center;padding:4rem 0}.sport-closing__card{background:var(--ds-surface-container-high);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:1.5rem;max-width:52rem;margin:0 auto;padding:3rem;display:flex}.sport-closing__title{color:var(--sport-cycling-on);font-family:var(--bs-heading-font-family);margin:0;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700}.sport-closing__subtitle{color:var(--bs-secondary-color);max-width:36rem;margin:0;line-height:1.5}.sport-closing__actions{flex-direction:column;align-items:center;gap:1.25rem;display:flex}.sport-compatible{padding:3rem 0 4rem}.sport-compatible__title{color:var(--bs-secondary-color);margin-bottom:1.5rem;font-size:1.25rem;font-weight:600}.sport-compatible__logos{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;display:flex}@media (max-width:991.98px){.sport-feature__card{flex-direction:column;gap:2rem;padding:1.75rem}.sport-feature__card .sport-feature__copy{order:1}.sport-feature__card .sport-feature__media{order:2}.sport-hero__bullets{grid-template-columns:repeat(2,minmax(0,12rem))}}@media (max-width:575.98px){.sport-hero{padding:2.5rem 0}.sport-hero__bullets{grid-template-columns:1fr}.sport-feature__title-row{align-items:center}}.auth-page{justify-content:center;padding:4rem 0;display:flex}.auth-page>.container{justify-content:center;display:flex}.auth-card{background:var(--ds-surface-container-high);border-radius:var(--radius-md);border:none;width:100%;max-width:30rem;padding:2rem}.auth-card--success{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.auth-card__title{color:var(--ds-tertiary);font-family:var(--bs-heading-font-family);text-align:center;margin:0 0 1.5rem;font-size:clamp(1.75rem,3vw,2rem);font-weight:700;line-height:1.25}.auth-card--success .auth-card__title{margin-bottom:0}.auth-card__step{color:var(--bs-secondary-color);text-align:center;margin:-.75rem 0 1rem;font-size:.875rem}.auth-card__body{color:var(--bs-body-color);margin:0;line-height:1.5}.auth-card__meta,.auth-card__legal{color:var(--bs-secondary-color);text-align:center;margin:1rem 0 0;font-size:.8125rem;line-height:1.45}.auth-card__legal .auth-link{text-decoration:underline}.auth-card__footer{text-align:center;margin:1.25rem 0 0;font-size:.875rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-field{margin-bottom:0!important}.auth-field .form-label{color:var(--bs-secondary-color);margin-bottom:.5rem;font-size:.875rem;font-weight:500}.auth-field .form-control{background:var(--ds-surface);border-color:var(--bs-border-color);border-radius:.75rem;padding:.75rem .875rem}.auth-form__forgot{text-align:right;margin-top:-.25rem}.auth-link{color:var(--bs-primary);font-weight:500;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-link-muted{color:var(--bs-secondary-color);font-size:.875rem;text-decoration:none}.auth-link-muted:hover{color:var(--bs-primary);text-decoration:underline}.auth-submit{--bs-btn-bg:var(--primary-color);--bs-btn-border-color:var(--primary-color);--bs-btn-hover-bg:var(--primary-dark);--bs-btn-hover-border-color:var(--primary-dark);--bs-btn-active-bg:var(--primary-dark);--bs-btn-active-border-color:var(--primary-dark);--bs-btn-disabled-bg:var(--primary-color);--bs-btn-disabled-border-color:var(--primary-color);--bs-btn-color:var(--ds-on-primary);--bs-btn-hover-color:var(--ds-on-primary);--bs-btn-active-color:var(--ds-on-primary);--bs-btn-disabled-color:var(--ds-on-primary);background-color:var(--primary-color);border-color:var(--primary-color);color:var(--ds-on-primary);border-radius:.75rem;padding:.75rem 1.25rem;font-weight:600}.auth-submit:hover,.auth-submit:focus,.auth-submit:active{background-color:var(--primary-dark);border-color:var(--primary-dark);color:var(--ds-on-primary)}.auth-submit:disabled,.auth-submit.disabled{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--ds-on-primary);opacity:.55}.auth-secondary{border-radius:.75rem;padding:.75rem 1.25rem;font-weight:600}.auth-actions{gap:.75rem;margin-top:1.5rem;display:flex}.auth-progress{background:color-mix(in srgb,var(--bs-secondary-color)25%,transparent);border-radius:3px;height:6px;margin-bottom:1.5rem}.auth-progress .progress-bar{background-color:var(--bs-primary);border-radius:3px}.auth-success-icon{background:var(--bs-primary);width:4rem;height:4rem;color:var(--ds-on-primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.5rem;display:flex}.auth-form .list-unstyled small{font-size:.8125rem}.auth-goals{flex-direction:column;gap:1rem;display:flex}.auth-goals__hint{color:var(--bs-secondary-color);text-align:center;margin:0;font-size:.8125rem}.auth-goals__counter{text-align:right;margin-top:.35rem;display:block}.auth-textarea{resize:vertical;min-height:5.5rem}@media (max-width:575.98px){.auth-page{padding:2.5rem 0}.auth-card{padding:1.5rem}}.welcome-hero{background:#0a0d0f;justify-content:center;align-items:center;min-height:min(640px,85vh);display:flex;position:relative;overflow:hidden}.welcome-hero__media{position:absolute;inset:0}.welcome-hero__media img{object-fit:cover;width:100%;height:100%}.welcome-hero__scrim{background:linear-gradient(#0a0d0f59 0%,#0a0d0fb8 55%,#0a0d0feb 100%);position:absolute;inset:0}.welcome-hero__content{z-index:1;text-align:center;max-width:720px;padding:4rem 1.5rem;position:relative}.welcome-hero__logo{margin-bottom:1.25rem}.welcome-hero__title{color:var(--ds-tertiary);margin-bottom:.75rem;font-weight:700}.welcome-hero__subtitle{color:var(--bs-secondary-color);margin-bottom:1.75rem}.welcome-card{background:var(--ds-surface-container-high);border-radius:var(--radius-md);border:none;height:100%}.welcome-card .card-body{padding:2rem}.welcome-card__title{color:var(--ds-tertiary);font-family:var(--bs-heading-font-family);margin-bottom:1rem;font-size:1.375rem;font-weight:700;line-height:1.75rem}.welcome-card__body{color:var(--bs-secondary-color);margin-bottom:0}.welcome-sport{text-align:center;flex-direction:column;min-height:100%;display:flex}.welcome-sport__title{font-family:var(--bs-heading-font-family);margin-bottom:1rem;font-size:1.375rem;font-weight:700;line-height:1.75rem}.welcome-sport__body{color:var(--bs-secondary-color);flex:1;margin-bottom:1.5rem}.welcome-sport--cycling .welcome-sport__title{color:var(--sport-cycling-on)}.welcome-sport--running .welcome-sport__title{color:var(--sport-running-on)}.welcome-sport--fitness .welcome-sport__title{color:var(--sport-fitness-on)}.welcome-founder{text-align:center}.welcome-founder__photo{object-fit:cover;border-radius:50%;width:180px;height:180px;margin-bottom:1rem}.welcome-founder__name{color:var(--ds-tertiary);font-family:var(--bs-heading-font-family);margin-bottom:.35rem;font-weight:700}.welcome-founder__role{color:var(--bs-primary);margin-bottom:.75rem;font-weight:600}.welcome-founder__bio{color:var(--bs-secondary-color);margin-bottom:0}.welcome-section-title{color:var(--ds-tertiary);text-align:center;margin-bottom:2rem;font-weight:700}.nav-lang-toggle{align-items:center;gap:.35rem;display:inline-flex}.nav-lang-dropdown>.dropdown-toggle:after{display:none}.navbar-nav>.nav-lang-dropdown{align-items:center;display:flex}.theme-toggle,.nav-lang-dropdown>.dropdown-toggle{color:var(--bs-nav-link-color,var(--bs-body-color));transition:color var(--motion-normal)var(--motion-easing);align-self:center;align-items:center;display:inline-flex}.theme-toggle:hover,.nav-lang-dropdown>.dropdown-toggle:hover,.nav-lang-dropdown>.dropdown-toggle:focus,.nav-lang-dropdown.show>.dropdown-toggle{color:var(--primary-color)}.nav-lang-dropdown .dropdown-item.active,.nav-lang-dropdown .dropdown-item:active{background-color:var(--primary-color);color:var(--ds-on-primary)}.nav-lang-toggle svg,.theme-toggle svg{flex-shrink:0;display:block}.app-screenshot{object-fit:contain;width:auto;height:auto;max-height:500px}.store-badge{opacity:.9;transition:opacity .2s}.store-badge:hover{opacity:1}.partner-logo{object-fit:contain;opacity:.6;filter:grayscale()invert();transition:opacity .3s,filter .3s}.partner-logo:hover{opacity:1;filter:invert()}[data-bs-theme=dark] .partner-logo{filter:grayscale()}[data-bs-theme=dark] .partner-logo:hover{opacity:1;filter:grayscale(0%)}.plans-section{background:var(--bs-body-bg)}.plan-card{border:1px solid var(--bs-border-color);border-radius:16px;transition:transform .3s,box-shadow .3s;position:relative;overflow:visible}.plan-card:hover{transform:translateY(-8px);box-shadow:0 12px 32px #0075ff26}.plan-card--popular{border:2px solid var(--primary-color);box-shadow:0 4px 20px #0075ff1f}.plan-badge-wrapper{z-index:1;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.plan-badge{border-radius:20px;padding:.35em 1em;font-size:.8rem}.plan-price{justify-content:center;align-items:baseline;gap:.25rem;display:flex}.plan-price__amount{color:var(--primary-color);font-size:2.5rem;font-weight:700;line-height:1}.plan-price__suffix{font-size:1rem}.plan-highlights li{font-size:.95rem}.plan-feature-table th{font-size:.95rem;font-weight:600}.plan-feature-table td{font-size:.9rem}.plan-feature-table .bi-check-circle-fill,.plan-feature-table .bi-dash{font-size:1.1rem}:root{--card-bg:var(--bs-body-bg);--metric-performance:#0075ff;--metric-performance-bg:#0075ff1f;--metric-cardiac:#ff5a5f;--metric-cardiac-bg:#ff5a5f1f;--metric-general:#00a48b;--metric-general-bg:#00a48b1f;--metric-energy:#f59e0b;--metric-energy-bg:#f59e0b1f;--section-gap:48px}[data-bs-theme=dark]{--card-bg:var(--ds-surface-container-high)}.dashboard-card{border-radius:var(--radius-md);border:1px solid var(--bs-border-color);background:var(--card-bg);transition:box-shadow var(--motion-normal)var(--motion-easing),transform var(--motion-normal)var(--motion-easing)}.dashboard-card:hover{box-shadow:0 4px 16px #00000014}[data-bs-theme=dark] .dashboard-card:hover{box-shadow:0 4px 16px #0000004d}.kpi-value{font-size:2rem;font-weight:700;line-height:1.1;font-family:var(--bs-heading-font-family)}.kpi-value-sm{font-size:1.5rem;font-weight:700;line-height:1.1;font-family:var(--bs-heading-font-family)}.kpi-value-lg{font-size:3rem;font-weight:700;line-height:1;font-family:var(--bs-heading-font-family)}.kpi-suffix{opacity:.6;font-size:1rem;font-weight:400}.section-header{margin-bottom:var(--space-md);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem;display:flex}.section-header-title{font-size:1.15rem;font-weight:600;font-family:var(--bs-heading-font-family);margin:0}.section-header-action{white-space:nowrap;font-size:.875rem;font-weight:500;text-decoration:none}.section-header-updated{opacity:.6;width:100%;margin-top:2px;font-size:.75rem}.metric-grid{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}@media (max-width:575.98px){.metric-grid{grid-template-columns:1fr}}.metric-card{border-radius:var(--radius-sm);border:1px solid var(--bs-border-color);background:var(--card-bg);padding:var(--space-md);min-height:88px;transition:box-shadow var(--motion-normal)var(--motion-easing);flex-direction:column;justify-content:space-between;display:flex;position:relative}.metric-card:hover{box-shadow:0 2px 12px #0000000f}[data-bs-theme=dark] .metric-card:hover{box-shadow:0 2px 12px #00000040}.metric-card-label{opacity:.7;font-size:.8rem;font-weight:500}.icon-badge{top:var(--space-sm);right:var(--space-sm);border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;display:flex;position:absolute}.status-badge{border-radius:var(--radius-lg);text-transform:capitalize;padding:.25em .75em;font-size:.8rem;font-weight:600;display:inline-block}.trend-arrow{font-size:1.1rem;line-height:1}.trend-arrow.up{color:var(--bs-success)}.trend-arrow.down{color:var(--bs-danger)}.trend-arrow.neutral{opacity:.4}.dashboard-sections{gap:var(--section-gap);flex-direction:column;display:flex}.metric-value{font-size:1.75rem;font-weight:700;line-height:1.2;font-family:var(--bs-heading-font-family)}.metric-value-lg{font-size:2.5rem;font-weight:700;line-height:1;font-family:var(--bs-heading-font-family)}.stat-item{background:var(--bs-tertiary-bg);border-radius:8px;padding:.5rem}.react-loading-skeleton{--base-color:#e0e0e0!important;--highlight-color:#f5f5f5!important}[data-bs-theme=dark] .react-loading-skeleton{--base-color:#1a1f25!important;--highlight-color:#2a3040!important}.ai-content p{margin-bottom:.5rem}.ai-content p:last-child{margin-bottom:0}.ai-content ul,.ai-content ol{margin-bottom:.5rem;padding-left:1.25rem}.ai-content ul:last-child,.ai-content ol:last-child{margin-bottom:0}.ai-content h1,.ai-content h2,.ai-content h3,.ai-content h4{margin-bottom:.25rem;font-size:1rem;font-weight:600}.ai-content strong{font-weight:600}.ai-content code{font-size:.875em}.legal-page-wrap{padding:4rem 0}.legal-page{background:var(--ds-surface-container-high);border-radius:var(--radius-md);max-width:56.25rem;margin:0 auto;padding:2rem}.legal-page__header{text-align:center;border-bottom:2px solid var(--bs-border-color);margin-bottom:2rem;padding-bottom:1.25rem}.legal-page__title{color:var(--ds-tertiary);font-family:var(--bs-heading-font-family);margin:0;font-size:clamp(1.75rem,3vw,2rem);font-weight:700;line-height:1.25}.legal-page__meta{color:var(--bs-secondary-color);margin:.5rem 0 0;font-size:.875rem}.legal-page h2,.legal-page .h4{color:var(--ds-tertiary);font-family:var(--bs-heading-font-family);margin:0 0 .5rem;font-size:clamp(1.25rem,2.5vw,1.375rem);font-weight:700}.legal-page h3,.legal-page h5,.legal-page h6{color:var(--bs-primary);margin:1rem 0 .5rem;font-size:1.0625rem;font-weight:600}.legal-page p{color:var(--bs-body-color);margin-bottom:.5rem;line-height:1.5}.legal-page p:last-child{margin-bottom:0}.legal-page a{color:var(--bs-primary);font-weight:500}.legal-section{margin:0 0 2rem}.legal-section:last-child{margin-bottom:0}.legal-section ul,.legal-section ol{margin:.25rem 0 .5rem;padding-left:1.5rem}.legal-section li{margin:.25rem 0;line-height:1.5}.legal-page .table,.legal-table{--bs-table-bg:var(--ds-surface);--bs-table-color:var(--bs-body-color);--bs-table-border-color:var(--bs-border-color);--bs-table-striped-bg:color-mix(in srgb,var(--ds-surface-container-high)80%,transparent);border-collapse:separate;border-spacing:0;border:1px solid var(--bs-border-color);border-radius:.75rem;width:100%;margin:1rem 0;font-size:.8125rem;overflow:hidden}.legal-page .table thead th,.legal-table thead th{background:color-mix(in srgb,var(--ds-surface)70%,var(--bs-border-color));color:var(--ds-tertiary);border-bottom-color:var(--bs-border-color);padding:.75rem .875rem;font-weight:600}.legal-page .table td,.legal-table td{vertical-align:top;padding:.75rem .875rem}.legal-page .card{background:var(--ds-surface);border:1px solid var(--bs-border-color);border-radius:.75rem}@media (max-width:768px){.legal-page-wrap{padding:2.5rem 0}.legal-page{padding:1.5rem}.legal-page h2,.legal-page .h4{font-size:1.2rem}}.cookie-banner{background:linear-gradient(135deg,var(--primary-dark)0%,var(--primary-color)100%);color:#fff;z-index:9999;padding:1rem 0;animation:.3s ease-out slideUp;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000001a}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.cookie-banner p{margin:0;font-size:.9rem}.cookie-banner a{color:#fff;font-weight:500}.cookie-banner a:hover{color:#ffffffd9}@media (max-width:768px){.navbar-brand{font-size:1.25rem}.cookie-banner{padding:1.5rem 0}.cookie-banner .btn{width:100%;margin-top:.5rem}}@media (max-width:575.98px){body{font-size:.9rem}.navbar-brand{font-size:1.1rem}}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-topbar{z-index:1030;background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);justify-content:space-between;align-items:center;height:56px;padding:0 1rem;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:.5rem;display:flex}.topbar-right{align-items:center;gap:.25rem;display:flex}.app-topbar .theme-toggle{border-radius:8px;justify-content:center;width:36px;height:36px;padding:0}.app-topbar .nav-lang-dropdown>.dropdown-toggle{box-shadow:none;background:0 0;border:none;padding:.25rem .5rem;font-size:.9rem}.app-topbar .nav-lang-dropdown>.dropdown-toggle:hover,.app-topbar .nav-lang-dropdown>.dropdown-toggle:focus,.app-topbar .nav-lang-dropdown.show>.dropdown-toggle{box-shadow:none;background:0 0}.topbar-brand{font-size:1.15rem;font-weight:700;text-decoration:none}.topbar-toggle,.topbar-btn{width:36px;height:36px;color:var(--bs-body-color);cursor:pointer;transition:background var(--motion-fast)var(--motion-easing);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.topbar-toggle:hover,.topbar-btn:hover{background:var(--bs-tertiary-bg)}.topbar-user{align-items:center;display:flex}.topbar-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.topbar-plan-badge{margin-left:.25rem;padding:.15em .45em;font-size:.65rem}.topbar-dropdown .dropdown-toggle{background:0 0;border:none;padding:.25rem .5rem;font-size:.9rem}.topbar-dropdown .dropdown-toggle:after{display:none}.app-sidebar{z-index:1020;background:var(--bs-body-bg);border-right:1px solid var(--bs-border-color);width:220px;transition:width .2s,transform .2s;position:fixed;top:56px;bottom:0;left:0;overflow:hidden auto}.app-sidebar.collapsed{width:60px}.sidebar-nav{flex-direction:column;justify-content:space-between;height:100%;padding:.5rem 0;display:flex}.sidebar-main{flex:1}.sidebar-bottom{padding-bottom:.5rem}.sidebar-divider{background:var(--bs-border-color);height:1px;margin:.5rem .75rem}.sidebar-item{color:var(--bs-body-color);white-space:nowrap;transition:background var(--motion-fast)var(--motion-easing),color var(--motion-fast)var(--motion-easing);border-radius:8px;align-items:center;gap:.75rem;margin:2px .5rem;padding:.6rem 1rem;font-size:.9rem;text-decoration:none;display:flex}.sidebar-item:hover{background:var(--bs-tertiary-bg);color:var(--bs-primary);text-decoration:none}.sidebar-item.active{background:var(--bs-primary);color:#fff}.sidebar-icon{text-align:center;flex-shrink:0;width:20px;font-size:1.15rem}.sidebar-label{text-overflow:ellipsis;overflow:hidden}.app-sidebar.collapsed .sidebar-item{justify-content:center;margin:2px .25rem;padding:.6rem}.app-sidebar.collapsed .sidebar-label,.sidebar-backdrop{display:none}.app-content{min-height:calc(100vh - 56px);margin-left:220px;transition:margin-left .2s}.sidebar-collapsed .app-content{margin-left:60px}@media (max-width:991.98px){.app-sidebar{z-index:1040;width:260px;transform:translate(-100%)}.app-sidebar.mobile-open{transform:translate(0)}.sidebar-backdrop{z-index:1035;background:#0006;display:none;position:fixed;inset:0}.app-layout:has(.app-sidebar.mobile-open) .sidebar-backdrop{display:block}.app-content,.sidebar-collapsed .app-content{margin-left:0}}.chat-widget-button{bottom:var(--space-lg);right:var(--space-lg);z-index:1045;background:var(--primary-color);color:#fff;cursor:pointer;width:52px;height:52px;transition:transform var(--motion-fast)var(--motion-easing),box-shadow var(--motion-fast)var(--motion-easing);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;display:flex;position:fixed;box-shadow:0 4px 16px #0003}.chat-widget-button:hover{transform:scale(1.08);box-shadow:0 6px 24px #00000040}.chat-widget-badge{background:var(--bs-danger);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.7rem;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.chat-widget-panel{bottom:var(--space-lg);right:var(--space-lg);z-index:1045;width:380px;height:clamp(400px,70dvh,700px);max-height:calc(100dvh - 2*var(--space-lg));background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:16px;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 32px #0003}@supports not (height:1dvh){.chat-widget-panel{height:clamp(400px,70vh,700px);max-height:calc(100vh - 2*var(--space-lg))}}.chat-widget-header{border-bottom:1px solid var(--bs-border-color);background:var(--bs-body-bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:.6rem .75rem;display:flex}.chat-widget-header-btn{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--bs-body-color);cursor:pointer;transition:background var(--motion-fast)var(--motion-easing);background:0 0;border:none;justify-content:center;align-items:center;font-size:.9rem;display:flex}.chat-widget-header-btn:hover{background:var(--bs-tertiary-bg)}.chat-widget-messages{flex:1;padding:.75rem;overflow-y:auto}.chat-widget-msg{word-wrap:break-word;border-radius:12px;max-width:85%;margin-bottom:.5rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.4}.chat-widget-msg-user{background:var(--primary-color);color:#fff;white-space:pre-wrap;margin-left:auto}.chat-widget-msg-ai{background:var(--bs-tertiary-bg);margin-right:auto}.chat-markdown{overflow-wrap:break-word}.chat-markdown p{margin:0 0 .4em}.chat-markdown p:last-child{margin-bottom:0}.chat-markdown ul,.chat-markdown ol{margin:.25em 0 .4em;padding-left:1.3em}.chat-markdown li{margin-bottom:.15em}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4{margin:.5em 0 .25em;font-size:.9rem;font-weight:600}.chat-markdown h1:first-child,.chat-markdown h2:first-child,.chat-markdown h3:first-child{margin-top:0}.chat-markdown code{border-radius:var(--radius-xs);background:#00000014;padding:.1em .3em;font-size:.8em}[data-bs-theme=dark] .chat-markdown code{background:#ffffff1a}.chat-markdown pre{border-radius:var(--radius-sm);background:#0000000f;margin:.35em 0;padding:.5em;font-size:.8em;overflow-x:auto}[data-bs-theme=dark] .chat-markdown pre{background:#ffffff14}.chat-markdown pre code{background:0 0;padding:0}.chat-markdown blockquote{border-left:3px solid var(--primary-color);color:var(--bs-secondary-color);margin:.35em 0;padding:.25em .6em;font-size:.85em}.chat-markdown strong{font-weight:600}.chat-markdown a{color:var(--primary-color);text-decoration:underline}.chat-markdown hr{border-color:var(--bs-border-color);margin:.4em 0}.chat-markdown table{border-collapse:collapse;width:100%;margin:.35em 0;font-size:.82em}.chat-markdown th,.chat-markdown td{border:1px solid var(--bs-border-color);text-align:left;padding:.25em .5em}.chat-markdown th{background:#0000000a;font-weight:600}[data-bs-theme=dark] .chat-markdown th{background:#ffffff0f}.chat-widget-suggestions{border-top:1px solid var(--bs-border-color);flex-wrap:wrap;flex-shrink:0;gap:.25rem;padding:.4rem .75rem;display:flex}.chat-widget-suggestion{cursor:pointer;font-size:.75rem;padding:.25rem .5rem!important}.chat-widget-msg-wrapper{position:relative}.chat-widget-msg-wrapper .chat-widget-copy-btn{opacity:0;transition:opacity var(--motion-fast)var(--motion-easing);background:var(--bs-tertiary-bg);color:var(--bs-body-color);border-radius:var(--radius-xs);cursor:pointer;border:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;display:flex;position:absolute;top:.25rem;right:.25rem}.chat-widget-msg-wrapper:hover .chat-widget-copy-btn{opacity:.7}.chat-widget-msg-wrapper .chat-widget-copy-btn:hover{opacity:1}.chat-widget-upgrade-card{background:var(--bs-tertiary-bg);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--motion-fast)var(--motion-easing);justify-content:space-between;align-items:center;gap:.5rem;margin-top:.5rem;padding:.5rem;display:flex}.chat-widget-upgrade-card:hover{background:var(--bs-secondary-bg)}.chat-widget-upgrade-label{color:var(--primary-color);text-transform:uppercase;letter-spacing:.02em;font-size:.7rem;font-weight:600}.chat-widget-upgrade-feature{color:var(--bs-body-color);font-size:.8rem}.chat-widget-upgrade-cta{white-space:nowrap;border-radius:var(--radius-xs);background:var(--primary-color);color:#fff;border:none;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.chat-widget-streaming-dots{gap:4px;padding:.25rem 0;display:inline-flex}.chat-widget-streaming-dots span{background:var(--bs-body-color);opacity:.4;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite chatDotPulse}.chat-widget-streaming-dots span:nth-child(2){animation-delay:.2s}.chat-widget-streaming-dots span:nth-child(3){animation-delay:.4s}@keyframes chatDotPulse{0%,60%,to{opacity:.4;transform:scale(1)}30%{opacity:1;transform:scale(1.2)}}.chat-widget-stop-btn{border:1px solid var(--bs-border-color);background:var(--bs-body-bg);color:var(--bs-body-color);cursor:pointer;transition:background var(--motion-fast)var(--motion-easing);border-radius:999px;justify-content:center;align-items:center;gap:.35rem;margin:.25rem auto;padding:.25rem .75rem;font-size:.75rem;display:flex}.chat-widget-stop-btn:hover{background:var(--bs-tertiary-bg)}.chat-widget-input{border-top:1px solid var(--bs-border-color);flex-shrink:0;padding:.5rem .75rem}.chat-widget-input textarea{resize:none;max-height:6rem;line-height:1.4;overflow-y:auto}@media (max-width:575.98px){.chat-widget-panel{border-radius:0;width:100%;height:100vh;max-height:none;inset:0}}@media (min-width:576px) and (max-width:991.98px){.chat-widget-panel{width:min(420px,calc(100vw - 2*var(--space-lg)));height:clamp(400px,75dvh,650px)}}:root{--chart-grid:#00000014;--chart-text:#42474e;--chart-tooltip-bg:#f6fafe;--chart-tooltip-text:#181c20;--chart-tooltip-border:#0000001a;--zone-1:#00bcd4;--zone-2:#4caf50;--zone-3:#ffc107;--zone-4:#ff9800;--zone-5:#f44336;--zone-6:#9c27b0;--chart-hr:#d2416e;--chart-power:#0075ff;--chart-speed:#e86a1f;--chart-cadence:#0db1ad;--chart-elevation-fill:#42474e1a;--chart-elevation-stroke:#c2c7ce}[data-bs-theme=dark]{--chart-grid:#ffffff14;--chart-text:#9aa4ae;--chart-tooltip-bg:#262a2e;--chart-tooltip-text:#eceef1;--chart-tooltip-border:#ffffff1a;--chart-elevation-fill:#9aa4ae14;--chart-elevation-stroke:#5e6770}.chart-tooltip{background:var(--chart-tooltip-bg);color:var(--chart-tooltip-text);border:1px solid var(--chart-tooltip-border);border-radius:6px;padding:8px 12px;font-size:.8rem;box-shadow:0 2px 8px #00000026}.chart-tooltip-time{opacity:.7;margin-bottom:4px;font-size:.75rem;font-weight:600}.chart-tooltip-row{align-items:center;gap:6px;line-height:1.5;display:flex}.chart-tooltip-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.chart-toggle-btn{padding:3px 10px;font-size:.78rem;transition:all .15s}.chart-toggle-btn.btn-dark{color:#fff}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--chart-grid)}.recharts-default-tooltip{display:none!important}:root{--c5z-accent:#00d4b4;--c5z-brand-primary:#00a48b;--text-secondary:#9aa4ae;--status-success:#4caf50;--status-error:#f44336;--component-border:#ffffff14}[data-bs-theme=light]{--text-secondary:#42474e;--component-border:#00000014}.accent-date{color:var(--c5z-accent);letter-spacing:.06em;font-size:.78rem;font-weight:600}.section-divider{border:0;border-top:1px solid var(--component-border);opacity:1;margin:1rem 0}.subsection-title{color:var(--text-secondary);margin-bottom:.5rem;font-size:.82rem;font-weight:600}.insight-block{background:#00a99814;border-radius:6px;padding:.75rem 1rem}.insight-block-icon{width:28px;height:28px;color:var(--c5z-accent);background:#00a99826;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.strava-badge{border-radius:8px;align-items:center;gap:.5rem;padding:.35rem .75rem;font-size:.8rem;font-weight:500;display:inline-flex}.strava-badge-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.strava-badge--success{color:var(--status-success);background:#4caf501f}.strava-badge--success .strava-badge-dot{background:var(--status-success)}.strava-badge--error{color:var(--status-error);background:#f443361f}.strava-badge--error .strava-badge-dot{background:var(--status-error)}.strava-badge--accent{color:var(--c5z-accent);background:#00d4b41f}.strava-badge--accent .strava-badge-dot{background:var(--c5z-accent)}.strava-badge--muted{color:var(--text-secondary);background:#9aa4ae1f}.strava-badge--muted .strava-badge-dot{background:var(--text-secondary)}.delta-chip{border-radius:6px;flex-direction:column;align-items:center;padding:.25rem .5rem;line-height:1.3;display:inline-flex}.trend-badge{border-radius:6px;padding:.2rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.trend-badge--success{color:var(--status-success);background:#4caf501f}.trend-badge--error{color:var(--status-error);background:#f443361f}.trend-badge--muted{color:var(--text-secondary);background:#9aa4ae1f}.cycle-timeline{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.cycle-bar{transition:box-shadow .2s}.cycle-bar--active{box-shadow:0 0 0 2px var(--c5z-accent),0 0 8px #00d4b44d}.workout-row{border-bottom:1px solid var(--card-border);align-items:center;padding:8px 0;display:flex}.workout-row:last-child{border-bottom:none}.plan-progress-bar .progress-bar{background:var(--c5z-accent)}@media print{.navbar,footer,.theme-toggle,.dropdown,.cookie-banner,.app-sidebar,.app-topbar,.chat-widget-button,.chat-widget-panel{display:none!important}.app-content{margin-left:0!important}body{color:#000!important;background:#fff!important}a{color:#000!important;text-decoration:underline!important}}
