@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Inter:wght@400;500&family=JetBrains+Mono:wght@400&display=swap";:root{--color-primary:#0d0d0d;--color-secondary:#6b6b6b;--color-accent:#2ecc71;--color-accent-hover:#437759;--color-surface:#f5f5f0;--color-surface-alt:#ebebeb;--color-surface-card:var(--color-surface);--color-on-primary:#f5f5f0;--color-on-accent:#fff;--color-success:var(--color-accent);--color-success-text:#166534;--color-warning:#c47f00;--color-danger:#c23b3b;--color-on-success:#fff;--color-on-warning:#fff;--color-on-danger:#fff;--color-data-blue:#2563eb;--color-data-sky:#3b99d9;--color-data-green:#22c55e;--color-data-emerald:#10b981;--color-data-purple-soft:#8b5cf6;--color-data-purple:#8b2fcc;--color-data-orange:#fb923c;--color-data-amber:#f59e0b;--color-data-yellow:#fcd34d;--color-data-red:#d93b57;--color-data-rose:#f43f5e;--color-data-pink:#ec4899;--color-data-teal:#14b8a6;--color-data-cyan:#06b6d4;--color-data-indigo:#6366f1;--color-data-lime:#84cc16;--color-data-slate:#64748b;--color-data-gray:#9ca3af;--color-neutral-border:#d1d5db;--color-heatmap-empty:#ebedf0;--color-success-surface:#d1fae5;--color-success-border:#a7f3d0;--color-warning-surface:#fef3c7;--color-danger-surface:#fee2e2;--color-danger-border:#fca5a5;--color-priority-b:#4a90d9;--color-priority-c:#9b9b9b;--color-zone-1:#d4d4d0;--color-zone-2:#4ade80;--color-zone-3:#fcd34d;--color-zone-4:#fb923c;--color-zone-5:#f87171;--color-hr-zone-1:#f2ecec;--color-hr-zone-2:#e5c9c9;--color-hr-zone-3:#d6a6a5;--color-hr-zone-4:#e55b74;--color-hr-zone-5:var(--color-data-red);--color-power-zone-1:#e2e8f0;--color-power-zone-2:#34d399;--color-power-zone-3:#fbbf24;--color-power-zone-4:#f97316;--color-power-zone-5:#ef4444;--color-power-zone-6:#dc2626;--color-power-zone-7:#7c3aed;--color-session-run-recovery:var(--color-success-border);--color-session-run-endurance:var(--color-zone-2);--color-session-run-tempo:var(--color-zone-3);--color-session-run-threshold:#fb7185;--color-session-run-vo2max:#0d0d0d;--color-session-run-speed:#a855f7;--color-session-run-long:#818cf8;--color-session-run-fartlek:var(--color-zone-4);--color-session-run-progressive:#38bdf8;--color-session-run-mixed:#94a3b8;--color-session-run-race:var(--color-data-cyan);--color-session-bike-recovery:var(--color-success-border);--color-session-bike-endurance:var(--color-power-zone-2);--color-session-bike-tempo:var(--color-power-zone-3);--color-session-bike-sweet-spot:var(--color-power-zone-4);--color-session-bike-threshold:var(--color-power-zone-5);--color-session-bike-vo2max:var(--color-power-zone-6);--color-session-bike-anaerobic:#c026d3;--color-session-bike-neuromuscular:var(--color-power-zone-7);--color-session-bike-cadence-strength:var(--color-data-slate);--color-session-bike-mixed:#60a5fa;--color-metric-hr:var(--color-data-red);--color-metric-pace:var(--color-data-sky);--color-metric-altitude:var(--color-data-gray);--color-metric-cadence:var(--color-data-emerald);--color-metric-grade:var(--color-data-amber);--color-metric-ctl:var(--color-data-green);--color-metric-atl:var(--color-data-purple-soft);--color-metric-tsb:var(--color-data-gray);--color-score-good:var(--color-data-green);--color-score-warn:var(--color-data-amber);--color-score-bad:#ef4444;--color-score-neutral:var(--color-data-gray);--color-ramp-detraining:var(--color-score-neutral);--color-ramp-maintenance:var(--color-data-yellow);--color-ramp-optimal:var(--color-score-good);--color-ramp-high-risk:var(--color-data-orange);--color-ramp-overreaching:var(--color-data-red);--color-tsb-transition:var(--color-accent);--color-tsb-transition-fill:color-mix(in srgb, var(--color-data-orange) 24%, transparent);--color-tsb-transition-stroke:color-mix(in srgb, var(--color-data-orange) 65%, transparent);--color-tsb-fresh:#38bdf8;--color-tsb-fresh-fill:color-mix(in srgb, var(--color-tsb-fresh) 22%, transparent);--color-tsb-fresh-stroke:color-mix(in srgb, var(--color-tsb-fresh) 62%, transparent);--color-tsb-grey:var(--color-session-run-mixed);--color-tsb-grey-fill:color-mix(in srgb, var(--color-tsb-grey) 16%, transparent);--color-tsb-grey-stroke:color-mix(in srgb, var(--color-tsb-grey) 42%, transparent);--color-tsb-optimal:var(--color-score-good);--color-tsb-optimal-fill:color-mix(in srgb, var(--color-tsb-optimal) 24%, transparent);--color-tsb-optimal-stroke:color-mix(in srgb, var(--color-tsb-optimal) 62%, transparent);--color-tsb-high-risk:var(--color-data-rose);--color-tsb-high-risk-fill:color-mix(in srgb, var(--color-tsb-high-risk) 24%, transparent);--color-tsb-high-risk-stroke:color-mix(in srgb, var(--color-tsb-high-risk) 68%, transparent);--color-plan-series:var(--color-data-gray);--color-real-series:var(--color-data-sky);--color-bike-series:var(--color-data-amber);--color-map-admin-label:#6b7280;--color-map-water:#c9d8e8;--color-map-land-natural:#e8e4d8;--color-map-land-built:#f0ede4;--color-map-route-done:var(--color-data-sky);--color-map-route-remaining:#b0bec5;--color-map-route-full:var(--color-data-sky);--color-map-route-comparison:var(--color-data-orange);--color-map-start:var(--color-score-good);--color-map-end:var(--color-data-red);--color-map-marker-bg:#fff;--color-workout-step-warmup:#d97706;--color-workout-step-warmup-bg:#fef3c7;--color-workout-step-run:#059669;--color-workout-step-run-bg:#d1fae5;--color-workout-step-bike:var(--color-data-blue);--color-workout-step-bike-bg:#dbeafe;--color-workout-step-interval:var(--color-power-zone-6);--color-workout-step-interval-bg:var(--color-danger-surface);--color-workout-step-recovery:var(--color-power-zone-7);--color-workout-step-recovery-bg:#ede9fe;--color-workout-step-cooldown:#4f46e5;--color-workout-step-cooldown-bg:#e0e7ff;--color-workout-step-default:#4b5563;--color-workout-step-default-bg:#f3f4f6;--color-brand-google-red:#ea4335;--color-brand-google-blue:#4285f4;--color-brand-google-yellow:#fbbc05;--color-brand-google-green:#34a853;--color-brand-google-success-text:#2d7a3a;--color-brand-google-success-bg:color-mix(in srgb, var(--color-brand-google-green) 8%, transparent);--color-chart-line-primary:#f87171;--color-chart-line-fitness:#22c55e;--color-chart-line-fatigue:#8b5cf6;--color-chart-line-form:var(--color-primary);--color-chart-bar:var(--color-primary);--color-chart-bar-hover:color-mix(in srgb, var(--color-primary) 10%, transparent);--color-chart-tooltip-bg:var(--color-surface-card);--color-chart-tooltip-border:var(--color-surface-alt);--color-activity-altitude-fill:color-mix(in srgb, var(--color-primary) 14%, transparent);--color-activity-altitude-stroke:color-mix(in srgb, var(--color-primary) 26%, transparent);--color-overlay-subtle:color-mix(in srgb, var(--color-primary) 20%, transparent);--color-overlay-medium:color-mix(in srgb, var(--color-primary) 30%, transparent);--color-overlay-strong:color-mix(in srgb, var(--color-primary) 35%, transparent);--color-overlay-modal:color-mix(in srgb, var(--color-primary) 40%, transparent);--color-ai-coach-bg:#efefef;--color-ai-coach-text:#0d0d0d;--radius:var(--radius-sm);--font-display:"Barlow Condensed", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--text-display:3.5rem;--text-h1:2.5rem;--text-h2:1.875rem;--text-h3:1.375rem;--text-body-lg:1rem;--text-body-md:.875rem;--text-body-sm:.75rem;--text-label:.75rem;--text-metric:3rem;--text-metric-sm:1.5rem;--text-mono:.8125rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-display:1;--line-height-h1:1.1;--line-height-h2:1.15;--line-height-h3:1.2;--line-height-body-lg:1.7;--line-height-body-md:1.6;--line-height-body-sm:1.5;--line-height-label:1;--line-height-metric:1;--line-height-metric-sm:1;--line-height-mono:1.5;--letter-spacing-normal:0;--letter-spacing-tight:-.01em;--letter-spacing-tighter:-.02em;--letter-spacing-label:.06em;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--radius-none:0px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--transition-fast:.12s ease;--transition-base:.15s ease;--transition-medium:.2s ease;--transition-slow:.35s ease;--shadow-none:none;--shadow-xs:0 1px 2px color-mix(in srgb, var(--color-primary) 4%, transparent);--shadow-sm:0 1px 3px color-mix(in srgb, var(--color-primary) 8%, transparent);--shadow-md:0 4px 12px color-mix(in srgb, var(--color-primary) 8%, transparent);--shadow-lg:0 8px 24px color-mix(in srgb, var(--color-primary) 10%, transparent);--shadow-modal:0 16px 48px color-mix(in srgb, var(--color-primary) 12%, transparent);--shadow-drawer:4px 0 24px color-mix(in srgb, var(--color-primary) 10%, transparent);--shadow-top:0 -8px 24px color-mix(in srgb, var(--color-primary) 8%, transparent);--shadow-current-inset:inset 0 -3px 0 var(--color-primary);--focus-ring:0 0 0 2px color-mix(in srgb, var(--color-primary) 6%, transparent);--z-base:0;--z-dropdown:100;--z-overlay:140;--z-drawer:150;--z-header:200;--z-modal-overlay:400;--z-modal:401;--z-toast:500;--breakpoint-mobile-max:767px;--breakpoint-tablet-min:768px;--breakpoint-tablet-max:1023px;--breakpoint-desktop-min:1024px;--layout-content-max:1280px;--layout-sidebar-width:240px;--component-button-height:40px;--component-input-height:40px;--component-progress-height:6px}@media (prefers-color-scheme:dark){:root{--color-primary:#f5f5f0;--color-secondary:#8c8c8c;--color-surface:#0d0d0d;--color-surface-alt:#2a2a2a;--color-surface-card:#1a1a1a;--color-on-primary:#0d0d0d;--color-accent:#2ecc71;--color-accent-hover:#c44f06;--color-success-surface:color-mix(in srgb, var(--color-success) 24%, #0d0d0d);--color-success-border:color-mix(in srgb, var(--color-success) 55%, #0d0d0d);--color-success-text:#a7f3d0;--color-warning-surface:color-mix(in srgb, var(--color-warning) 24%, #0d0d0d);--color-danger-surface:color-mix(in srgb, var(--color-danger) 24%, #0d0d0d);--color-danger-border:color-mix(in srgb, var(--color-danger) 55%, #0d0d0d);--color-heatmap-empty:#2a2a2a;--color-overlay-subtle:#00000059;--color-overlay-medium:#00000080;--color-overlay-strong:#0000009e;--color-overlay-modal:#000000ad;--color-ai-coach-bg:#0d0d0d;--color-ai-coach-text:#f5f5f0;--color-chart-bar-hover:color-mix(in srgb, var(--color-primary) 12%, transparent);--color-chart-tooltip-bg:#1a1a1a;--color-chart-tooltip-border:#2a2a2a;--color-activity-altitude-fill:color-mix(in srgb, var(--color-primary) 18%, transparent);--color-activity-altitude-stroke:color-mix(in srgb, var(--color-primary) 34%, transparent);--shadow-xs:0 1px 2px #00000047;--shadow-sm:0 1px 3px #00000057;--shadow-md:0 4px 12px #00000057;--shadow-lg:0 8px 24px #0006;--shadow-modal:0 16px 48px #00000075;--shadow-drawer:4px 0 24px #0000006b;--shadow-top:0 -8px 24px #0006;--focus-ring:0 0 0 2px color-mix(in srgb, var(--color-primary) 20%, transparent)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--text-body-lg);-webkit-font-smoothing:antialiased;overflow-x:hidden}body{overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-body)}html{font-family:var(--font-body);font-size:var(--text-body-lg);line-height:var(--line-height-body-md);color:var(--color-primary);background:var(--color-surface)}body{font-family:var(--font-body);font-size:var(--text-body-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-body-md);letter-spacing:var(--letter-spacing-normal);color:var(--color-primary);background:var(--color-surface)}.type-display{font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-display);letter-spacing:var(--letter-spacing-tight)}.type-h1{font-family:var(--font-display);font-size:var(--text-h1);font-weight:var(--font-weight-bold);line-height:var(--line-height-h1);letter-spacing:var(--letter-spacing-tight)}.type-h2{font-family:var(--font-display);font-size:var(--text-h2);font-weight:var(--font-weight-semibold);line-height:var(--line-height-h2);letter-spacing:var(--letter-spacing-normal)}.type-h3{font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--font-weight-semibold);line-height:var(--line-height-h3);letter-spacing:var(--letter-spacing-normal)}.type-body-lg{font-family:var(--font-body);font-size:var(--text-body-lg);font-weight:var(--font-weight-regular);line-height:var(--line-height-body-lg);letter-spacing:var(--letter-spacing-normal)}.type-body-md{font-family:var(--font-body);font-size:var(--text-body-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-body-md);letter-spacing:var(--letter-spacing-normal)}.type-body-sm{font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:var(--font-weight-regular);line-height:var(--line-height-body-sm);letter-spacing:var(--letter-spacing-normal)}.type-label{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-label)}.type-metric{font-family:var(--font-display);font-size:var(--text-metric);font-weight:var(--font-weight-bold);line-height:var(--line-height-metric);letter-spacing:var(--letter-spacing-tighter)}.type-metric-sm{font-family:var(--font-display);font-size:var(--text-metric-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-metric-sm);letter-spacing:var(--letter-spacing-normal)}.type-mono{font-family:var(--font-mono);font-size:var(--text-mono);font-weight:var(--font-weight-regular);line-height:var(--line-height-mono);letter-spacing:var(--letter-spacing-normal)}:root{--nav-rail-w:56px;--header-h:52px}.page-wrap{max-width:calc(1100px + var(--nav-rail-w));padding:calc(var(--header-h) + 40px) 32px 80px calc(var(--nav-rail-w) + 32px);margin:0 auto}.grid-2,.grid-3{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}@media (width<=767px){.page-wrap{padding:calc(var(--header-h) + 16px) 16px 24px 16px}.grid-2,.grid-3{grid-template-columns:1fr}}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:stretch;gap:12px;display:grid}.zones-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.analysis-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.activity-header-stats-grid{border:1px solid var(--color-surface-alt);border-radius:var(--radius-md);grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin-top:16px;display:grid;overflow:hidden}.activity-header-stat-item{border-right:1px solid var(--color-surface-alt);padding:12px 14px}.activity-header-stat-item:last-child{border-right:none}.zone-row{background:var(--color-surface);border-radius:4px;align-items:center;gap:12px;width:100%;padding:10px 16px;display:flex}.zone-label{font-weight:600;font-size:var(--text-body-sm);width:24px;color:var(--color-primary);flex-shrink:0}.zone-name{font-size:var(--text-body-sm);width:100px;color:var(--color-secondary);flex-shrink:0}.profile-field-grid{grid-template-columns:repeat(3,minmax(180px,1fr));gap:16px;width:100%;display:grid}.profile-pair-grid{gap:14px;width:100%;display:grid}.profile-pair-row{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);align-items:end;gap:16px;display:grid}.profile-provider-stack{flex-direction:column;gap:14px;width:100%;display:flex}.profile-provider-select{width:100%}.profile-provider-list{flex-direction:column;gap:8px;display:flex}@media (width<=480px){.zone-row{gap:6px;padding:8px 10px}.zone-name{width:70px;font-size:var(--text-label)}}@media (width<=767px){.metrics-grid,.zones-grid,.analysis-grid{grid-template-columns:repeat(2,1fr)}.activity-header-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-header-stat-item{border-right:1px solid var(--color-surface-alt);border-bottom:1px solid var(--color-surface-alt)}.activity-header-stat-item:nth-child(2n){border-right:none}.activity-header-stat-item:nth-last-child(-n+2){border-bottom:none}.profile-field-grid,.profile-pair-row{grid-template-columns:1fr}}@media (width<=480px){.chart-settings-dropdown{min-width:auto;position:fixed;inset:auto 12px 16px}}@media (width<=767px){.wiki-table{font-size:var(--text-body-sm)}.wiki-table th,.wiki-table td{padding:8px}.wiki-entry-content{overflow-x:auto}}@media (width<=480px){.metric-tooltip-content{max-width:160px;font-size:var(--text-label)}}@media (width<=767px){.recharts-wrapper .recharts-yAxis .recharts-cartesian-axis-tick-value{font-size:var(--text-label)!important}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-secondary);border-radius:2px}.font-display{font-family:var(--font-display);font-weight:600}.text-muted,.text-faint{color:var(--color-secondary)}.caps{text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-label);font-weight:500}.num{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:600}@keyframes fadeUp{0%{opacity:0;transform:none}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.fade-up{opacity:0;animation:.4s forwards fadeUp}.fade-up-1{animation-delay:50ms}.fade-up-2{animation-delay:.1s}.fade-up-3{animation-delay:.15s}.fade-up-4{animation-delay:.2s}.fade-up-5{animation-delay:.25s}.fade-up-6{animation-delay:.3s}.z1{background:var(--color-zone-1)}.z2{background:var(--color-zone-2)}.z3{background:var(--color-zone-3)}.z4{background:var(--color-zone-4)}.z5{background:var(--color-zone-5)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-header{height:var(--header-h);background:color-mix(in srgb, var(--color-surface) 95%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-surface-alt);z-index:200;justify-content:space-between;align-items:center;gap:14px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.app-header-left{align-items:center;gap:12px;display:flex}.app-header-burger{color:var(--color-primary);background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;transition:background .15s;display:flex}.app-header-burger:hover{background:var(--color-surface)}.app-header-logo-img{--brand-logo-height:36px;height:var(--brand-logo-height);cursor:pointer}.brand-logo{align-items:center;gap:calc(var(--brand-logo-height) * .2);color:var(--color-primary);white-space:nowrap;line-height:1;display:inline-flex}.brand-logo-mark{flex-shrink:0;width:auto;height:100%;display:block}.brand-logo-wordmark{font-family:var(--font-display);font-size:calc(var(--brand-logo-height) * .86);font-weight:var(--font-weight-semibold)}.brand-logo-wordmark-agon{color:var(--color-primary)}.brand-logo-wordmark-lab{color:var(--color-accent)}.app-header-right{justify-content:flex-end;align-items:center;gap:var(--space-sm);flex:1;display:flex}.app-header-locale{align-items:center;display:inline-flex}.app-header-locale-select{appearance:none;border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);color:var(--color-primary);font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;background-image:linear-gradient(45deg, transparent 50%, var(--color-secondary) 50%), linear-gradient(135deg, var(--color-secondary) 50%, transparent 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding:6px 26px 6px 10px}.app-header-locale-select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.nav-drawer{background:color-mix(in srgb, var(--color-surface) 98%, transparent);-webkit-backdrop-filter:blur(12px);border-right:1px solid var(--color-surface-alt);z-index:150;flex-direction:column;transition:width .2s,transform .2s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.nav-drawer-overlay{background:var(--color-overlay-subtle);z-index:140;animation:.15s nav-fade-in;position:fixed;inset:0}@keyframes nav-fade-in{0%{opacity:0}to{opacity:1}}.nav-drawer-desktop{width:var(--nav-rail-w)}.nav-drawer-desktop.expanded{width:220px}.nav-drawer-mobile{z-index:210;width:280px;box-shadow:var(--shadow-drawer);transform:translate(-100%)}.nav-drawer-mobile.open{transform:translate(0)}.nav-drawer-header{flex-shrink:0;align-items:center;padding:16px 16px 24px;display:flex}.nav-drawer-logo{font-family:var(--font-display);font-weight:700;font-size:var(--text-metric-sm);letter-spacing:0;color:var(--color-primary);transition:color .15s}.nav-drawer-logo:hover{color:var(--color-secondary)}.nav-drawer-items{flex-direction:column;flex:1;gap:4px;padding:16px 8px;display:flex;overflow-y:auto}.nav-drawer-item{border-radius:var(--radius-sm);color:var(--color-secondary);font-size:var(--text-body-md);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:12px;padding:10px 16px;font-weight:400;text-decoration:none;transition:all .15s;display:flex;position:relative}.nav-drawer-item:hover{background:var(--color-surface);color:var(--color-accent)}.nav-drawer-item.active{color:var(--color-primary);background:var(--color-surface);font-weight:500}.nav-drawer-item.active:before{content:"";background:var(--color-accent);border-radius:0 2px 2px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-drawer-item-icon{flex-shrink:0;align-items:center;width:20px;height:20px;display:flex}.nav-drawer-item-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-drawer-footer{flex-shrink:0;padding:16px}.nav-drawer-logout{color:var(--color-secondary);cursor:pointer;width:100%;font-size:var(--text-body-sm);text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-weight:500;transition:color .2s;display:flex}.nav-drawer-logout:hover{color:var(--color-primary);background:var(--color-surface)}.nav-item,.nav-drawer-item{color:var(--color-secondary);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;background:0 0;padding:8px 12px}.nav-item-active,.nav-item.active,.nav-drawer-item.active{background:var(--color-surface-alt);color:var(--color-accent)}.chart-builder-btn-add:not(:disabled):hover{background:var(--color-primary)}.tp-summary-cell{background:var(--color-surface-card);font-size:var(--text-label);border-right:1px solid var(--color-surface-alt);border-bottom:1px solid var(--color-surface-alt);flex-direction:column;gap:10px;padding:12px;display:flex}.tp-summary-block.metrics{border-bottom:1px solid var(--color-surface-alt);flex-direction:row;justify-content:space-between;margin-bottom:4px;padding-bottom:10px}.tp-summary-block.metrics>div{flex-direction:column;align-items:center;gap:2px;display:flex}.tp-summary-block.metrics .val{font-size:var(--text-body-lg);font-family:var(--font-display);align-items:baseline;gap:3px;font-weight:600;display:flex}.tp-summary-block.metrics .lbl{font-size:var(--text-label);color:var(--color-secondary);text-transform:capitalize}.tp-summary-val{color:var(--color-primary);text-align:right;min-width:55px;font-weight:500;font-size:var(--text-label)}.selection-action-btn.compare-btn:not(:disabled){background:var(--color-accent);border-color:var(--color-accent)}.btn-primary,.button-primary{min-height:var(--component-button-height);border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-on-accent);font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;transition:background var(--transition-base), border-color var(--transition-base), color var(--transition-base);opacity:1;justify-content:center;align-items:center;padding:10px 20px;display:inline-flex}.btn-primary:hover:not(:disabled),.button-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent);opacity:1}.btn-secondary,.button-secondary{min-height:var(--component-button-height);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);color:var(--color-primary);font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;transition:background var(--transition-base), border-color var(--transition-base), color var(--transition-base);justify-content:center;align-items:center;padding:10px 20px;display:inline-flex}.btn-secondary:hover:not(:disabled),.button-secondary:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface-card));border-color:var(--color-accent);color:var(--color-primary)}.btn-ghost,.button-ghost{min-height:var(--component-button-height);border-radius:var(--radius-sm);color:var(--color-secondary);font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;transition:background var(--transition-base), color var(--transition-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:10px 20px;display:inline-flex}.btn-ghost:hover:not(:disabled),.button-ghost:hover:not(:disabled){background:var(--color-surface-alt);color:var(--color-primary)}.profile-input{border:1px solid var(--color-surface-alt);width:100%;font-size:var(--text-body-md);font-family:var(--font-body);color:var(--color-primary);background:var(--color-surface-card);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;border-radius:4px;outline:none;padding:10px 14px;transition:border-color .15s,box-shadow .15s}@media (prefers-color-scheme:dark){.profile-input{--lightningcss-light: ;--lightningcss-dark:initial}}.profile-input:focus{border-color:var(--color-accent);box-shadow:var(--focus-ring)}.profile-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.profile-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.profile-input[type=number],input[type=number]{appearance:textfield}.profile-input::placeholder{color:var(--color-secondary)}.profile-save-btn{background:var(--color-accent);min-width:0;color:var(--color-on-primary);font-size:var(--text-body-md);cursor:pointer;letter-spacing:.03em;white-space:nowrap;opacity:1;transition:opacity var(--transition-medium);border:none;border-radius:6px;padding:12px 24px;font-weight:600}.profile-save-btn:hover{background-color:var(--color-on-primary);color:var(--color-accent);border:1px solid var(--color-accent)}.profile-save-btn:disabled{opacity:.6}.profile-save-updated-at{font-size:var(--text-label);color:var(--color-secondary)}.profile-page{padding-bottom:calc(160px + env(safe-area-inset-bottom,0px))}.profile-save-row{left:calc(var(--nav-rail-w) + 32px);z-index:var(--z-header);padding:14px 0 calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top, var(--color-surface) 78%, color-mix(in srgb, var(--color-surface) 0%, transparent));align-items:center;gap:16px;display:flex;position:fixed;bottom:0;right:32px}@media (width<=767px){.profile-page{padding-bottom:calc(148px + env(safe-area-inset-bottom,0px))}.profile-save-row{padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));flex-wrap:wrap;align-items:center;gap:10px;left:16px;right:16px}.profile-save-btn{line-height:1.2;font-size:var(--text-body-md)!important;padding:10px 16px!important}}.btn-secondary{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);font-size:var(--text-label);color:var(--color-secondary);cursor:pointer;font-weight:500;font-family:var(--font-body);border-radius:4px;padding:6px 14px;transition:all .15s}.btn-secondary:hover{border-color:var(--color-accent);color:var(--color-primary);background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface-card))}.sq-container{background:var(--color-surface);border:1px solid var(--color-surface-alt);border-radius:12px;margin-top:12px;padding:16px}.sq-field{margin-bottom:16px}.sq-field:last-of-type{margin-bottom:12px}.sq-label{font-size:var(--text-body-md);color:var(--color-primary);margin-bottom:8px;font-weight:600;display:block}.sq-chips{flex-wrap:wrap;gap:6px;display:flex}.sq-chip{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);font-size:var(--text-body-sm);color:var(--color-secondary);cursor:pointer;font-family:var(--font-body);border-radius:20px;padding:6px 12px;transition:all .15s}.sq-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.sq-chip-active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.sq-slider-row{align-items:center;gap:12px;display:flex}.sq-slider{appearance:none;background:var(--color-surface-alt);border-radius:2px;outline:none;flex:1;height:4px}.sq-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-primary);cursor:pointer;border-radius:50%;width:18px;height:18px}.sq-slider-value{font-size:var(--text-body-md);color:var(--color-primary);text-align:right;min-width:60px;font-weight:600}.sq-text-input,.sq-date-input{border:1px solid var(--color-surface-alt);width:100%;font-size:var(--text-body-md);font-family:var(--font-body);color:var(--color-primary);background:var(--color-surface-card);border-radius:8px;outline:none;padding:8px 12px;transition:border-color .15s}.sq-text-input:focus,.sq-date-input:focus{border-color:var(--color-accent)}.sq-submit-btn{background:var(--color-primary);width:100%;color:var(--color-on-primary);font-size:var(--text-body-md);cursor:pointer;font-weight:600;font-family:var(--font-body);border:none;border-radius:8px;padding:10px;transition:opacity .15s}.sq-submit-btn:hover:not(:disabled){opacity:.8}.sq-submit-btn:disabled{opacity:.4;cursor:not-allowed}.sq-submitted{background:var(--color-surface);font-size:var(--text-body-md);color:var(--color-secondary);border-radius:8px;margin-top:12px;padding:12px 16px}.sq-check{color:var(--color-success);font-weight:700}.input,.profile-input,.goal-wizard-input,.time-range-input,.chart-builder-search{min-height:var(--component-input-height);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary);font-family:var(--font-body);font-size:var(--text-body-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-body-md);padding:10px 14px}.card-sm{flex-direction:column;justify-content:space-between;height:100%;min-height:90px;padding:16px 20px;display:flex}.summary-body{max-height:0;transition:max-height .35s;overflow:hidden}.summary-body.open{max-height:2000px}.custom-chart-card{padding:20px 20px 12px;position:relative;overflow:visible}.profile-danger-list{gap:var(--space-sm);margin-top:var(--space-sm);display:grid}.profile-sync-job{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);color:var(--color-secondary);font-size:var(--text-body-sm);display:flex}.profile-sync-job-dot{background:var(--color-secondary);border-radius:50%;flex:none;width:8px;height:8px}.profile-sync-job strong,.profile-sync-job span{display:block}.profile-sync-job strong{color:var(--color-primary)}.profile-sync-job-queued .profile-sync-job-dot,.profile-sync-job-running .profile-sync-job-dot,.profile-sync-job-retrying .profile-sync-job-dot{background:var(--color-accent)}.profile-sync-job-succeeded .profile-sync-job-dot{background:var(--color-success)}.profile-sync-job-failed .profile-sync-job-dot{background:var(--color-danger)}.profile-danger-zone{justify-content:space-between;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);background:var(--color-danger-surface);display:flex}.profile-danger-title{margin:0 0 var(--space-xs);color:var(--color-danger);font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--font-weight-bold)}.profile-danger-copy{max-width:720px;color:var(--color-primary);font-size:var(--text-body-sm);line-height:var(--line-height-body-sm);margin:0}.profile-danger-link{border:1px solid var(--color-danger);border-radius:var(--radius-sm);color:var(--color-danger);font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-base), color var(--transition-base), opacity var(--transition-base);background:0 0;flex:none;padding:10px 14px}.profile-danger-link:hover:not(:disabled){background:var(--color-danger);color:var(--color-on-danger)}.profile-danger-link:disabled{cursor:not-allowed;opacity:.6}@media (width<=767px){.profile-danger-zone{flex-direction:column;align-items:stretch}}.goal-event-badge{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--color-surface-alt);border-radius:2px;padding:2px 8px;font-weight:600}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:24px}.metric-card{background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-md);padding:20px 24px}.metric-card-light{background:var(--color-surface);color:var(--color-primary);border-radius:var(--radius-md);padding:20px 24px}.metric-info-icon{background:var(--color-secondary);width:14px;height:14px;color:var(--color-on-accent);font-size:var(--text-label);font-weight:700;font-family:var(--font-body);cursor:help;border-radius:50%;justify-content:center;align-items:center;margin-left:6px;transition:background .2s;display:inline-flex}.metric-info-icon:hover{background:var(--color-secondary)}.metric-tooltip-container{align-items:center;display:inline-flex;position:relative}.metric-tooltip-content{visibility:hidden;opacity:0;background-color:var(--color-primary);color:var(--color-on-primary);text-align:left;width:max-content;max-width:250px;font-size:var(--text-label);font-family:var(--font-body);z-index:100;text-transform:none;letter-spacing:normal;box-shadow:var(--shadow-lg);pointer-events:none;border-radius:6px;padding:8px 12px;line-height:1.4;transition:all .2s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(4px)}.metric-tooltip-content:after{content:"";border-style:solid;border-width:5px;border-color:var(--color-primary) transparent transparent transparent;margin-left:-5px;position:absolute;top:100%;left:50%}.metric-tooltip-container:hover .metric-tooltip-content{visibility:visible;opacity:1;transform:translate(-50%)translateY(-6px)}.metric-tooltip-trigger{background:var(--color-secondary);width:14px;height:14px;color:var(--color-on-primary);font-size:var(--text-label);font-weight:700;font-family:var(--font-body);cursor:pointer;vertical-align:middle;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:4px;padding:0;line-height:1;transition:background .15s;display:inline-flex}.metric-tooltip-trigger:hover{background:var(--color-accent)}.metric-tooltip-trigger--label{width:auto;height:auto;color:var(--color-secondary);font-size:var(--text-body-md);font-weight:inherit;font-family:var(--font-body);border-bottom:1px dotted var(--color-secondary);cursor:help;line-height:inherit;vertical-align:baseline;background:0 0;border-radius:0;margin-left:0;padding:0;display:inline}.metric-tooltip-trigger--label:hover{color:var(--color-primary);border-bottom-color:var(--color-primary);background:0 0}.metric-tooltip-popup{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);color:var(--color-primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);max-width:320px;font-size:var(--text-body-sm);z-index:1000;padding:14px 16px;line-height:1.5}.metric-tooltip-popup:before{content:"";background:var(--color-surface-card);border-left:1px solid var(--color-surface-alt);border-top:1px solid var(--color-surface-alt);width:10px;height:10px;position:absolute;top:-6px;left:16px;transform:rotate(45deg)}.metric-tooltip-label{font-weight:600;font-size:var(--text-body-md);color:var(--color-primary);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.metric-tooltip-definition{color:var(--color-primary);margin-bottom:8px}.metric-tooltip-formula{font-family:var(--font-mono);font-size:var(--text-label);background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-surface-alt);color:var(--color-primary);margin-bottom:8px;padding:8px 10px}.metric-tooltip-context{color:var(--color-secondary);font-size:var(--text-body-sm);margin-bottom:10px;font-style:italic}.metric-tooltip-link{color:var(--color-primary);font-size:var(--text-label);cursor:pointer;text-underline-offset:2px;font-weight:500;font-family:var(--font-body);background:0 0;border:none;padding:0;text-decoration:underline}.metric-tooltip-link:hover{color:var(--color-secondary)}.recharts-tooltip-wrapper{z-index:100!important;outline:none!important}.recharts-cartesian-axis-tick-value{font-family:var(--font-body)!important;font-size:var(--text-label)!important;fill:var(--color-secondary)!important}.recharts-cartesian-grid-horizontal line{stroke:var(--color-surface-alt)!important}.recharts-cartesian-grid-vertical line{stroke:#0000!important}.pmc-container{display:block;position:relative}.pmc-charts{flex-direction:column;min-width:0;display:flex}.pmc-summary-card{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;padding:10px 12px;display:flex}.pmc-summary-date{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.pmc-summary-metrics{justify-content:flex-end;align-items:center;gap:14px;display:flex}.pmc-summary-item{align-items:baseline;gap:6px;display:flex}.pmc-summary-label{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.04em}.pmc-summary-value{font-family:var(--font-display);font-size:var(--text-body-lg);font-variant-numeric:tabular-nums;font-weight:700}.pmc-zone-bar,.pmc-divider{display:none}.pmc-chart-label{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.06em;writing-mode:vertical-lr;white-space:nowrap;position:absolute;left:-20px;transform:rotate(180deg)}@media (width<=767px){.pmc-summary-card{flex-direction:column;align-items:flex-start;gap:8px}.pmc-summary-metrics{flex-wrap:wrap;justify-content:space-between;gap:8px 12px;width:100%}.pmc-summary-item{flex:auto;min-width:30%}}.progress-bar-track{background:var(--color-surface-alt);border-radius:var(--radius-full);height:var(--component-progress-height)}.progress-bar-fill{background:var(--color-accent);border-radius:var(--radius-full);height:var(--component-progress-height)}@media (width<=767px){.cmp-hero-grid,.cmp-charts-grid,.cmp-metrics-grid{grid-template-columns:1fr}.cmp-page-head{flex-direction:column;align-items:flex-start}.cmp-streams-tabs{gap:0}.cmp-streams-tab{font-size:var(--text-label);padding:8px 10px}}.route-map-card{border-radius:var(--radius-sm);border:1px solid var(--color-surface-alt)}.route-map-container{width:100%;height:380px}.route-map-legend{border-top:1px solid var(--color-surface-alt);gap:20px;padding:10px 16px;display:flex}.route-map-legend-item{font-size:var(--text-label);color:var(--color-secondary);letter-spacing:.03em;align-items:center;gap:6px;font-weight:500;display:flex}.route-map-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}@media (width<=767px){.route-map-container{height:260px}}.badge{border:1px solid var(--color-secondary);border-radius:var(--radius-sm);min-width:0;max-width:100%;font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--color-secondary);white-space:nowrap;text-overflow:ellipsis;align-items:center;padding:2px 8px;font-weight:500;display:inline-flex;overflow:hidden}.badge-accent{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 15%, transparent);color:var(--color-primary)}.badge-danger{border-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 8%, transparent);color:var(--color-danger)}.activity-type-badge{border-color:color-mix(in srgb, var(--activity-type-color) 78%, var(--color-primary));background:color-mix(in srgb, var(--activity-type-color) 20%, transparent);color:color-mix(in srgb, var(--activity-type-color) 55%, var(--color-primary))}.stat-badge{border-radius:var(--radius-full);background:var(--color-surface-alt);color:var(--color-primary);font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;justify-content:center;align-items:center;padding:4px 12px;display:inline-flex}.activity-tag{border-radius:var(--radius-sm);background:var(--color-surface-alt);color:var(--color-secondary);font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);line-height:var(--line-height-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;justify-content:center;align-items:center;padding:4px 10px;display:inline-flex}.activity-tag-active,.activity-tag.active{background:var(--color-accent);color:var(--color-on-accent)}.activity-header{border-bottom:1px solid var(--color-surface-alt);grid-template-columns:64px 1fr 80px 90px 72px 60px 80px;align-items:center;gap:16px;margin-bottom:4px;padding:8px 20px;display:grid}.activity-row{border-bottom:1px solid var(--color-surface-alt);cursor:pointer;grid-template-columns:64px 1fr 80px 90px 72px 60px 80px;align-items:center;gap:16px;padding:14px 20px;transition:background .12s;display:grid}.activity-row:hover .activity-date-cell{color:var(--color-accent)}.activity-main-cell{min-width:0}.activity-title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-body-md);font-weight:var(--font-weight-medium);margin-bottom:4px;overflow:hidden}.activity-date-cell{align-items:baseline;gap:6px;display:flex}.activity-date-day{font-family:var(--font-display);font-size:var(--text-h3);line-height:1}.activity-date-month{font-size:var(--text-label);color:var(--color-secondary);letter-spacing:.06em}.activity-dist-cell{align-items:baseline;display:flex}.activity-dist-value{font-family:var(--font-display);font-size:var(--text-h3)}.activity-dist-unit{font-size:var(--text-label);color:var(--color-secondary);margin-left:2px}.activity-pace-cell{align-items:center;display:flex}.activity-pace-value{font-family:var(--font-display);font-size:var(--text-h3)}.activity-hr-cell{align-items:center;gap:4px;display:flex}.activity-hr-icon{font-size:var(--text-body-sm);color:var(--color-danger)}.activity-hr-value{font-family:var(--font-display);font-size:var(--text-h3)}.activity-rtss-cell{align-items:center;display:flex}.activity-rtss-value{font-family:var(--font-display);font-size:var(--text-h3)}.activity-rtss-highlight{background:var(--color-accent);border-radius:1px;padding:0 4px}.activity-zonas-cell{align-items:center;display:flex}.mobile-hide{display:flex}.select-mode .activity-header,.select-mode .activity-row{grid-template-columns:32px 64px 1fr 80px 90px 72px 60px 80px}@media (width<=767px){.mobile-hide{display:none!important}.activity-header{grid-template-columns:48px 1fr 60px 72px;gap:8px;padding:6px 12px}.activity-row{grid-template-columns:48px 1fr 60px 72px;align-items:center;gap:8px;padding:10px 12px}.activity-date-cell{flex-direction:row;align-items:baseline;gap:4px}.activity-date-day{font-size:var(--text-body-lg)}.activity-date-month{font-size:var(--text-label)}.activity-dist-value{font-size:var(--text-body-lg)}.activity-dist-unit{font-size:var(--text-label)}.activity-pace-value{font-size:var(--text-body-md)}.activity-row>.activity-date-cell{justify-content:flex-start}.activity-dist-cell,.activity-pace-cell{justify-content:flex-end}.select-mode .activity-header,.select-mode .activity-row{grid-template-columns:32px 48px 1fr 60px 72px}.select-mode .activity-row-checkbox{padding:0 2px}}.activity-row-checkbox{justify-content:center;align-items:center;padding:0 4px;display:flex}.activity-row-checkbox input[type=checkbox]{appearance:none;border:1.5px solid var(--color-accent);cursor:pointer;background:var(--color-on-primary);border-radius:50%;width:18px;height:18px;transition:all .15s;position:relative}.activity-row-checkbox input[type=checkbox]:checked{background:var(--color-accent);border-color:var(--color-accent)}.activity-row-checkbox input[type=checkbox]:checked:after{content:"";border:solid var(--color-primary);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.activity-row-checkbox input[type=checkbox]:hover{border-color:var(--color-primary)}.activity-row.selected{background:color-mix(in srgb, var(--color-accent) 15%, transparent)}.selection-bar{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 20px;display:flex}.selection-bar-info{font-size:var(--text-body-md);font-weight:500}.selection-bar-actions{gap:8px;display:flex}.selection-action-btn{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);color:var(--color-primary);font-size:var(--text-body-sm);cursor:pointer;border-radius:6px;padding:8px 16px;font-weight:600;transition:all .15s}.selection-action-btn:hover:not(:disabled){background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.selection-action-btn:disabled{opacity:.4;cursor:not-allowed}.selection-action-btn.compare-btn:disabled{opacity:.4}.selection-action-btn.compare-btn:not(:disabled){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.select-toggle-btn{border:1px solid var(--color-surface-alt);color:var(--color-secondary);font-size:var(--text-body-sm);cursor:pointer;background:0 0;border-radius:50px;align-items:center;gap:6px;padding:6px 14px;transition:all .15s;display:inline-flex}.select-toggle-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.select-toggle-btn.active{background:var(--color-accent);color:var(--color-on-primary);border-color:var(--color-accent)}.pr-row{border-bottom:1px solid var(--color-surface-alt);cursor:pointer;grid-template-columns:160px 1fr auto auto;align-items:center;gap:16px;padding:14px 20px;transition:background .12s;display:grid}.pr-row:last-child{border-bottom:none}.pr-row:hover{background:var(--color-surface)}@media (width<=767px){.pr-row{grid-template-columns:1fr auto;align-items:flex-start;row-gap:8px;padding:16px}.pr-row>p:first-child{color:var(--color-primary);grid-column:1/-1;font-weight:500}.pr-row>p:nth-child(2){font-size:var(--text-body-md);grid-column:1/-1}.pr-row>p:nth-child(3){grid-column:1;align-self:center}.pr-row>p:nth-child(4){text-align:right;grid-column:2;align-self:center}}.filter-row-container{justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.filter-pills-scroll{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:wrap;gap:8px;padding-bottom:4px;display:flex}.filter-pills-scroll::-webkit-scrollbar{display:none}.filter-pill{white-space:nowrap;background:var(--color-surface);color:var(--color-secondary);font-family:var(--font-body);font-size:var(--text-body-sm);letter-spacing:.01em;cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:50px;padding:6px 14px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1)}.filter-pill:hover{background:var(--color-surface-alt);color:var(--color-primary)}.filter-pill.active{background:var(--color-accent);color:var(--color-on-primary);box-shadow:var(--shadow-md)}.filter-view-controls{border-left:1px solid var(--color-surface-alt);flex-shrink:0;align-items:center;gap:4px;padding-left:16px;display:flex}.filter-toggle-btn{border:1px solid var(--color-surface-alt);color:var(--color-secondary);font-size:var(--text-body-sm);cursor:pointer;font-family:var(--font-body);background:0 0;border-radius:50px;align-items:center;gap:6px;padding:6px 14px;transition:all .15s;display:inline-flex}.filter-toggle-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.filter-toggle-btn.active{background:var(--color-accent);color:var(--color-on-primary);border-color:var(--color-accent)}.filter-clear-btn{color:var(--color-secondary);font-family:var(--font-body);font-size:var(--text-body-sm);cursor:pointer;background:0 0;border:0;padding:6px 10px;transition:color .15s}.filter-clear-btn:hover{color:var(--color-primary)}.filters-panel{opacity:0;max-height:0;margin-bottom:0;transition:max-height .35s,opacity .25s,margin .35s;overflow:hidden}.filters-panel.open{opacity:1;max-height:800px;margin-bottom:24px}.filters-panel-content{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);flex-direction:column;gap:0;padding:20px 24px;display:flex}.filters-section{border-bottom:1px solid var(--color-surface-alt);padding:14px 0}.filters-section:first-child{padding-top:0}.filters-section:last-child{border-bottom:none;padding-bottom:0}.filters-section-label{font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--color-secondary);margin-bottom:10px}.filters-range-row{grid-template-columns:1fr 1fr;gap:24px;display:grid}.filters-range-group{flex-direction:column;gap:8px;display:flex}.filters-range-inputs{align-items:center;gap:8px;display:flex}.filters-range-input{width:100%!important;font-size:var(--text-body-sm)!important;padding:6px 8px!important}.filters-range-sep{color:var(--color-secondary);flex-shrink:0}.actividades-search input,.filters-panel-content .profile-input{font-size:var(--text-body-md);padding:8px 12px}.filters-panel-content .time-range-wrapper{align-items:flex-start;margin-bottom:0}.filters-panel-content .time-range-custom{justify-content:flex-start}.filter-segmented-control{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.filter-segmented-btn{color:var(--color-secondary);font-family:var(--font-body);font-size:var(--text-body-sm);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 14px;font-weight:500;transition:color .15s,background .15s}.filter-segmented-btn:hover{color:var(--color-accent)}.filter-segmented-btn.active{background:var(--color-accent);color:var(--color-on-primary);box-shadow:var(--shadow-sm)}.filter-session-types{margin-top:12px}.filter-session-types-select{display:none}.filters-section-hint{color:var(--color-secondary);font-size:var(--text-body-sm);margin-top:10px}@media (width<=767px){.filter-row-container{flex-direction:row;justify-content:space-between;align-items:center;gap:8px;display:flex}.filter-view-controls{border-left:none;padding-left:0}.filters-range-row{grid-template-columns:1fr;gap:16px}.filters-panel-content{padding:16px}.filter-session-types{display:none}.filter-session-types-select{width:100%;margin-top:12px;display:block}}.time-range-wrapper{flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:8px;margin-bottom:16px;display:flex}.time-range-bar{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:999px;align-items:center;gap:4px;padding:4px;display:flex;overflow:auto hidden}.time-range-bar::-webkit-scrollbar{display:none}.time-range-btn{font-size:var(--text-label);color:var(--color-secondary);white-space:nowrap;appearance:none;background:0 0;border:0;border-radius:999px;flex-shrink:0;padding:6px 12px;font-weight:500;transition:all .15s}.time-range-btn:hover{color:var(--color-accent)}.time-range-btn.active{background:var(--color-accent);color:var(--color-on-primary);box-shadow:var(--shadow-sm)}.time-range-custom{background:var(--color-surface-card);border-radius:var(--radius-sm);border:1px solid var(--color-surface-alt);box-shadow:var(--shadow-md);justify-content:flex-end;align-items:center;gap:12px;width:100%;padding:8px 12px;display:flex}.time-range-custom-label{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:block}.time-range-input{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-body-sm);background:var(--color-surface-card);color:var(--color-primary);padding:4px 8px}.time-range-input:focus{border-color:var(--color-secondary);outline:none}.time-range-input:hover{border-color:var(--color-accent);color:var(--color-accent)}@media (width<=767px){.time-range-bar{max-width:100%}.time-range-custom{justify-content:space-between;width:100%}}.chart-builder-overlay{background:var(--color-overlay-modal);-webkit-backdrop-filter:blur(4px);z-index:400;animation:.2s fadeIn;position:fixed;inset:0}.chart-builder-panel{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);color:var(--color-primary);z-index:401;width:min(520px,100vw - 32px);max-height:calc(100vh - 48px);box-shadow:var(--shadow-modal);border-radius:6px;padding:28px 32px;animation:.25s fadeUp;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.chart-builder-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.chart-builder-close{font-size:var(--text-h2);color:var(--color-secondary);background:0 0;border:none;padding:4px;line-height:1;transition:color .15s}.chart-builder-close:hover{color:var(--color-primary)}.chart-type-pills{gap:6px;display:flex}.chart-type-pill{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--text-label);color:var(--color-secondary);align-items:center;gap:6px;padding:6px 14px;font-weight:500;transition:all .15s;display:flex}.chart-type-pill:hover{border-color:var(--color-accent);color:var(--color-primary)}.chart-type-pill.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.chart-type-pill.active span{color:var(--color-on-accent)!important}.chart-builder-search{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);width:100%;font-size:var(--text-body-md);font-family:var(--font-body);color:var(--color-primary);background:var(--color-surface);outline:none;padding:8px 12px;transition:border-color .15s}.chart-builder-search:focus{border-color:var(--color-accent);background:var(--color-surface-card)}.var-selector{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface);max-height:240px;padding:8px;overflow-y:auto}.var-selector-category{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.08em;color:var(--color-secondary);margin-top:4px;padding:6px 4px 4px;font-weight:600}.var-selector-category:first-child{margin-top:0}.var-selector-items{flex-wrap:wrap;gap:4px;display:flex}.var-selector-item{border-radius:var(--radius-sm);background:var(--color-surface-card);font-size:var(--text-label);color:var(--color-primary);white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px;transition:all .12s;display:flex}.var-selector-item:hover{border-color:var(--color-accent)}.var-selector-item.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.var-selector-item.active .var-unit{color:color-mix(in srgb, var(--color-on-accent) 60%, transparent)}.var-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.var-label{font-weight:500}.var-unit{font-size:var(--text-label);color:var(--color-secondary)}.chart-builder-preview{background:var(--color-surface);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:20px;padding:10px 14px;display:flex}.chart-preview-chip{font-size:var(--text-body-sm);align-items:center;gap:6px;display:flex}.chart-builder-actions{justify-content:flex-end;gap:8px;display:flex}.chart-builder-btn-cancel{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);font-size:var(--text-label);color:var(--color-secondary);background:0 0;padding:8px 18px;font-weight:500;transition:all .15s}.chart-builder-btn-cancel:hover{border-color:var(--color-primary);color:var(--color-primary)}.chart-builder-btn-add{border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent);font-size:var(--text-label);color:var(--color-on-accent);padding:8px 20px;font-weight:500;transition:all .15s}.chart-builder-btn-add:disabled{opacity:.3;cursor:not-allowed}.chart-builder-btn-add:not(:disabled):hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.custom-chart-card{min-width:0;padding:20px 20px 12px;position:relative;overflow:visible}.custom-chart-card--wide{grid-column:1/-1}.custom-chart-card:has(.chart-settings-dropdown){z-index:10}.custom-chart-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.custom-chart-delete{font-size:var(--text-h3);color:var(--color-secondary);opacity:0;background:0 0;border:none;padding:2px 6px;line-height:1;transition:color .15s}.custom-chart-card:hover .custom-chart-delete{opacity:1}.custom-chart-delete:hover{color:var(--color-danger)}.add-chart-btn{border:2px solid var(--color-surface-alt);border-radius:var(--radius-sm);width:100%;font-size:var(--text-body-sm);color:var(--color-secondary);letter-spacing:.03em;background:0 0;justify-content:center;align-items:center;gap:8px;padding:20px;font-weight:500;transition:all .2s;display:flex}.add-chart-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.add-chart-btn-icon{font-size:var(--text-h3);line-height:1}@media (width<=767px){.chart-builder-panel{padding:calc(20px + env(safe-area-inset-top,0px)) 20px calc(20px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);margin-top:0}.chart-type-pills{flex-wrap:wrap}.custom-chart-delete,.chart-settings-btn{opacity:1}}.chart-settings-btn{border-radius:var(--radius-sm);color:var(--color-secondary);cursor:pointer;font-size:var(--text-h3);opacity:0;letter-spacing:2px;background:0 0;border:1px solid #0000;padding:2px 6px;line-height:1;transition:all .15s}.custom-chart-card:hover .chart-settings-btn{opacity:1}.chart-settings-btn:hover{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface-card));border-color:var(--color-accent);color:var(--color-primary)}.chart-settings-wrap{position:relative}.chart-settings-dropdown{z-index:100;background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);min-width:260px;padding:12px;animation:.15s fadeSlideDown;position:absolute;top:calc(100% + 4px);right:0}.chart-active-filters-badge{font-size:var(--text-label);background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-surface-alt);border-radius:999px;padding:1px 6px;font-weight:500}.chart-settings-clear-btn{color:var(--color-secondary);font-size:var(--text-label);cursor:pointer;background:0 0;border:none;text-decoration:underline}.chart-type-icon-btn{border:1px solid var(--color-surface-alt);background:var(--color-surface);color:var(--color-secondary);cursor:pointer;border-radius:3px;flex:1;padding:4px 0;font-size:.85rem;transition:all .15s}.chart-type-icon-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.chart-type-icon-btn.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.chart-settings-section{border-bottom:1px solid var(--color-surface-alt);margin-bottom:12px;padding-bottom:10px}.chart-settings-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.chart-settings-label{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--color-secondary);margin-bottom:6px}.chart-settings-name-input{border:1px solid var(--color-surface-alt);width:100%;font-size:var(--text-body-sm);font-family:var(--font-body);color:var(--color-primary);background:var(--color-surface);border-radius:3px;outline:none;padding:6px 8px;transition:border-color .15s}.chart-settings-name-input:focus{border-color:var(--color-accent)}.chart-settings-filters{flex-wrap:wrap;gap:4px;display:flex}.chart-filter-chip{border:1px solid var(--color-surface-alt);background:var(--color-surface);cursor:pointer;font-size:var(--text-label);color:var(--color-secondary);text-transform:capitalize;border-radius:12px;align-items:center;gap:4px;padding:3px 8px;transition:all .15s;display:flex}.chart-filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.chart-filter-chip.active{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.chart-settings-actions{gap:6px;display:flex}.chart-settings-action-btn{border:1px solid var(--color-surface-alt);font-size:var(--text-label);color:var(--color-secondary);cursor:pointer;background:0 0;border-radius:3px;flex:1;padding:6px 0;transition:all .15s}.chart-settings-action-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.chart-settings-action-btn.danger{color:var(--color-danger);border-color:#0000}.chart-settings-action-btn.danger:hover{border-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 8%, transparent)}@media (width<=767px){.chart-settings-dropdown{z-index:450;min-width:0;max-height:min(72vh,520px);position:fixed;inset:auto 12px 12px;overflow-y:auto}}.pwm-mode-toggle{background:var(--color-surface-alt);border:1px solid var(--color-surface-alt);border-radius:6px;padding:3px;display:flex}.pwm-mode-btn{font-family:var(--font-body);font-size:var(--text-body-sm);color:var(--color-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:500;transition:all .2s;display:flex}.pwm-mode-btn:hover{color:var(--color-primary)}.pwm-mode-btn--active{background:var(--color-surface-card);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:600}.pwm-generate-btn{background:var(--color-primary);width:100%;color:var(--color-on-primary);font-family:var(--font-body);font-size:var(--text-body-md);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:14px 20px;font-weight:600;transition:all .2s;display:flex}.pwm-generate-btn:hover:not(:disabled){background:color-mix(in srgb, var(--color-primary) 88%, var(--color-surface-card))}.pwm-generate-btn--sm{font-size:var(--text-label);width:auto;padding:7px 20px}.pwm-save-btn{background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-label);cursor:pointer;border:none;justify-content:center;align-items:center;padding:7px 20px;font-weight:600;transition:all .2s;display:flex}.pwm-save-btn:hover:not(:disabled){background:color-mix(in srgb, var(--color-primary) 88%, var(--color-surface-card))}.pwm-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.pwm-delete-btn{border-radius:var(--radius-sm);color:var(--color-danger);cursor:pointer;opacity:.7;transition:opacity var(--transition-fast), background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;margin-right:auto;padding:7px;display:flex}.pwm-delete-btn:hover:not(:disabled){background:var(--color-danger-surface);opacity:1}.pwm-delete-btn:disabled{cursor:wait;opacity:.4}.pwm-delete-btn:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.pwm-textarea-auto{font-size:var(--text-body-md)!important;line-height:1.6!important}.pwm-status{font-size:var(--text-label);border-radius:4px;align-items:center;gap:6px;padding:8px 12px;line-height:1.4;display:flex}.pwm-status--pending{background:var(--color-warning-surface);color:var(--color-warning);border:1px solid var(--color-zone-3)}.pwm-status--success{background:color-mix(in srgb, var(--color-success) 8%, transparent);color:var(--color-success);border:1px solid var(--color-success)}.pwm-status--error{background:color-mix(in srgb, var(--color-danger) 8%, transparent);color:var(--color-danger);border:1px solid var(--color-danger)}.pwm-template-list{gap:8px;max-height:320px;padding-right:2px;display:grid;overflow:auto}.pwm-template-empty{border:1px dashed var(--color-surface-alt);border-radius:var(--radius-sm);color:var(--color-secondary);font-size:var(--text-body-sm);background:var(--color-surface);padding:14px}.pwm-template-card{text-align:left;border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);width:100%;color:var(--color-primary);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);padding:12px}.pwm-template-card:hover{border-color:var(--color-accent);background:var(--color-surface)}.pwm-template-card--selected{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.pwm-template-card__head,.pwm-template-card__foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.pwm-template-card__foot{flex-wrap:wrap;justify-content:flex-start;margin-top:8px}.pwm-template-title{font-weight:650;font-size:var(--text-body-sm);line-height:1.3}.pwm-template-meta{color:var(--color-secondary);font-size:var(--text-label);white-space:nowrap}.pwm-template-card__desc{color:var(--color-secondary);font-size:var(--text-label);margin-top:5px;line-height:1.45}@keyframes pwmSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pwm-spin{animation:1s linear infinite pwmSpin}.lpm-panel{max-width:540px}.lpm-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.lpm-title{font-family:var(--font-display);font-size:var(--text-title-sm);font-weight:600}.lpm-close-btn{color:var(--color-secondary);cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1}.lpm-empty-msg{color:var(--color-secondary);font-size:var(--text-body-sm)}.lpm-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.lpm-item-btn{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0}.lpm-item-btn:disabled{opacity:.7;cursor:wait}.lpm-item-btn:focus-visible{outline:2px solid var(--color-data-blue);outline-offset:3px;border-radius:var(--radius-sm)}.lpm-item-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.lpm-item-date{color:var(--color-secondary);font-size:var(--text-label);text-transform:capitalize}.lpm-item-offset{color:var(--color-secondary);background:var(--color-surface);border:1px solid var(--color-surface-alt);font-size:var(--text-label);white-space:nowrap;border-radius:999px;padding:2px 8px;font-weight:600}@media (width<=767px){.pwm-mode-toggle{padding:2px}.pwm-mode-btn{font-size:var(--text-label);padding:7px 10px}.lpm-panel{max-width:min(94vw,540px)}}.coach-layout{height:calc(100dvh - var(--header-h));margin-top:var(--header-h);margin-left:var(--nav-rail-w);display:flex;overflow:hidden}.coach-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.coach-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:12px;padding:24px 32px 16px;display:flex;overflow-y:auto}.coach-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;padding:40px 0;display:flex}.coach-suggestions{grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:600px;display:grid}.coach-suggestion-btn{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);text-align:left;font-family:var(--font-body);font-size:var(--text-body-md);color:var(--color-primary);cursor:pointer;border-radius:10px;padding:12px 16px;line-height:1.45;transition:all .15s}.coach-suggestion-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface-alt)}.coach-suggestion-btn:disabled{opacity:.5;cursor:not-allowed}.coach-message{display:flex}.coach-message-user{justify-content:flex-end}.coach-message-assistant{justify-content:flex-start}.coach-message-bubble{max-width:72%;font-size:var(--text-body-md);border-radius:12px;padding:12px 16px;line-height:1.55}.coach-message-user .coach-message-bubble{background:var(--color-primary);color:var(--color-on-primary);white-space:pre-wrap;border-bottom-right-radius:4px}.coach-message-assistant .coach-message-bubble{background:var(--color-ai-coach-bg);border:1px solid var(--color-surface-alt);color:var(--color-ai-coach-text);font-weight:var(--font-weight-regular);border-bottom-left-radius:4px}.coach-message-assistant .coach-message-bubble h1,.coach-message-assistant .coach-message-bubble h2,.coach-message-assistant .coach-message-bubble h3,.coach-message-assistant .coach-message-bubble h4{margin:.65em 0 .25em;font-weight:600;line-height:1.3}.coach-message-assistant .coach-message-bubble h1:first-child,.coach-message-assistant .coach-message-bubble h2:first-child,.coach-message-assistant .coach-message-bubble h3:first-child,.coach-message-assistant .coach-message-bubble h4:first-child{margin-top:0}.coach-message-assistant .coach-message-bubble h1{font-size:var(--text-h3)}.coach-message-assistant .coach-message-bubble h2{font-size:var(--text-body-lg)}.coach-message-assistant .coach-message-bubble h3,.coach-message-assistant .coach-message-bubble h4{font-size:var(--text-body-md)}.coach-message-assistant .coach-message-bubble p{margin:.3em 0}.coach-message-assistant .coach-message-bubble p:first-child{margin-top:0}.coach-message-assistant .coach-message-bubble p:last-child{margin-bottom:0}.coach-message-assistant .coach-message-bubble strong{font-weight:600}.coach-message-assistant .coach-message-bubble em{font-style:italic}.coach-message-assistant .coach-message-bubble ul,.coach-message-assistant .coach-message-bubble ol{margin:.3em 0;padding-left:1.5em}.coach-message-assistant .coach-message-bubble li{margin:.1em 0}.coach-message-assistant .coach-message-bubble code{background:var(--color-surface);font-family:var(--font-mono);font-size:var(--text-mono);border-radius:4px;padding:2px 6px}.coach-message-assistant .coach-message-bubble pre{background:var(--color-surface);border-radius:8px;margin:.75em 0;padding:12px;overflow-x:auto}.coach-message-assistant .coach-message-bubble pre code{font-size:var(--text-mono);background:0 0;padding:0}.coach-message-assistant .coach-message-bubble blockquote{border-left:3px solid var(--color-primary);background:var(--color-surface);border-radius:0 4px 4px 0;margin:.4em 0;padding:.4em 1em}.coach-message-assistant .coach-message-bubble table{border-collapse:collapse;width:100%;font-size:var(--text-mono);margin:.75em 0}.coach-message-assistant .coach-message-bubble th,.coach-message-assistant .coach-message-bubble td{border:1px solid var(--color-surface-alt);text-align:left;padding:6px 10px}.coach-message-assistant .coach-message-bubble th{background:var(--color-surface);font-weight:600}.coach-message-assistant .coach-message-bubble hr{border:none;border-top:1px solid var(--color-surface-alt);margin:1em 0}.coach-message-assistant .coach-message-bubble a{color:var(--color-primary);text-decoration:underline}.coach-message-assistant .coach-message-bubble a:hover{text-decoration:none}.coach-thinking{align-items:center;gap:5px;padding:14px 18px;display:flex}.coach-thinking span{background:var(--color-secondary);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite coach-bounce}.coach-thinking span:nth-child(2){animation-delay:.2s}.coach-thinking span:nth-child(3){animation-delay:.4s}@keyframes coach-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.coach-input-area{border-top:1px solid var(--color-surface-alt);background:var(--color-surface);flex-shrink:0;padding:12px 40px 16px}.coach-input-row{align-items:flex-end;gap:10px;display:flex}.coach-textarea{border:1px solid var(--color-surface-alt);font-family:var(--font-body);font-size:var(--text-body-md);color:var(--color-primary);background:var(--color-surface-card);resize:none;border-radius:10px;outline:none;flex:1;min-height:44px;max-height:120px;padding:11px 16px;transition:border-color .15s;overflow-y:auto}.coach-textarea:focus{border-color:var(--color-primary)}.coach-textarea:disabled{opacity:.55;cursor:not-allowed}.coach-send-btn{background:var(--color-accent);width:44px;height:44px;color:var(--color-on-primary);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex}.coach-send-btn:not(:disabled):hover{opacity:.75}.coach-send-btn:disabled{opacity:.3;cursor:not-allowed}.coach-input-hint{display:none}.coach-clear-btn{font-size:var(--text-label);font-family:var(--font-body);color:var(--color-secondary);border:1px solid var(--color-surface-alt);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;padding:6px 12px;transition:all .15s}.coach-clear-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.coach-error{text-align:center;color:var(--color-danger);font-size:var(--text-body-md);margin-top:4px;padding:8px}@media (width<=767px){.coach-layout{height:calc(100dvh - var(--header-h));margin-top:var(--header-h);margin-left:0}.coach-main{overflow-x:hidden}.coach-messages{padding:16px 20px 12px}.coach-suggestions{grid-template-columns:1fr}.coach-message-bubble{max-width:88%}.coach-input-area{padding:12px 16px 20px}}.coach-sidebar{background:var(--color-surface-card);flex-direction:column;width:280px;display:flex;overflow:hidden}.coach-sidebar-header{justify-content:space-between;align-items:center;padding:16px 16px 8px;display:flex}.coach-sidebar-title{font-family:var(--font-display);font-weight:600;font-size:var(--text-body-md);text-transform:uppercase;letter-spacing:.06em;color:var(--color-secondary)}.coach-sidebar-close{font-size:var(--text-h3);color:var(--color-secondary);cursor:pointer;background:0 0;border:none;padding:2px 4px;line-height:1;transition:color .15s}.coach-sidebar-close:hover{color:var(--color-primary)}.coach-sidebar-new-btn{border:1px solid var(--color-surface-alt);width:calc(100% - 24px);font-family:var(--font-body);font-size:var(--text-body-sm);color:var(--color-secondary);cursor:pointer;background:0 0;border-radius:0;margin:4px 12px 8px;padding:8px 12px;transition:all .15s}.coach-sidebar-new-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface)}.coach-sidebar-list{flex:1;padding:4px 8px;overflow-y:auto}.coach-sidebar-item{text-align:left;cursor:pointer;width:100%;font-family:var(--font-body);background:0 0;border:none;border-left:3px solid #0000;border-radius:0;flex-direction:column;gap:2px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.coach-sidebar-item:hover{background:var(--color-surface)}.coach-sidebar-item.active{background:var(--color-surface);border-left-color:var(--color-primary)}.coach-sidebar-item-title{font-size:var(--text-body-md);color:var(--color-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-weight:500;display:flex;overflow:hidden}.coach-sidebar-item-time{font-size:var(--text-label);color:var(--color-secondary)}.coach-sidebar-role-badge{font-size:var(--text-label);letter-spacing:.02em;white-space:nowrap;border-radius:10px;flex-shrink:0;padding:1px 6px;font-weight:600;display:inline-block}.coach-sidebar-empty{color:var(--color-secondary);font-size:var(--text-body-sm);text-align:center;justify-content:center;align-items:center;padding:40px 16px;display:flex}.coach-sidebar-skeleton{flex-direction:column;gap:12px;padding:8px 12px;display:flex}.coach-sidebar-skeleton-bar{background:var(--color-surface-alt);border-radius:3px;height:14px;animation:1.2s ease-in-out infinite coach-skeleton-pulse}.coach-sidebar-skeleton-bar:nth-child(2){width:75%}.coach-sidebar-skeleton-bar:nth-child(3){width:60%}@keyframes coach-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.coach-sidebar-drawer-overlay{background:var(--color-overlay-strong);z-index:300;animation:.15s fadeIn;position:fixed;inset:0}.coach-sidebar-drawer{z-index:301;width:280px;box-shadow:var(--shadow-drawer);animation:.2s coach-drawer-slide;position:fixed;top:0;bottom:0;left:0}@keyframes coach-drawer-slide{0%{transform:translate(-100%)}to{transform:translate(0)}}.coach-chat-header{border-bottom:1px solid var(--color-surface-alt);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.coach-chat-header-title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:600}.coach-chat-header-btn{color:var(--color-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;padding:8px;transition:all .15s;display:flex}.coach-chat-header-btn:hover{color:var(--color-accent);background:var(--color-surface)}.coach-sidebar-swipe-wrapper{position:relative;overflow:hidden}.coach-sidebar-delete-bg{background:var(--color-danger);width:80px;color:var(--color-on-accent);cursor:pointer;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.coach-sidebar-item-wrapper{position:relative}.coach-sidebar-item-wrapper .coach-sidebar-item-delete{color:var(--color-secondary);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;padding:4px;transition:opacity .15s,color .15s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.coach-sidebar-item-wrapper:hover .coach-sidebar-item-delete{opacity:1}.coach-sidebar-item-wrapper .coach-sidebar-item-delete:hover{color:var(--color-danger)}.coach-role-selector{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.coach-role-pill-wrapper{position:relative}.coach-role-pill{border:1px solid var(--color-surface-alt);font-family:var(--font-body);font-size:var(--text-label);color:var(--color-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:50px;padding:5px 14px;font-weight:500;transition:all .15s}.coach-role-pill:hover:not(:disabled){border-color:var(--color-secondary);color:var(--color-primary)}.coach-role-pill.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.coach-role-pill:disabled{opacity:.5;cursor:not-allowed}.coach-role-tooltip{background:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-label);white-space:nowrap;z-index:50;pointer-events:none;border-radius:4px;padding:6px 10px;line-height:1.4;animation:.12s fadeSlideUp;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.coach-role-tooltip:after{content:"";border-style:solid;border-width:4px;border-color:var(--color-primary) transparent transparent transparent;margin-left:-4px;position:absolute;top:100%;left:50%}.ai-coach-bubble,.coach-message-assistant .coach-message-bubble{background:var(--color-ai-coach-bg);color:var(--color-ai-coach-text);border-radius:var(--radius-lg);padding:16px 20px}@keyframes fadeSlideUp{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width<=767px){.coach-role-selector{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:4px;width:100%;padding-bottom:4px;overflow-x:auto}.coach-role-pill{font-size:var(--text-label);flex-shrink:0;padding:4px 10px}.coach-role-tooltip{display:none}}.wiki-controls{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:12px 20px;display:flex}.wiki-toc{flex-wrap:wrap;gap:20px;display:flex}.wiki-toc-group{flex-direction:column;gap:6px;display:flex}.wiki-toc-group-title{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--color-secondary);opacity:.9}.wiki-toc-group-items{flex-wrap:wrap;gap:10px;display:flex}.wiki-toc-item{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;color:var(--color-secondary);align-items:center;gap:6px;font-weight:500;transition:color .15s;display:flex}.wiki-toc-item:hover{color:var(--color-primary)}.wiki-toc-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.wiki-btn{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;color:var(--color-secondary);background:0 0;padding:6px 14px;transition:all .15s}.wiki-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.wiki-entries{flex-direction:column;gap:18px;display:flex}.wiki-sport-group{flex-direction:column;gap:8px;display:flex}.wiki-sport-toggle{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);text-align:left;background:0 0;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;display:flex}.wiki-sport-title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--font-weight-bold);letter-spacing:.01em;color:var(--color-primary);margin:0}.wiki-group-chevron{color:var(--color-secondary)}.wiki-group-content{transition:grid-template-rows var(--transition-medium);grid-template-rows:0fr;display:grid}.wiki-group-content.open{grid-template-rows:1fr}.wiki-group-content-inner{flex-direction:column;gap:8px;display:flex;overflow:hidden}.wiki-entry{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);scroll-margin-top:24px;transition:border-color .2s;overflow:hidden}.wiki-entry:hover{border-color:var(--color-secondary)}.wiki-entry-header{width:100%;font-family:var(--font-body);font-size:var(--text-body-lg);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:16px 20px;transition:background .12s;display:flex}.wiki-entry-header:hover{background:var(--color-surface)}.wiki-tag{border-radius:var(--radius-sm);font-size:var(--text-label);letter-spacing:.04em;white-space:nowrap;border:1px solid;padding:2px 10px;font-weight:600;display:inline-block}.wiki-entry-title{color:var(--color-primary);font-weight:400}.wiki-chevron{color:var(--color-secondary);transition:transform .2s;display:flex}.wiki-chevron.open{transform:rotate(180deg)}.wiki-entry-body{max-height:0;transition:max-height .35s;overflow:hidden}.wiki-entry-body.open{max-height:2000px}.wiki-entry-content{border-top:1px solid var(--color-surface-alt);padding:0 20px 24px}.wiki-section{margin-top:20px}.wiki-section-label{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.08em;color:var(--color-secondary);margin-bottom:8px;font-weight:500}.wiki-section p{font-size:var(--text-body-md);color:var(--color-primary);line-height:1.65}.wiki-formula{background:var(--color-surface);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);margin-top:16px;padding:12px 16px}.wiki-formula code{font-family:var(--font-mono);font-size:var(--text-body-md);color:var(--color-primary)}.wiki-table{border-collapse:collapse;width:100%;font-size:var(--text-body-md);margin-top:8px}.wiki-table th{text-align:left;border-bottom:1px solid var(--color-secondary);font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--color-secondary);padding:8px 12px;font-weight:500}.wiki-table td{border-bottom:1px solid var(--color-surface-alt);vertical-align:top;padding:10px 12px}.wiki-table td code{font-family:var(--font-mono);font-size:var(--text-body-sm);color:var(--color-primary);white-space:nowrap}.wiki-table tr:last-child td{border-bottom:none}.wiki-extra{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-surface-alt);padding:16px}.wiki-items-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.wiki-item-card{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);padding:14px 16px}.wiki-item-card h4{font-size:var(--text-body-md);margin-bottom:4px;font-weight:600}.wiki-item-card p{font-size:var(--text-body-sm);color:var(--color-secondary);line-height:1.5}.wiki-related{border-top:1px solid var(--color-surface-alt);margin-top:16px;padding-top:12px}@media (width<=767px){.wiki-controls{flex-direction:column;align-items:flex-start}.wiki-items-grid{grid-template-columns:1fr}}.tp-container{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);border-radius:12px;margin-top:12px;overflow:hidden}.tp-header{border-bottom:1px solid var(--color-surface-alt);background:var(--color-surface);padding:16px 16px 12px}.tp-title{font-family:var(--font-display);font-size:var(--text-body-lg);color:var(--color-primary);margin:0 0 6px;font-weight:700}.tp-meta{font-size:var(--text-label);color:var(--color-secondary);flex-wrap:wrap;gap:12px;display:flex}.tp-summary{font-size:var(--text-body-sm);color:var(--color-secondary);border-bottom:1px solid var(--color-surface-alt);margin:0;padding:12px 16px;line-height:1.5}.tp-quality-warnings{border-bottom:1px solid var(--color-surface-alt);background:var(--color-warning-surface);color:var(--color-primary);padding:12px 16px}.tp-quality-warnings-title{font-size:var(--text-body-sm);color:var(--color-warning);margin:0 0 6px;font-weight:700}.tp-quality-warnings ul{font-size:var(--text-label);margin:0;padding-left:18px;line-height:1.45}.tp-quality-warnings li+li{margin-top:4px}.tp-phase-bar{height:4px;display:flex}.tp-phase-segment{flex:1;min-width:0}.tp-weeks{max-height:400px;overflow-y:auto}.tp-week{border-bottom:1px solid var(--color-surface-alt)}.tp-week:last-child{border-bottom:none}.tp-week-header{cursor:pointer;width:100%;font-family:var(--font-body);font-size:var(--text-body-sm);color:var(--color-primary);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:10px 16px;transition:background .1s;display:flex}.tp-week-header:hover{background:var(--color-surface)}.tp-week-toggle{width:14px;color:var(--color-secondary)}.tp-week-num{min-width:44px;font-weight:600}.tp-week-phase{font-size:var(--text-label);color:#fff;border-radius:10px;padding:2px 8px;font-weight:600}.tp-week-km{color:var(--color-secondary);margin-left:auto}.tp-week-focus{color:var(--color-secondary);font-size:var(--text-label)}.tp-week-sessions{padding:0 16px 10px 38px}.tp-session-row{font-size:var(--text-label);color:var(--color-primary);align-items:center;gap:8px;padding:4px 0;display:flex}.tp-session-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tp-session-day{width:28px;color:var(--color-secondary);flex-shrink:0;font-weight:600}.tp-session-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tp-session-km,.tp-session-dur{color:var(--color-secondary);flex-shrink:0}.tp-session-desc{display:none}.tp-confirm-btn{background:var(--color-primary);width:100%;color:var(--color-on-primary);font-size:var(--text-body-md);cursor:pointer;font-weight:600;font-family:var(--font-body);border:none;padding:12px;transition:opacity .15s}.tp-confirm-btn:hover{opacity:.8}.wc-card{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);border-left:4px solid;border-radius:10px;margin-top:10px;padding:14px 16px}.wc-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.wc-name{font-weight:700;font-size:var(--text-body-md);color:var(--color-primary)}.wc-date{font-size:var(--text-label);color:var(--color-secondary)}.wc-meta{font-size:var(--text-label);color:var(--color-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.wc-type-badge{font-size:var(--text-label);color:#fff;border-radius:10px;padding:2px 8px;font-weight:600}.wc-description{font-size:var(--text-body-sm);color:var(--color-secondary);margin:0;line-height:1.5}.wc-steps{border-top:1px solid var(--color-surface-alt);margin-top:8px;padding-top:8px}.wc-step{font-size:var(--text-label);color:var(--color-primary);align-items:center;gap:8px;padding:3px 0;display:flex}.wc-step-name{font-weight:500}.wc-step-zone{background:var(--color-surface);font-size:var(--text-label);border-radius:6px;padding:1px 6px;font-weight:600}.tp-calendar-page{height:calc(100dvh - var(--header-h));margin-top:var(--header-h);margin-left:var(--nav-rail-w);background:var(--color-surface);color:var(--color-primary);flex-direction:column;display:flex;overflow:hidden}@media (width<=767px){.tp-calendar-page{margin-left:0;margin-top:var(--header-h);height:calc(100dvh - var(--header-h))}.tp-calendar-grid,.tp-calendar-grid.summary-collapsed{grid-template-columns:repeat(7,1fr) 48px!important}.tp-calendar-cell{gap:4px;min-height:80px;padding:4px 4px 20px}.tp-calendar-cell-date{font-size:var(--text-label)}.tp-activity-card{border-radius:2px}.tp-activity-card-content{font-size:var(--text-label);padding:4px 5px}.tp-activity-card-title{font-size:var(--text-label);margin-bottom:3px}.tp-activity-card-stat{font-size:var(--text-label)}.tp-activity-card--mini .tp-activity-card-content,.tp-planned-card{padding:3px 4px}.tp-planned-card-content{padding:2px 0}.tp-planned-card-title{font-size:var(--text-label)}.tp-planned-card-stat{font-size:var(--text-label)!important}.tp-summary-cell{background:var(--color-surface-card);z-index:10;border-left:1px solid var(--color-surface-alt);gap:6px;position:sticky;right:0;padding:6px 4px!important}.tp-summary-block{gap:2px}.tp-summary-block.metrics{flex-direction:column;gap:2px;margin-bottom:2px;padding-bottom:4px}.tp-summary-block.metrics>div{flex-direction:row;justify-content:space-between;gap:2px}.tp-summary-block.metrics .val,.tp-summary-block.metrics .lbl{font-size:var(--text-label)}.tp-summary-row{justify-content:space-between;gap:2px}.tp-summary-lbl{font-size:var(--text-label)}.tp-summary-val{font-size:var(--text-label);min-width:auto}.tp-view-toggle{display:flex}.tp-view-btn{font-size:var(--text-label);padding:3px 8px}.tp-month-picker-btn{font-size:var(--text-body-lg)}.tp-calendar-header{flex-wrap:wrap;gap:8px;padding:8px 12px}}.tp-picker-calendar{font-size:"1rem";color:var(--color-accent);margin-left:6px}.tp-calendar-header{border-bottom:1px solid var(--color-surface-alt);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.tp-calendar-grid{border-top:1px solid var(--color-surface-alt);border-left:1px solid var(--color-surface-alt);flex:1;grid-template-columns:repeat(7,minmax(0,1fr)) 240px;transition:grid-template-columns .3s cubic-bezier(.22,1,.36,1);display:grid;overflow:hidden auto}.tp-calendar-grid.summary-collapsed{grid-template-columns:repeat(7,minmax(0,1fr)) 48px}.tp-calendar-day-header{background:var(--color-surface-card);font-size:var(--text-label);text-transform:uppercase;color:var(--color-secondary);letter-spacing:.05em;border-bottom:2px solid var(--color-surface-alt);border-right:1px solid var(--color-surface-alt);padding:8px 12px;font-weight:500}.tp-calendar-cell{background:var(--color-surface);border-right:1px solid var(--color-surface-alt);border-bottom:1px solid var(--color-surface-alt);flex-direction:column;gap:6px;height:auto;min-height:100px;padding:8px 8px 28px;transition:background .1s;display:flex;position:relative;overflow:visible}.tp-calendar-cell:hover{background:var(--color-surface-card)}.tp-calendar-cell::-webkit-scrollbar{width:0;display:none}.tp-calendar-cell{scrollbar-width:none}.tp-calendar-cell-date{font-size:var(--text-label);color:var(--color-secondary);line-height:1;font-family:var(--font-body)}.tp-calendar-cell.inactive{background:color-mix(in srgb, var(--color-surface) 86%, var(--color-surface-alt))}.tp-calendar-cell.inactive .tp-calendar-cell-date{opacity:.4}.tp-activity-card{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);width:100%;box-shadow:var(--shadow-md);cursor:pointer;border-radius:4px;flex-direction:column;transition:all .15s;display:flex;overflow:hidden}.tp-activity-card:hover{border-color:var(--color-neutral-border)}.tp-activity-card-header{background:var(--color-surface-alt);height:12px}.tp-activity-card-header.run{background:var(--color-success)}.tp-activity-card-content{font-size:var(--text-label);color:var(--color-primary);padding:6px 8px}.tp-activity-card-title{color:var(--color-secondary);font-weight:500;font-size:var(--text-label);align-items:center;gap:6px;margin-bottom:6px;display:flex}.tp-activity-card-stat{color:var(--color-primary);font-weight:500;line-height:1.45;font-size:var(--text-label);font-family:var(--font-body);display:flex}.tp-activity-card-stat span{color:var(--color-secondary);margin-left:4px;font-weight:400}.tp-activity-card--mini{min-height:auto;box-shadow:none}.tp-activity-card--mini .tp-activity-card-content,.tp-activity-card-content--mini{padding:4px 6px}.tp-activity-card-content--mini .tp-activity-card-title{font-size:var(--text-label);margin-bottom:2px}.tp-activity-card-content--mini svg{width:12px;height:12px}.tp-view-toggle{border:1px solid var(--color-surface-alt);border-radius:4px;gap:0;display:flex;overflow:hidden}.tp-view-btn{font-size:var(--text-label);color:var(--color-secondary);cursor:pointer;font-family:var(--font-body);background:0 0;border:none;padding:4px 12px;transition:all .15s}.tp-view-btn:hover{background:var(--color-surface);color:var(--color-primary)}.tp-view-btn.active{background:var(--color-primary);color:var(--color-on-primary)}.tp-summary-cell{background:linear-gradient(90deg, color-mix(in srgb, var(--color-surface-card) 86%, var(--color-surface-alt)) 0, var(--color-surface-card) 16px);font-size:var(--text-label);border-right:1px solid var(--color-surface-alt);border-bottom:1px solid var(--color-surface-alt);flex-direction:column;justify-content:center;gap:0;padding:12px;display:flex}.tp-summary-toggle{color:var(--color-secondary);font-size:var(--text-h3);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;line-height:1;transition:color .15s;display:flex}.tp-summary-toggle:hover{color:var(--color-primary)}.tp-summary-card{border:1px solid color-mix(in srgb, var(--color-surface-alt) 82%, var(--color-primary));border-left:3px solid color-mix(in srgb, var(--color-secondary) 42%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface-card) 94%, var(--color-primary));min-height:calc(100% - 4px);box-shadow:var(--shadow-xs);transition:border-color var(--transition-base), background var(--transition-base), transform var(--transition-base);flex-direction:column;gap:10px;padding:12px 12px 11px;display:flex;position:relative;overflow:hidden}.tp-summary-card:hover{border-color:color-mix(in srgb, var(--color-accent) 28%, var(--color-surface-alt));transform:translateY(-1px)}.tp-summary-cell.has-load .tp-summary-card{border-left-color:var(--color-accent)}.tp-summary-cell.is-current-week .tp-summary-card{border-color:color-mix(in srgb, var(--color-accent) 42%, var(--color-surface-alt));background:color-mix(in srgb, var(--color-accent) 6%, var(--color-surface-card))}.tp-summary-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.tp-summary-week{color:var(--color-primary);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;margin-bottom:3px;font-size:.66rem;font-weight:700;line-height:1;display:block}.tp-summary-range{color:var(--color-secondary);text-transform:uppercase;font-size:.62rem;font-weight:500;line-height:1.1;display:block}.tp-summary-load{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 7%, transparent);color:var(--color-primary);white-space:nowrap;align-items:baseline;gap:3px;padding:4px 7px;display:flex}.tp-summary-load strong{font-family:var(--font-display);font-size:1.05rem;font-weight:700;line-height:1}.tp-summary-load span{color:var(--color-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:.58rem;font-weight:700}.tp-summary-cell.is-over-plan .tp-summary-load{background:color-mix(in srgb, var(--color-danger) 16%, transparent)}.tp-summary-loadbar{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 8%, transparent);height:4px;overflow:hidden}.tp-summary-loadbar span{width:var(--week-load-pct,0%);border-radius:inherit;background:var(--color-accent);min-width:4px;height:100%;display:block}.tp-summary-cell.is-over-plan .tp-summary-loadbar span{background:var(--color-danger);width:100%}.tp-summary-cell.is-under-plan .tp-summary-loadbar span{background:var(--color-warning)}.tp-summary-cell.is-empty .tp-summary-loadbar span{background:0 0;min-width:0}.tp-summary-plan-state,.tp-summary-compliance{color:var(--color-secondary);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;gap:8px;font-size:.6rem;font-weight:650;display:flex}.tp-summary-compliance strong{color:var(--color-primary);font-weight:700}.tp-summary-cell.is-over-plan .tp-summary-compliance strong{color:var(--color-danger)}.tp-summary-cell.is-under-plan .tp-summary-compliance strong{color:var(--color-warning)}.tp-summary-block{flex-direction:column;gap:5px;display:flex}.tp-summary-block.metrics{border-bottom:1px solid color-mix(in srgb, var(--color-surface-alt) 72%, transparent);flex-direction:row;justify-content:stretch;gap:4px;padding-bottom:9px}.tp-summary-block.metrics>div{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-primary) 4%, transparent);flex-direction:column;flex:1 1 0;align-items:flex-start;gap:3px;min-width:0;padding:6px;display:flex}.tp-summary-block.metrics .val{font-size:.88rem;font-family:var(--font-display);color:var(--color-primary);align-items:baseline;gap:2px;font-weight:700;line-height:1;display:flex}.tp-summary-block.metrics .val span{color:var(--color-secondary);font-family:var(--font-body);letter-spacing:.03em;font-size:.48rem;font-weight:700}.tp-summary-block.metrics .lbl{color:var(--color-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.56rem}.tp-summary-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tp-summary-lbl{color:var(--color-secondary);font-size:.66rem}.tp-summary-val{color:var(--color-primary);text-align:right;font-size:.72rem;font-weight:650}.tp-summary-val span{color:var(--color-secondary);margin-left:2px;font-weight:400}.tp-summary-empty,.tp-summary-current{color:var(--color-secondary);letter-spacing:.04em;text-transform:uppercase;padding-top:2px;font-size:.6rem;font-weight:600}.tp-summary-current{color:var(--color-accent)}.tp-month-picker-btn{font-family:var(--font-body);font-size:var(--text-h3);color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:6px 12px 6px 0;transition:opacity .15s;display:flex}.tp-month-picker-btn:hover{opacity:.7}.tp-nav-btn{width:28px;height:28px;color:var(--color-primary);cursor:pointer;font-size:var(--text-body-lg);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:background .1s;display:flex}.tp-nav-btn:hover{background:var(--color-surface)}.tp-today-btn{border:1px solid var(--color-secondary);font-size:var(--text-label);color:var(--color-primary);cursor:pointer;background:0 0;border-radius:4px;padding:4px 12px;transition:all .15s}.tp-today-btn:hover{background:var(--color-surface);border-color:var(--color-secondary)}.tp-picker-popup{background:var(--color-surface-card);color:var(--color-primary);border:1px solid var(--color-surface-alt);box-shadow:var(--shadow-md);z-index:200;border-radius:6px;width:min(340px,100vw - 32px);padding:16px 20px;animation:.15s fadeSlideDown;position:absolute;top:100%;left:0}.tp-picker-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.tp-picker-month-btn{font-family:var(--font-body);font-size:var(--text-h3);color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;display:flex}.tp-picker-month-btn:hover{opacity:.7}.tp-picker-mini-calendar{flex-direction:column;gap:8px;display:flex}.tp-picker-days-header{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.tp-picker-day-lbl{text-align:center;font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.05em;padding:4px 0}.tp-picker-grid{grid-template-columns:repeat(7,1fr);gap:8px 4px;display:grid}.tp-picker-cell{opacity:.7;cursor:pointer;height:32px;font-size:var(--text-body-sm);color:var(--color-primary);border-radius:20%;justify-content:center;align-items:center;transition:all .15s;display:flex}.tp-picker-cell.inactive{color:var(--color-secondary);opacity:.5}.tp-picker-cell:hover:not(.active){background:var(--color-surface)}.tp-picker-cell.active{background:var(--color-accent);color:var(--color-on-accent);font-weight:500}.tp-picker-year-list{flex-direction:column;max-height:250px;padding-right:4px;display:flex;overflow-y:auto}.tp-picker-year-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.tp-picker-year-cell{text-align:center;cursor:pointer;font-size:var(--text-body-md);border-radius:6px;padding:10px 0;transition:background .1s}.tp-picker-year-cell:hover{background:var(--color-surface)}.tp-picker-year-cell.active{background:var(--color-data-blue);color:var(--color-on-accent)}.tp-planned-card{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);width:100%;box-shadow:var(--shadow-md);cursor:pointer;border-radius:4px;flex-direction:column;transition:all .15s;display:flex;overflow:hidden}.tp-planned-card:hover{border-color:var(--color-neutral-border)}.tp-planned-card.completed{border-color:var(--color-success);background:color-mix(in srgb, var(--color-success) 8%, transparent);box-shadow:none}.tp-planned-card-header{background:var(--color-secondary);height:12px}.tp-planned-card.completed .tp-planned-card-header{background:var(--color-success)}.tp-planned-card-content{flex-direction:column;gap:2px;padding:6px 8px;display:flex}.tp-planned-card-title{color:var(--color-secondary);font-weight:500;font-size:var(--text-label);align-items:center;gap:6px;margin-bottom:6px;display:flex}.tp-planned-card-stat{color:var(--color-primary);font-weight:500;line-height:1.45;font-size:var(--text-label);font-family:var(--font-body);flex-wrap:wrap;display:flex}.tp-planned-card-stat span{color:var(--color-secondary);margin-left:4px;font-weight:400}.tp-planned-card-meta{font-size:var(--text-label);color:var(--color-secondary)}.tp-planned-menu-wrap{flex-shrink:0;position:relative}.tp-planned-menu-btn{cursor:pointer;color:var(--color-secondary);font-size:var(--text-body-md);opacity:1;background:0 0;border:none;border-radius:3px;align-items:center;padding:2px 4px;line-height:1;display:flex}.tp-planned-menu-btn:hover{background:var(--color-surface-alt);color:var(--color-primary)}.tp-planned-menu-dropdown{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:30;min-width:110px;position:absolute;top:calc(100% + 2px);right:0;overflow:hidden}.tp-planned-menu-dropdown button{text-align:left;width:100%;font-size:var(--text-label);color:var(--color-primary);cursor:pointer;font-family:var(--font-body);background:0 0;border:none;padding:7px 12px;display:block}.tp-planned-menu-dropdown button:hover{background:var(--color-surface)}.tp-planned-menu-dropdown button.danger{color:var(--color-danger)}.tp-cell-add-btn{opacity:0;width:20px;height:20px;color:var(--color-secondary);font-size:var(--text-body-lg);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 8px;line-height:1;transition:all .15s;position:absolute;top:3px;right:8px}.tp-calendar-cell:hover .tp-cell-add-btn{opacity:1}.tp-cell-add-btn:hover{color:var(--color-accent);border:none}.tp-activity-card-compact{background:var(--color-surface);border:1px solid var(--color-surface-alt);height:38px;font-size:var(--text-label);cursor:pointer;white-space:nowrap;border-radius:3px;flex-direction:row;align-items:center;gap:6px;padding:4px 6px;transition:background .12s;display:flex;overflow:hidden}.tp-activity-card-compact:hover{background:var(--color-surface-alt)}.tp-activity-card-compact-header{border-radius:2px;flex-shrink:0;width:3px;height:24px}.tp-activity-card-compact-content{min-width:0;font-size:var(--text-label);color:var(--color-secondary);flex-direction:row;flex:1;align-items:center;gap:6px;display:flex}.tp-activity-card-compact-content .tp-compact-label{color:var(--color-primary);text-overflow:ellipsis;font-weight:500;overflow:hidden}.tp-activity-card-compact-content .tp-compact-distance{color:var(--color-secondary);flex-shrink:0}.tp-activity-badge-more{background:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-label);white-space:nowrap;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:2px 8px;font-weight:600;transition:opacity .12s;display:inline-flex}.tp-activity-badge-more:hover{opacity:.8}.tp-calendar-cell--drop-target{background:color-mix(in srgb, var(--color-data-blue) 8%, transparent);border:2px solid var(--color-data-blue)}.tp-planned-card{cursor:grab;touch-action:none}.tp-planned-card:active{cursor:grabbing}.tp-planned-card.completed{cursor:not-allowed;opacity:.7}.tp-planned-card--dragging{opacity:.8;box-shadow:var(--shadow-modal);z-index:1000;transform:rotate(2deg)scale(1.05)}.tp-drag-toast{border-radius:var(--radius-sm);font-size:var(--text-body-md);z-index:9999;box-shadow:var(--shadow-lg);padding:12px 20px;font-weight:500;animation:.3s ease-out toast-slide-in;position:fixed;top:20px;right:20px}.tp-drag-toast--error{background:var(--color-danger-surface);color:var(--color-danger);border:1px solid var(--color-danger-border)}.tp-drag-toast--success{background:var(--color-success-surface);color:var(--color-success);border:1px solid var(--color-success-border)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.calendar-grid{grid-template-columns:repeat(7,1fr) 88px;display:grid}.calendar-day-header{font-size:var(--text-label);letter-spacing:.08em;text-transform:uppercase;color:var(--color-secondary);text-align:center;border-bottom:2px solid var(--color-surface-alt);padding:6px 8px}.calendar-cell{border-top:1px solid var(--color-surface-alt);min-height:88px;padding:8px;transition:background .1s;overflow:hidden}.calendar-cell--empty{border-top:1px solid #0000}.calendar-cell:not(.calendar-cell--empty):hover{background:var(--color-surface)}.calendar-week-summary{border-top:1px solid var(--color-surface-alt);border-left:1px solid var(--color-surface-alt);background:var(--color-surface);flex-direction:column;justify-content:center;gap:3px;min-height:88px;padding:8px 6px;display:flex}.calendar-week-stat{align-items:baseline;gap:3px;display:flex}.calendar-week-val{font-family:var(--font-display);font-size:var(--text-body-sm);color:var(--color-primary);font-weight:600;line-height:1.2}.calendar-week-unit{font-size:var(--text-label);color:var(--color-secondary);letter-spacing:.04em}@media (width<=767px){.calendar-grid{grid-template-columns:repeat(7,1fr) 60px}.calendar-day-header{font-size:var(--text-label);padding:4px 2px}.calendar-week-summary{padding:4px 3px}.calendar-week-val{font-size:var(--text-label)}.calendar-cell{min-height:56px;padding:4px 3px}}.activity-heatmap-container{flex-direction:column;width:100%;display:flex;position:relative}.heatmap-cell{aspect-ratio:1;background:var(--color-surface);cursor:pointer;border-radius:2px;min-width:0;transition:opacity .15s,transform .1s}.heatmap-months-row{height:20px;font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;margin-left:20px;position:relative}.heatmap-month-label{white-space:nowrap;position:absolute;top:0}.heatmap-grid-wrapper{gap:4px;width:100%;display:flex}.heatmap-days-col{flex-direction:column;flex-shrink:0;justify-content:space-around;gap:2px;width:14px;padding-top:2px;padding-bottom:2px;display:flex}.heatmap-grid{flex:1;gap:2px;min-width:0;display:flex}.heatmap-column{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.heatmap-cell{aspect-ratio:1;background:var(--color-surface);cursor:pointer;border-radius:2px;width:100%;transition:opacity .15s,transform .1s}.heatmap-cell:hover{opacity:.8;transform:scale(1.1)}.heatmap-cell-0{background:var(--color-heatmap-empty)}.heatmap-cell-1{background:color-mix(in srgb, var(--color-accent) 30%, transparent)}.heatmap-cell-2{background:color-mix(in srgb, var(--color-accent) 60%, transparent)}.heatmap-cell-3{background:color-mix(in srgb, var(--color-accent) 85%, transparent)}.heatmap-cell-4{background:var(--color-accent)}.calendar-activity-item{cursor:pointer;border-radius:2px;align-items:center;gap:5px;padding:3px 0;transition:background .1s;display:flex}.calendar-activity-item:hover{background:var(--color-surface)}.calendar-activity-item-color{border-radius:2px;flex-shrink:0;width:3px;height:16px}.calendar-activity-item-info{align-items:baseline;gap:6px;min-width:0;display:flex}.calendar-activity-item-name{font-size:var(--text-label);color:var(--color-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;line-height:1.3;overflow:hidden}.calendar-activity-item-distance{font-size:var(--text-label);color:var(--color-secondary);flex-shrink:0;line-height:1.3}.calendar-show-more{font-size:var(--text-label);background:var(--color-surface);border:1px solid var(--color-surface-alt);color:var(--color-secondary);cursor:pointer;border-radius:10px;margin-top:2px;padding:1px 6px;transition:all .1s;display:inline-block}.activity-card-v2{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);cursor:pointer;width:100%;box-shadow:var(--shadow-xs);border-radius:8px;align-items:stretch;gap:0;transition:transform .15s cubic-bezier(.22,1,.36,1),box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.activity-card-v2:hover{border-color:var(--color-neutral-border);box-shadow:var(--shadow-md);transform:translateY(-1px)}.activity-card-v2:focus-visible{outline:2px solid var(--color-data-blue);outline-offset:2px}.activity-card-v2__bar,.activity-card-v2__bar--end{background:var(--color-secondary);flex:0 0 4px;align-self:stretch;width:4px}.activity-card-v2__body{flex-direction:column;flex:auto;gap:3px;min-width:0;padding:8px 10px;display:flex}.activity-card-v2__top{align-items:center;gap:6px;min-width:0;display:flex}.activity-card-v2__type{min-width:0;font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--color-secondary);align-items:center;gap:5px;font-weight:600;display:inline-flex}.activity-card-v2__type>span:last-child{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.activity-card-v2__sport-icon{width:16px;height:16px;color:var(--color-secondary);flex:0 0 16px;justify-content:center;align-items:center;display:inline-flex}.activity-card-v2__sport-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:100%;height:100%}.activity-card-v2__sport-icon-head{fill:currentColor;stroke:none}.activity-card-v2__load-row{justify-content:space-between;align-items:baseline;gap:6px;min-width:0;display:flex}.activity-card-v2__load{color:var(--color-secondary);font-size:var(--text-label);white-space:nowrap;font-weight:600}.activity-card-v2__load strong{color:var(--color-primary);font-family:var(--font-display);font-size:var(--text-body-lg);font-weight:700;line-height:1}.activity-card-v2__name{font-size:var(--text-body-sm);color:var(--color-primary);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:500;line-height:1.25;display:-webkit-box;overflow:hidden}.activity-card-v2__stats{font-size:var(--text-label);color:var(--color-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.activity-card-v2__stats strong{color:var(--color-primary);font-weight:600}.activity-card-v2__stats .dot-sep{background:var(--color-secondary);border-radius:50%;flex-shrink:0;width:3px;height:3px}.activity-card-v2--mini .activity-card-v2__body{gap:1px;padding:5px 8px}.activity-card-v2--mini .activity-card-v2__sport-icon{flex-basis:14px;width:14px;height:14px}.activity-card-v2--mini .activity-card-v2__type,.activity-card-v2--mini .activity-card-v2__stats{font-size:var(--text-label)}.activity-card-v2--mini .activity-card-v2__stats .dot-sep{display:none}.activity-card-v2--planned{background:color-mix(in srgb, var(--color-surface-card) 82%, var(--color-surface-alt));box-shadow:var(--shadow-none);border-style:dashed}.activity-card-v2--planned:hover{box-shadow:var(--shadow-xs)}.activity-card-v2--planned .activity-card-v2__bar{opacity:.55}.activity-card-v2--race{background:color-mix(in srgb, var(--color-data-blue) 14%, var(--color-surface-card));border-color:color-mix(in srgb, var(--color-data-blue) 45%, var(--color-surface-alt))}.activity-card-v2--race .activity-card-v2__type{color:var(--color-primary);font-weight:800}.activity-card-v2--race .activity-card-v2__bar{background:var(--color-data-blue)!important}.activity-card-v2--planned .activity-card-v2__stats{color:var(--color-secondary)}.activity-card-v2--planned.is-completed{background:var(--color-success-surface);border-color:var(--color-success-border);opacity:.72;border-style:solid}.activity-card-v2--race.is-completed{background:color-mix(in srgb, var(--color-data-blue) 12%, var(--color-success-surface));border-color:color-mix(in srgb, var(--color-data-blue) 48%, var(--color-success-border));opacity:.86}.tp-planned-card-shell{cursor:grab;touch-action:none;width:100%}.tp-planned-card-shell:active{cursor:grabbing}.tp-planned-card-shell.completed,.tp-planned-card-shell.completed .calendar-session-card{cursor:not-allowed}.tp-planned-card-shell.tp-planned-card--dragging{opacity:.9;box-shadow:var(--shadow-modal);border-radius:var(--radius-md);z-index:1000;transform:rotate(1deg)scale(1.03)}.tp-calendar-cell--drop-target,.tp-weekly-desktop__col--drop-target,.cal-m-weekly__day.is-drop-target{background:color-mix(in srgb, var(--color-data-blue) 7%, var(--color-surface-card));outline:2px solid color-mix(in srgb, var(--color-data-blue) 42%, transparent);outline-offset:-2px}.tp-calendar-cell--race{background:color-mix(in srgb, var(--color-data-blue) 5%, transparent);box-shadow:inset 0 3px 0 color-mix(in srgb, var(--color-data-blue) 72%, transparent)}.tp-drag-toast{z-index:var(--z-toast);border:1px solid var(--color-surface-alt);border-radius:var(--radius-md);background:var(--color-surface-card);box-shadow:var(--shadow-modal);color:var(--color-primary);font-size:var(--text-body-sm);padding:10px 14px;font-weight:600;line-height:1.25;position:fixed;top:18px;left:50%;transform:translate(-50%)}.tp-drag-toast--success{border-color:var(--color-success-border);background:var(--color-success-surface);color:var(--color-success)}.tp-drag-toast--error{border-color:var(--color-danger-border);background:var(--color-danger-surface);color:var(--color-danger)}.tp-activity-more-btn{font-size:var(--text-label);color:var(--color-secondary);background:var(--color-surface);border:1px solid var(--color-surface-alt);cursor:pointer;border-radius:6px;margin-top:2px;padding:3px 8px;font-weight:500;transition:all .1s}.tp-activity-more-btn:hover{background:var(--color-surface-card);color:var(--color-primary);border-color:var(--color-secondary)}@media (width>=1024px){.tp-calendar-cell{gap:5px;min-height:140px;padding:8px 8px 4px;overflow:visible}.tp-calendar-cell .activity-card-v2__name{-webkit-line-clamp:2}.tp-calendar-grid.summary-collapsed .tp-calendar-cell{padding-right:8px}}.tp-calendar-page--embedded{height:calc(100dvh - var(--header-h) - 120px);margin-top:0;margin-left:0}@media (width<=767px){.tp-calendar-page:not(.tp-calendar-page--embedded),.tp-calendar-page--embedded{display:none!important}}@media (width>=1024px){.cal-m-page,.compliance-widget{display:none!important}}.cal-m-page{margin-top:var(--header-h);min-height:calc(100dvh - var(--header-h));background:var(--color-surface);color:var(--color-primary);flex-direction:column;padding-bottom:80px;display:flex}.cal-m-header{top:var(--header-h);z-index:20;background:color-mix(in srgb, var(--color-surface) 92%, transparent);-webkit-backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--color-surface-alt);padding:10px 16px 6px;position:sticky}.cal-m-header__row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cal-m-year-chip{background:var(--color-surface);font-size:var(--text-body-md);color:var(--color-primary);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:4px;padding:6px 14px;font-weight:500;transition:background .15s;display:inline-flex}.cal-m-year-chip:active{background:var(--color-surface-alt)}.cal-m-year-chip__arrow{font-size:var(--text-body-lg);color:var(--color-secondary)}.cal-m-year-chip--week{border:1px solid color-mix(in srgb, var(--color-data-blue) 44%, var(--color-surface-alt));background:color-mix(in srgb, var(--color-data-blue) 10%, var(--color-surface));color:var(--color-primary);gap:6px;font-weight:700}.cal-m-header__actions{background:var(--color-surface);border-radius:999px;gap:4px;padding:4px;display:flex}.cal-m-icon-btn{width:34px;height:30px;color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.cal-m-icon-btn:active{background:color-mix(in srgb, var(--color-primary) 5%, transparent)}.cal-m-header__title-row{align-items:center;gap:8px;margin:4px 0 10px;display:flex}.cal-m-title{font-family:var(--font-display);font-size:var(--text-h1);letter-spacing:-.02em;text-transform:capitalize;flex:auto;margin:0;font-weight:700;line-height:1.05}.cal-m-month-nav{width:32px;height:32px;font-size:var(--text-h3);color:var(--color-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.cal-m-month-nav:active{background:var(--color-surface);color:var(--color-primary)}.cal-m-weekdays{grid-template-columns:repeat(7,1fr);padding:4px 0 6px;display:grid}.cal-m-weekday{text-align:center;font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;color:var(--color-secondary);font-weight:500}.cal-m-weekday.is-weekend{color:var(--color-secondary)}.cal-m-grid{flex-direction:column;padding:4px 8px 8px;display:flex}.cal-m-week{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-m-day{appearance:none;cursor:pointer;min-height:56px;color:var(--color-primary);font-family:var(--font-body);background:0 0;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px 2px 6px;transition:background .12s;display:flex;position:relative}.cal-m-day:active{background:var(--color-surface)}.cal-m-day.is-out .cal-m-day__num{color:var(--color-secondary);opacity:.45}.cal-m-day.is-weekend .cal-m-day__num{color:var(--color-secondary)}.cal-m-day__num{width:30px;height:30px;font-family:var(--font-display);font-size:var(--text-h3);border-radius:50%;justify-content:center;align-items:center;font-weight:500;line-height:1;display:inline-flex}.cal-m-day.is-today .cal-m-day__num{color:var(--color-accent);background:0 0;font-weight:600}.cal-m-day.is-selected .cal-m-day__num{background:var(--color-accent);color:var(--color-on-primary);font-weight:600}.cal-m-day.is-selected.is-today .cal-m-day__num{background:var(--color-surface-card);color:var(--color-accent);border:2px solid var(--color-accent)}.cal-m-day.is-race-day{background:color-mix(in srgb, var(--color-data-blue) 8%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-data-blue) 28%, transparent)}.cal-m-day.is-race-day .cal-m-day__num{color:var(--color-primary);box-shadow:inset 0 -2px 0 var(--color-data-blue)}.cal-m-day.is-selected.is-race-day .cal-m-day__num{background:var(--color-data-blue);color:var(--color-on-accent);box-shadow:none}.cal-m-day__dots{align-items:center;gap:3px;height:6px;display:inline-flex}.cal-m-dot{border-radius:50%;width:5px;height:5px;display:inline-block}.cal-m-dot.is-race{border-radius:999px;width:14px}.cal-m-panel{border-top:1px solid var(--color-surface-alt);margin-top:8px;padding:16px 16px 24px}.cal-m-panel__header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.cal-m-panel__date{font-family:var(--font-display);font-size:var(--text-body-lg);color:var(--color-primary);text-transform:capitalize;font-weight:600}.cal-m-panel__add{background:var(--color-accent);color:var(--color-on-primary);font-size:var(--text-label);cursor:pointer;border:none;border-radius:999px;padding:6px 14px;font-weight:500}.cal-m-panel__add:active{opacity:.8}.cal-m-panel__list{flex-direction:column;gap:8px;display:flex}.cal-m-empty{text-align:center;color:var(--color-secondary);font-size:var(--text-body-md);padding:24px 0}.cal-m-sheet{z-index:30;background:var(--color-surface-card);border-top:1px solid var(--color-surface-alt);box-shadow:var(--shadow-top);border-radius:16px 16px 0 0;transition:transform .25s cubic-bezier(.22,1,.36,1);position:fixed;bottom:0;left:0;right:0;transform:translateY(0)}.cal-m-sheet__handle{cursor:pointer;width:100%;font-family:var(--font-body);background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px 10px;display:flex}.cal-m-sheet__grip{background:var(--color-surface-alt);border-radius:2px;width:36px;height:4px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.cal-m-sheet__title{font-size:var(--text-body-sm);color:var(--color-primary);letter-spacing:.02em;text-align:left;flex:auto;font-weight:600}.cal-m-sheet__mini-score{font-size:var(--text-label);color:var(--color-secondary);white-space:nowrap;font-weight:700}.cal-m-sheet__chev{font-size:var(--text-body-md);color:var(--color-secondary)}.cal-m-sheet__body{border-top:1px solid var(--color-surface-alt);flex-direction:column;gap:12px;padding:8px 18px 22px;display:flex}.cal-m-sheet__load{border:1px solid var(--color-surface-alt);border-left:4px solid var(--color-secondary);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;gap:9px;padding:12px 13px;display:flex}.cal-m-sheet.has-plan .cal-m-sheet__load{border-left-color:var(--color-accent)}.cal-m-sheet__load-head,.cal-m-sheet__compliance{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cal-m-sheet__week{color:var(--color-primary);font-size:var(--text-label);letter-spacing:var(--letter-spacing-label);margin-bottom:3px;font-weight:700;line-height:1;display:block}.cal-m-sheet__range{color:var(--color-secondary);font-size:var(--text-label);text-transform:capitalize;font-weight:500;line-height:1.1;display:block}.cal-m-sheet__score{white-space:nowrap;align-items:baseline;gap:5px;display:flex}.cal-m-sheet__score strong{font-family:var(--font-display);font-size:var(--text-h2);color:var(--color-primary);font-weight:700;line-height:.95}.cal-m-sheet__score span{color:var(--color-secondary);font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.cal-m-sheet__loadbar{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 8%, transparent);height:5px;overflow:hidden}.cal-m-sheet__loadbar span{width:var(--week-load-pct,0%);border-radius:inherit;background:var(--color-accent);min-width:4px;height:100%;display:block}.cal-m-sheet.is-over-plan .cal-m-sheet__loadbar span{background:var(--color-danger);width:100%}.cal-m-sheet.is-under-plan .cal-m-sheet__loadbar span{background:var(--color-warning)}.cal-m-sheet__compliance,.cal-m-sheet__plan-state{color:var(--color-secondary);font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.cal-m-sheet__compliance strong{color:var(--color-primary)}.cal-m-sheet.is-over-plan .cal-m-sheet__compliance strong{color:var(--color-danger)}.cal-m-sheet.is-under-plan .cal-m-sheet__compliance strong{color:var(--color-warning)}.cal-m-sheet__metrics,.cal-m-sheet__totals{gap:8px;display:grid}.cal-m-sheet__metrics{grid-template-columns:repeat(3,1fr)}.cal-m-sheet__totals{grid-template-columns:repeat(4,1fr)}.cal-m-sheet__metrics>div,.cal-m-sheet__totals>div{background:var(--color-surface);border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.cal-m-sheet__metrics .lbl,.cal-m-sheet__totals .lbl{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.05em}.cal-m-sheet__metrics .val,.cal-m-sheet__totals .val{font-family:var(--font-display);font-size:var(--text-body-lg);color:var(--color-primary);font-weight:600;line-height:1.05}.cal-m-sheet__metrics .val em,.cal-m-sheet__totals .val em{font-style:normal;font-family:var(--font-body);font-size:var(--text-label);color:var(--color-secondary);margin-left:2px;font-weight:400}@media (width<=380px){.cal-m-title{font-size:var(--text-h2)}.cal-m-day{min-height:50px;padding:6px 0 4px}.cal-m-day__num{width:26px;height:26px;font-size:var(--text-body-lg)}.cal-m-sheet__totals{grid-template-columns:repeat(2,1fr)}.cal-m-sheet__score strong{font-size:var(--text-h3)}.cal-m-sheet__mini-score{display:none}}.calendar-show-more:hover{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.cal-m-weekly{padding:8px 0 24px}.cal-m-weekly__nav{align-items:center;gap:8px;padding:8px 16px 16px;display:flex}.cal-m-weekly__label{text-align:center;font-family:var(--font-display);font-size:var(--text-body-lg);color:var(--color-primary);flex:1;font-weight:600}.cal-m-weekly__today{background:var(--color-surface);font-size:var(--text-label);color:var(--color-primary);cursor:pointer;border:none;border-radius:999px;padding:5px 12px;font-weight:500}.cal-m-weekly__today:active{background:var(--color-surface-alt)}.cal-m-weekly__days{flex-direction:column;gap:2px;padding:0 12px;display:flex}.cal-m-weekly__day{border-bottom:1px solid var(--color-surface-alt);gap:12px;padding:14px 0;display:flex}.cal-m-weekly__day:last-child{border-bottom:none}.cal-m-weekly__day.is-today{background:color-mix(in srgb, var(--color-data-blue) 3%, transparent);border-radius:12px;margin:0 -10px;padding:14px 10px}.cal-m-weekly__day.is-race-day{background:color-mix(in srgb, var(--color-data-blue) 7%, transparent);box-shadow:inset 3px 0 0 var(--color-data-blue);border-radius:12px;margin:0 -10px;padding:14px 10px}.cal-m-weekly__day.is-race-day .cal-m-weekly__date-num{color:var(--color-data-blue)}.cal-m-weekly__day-label{flex-direction:column;align-items:center;min-width:42px;padding-top:4px;display:flex}.cal-m-weekly__dow{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.03em;font-weight:500}.cal-m-weekly__date-num{font-family:var(--font-display);font-size:var(--text-metric-sm);color:var(--color-primary);font-weight:700;line-height:1.2}.cal-m-weekly__date-num.is-today{color:var(--color-data-blue)}.cal-m-weekly__day-content{flex-direction:column;flex:1;justify-content:center;gap:8px;min-height:56px;display:flex}.cal-m-weekly__empty{align-items:center;min-height:48px;display:flex}.cal-m-weekly__add-btn{border:1px solid var(--color-surface-alt);font-size:var(--text-label);color:var(--color-secondary);cursor:pointer;background:0 0;border-radius:8px;margin:2px 0;padding:8px 14px;transition:all .15s}.cal-m-weekly__add-btn:active{background:var(--color-surface);color:var(--color-primary)}.cal-m-planned-drag{cursor:grab;touch-action:none;width:100%}.cal-m-planned-drag:active{cursor:grabbing}.cal-m-planned-drag.is-completed{cursor:not-allowed}.cal-m-planned-drag--overlay{opacity:.94;box-shadow:var(--shadow-modal);border-radius:var(--radius-md);transform:rotate(1deg)scale(1.02)}.cal-m-icon-btn.is-active{background:color-mix(in srgb, var(--color-data-blue) 10%, transparent);color:var(--color-data-blue)}.cal-m-week-picker{z-index:90;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.cal-m-week-picker__backdrop{background:var(--color-overlay-medium);cursor:pointer;border:none;position:absolute;inset:0}.cal-m-week-picker__sheet{width:100%;max-height:min(76dvh,620px);padding:10px 16px calc(18px + env(safe-area-inset-bottom));background:var(--color-surface-card);box-shadow:var(--shadow-modal);border-radius:18px 18px 0 0;position:relative;overflow-y:auto}.cal-m-week-picker__handle{border-radius:var(--radius-full);background:var(--color-surface-alt);width:42px;height:4px;margin:0 auto 14px}.cal-m-week-picker__header{grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:12px;display:grid}.cal-m-week-picker__header>div{text-align:center;min-width:0}.cal-m-week-picker__header strong{color:var(--color-primary);font-family:var(--font-display);font-size:var(--text-body-lg);text-overflow:ellipsis;white-space:nowrap;line-height:1.1;display:block;overflow:hidden}.cal-m-week-picker__eyebrow{color:var(--color-secondary);font-size:var(--text-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;margin-bottom:3px;font-weight:700;display:block}.cal-m-week-picker__list{gap:8px;display:grid}.cal-m-week-picker__option{border:1px solid var(--color-surface-alt);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-height:54px;color:var(--color-primary);cursor:pointer;text-align:left;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.cal-m-week-picker__option span{color:var(--color-secondary);font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;font-weight:800}.cal-m-week-picker__option strong{min-width:0;font-size:var(--text-body-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.cal-m-week-picker__option em{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-data-blue) 12%, transparent);color:var(--color-data-blue);font-size:var(--text-label);text-transform:uppercase;padding:3px 7px;font-style:normal;font-weight:800}.cal-m-week-picker__option.is-selected{border-color:var(--color-data-blue);background:color-mix(in srgb, var(--color-data-blue) 12%, var(--color-surface-card));box-shadow:inset 3px 0 0 var(--color-data-blue)}.cal-m-week-picker__today{border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-primary);width:100%;min-height:44px;color:var(--color-on-primary);font-size:var(--text-body-sm);cursor:pointer;margin-top:12px;font-weight:800}@media (width<=380px){.cal-m-week-picker__option{grid-template-columns:1fr auto}.cal-m-week-picker__option span{grid-column:1/-1}}.tp-picker-week-list{gap:8px;display:grid}.tp-picker-week-row{border:1px solid var(--color-surface-alt);border-radius:var(--radius-md);width:100%;min-height:46px;color:var(--color-primary);cursor:pointer;text-align:left;background:0 0;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 10px;transition:background .15s,border-color .15s;display:grid}.tp-picker-week-row:hover{background:var(--color-surface);border-color:color-mix(in srgb, var(--color-primary) 22%, var(--color-surface-alt))}.tp-picker-week-row.active{border-color:var(--color-data-blue);background:color-mix(in srgb, var(--color-data-blue) 10%, transparent);box-shadow:inset 3px 0 0 var(--color-data-blue)}.tp-picker-week-row span{color:var(--color-secondary);font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;font-weight:800}.tp-picker-week-row strong{min-width:0;font-size:var(--text-body-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.tp-picker-week-row em{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-data-blue) 12%, transparent);color:var(--color-data-blue);font-size:var(--text-label);text-transform:uppercase;padding:2px 7px;font-style:normal;font-weight:800}.tp-view-toggle{background:var(--color-surface);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.tp-view-toggle__btn{font-size:var(--text-body-sm);color:var(--color-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-weight:500;transition:all .15s}.tp-view-toggle__btn.is-active{background:var(--color-surface-card);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:600}.tp-view-toggle__btn:hover:not(.is-active){color:var(--color-primary)}.tp-weekly-desktop{flex-direction:column;flex:1;display:flex;overflow:hidden}.tp-weekly-desktop__header{border-bottom:1px solid var(--color-surface-alt);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.tp-weekly-desktop__day-header{flex-direction:column;align-items:center;gap:2px;min-width:0;padding:12px 8px 10px;display:flex;position:relative}.tp-weekly-desktop__day-header.is-today .tp-weekly-desktop__date-num{background:var(--color-data-blue);color:var(--color-on-accent);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.tp-weekly-desktop__day-header.is-race-day{background:color-mix(in srgb, var(--color-data-blue) 6%, transparent);box-shadow:inset 0 3px 0 var(--color-data-blue)}.tp-weekly-desktop__day-header.is-race-day .tp-weekly-desktop__dow{color:var(--color-primary);font-weight:700}.tp-weekly-desktop__day-header.is-race-day .tp-weekly-desktop__date-num{color:var(--color-data-blue)}.tp-weekly-desktop__day-header.is-race-day.is-today .tp-weekly-desktop__date-num{color:var(--color-on-accent)}.tp-weekly-desktop__dow{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.tp-weekly-desktop__date-num{font-family:var(--font-display);font-size:var(--text-h3);color:var(--color-primary);font-weight:600;line-height:1}.tp-weekly-desktop__date-row{align-items:center;gap:6px;display:inline-flex}.tp-weekly-desktop__add-btn{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);width:22px;height:22px;color:var(--color-secondary);cursor:pointer;opacity:0;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;font-size:.95rem;font-weight:600;line-height:1;transition:opacity .15s,transform .15s,color .15s,border-color .15s,background .15s;display:inline-flex;transform:translateY(-2px)}.tp-weekly-desktop__day-header:hover .tp-weekly-desktop__add-btn,.tp-weekly-desktop__day-header:focus-within .tp-weekly-desktop__add-btn{opacity:1;pointer-events:auto;transform:translateY(0)}.tp-weekly-desktop__add-btn:hover,.tp-weekly-desktop__add-btn:focus-visible{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-surface)}.tp-weekly-desktop__grid{flex:1;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow-y:auto}.tp-weekly-desktop__col{border-right:1px solid var(--color-surface-alt);flex-direction:column;gap:8px;min-width:0;min-height:300px;padding:10px 8px;transition:background .15s,outline-color .15s;display:flex}.tp-weekly-desktop__col:last-child{border-right:none}.tp-weekly-desktop__col.is-today{background:color-mix(in srgb, var(--color-data-blue) 2%, transparent)}.tp-weekly-desktop__col.is-race-day{background:color-mix(in srgb, var(--color-data-blue) 5%, transparent);box-shadow:inset 3px 0 0 color-mix(in srgb, var(--color-data-blue) 78%, transparent)}.tp-weekly-desktop-summary{border-top:1px solid var(--color-surface-alt);background:linear-gradient(90deg, color-mix(in srgb, var(--color-accent) 5%, transparent), transparent 34%), var(--color-surface);grid-template-columns:minmax(250px,1.2fr) minmax(310px,1.1fr) minmax(360px,1.6fr);align-items:stretch;gap:12px;padding:12px 16px;display:grid}.tp-weekly-summary__load,.tp-weekly-summary__metrics,.tp-weekly-summary__totals{gap:8px;display:grid}.tp-weekly-summary__load{border:1px solid color-mix(in srgb, var(--color-surface-alt) 82%, var(--color-primary));border-left:4px solid var(--color-accent);border-radius:var(--radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--color-accent) 9%, transparent), transparent 46%), var(--color-surface-card);box-shadow:var(--shadow-xs);padding:12px 14px}.tp-weekly-desktop-summary.has-plan .tp-weekly-summary__load{border-left-color:var(--color-accent)}.tp-weekly-desktop-summary.is-current-week .tp-weekly-summary__load{background:color-mix(in srgb, var(--color-accent) 5%, var(--color-surface-card));border-color:color-mix(in srgb, var(--color-accent) 36%, var(--color-surface-alt))}.tp-weekly-summary__head,.tp-weekly-summary__compliance{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.tp-weekly-summary__week{color:var(--color-primary);font-size:var(--text-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;margin-bottom:3px;font-weight:700;line-height:1;display:block}.tp-weekly-summary__range{color:var(--color-secondary);font-size:var(--text-label);text-transform:uppercase;font-weight:500;line-height:1.1;display:block}.tp-weekly-summary__badge{border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-accent);letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;font-size:.62rem;font-weight:700}.tp-weekly-summary__score{color:var(--color-primary);align-items:baseline;gap:6px;display:flex}.tp-weekly-summary__score strong{font-family:var(--font-display);font-size:var(--text-h2);font-weight:700;line-height:.95}.tp-weekly-summary__score span{color:var(--color-secondary);font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.tp-weekly-summary__loadbar{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 8%, transparent);height:5px;overflow:hidden}.tp-weekly-summary__loadbar span{width:var(--week-load-pct,0%);border-radius:inherit;background:linear-gradient(90deg, var(--color-accent), var(--color-data-purple));min-width:4px;height:100%;display:block}.tp-weekly-desktop-summary.is-over-plan .tp-weekly-summary__loadbar span{background:var(--color-danger);width:100%}.tp-weekly-desktop-summary.is-under-plan .tp-weekly-summary__loadbar span{background:var(--color-warning)}.tp-weekly-summary__compliance,.tp-weekly-summary__plan-state{color:var(--color-secondary);font-size:var(--text-label);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.tp-weekly-summary__compliance strong{color:var(--color-primary)}.tp-weekly-desktop-summary.is-over-plan .tp-weekly-summary__compliance strong{color:var(--color-danger)}.tp-weekly-desktop-summary.is-under-plan .tp-weekly-summary__compliance strong{color:var(--color-warning)}.tp-weekly-summary__metrics{border:1px solid color-mix(in srgb, var(--color-data-purple) 34%, var(--color-surface-alt));border-left:4px solid var(--color-data-purple);border-radius:var(--radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--color-data-purple) 10%, transparent), transparent 52%), color-mix(in srgb, var(--color-primary) 4%, transparent);box-shadow:var(--shadow-xs);grid-template-columns:repeat(3,minmax(0,1fr));padding:12px}.tp-weekly-summary__totals{grid-template-columns:repeat(4,minmax(0,1fr))}.tp-weekly-summary__totals>div{border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-primary) 4%, transparent);flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:10px 12px;display:flex}.tp-weekly-summary__metrics>div{border-right:1px solid color-mix(in srgb, var(--color-data-purple) 22%, var(--color-surface-alt));flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:4px 10px;display:flex}.tp-weekly-summary__metrics>div:last-child{border-right:none}.tp-weekly-desktop-summary .lbl{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.05em;display:block}.tp-weekly-desktop-summary .val{font-family:var(--font-display);font-size:var(--text-h3);color:var(--color-primary);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.tp-weekly-desktop-summary .val em{font-style:normal;font-family:var(--font-body);font-size:var(--text-label);color:var(--color-secondary);margin-left:2px;font-weight:500}@media (width<=1180px){.tp-weekly-desktop-summary{grid-template-columns:1fr}}.calendar-popover-overlay{background:var(--color-overlay-medium);z-index:999;justify-content:center;align-items:center;animation:.15s ease-out popover-fade-in;display:flex;position:fixed;inset:0}@keyframes popover-fade-in{0%{opacity:0}to{opacity:1}}.calendar-popover{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);box-shadow:var(--shadow-modal);flex-direction:column;min-width:min(320px,100vw - 32px);max-width:420px;max-height:80vh;display:flex;overflow:hidden}.calendar-popover-header{border-bottom:1px solid var(--color-surface-alt);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.calendar-popover-date{font-family:var(--font-display);font-size:var(--text-body-lg);color:var(--color-primary);text-transform:capitalize;font-weight:600}.calendar-popover-close{font-size:var(--text-h3);color:var(--color-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;line-height:1;transition:color .1s}.calendar-popover-close:hover{color:var(--color-primary)}.calendar-popover-list{padding:8px 0;overflow-y:auto}.calendar-popover-item{cursor:pointer;align-items:center;gap:10px;padding:10px 16px;transition:background .1s;display:flex}.calendar-popover-item:hover{background:var(--color-surface)}.calendar-popover-item-color{border-radius:2px;flex-shrink:0;width:4px;height:32px}.calendar-popover-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.calendar-popover-item-name{font-size:var(--text-body-md);color:var(--color-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.calendar-popover-item-meta{font-size:var(--text-label);color:var(--color-secondary)}.calendar-popover-item-type{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.widget-card{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-md);color:var(--color-primary);transition:box-shadow .15s;overflow:hidden}.widget-card:hover{box-shadow:var(--shadow-xs)}.widget-card--mobile-draggable{cursor:grab;touch-action:manipulation}.widget-card--mobile-draggable:active{cursor:grabbing}.widget-header{border-bottom:1px solid var(--color-surface-alt);align-items:center;gap:8px;padding:12px 16px;display:flex}.widget-drag-handle{color:var(--color-secondary);cursor:grab;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:color .15s,background .15s;display:flex}.widget-drag-handle:hover{color:var(--color-primary);background:var(--color-surface-alt)}.widget-drag-handle:active{cursor:grabbing}.widget-title{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);flex:1;align-items:center;gap:6px;font-weight:600;display:inline-flex}.widget-remove-btn{color:var(--color-secondary);font-size:var(--text-h3);background:0 0;border:none;border-radius:4px;padding:2px 6px;line-height:1;transition:color .15s,background .15s}.widget-remove-btn:hover{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 8%, transparent)}@media (hover:hover) and (pointer:fine){.widget-remove-btn{opacity:0;pointer-events:none}.widget-card:hover .widget-remove-btn,.widget-card:focus-within .widget-remove-btn{opacity:1;pointer-events:auto}}.widget-content{color:var(--color-primary);padding:16px}.widget-section-label{margin-bottom:16px}.widget-section-label--tight{margin-bottom:14px}.widget-section-label--compact{margin-bottom:10px}.widget-empty-copy{color:var(--color-secondary);font-size:.85rem}.widget-empty-copy--faint{color:var(--color-secondary)}.widget-chart-tooltip{background:var(--color-chart-tooltip-bg);border:1px solid var(--color-chart-tooltip-border);color:var(--color-primary);box-shadow:var(--shadow-lg);border-radius:2px;padding:8px 12px;font-size:.8rem}.widget-chart-tooltip--rounded{border-radius:var(--radius);padding:10px 14px}.widget-chart-tooltip-label{color:var(--color-secondary);margin-bottom:2px;font-size:.65rem}.widget-chart-tooltip-label--spaced{margin-bottom:4px}.widget-chart-tooltip-kpi{font-family:var(--font-display);font-size:1.2rem}.widget-chart-tooltip-unit{color:var(--color-secondary);font-size:.7rem}.widget-chart-tooltip-total{margin-top:4px;font-weight:600}.widget-chart-tooltip-row{font-size:.75rem}.zone-dist-legend{font-size:var(--text-label);color:var(--color-secondary);flex-wrap:wrap;justify-content:center;gap:16px;margin-top:12px;display:flex}.zone-dist-legend-item{align-items:center;gap:6px;display:flex}.zone-dist-legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.widget-scrim{z-index:99;position:fixed;inset:0}.widget-link-button{color:var(--color-accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.widget-list{flex-direction:column;gap:16px;display:flex}.activity-toolbar{margin-top:-8px}.activity-widget-list .widget-content>.card,.activity-widget-list .widget-content>.fade-up.card{box-shadow:none;background:0 0;border:0;margin-bottom:0!important;padding:0!important}.activity-widget-list .widget-content>.fade-up{margin-bottom:0!important}.activity-widget-empty{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.activity-widget-empty--stack{display:block}.activity-widget-empty-caption{margin-bottom:4px;font-size:.6rem}.activity-widget-empty-caption--spaced{margin-bottom:8px}.activity-widget-empty-description{color:var(--color-secondary);font-size:.85rem}.activity-widget-action{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);color:var(--color-primary);font-size:var(--text-label);cursor:pointer;justify-content:center;align-items:center;padding:8px 14px;font-weight:600;transition:all .15s;display:inline-flex}.activity-widget-action:hover,.activity-widget-action.active{background:var(--color-accent);color:var(--color-on-primary)}.widget-placeholder{border:2px solid var(--color-secondary);border-radius:var(--radius-sm);background:var(--color-surface);min-height:100px}.widget-overlay{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);color:var(--color-primary);box-shadow:var(--shadow-modal)}.add-widget-btn{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);color:var(--color-secondary);font-size:var(--text-body-sm);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:10px 20px;transition:all .15s;display:inline-flex}.add-widget-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface-alt)}.dashboard-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.dashboard-controls-left{align-items:center;gap:8px;display:flex}.dashboard-hero{margin-bottom:48px}.dashboard-hero-kicker{margin-bottom:8px}.dashboard-hero-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.dashboard-hero-title{font-family:var(--font-display);letter-spacing:0;font-size:clamp(3rem,8vw,5.5rem);font-weight:700;line-height:1}.dashboard-hero-score{text-align:right}.dashboard-hero-score-label{margin-bottom:4px}.dashboard-hero-score-value{font-family:var(--font-display);letter-spacing:0;font-size:clamp(3.5rem,9vw,6rem);font-weight:700;line-height:1;display:inline-block}.dashboard-hero-score-value.is-highlighted{background:var(--color-accent);padding:0 8px}.dashboard-hero-score-denominator{color:var(--color-secondary);font-size:1.5rem}.widget-relative{position:relative}.pmc-zone-toggle{z-index:10;border:1px solid var(--color-surface-alt);background:var(--color-surface-card);width:20px;height:20px;color:var(--color-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:4px;right:4px}.pmc-zone-toggle.is-active{background:var(--color-primary);color:var(--color-surface-card)}.pmc-zone-overlay{z-index:9999;background:var(--color-overlay-medium);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.pmc-zone-legend-panel{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);color:var(--color-primary);width:100%;max-width:340px;box-shadow:var(--shadow-lg);border-radius:12px;padding:20px 24px;font-size:.78rem;line-height:1.5}.pmc-zone-legend-title{margin-bottom:12px;font-size:.85rem;font-weight:700}.pmc-zone-legend-row{align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.pmc-zone-legend-swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;margin-top:2px}.pmc-zone-legend-label{font-weight:600}.pmc-zone-legend-description{color:var(--color-secondary);margin-left:6px}.pmc-zone-close{border:1px solid var(--color-surface-alt);background:var(--color-surface);cursor:pointer;width:100%;color:var(--color-primary);border-radius:6px;margin-top:8px;padding:8px 0;font-size:.75rem;font-weight:600}.dashboard-rings-widget{align-items:center;gap:32px;display:flex}.dashboard-rings-metrics{flex-direction:column;gap:20px;display:flex}.dashboard-rings-label{margin-bottom:4px}.dashboard-rings-value,.dashboard-widget-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.dashboard-rings-value{font-size:2rem}.dashboard-widget-value{font-size:1.5rem}.dashboard-widget-value--large{font-size:1.8rem}.dashboard-widget-value--medium{font-size:1.1rem;font-weight:600}.dashboard-widget-mini-label{color:var(--color-secondary);margin-bottom:4px;font-size:.75rem}.dashboard-widget-unit{color:var(--color-secondary);margin-top:2px;font-size:.65rem}.dashboard-widget-unit--muted{color:var(--color-secondary)}.dashboard-monotony-stack{flex-direction:column;gap:16px;display:flex}.dashboard-monotony-metrics{gap:24px;display:flex}.dashboard-monotony-warning{color:var(--color-danger);margin-top:2px;font-size:.65rem}.dashboard-monotony-separator{border-left:1px solid var(--color-surface-alt);padding-left:24px}@media (width<=767px){.dashboard-monotony-separator{border-left:none;border-top:1px solid var(--color-surface-alt);margin-top:8px;padding-top:16px;padding-left:0}}.dashboard-alerts-card{flex:1}.dashboard-alerts-list{flex-direction:column;gap:6px;display:flex}.dashboard-alert-row{align-items:center;gap:8px;font-size:.78rem;display:flex}.dashboard-alert-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.dashboard-alert-message{color:var(--color-primary)}.dashboard-alert-message--ok{color:var(--color-secondary)}.dashboard-kpi-row{flex-wrap:wrap;gap:0;display:flex}.dashboard-kpi-item{flex:1 1 0;min-width:60px;padding-right:12px}.dashboard-kpi-item+.dashboard-kpi-item{border-left:1px solid var(--color-surface-alt);padding-left:12px}.dashboard-kpi-label{margin-bottom:6px}.dashboard-session-row{flex-wrap:wrap;align-items:flex-end;gap:32px;display:flex}.dashboard-session-type{font-family:var(--font-display);font-size:1.5rem}.pie-chart-row{align-items:center;gap:16px;display:flex}@media (width<=767px){.pie-chart-row{flex-direction:column;align-items:flex-start}}.dashboard-pie-legend{flex-direction:column;flex:1;gap:8px;display:flex}.dashboard-pie-legend-item{cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:2px 4px;transition:all .15s;display:flex}.dashboard-pie-legend-item.is-active{background:var(--color-surface)}.dashboard-pie-legend-item.is-muted{opacity:.4}.dashboard-pie-legend-label{align-items:center;gap:6px;display:flex}.dashboard-pie-swatch{border-radius:1px;flex-shrink:0;width:8px;height:8px}.dashboard-pie-name{color:var(--color-secondary);font-size:.72rem}.dashboard-pie-count{font-family:var(--font-display);font-size:1rem}.dashboard-pr-list{border:1px solid var(--color-surface-alt);border-radius:var(--radius);overflow:hidden}.dashboard-pr-label{font-size:.65rem}.dashboard-pr-name{font-size:.875rem;font-weight:500}.dashboard-pr-value{font-family:var(--font-display);font-size:1.4rem;font-weight:700}.dashboard-pr-date{color:var(--color-secondary);font-size:.75rem}.ramp-gauge{margin-bottom:12px;position:relative}.ramp-gauge-track{border-radius:4px;gap:2px;height:48px;display:flex;overflow:hidden}.ramp-gauge-segment{opacity:.3}.ramp-gauge-segment.is-active{opacity:1}.ramp-gauge-segment--detraining{background:var(--color-ramp-detraining);flex:1}.ramp-gauge-segment--maintenance{background:var(--color-ramp-maintenance);flex:1.5}.ramp-gauge-segment--optimal{background:var(--color-ramp-optimal);flex:1}.ramp-gauge-segment--high-risk{background:var(--color-ramp-high-risk);flex:.8}.ramp-gauge-segment--overreaching{background:var(--color-ramp-overreaching);flex:.5}.ramp-gauge-marker{height:20px;margin-top:4px;position:relative}.ramp-gauge-marker-tip{border-top:8px solid;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute;transform:translate(-50%)}.pmc-projection-wrapper{position:relative}.pmc-projection-divider{background:repeating-linear-gradient(to bottom, var(--color-secondary) 0, var(--color-secondary) 4px, transparent 4px, transparent 8px);opacity:.4;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.dashboard-summary-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;display:grid}.dashboard-summary-card{background:var(--color-surface);border-radius:var(--radius);padding:14px 16px}.dashboard-summary-card.is-accent{border:1px solid var(--color-surface-alt)}.dashboard-summary-label{color:var(--color-secondary);margin-bottom:6px;font-size:.62rem}.dashboard-summary-value{font-family:var(--font-display);color:var(--color-primary);font-size:1.5rem;font-weight:700;line-height:1}.dashboard-summary-unit{color:var(--color-secondary);margin-left:3px;font-size:.75rem;font-weight:400}.dashboard-heatmap-legend{color:var(--color-secondary);justify-content:flex-end;align-items:center;gap:4px;margin-bottom:12px;font-size:.62rem;display:flex}.dashboard-heatmap-legend .heatmap-cell{width:10px;height:10px}.dashboard-monthly-chart{width:100%;height:180px}.dashboard-custom-charts{margin-top:48px}.dashboard-custom-charts-filters{margin-bottom:12px}.dashboard-custom-charts-filters-label{margin-bottom:8px}.dashboard-custom-charts-filters-row{flex-wrap:wrap;gap:8px;display:flex}.dashboard-custom-charts-filter-btn{border:1px solid var(--color-surface-alt);background:var(--color-surface);color:var(--color-secondary);border-radius:var(--radius-sm);letter-spacing:.04em;text-transform:uppercase;padding:6px 10px;font-size:.68rem;line-height:1.2;transition:all .15s}.dashboard-custom-charts-filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.dashboard-custom-charts-filter-btn.active{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));color:var(--color-primary)}.dashboard-custom-charts-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.dashboard-custom-charts-title{font-family:var(--font-display);letter-spacing:0;font-size:1.6rem;font-weight:700}.dashboard-custom-charts-subtitle{color:var(--color-secondary);margin-top:2px;font-size:.78rem}.dashboard-custom-charts-grid{margin-bottom:16px}.activity-detail-back{color:var(--color-secondary);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:24px;font-size:.75rem;display:flex}.activity-detail-header{margin-bottom:32px}.activity-detail-meta{align-items:center;gap:12px;margin-bottom:8px;display:flex}.activity-detail-sport-icon{font-size:1.1rem}.activity-detail-date{color:var(--color-secondary);font-size:.8rem}.activity-detail-title{font-family:var(--font-display);letter-spacing:0;font-size:clamp(1.8rem,4vw,3rem);font-weight:700;line-height:1.1}.activity-detail-stat-label{margin-bottom:2px;font-size:.65rem}.activity-detail-stat-value{font-family:var(--font-display);font-size:1.3rem}.activity-stream-tooltip{position:relative;top:-15px;left:10px}.activity-stream-tooltip-time{color:var(--color-secondary);font-size:.9rem;font-weight:500;font-family:var(--font-display);margin-bottom:2px}.activity-stream-tooltip-card{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);box-shadow:var(--shadow-lg);color:var(--color-primary);font-size:.85rem;font-family:var(--font-display);border-radius:2px;min-width:160px;padding:10px 12px}.activity-stream-tooltip-row{margin-bottom:3px}.activity-stream-tooltip-label{font-weight:400}.activity-stream-chart-wrap{position:relative}.activity-stream-card{margin-bottom:24px;padding:24px 24px 16px}.activity-axis-toggle-row{justify-content:flex-end;margin-bottom:16px;display:flex}.activity-axis-toggle{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);border-radius:4px;display:flex;overflow:hidden}.activity-axis-toggle-btn{color:var(--color-secondary);cursor:pointer;background:0 0;border:none;padding:4px 12px;font-size:.75rem;font-weight:600;transition:all .15s}.activity-axis-toggle-btn+.activity-axis-toggle-btn{border-left:1px solid var(--color-surface-alt)}.activity-axis-toggle-btn.is-active{background:var(--color-accent);color:var(--color-on-accent)}.activity-stream-section{margin-bottom:24px}.activity-stream-section:last-child{margin-bottom:0}.activity-stream-heading{align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.activity-stream-title{font-size:1rem;font-weight:700;font-family:var(--font-display)}.activity-stream-title--pace{color:var(--color-metric-pace)}.activity-stream-title--hr{color:var(--color-metric-hr)}.activity-stream-title--cadence{color:var(--color-metric-cadence)}.activity-stream-title--power{color:var(--color-bike-series)}.activity-stream-subtitle{color:var(--color-secondary);font-size:.8rem}.activity-metric-source-badge{cursor:help;color:var(--color-accent);font-family:var(--font-display);font-size:.85rem;font-weight:700;line-height:1}.activity-splits{color:var(--color-primary)}.activity-splits-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.activity-splits-title{font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,1.8rem);line-height:var(--line-height-h3);margin-bottom:var(--space-xs)}.activity-splits-subtitle,.activity-splits-summary{color:var(--color-secondary);font-size:var(--text-body-sm)}.activity-splits-toggle{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);flex-shrink:0;display:inline-flex;overflow:hidden}.activity-splits-toggle-btn{color:var(--color-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold);transition:background var(--transition-base), color var(--transition-base);background:0 0;border:0;padding:6px 10px}.activity-splits-toggle-btn+.activity-splits-toggle-btn{border-left:1px solid var(--color-surface-alt)}.activity-splits-toggle-btn.is-active{background:var(--color-accent);color:var(--color-on-accent)}.activity-splits-summary{gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.activity-splits-table{width:100%}.activity-splits-row{align-items:center;gap:var(--space-sm);grid-template-columns:minmax(46px,.42fr) minmax(78px,.55fr) minmax(120px,2.4fr) minmax(54px,.45fr) minmax(44px,.38fr);min-height:38px;display:grid}.activity-splits-row--head{border-bottom:1px solid var(--color-surface-alt);min-height:34px;color:var(--color-secondary);font-size:var(--text-body-sm);font-weight:var(--font-weight-semibold)}.activity-splits-body{padding-top:var(--space-sm);flex-direction:column;display:flex}.activity-splits-km,.activity-splits-metric,.activity-splits-value{font-family:var(--font-display);font-size:1.1rem;font-weight:var(--font-weight-medium);white-space:nowrap}.activity-splits-km{color:var(--color-secondary)}.activity-splits-metric,.activity-splits-value{color:var(--color-primary)}.activity-splits-value--right{text-align:right}.activity-splits-bar-cell{align-items:center;min-width:0;display:flex}.activity-splits-bar{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-metric-pace), var(--color-data-blue));min-width:18px;height:28px;transition:width var(--transition-slow);display:block}@media (width<=700px){.activity-splits-header{flex-direction:column;align-items:stretch}.activity-splits-toggle{width:100%}.activity-splits-toggle-btn{flex:1}.activity-splits-summary{justify-content:space-between;gap:var(--space-sm)}.activity-splits-row{grid-template-columns:44px 68px minmax(68px,1fr) 44px 38px;gap:6px;min-height:34px}.activity-splits-row--head{font-size:.7rem}.activity-splits-km,.activity-splits-metric,.activity-splits-value{font-size:.95rem}.activity-splits-bar{border-radius:var(--radius-sm);height:24px}}@media (width<=420px){.activity-splits-row{grid-template-columns:38px 62px minmax(52px,1fr) 38px 34px;gap:5px}.activity-splits-bar-head,.activity-splits-bar-cell{display:none}}@media (width<=900px){.interval-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-series-header{flex-direction:column}}@media (width<=520px){.interval-summary-grid{grid-template-columns:1fr}.interval-rep-table-wrap{padding:14px}}.activity-series-section{margin-bottom:32px}.activity-series-header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:16px;display:flex}.activity-series-subtitle{color:var(--color-secondary);margin-top:4px;font-size:.9rem}.activity-series-confidence-badge{border:1px solid var(--color-surface-alt);border-radius:var(--radius-full);background:var(--color-surface-card);color:var(--color-primary);letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;padding:6px 10px;font-size:.72rem;font-weight:700}.activity-series-chart-grid{margin-top:18px}.interval-summary-grid{gap:var(--space-sm);grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px;display:grid}.interval-summary-card{border:1px solid var(--color-surface-alt);border-radius:var(--radius);background:var(--color-surface-card);padding:14px}.interval-summary-label{margin-bottom:6px}.interval-summary-value{font-family:var(--font-display);font-size:1.3rem;line-height:1}.interval-rep-table-wrap{border:1px solid var(--color-surface-alt);border-radius:var(--radius-lg);background:var(--color-surface-card);margin-top:18px;padding:18px;overflow-x:auto}.interval-rep-table-title{font-family:var(--font-display);margin-bottom:12px;font-size:1rem}.interval-rep-table{min-width:760px}.interval-rep-row{border-bottom:1px solid var(--color-surface-alt);grid-template-columns:84px 84px 120px 96px 104px 84px 92px 72px;align-items:center;gap:10px;padding:10px 0;font-size:.82rem;display:grid}.interval-rep-row:last-child{border-bottom:0}.interval-rep-row--head{color:var(--color-secondary);letter-spacing:.06em;text-transform:uppercase;padding-top:0;font-size:.68rem;font-weight:700}.interval-status-badge{border:1px solid var(--color-surface-alt);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-secondary);white-space:nowrap;align-items:center;padding:3px 7px;font-size:.68rem;font-weight:700;display:inline-flex}.interval-status-badge--within_target{color:var(--color-score-good)}.interval-status-badge--too_easy,.interval-status-badge--too_hard,.interval-status-badge--too_short,.interval-status-badge--too_long{color:var(--color-score-warn)}.interval-status-badge--missed_rep,.interval-status-badge--extra_rep{color:var(--color-score-bad)}.activity-widget-subtitle{font-size:1.2rem;font-family:var(--font-display)}.activity-widget-subtitle--spaced{margin-bottom:16px}.activity-zones-card{margin-bottom:24px;padding:24px}.activity-zones-card--mobile{padding:16px}.activity-zones-title{font-size:1.2rem;font-family:var(--font-display);margin-bottom:20px}.activity-power-zones-title{font-size:1.2rem;font-family:var(--font-display);margin-bottom:16px}.activity-hr-zones-header,.activity-hr-zone-row{grid-template-columns:52px 110px 1fr 72px 60px;gap:0;display:grid}.activity-hr-zones-header{border-bottom:1px solid var(--color-surface-alt);margin-bottom:8px;padding-bottom:10px}.activity-hr-zones-header--mobile,.activity-hr-zone-row--mobile{grid-template-columns:40px 1fr 60px 52px}.activity-hr-zones-heading{color:var(--color-secondary);font-size:.8rem;font-weight:600}.activity-hr-zones-heading--right,.activity-hr-zone-value{text-align:right}.activity-hr-zone-list{flex-direction:column;gap:2px;display:flex}.activity-hr-zone-row{align-items:center;padding:10px 0}.activity-hr-zone-row+.activity-hr-zone-row{border-top:1px solid var(--color-surface-alt)}.activity-hr-zone-id{color:var(--color-primary);font-size:1rem;font-weight:700;font-family:var(--font-display)}.activity-hr-zone-name{color:var(--color-secondary);font-size:.85rem}.activity-hr-zone-bar-cell{padding-right:16px}.activity-hr-zone-bar{border-radius:4px;height:32px;transition:width .6s ease-out}.activity-hr-zone-bar-placeholder{height:32px}.activity-hr-zone-value{color:var(--color-primary);font-size:.95rem;font-weight:600;font-family:var(--font-display)}.activity-hr-zone-value--muted{color:var(--color-secondary)}.activity-zones-footer{color:var(--color-secondary);margin-top:16px;font-size:.8rem}.activity-zones-footer--tight{margin-top:12px}.activity-power-zones-table{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:.9rem}.activity-power-zones-table td{padding:10px 16px}.activity-power-zones-id,.activity-power-zones-pct{background:var(--color-surface);text-align:center;font-weight:600}.activity-power-zones-id{color:var(--color-secondary);border-radius:2px 0 0 2px}.activity-power-zones-name,.activity-power-zones-range{background:var(--color-surface-card)}.activity-power-zones-range{text-align:center;white-space:nowrap}.activity-power-zones-bar-cell{vertical-align:middle;width:100%;padding-left:12px}.activity-power-zones-bar{border-radius:2px;height:28px;transition:width .5s ease-out}.activity-analysis-label{margin-bottom:6px;font-size:.65rem}.activity-analysis-value{font-size:.875rem;font-weight:500}.widget-metric-card{border-color:var(--color-surface-alt);background:var(--color-surface-card)}.widget-metric-card.is-highlighted{border-color:var(--color-success);background:var(--color-success-surface)}.widget-metric-card.is-warning{border-color:var(--color-danger);background:var(--color-danger-surface)}.widget-metric-card-header{align-items:center;gap:6px;margin-bottom:8px;display:flex}.widget-metric-card-label{margin:0;font-size:.65rem}.widget-metric-card-value{font-family:var(--font-display);color:var(--color-primary);font-size:1.8rem;font-weight:600;line-height:1}.widget-metric-card.is-highlighted .widget-metric-card-value{color:var(--color-success-text)}.widget-metric-card.is-warning .widget-metric-card-value{color:var(--color-danger)}.widget-metric-card-unit{color:var(--color-secondary);font-size:.8rem;font-family:var(--font-body);margin-left:3px}.activity-custom-charts{margin-top:16px}.activity-custom-charts-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.activity-custom-charts-title{font-family:var(--font-display);letter-spacing:0;font-size:1.6rem;font-weight:700}.activity-custom-charts-subtitle{color:var(--color-secondary);margin-top:2px;font-size:.78rem}.activity-custom-charts-grid{margin-bottom:16px}.route-compare-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.route-compare-title{font-family:var(--font-display);font-size:1.2rem}.route-compare-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px;display:grid}.route-compare-card.is-current{border-color:var(--color-accent)}.route-compare-card-caption{margin-bottom:4px;font-size:.65rem}.route-compare-card-date{font-family:var(--font-display);margin-bottom:8px;font-size:.85rem;font-weight:500}.route-compare-stats{flex-direction:column;gap:4px;font-size:.8rem;display:flex}.route-compare-delta{font-size:.7rem}.route-compare-map{border:1px solid var(--color-surface-alt);border-radius:8px;height:300px;overflow:hidden}.reorder-btn-mobile{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);color:var(--color-secondary);font-size:var(--text-body-sm);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:8px 14px;transition:all .15s;display:flex}.reorder-btn-mobile:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface-alt)}@media (width>=768px){.reorder-btn-mobile{display:none}}@media (width<=767px){.widget-drag-handle{display:none}}.dashboard-toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:24px;display:flex}.dashboard-toolbar-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.dashboard-toolbar-btn{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);color:var(--color-secondary);font-size:var(--text-label);letter-spacing:.02em;cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:7px 12px;font-weight:500;transition:all .15s;display:inline-flex}.dashboard-toolbar-btn:hover,.dashboard-toolbar-btn.active{border-color:var(--color-accent);color:var(--color-accent)}.dashboard-toolbar-btn--add,.dashboard-toolbar-btn--add:hover{border-style:solid}.toolbar-chevron-icon{opacity:.5;margin-left:2px}.dashboard-timerange-handle{display:none}@media (width<=480px){.dashboard-timerange-handle{background:var(--color-secondary);border-radius:2px;width:36px;height:4px;margin:0 auto 16px;display:block}}.dashboard-timerange-panel{z-index:100;background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);color:var(--color-primary);box-shadow:var(--shadow-lg);min-width:300px;padding:12px 14px;position:absolute;top:calc(100% + 6px);right:0}.dashboard-timerange-panel .time-range-bar{background:0 0;border:none;padding:0;overflow:visible}.dashboard-timerange-panel .time-range-btn{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);color:var(--color-secondary);appearance:none}.dashboard-timerange-panel .time-range-btn:hover{color:var(--color-accent)}.dashboard-timerange-panel .time-range-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-primary)}@media (width<=480px){.dashboard-timerange-panel{border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-width:0;box-shadow:var(--shadow-top);padding:20px 16px 32px;position:fixed;inset:auto 0 0}.dashboard-timerange-panel .time-range-bar{flex-wrap:wrap;gap:8px}.dashboard-timerange-panel .time-range-btn{text-align:center;font-size:var(--text-body-sm);flex:calc(33% - 8px);justify-content:center;padding:10px 8px}.dashboard-timerange-panel .time-range-custom{margin-top:12px}}.modal-overlay{background:var(--color-overlay-modal);z-index:1000;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface-card);color:var(--color-primary);border-radius:var(--radius-sm);width:100%;max-width:500px;max-height:80vh;box-shadow:var(--shadow-modal);overflow-y:auto}.modal-header{border-bottom:1px solid var(--color-surface-alt);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:700}.modal-close{font-size:var(--text-metric-sm);color:var(--color-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;line-height:1}.modal-close:hover{color:var(--color-accent)}.widget-catalog-list{padding:12px 0}.widget-catalog-item{justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;transition:background .15s;display:flex}.widget-catalog-item:hover{background:var(--color-surface-alt)}.widget-catalog-info{flex:1;min-width:0}.widget-catalog-name{font-size:var(--text-body-md);margin-bottom:2px;font-weight:600}.widget-catalog-desc{font-size:var(--text-label);color:var(--color-secondary)}.widget-catalog-add-btn{border:1px solid var(--color-surface-alt);background:var(--color-surface);color:var(--color-primary);font-size:var(--text-body-sm);cursor:pointer;white-space:nowrap;border-radius:6px;padding:6px 16px;transition:all .15s}.widget-catalog-add-btn:hover{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.widget-catalog-empty{text-align:center;padding:24px 0}.active-goal-widget{cursor:pointer}.active-goal-widget:hover{opacity:.9}.active-goal-empty-copy{color:var(--color-secondary);margin-top:8px;font-size:.8rem}.active-goal-empty-cta{margin-top:8px;font-size:.75rem}.active-goal-label{margin-bottom:12px}.active-goal-header{justify-content:space-between;align-items:flex-start;display:flex}.active-goal-title{font-family:var(--font-display);font-size:1.3rem;font-weight:700;line-height:1.2}.active-goal-meta{color:var(--color-secondary);gap:8px;margin-top:6px;font-size:.75rem;display:flex}.active-goal-countdown{text-align:right}.active-goal-days{font-family:var(--font-display);color:var(--color-accent);font-size:1.8rem;font-weight:700;line-height:1}.active-goal-remaining{color:var(--color-secondary);margin-top:2px;font-size:.65rem}.active-goal-progress{margin-top:16px}.active-goal-progress-label{color:var(--color-secondary);margin-top:4px;font-size:.7rem}.widget-manager{max-width:620px}.widget-manager-section{padding:12px 0}.widget-manager-section+.widget-manager-section{border-top:1px solid var(--color-surface-alt)}.widget-manager-section-title{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.05em;padding:0 20px 8px;font-weight:600}.widget-toggle-btn{border:1px solid var(--color-surface-alt);background:var(--color-secondary);cursor:pointer;border-radius:999px;flex-shrink:0;width:46px;height:26px;transition:all .15s;position:relative}.widget-toggle-btn.enabled{background:var(--color-accent)}.widget-toggle-thumb{background:var(--color-surface);border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:2px;left:2px}.widget-toggle-btn.enabled .widget-toggle-thumb{transform:translate(20px)}.reorder-list{padding:8px 0}.reorder-item{justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex}.reorder-item-title{font-size:var(--text-body-md);color:var(--color-primary);flex:1;font-weight:500}.reorder-buttons{gap:4px;display:flex}.reorder-btn{border:1px solid var(--color-surface-alt);background:var(--color-surface);width:32px;height:32px;color:var(--color-secondary);font-size:var(--text-body-lg);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.reorder-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface-alt)}.reorder-btn:disabled{opacity:.3;cursor:not-allowed}.export-modal{max-width:400px}.export-buttons{gap:12px;display:flex}.export-btn{border:1px solid var(--color-surface-alt);background:var(--color-surface);color:var(--color-primary);font-size:var(--text-body-md);cursor:pointer;border-radius:6px;flex:1;padding:12px 16px;font-weight:600;transition:all .15s}.export-btn:disabled{opacity:.5;cursor:not-allowed}.export-btn-csv:hover:not(:disabled){background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.export-btn-pdf:hover:not(:disabled){background:var(--color-accent);border-color:var(--color-accent)}.dashboard-empty{text-align:center;background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-md);max-width:520px;box-shadow:var(--shadow-card);margin:80px auto;padding:40px 28px}.dashboard-empty__title{font-family:var(--font-display);font-size:var(--text-h2);color:var(--color-primary);margin:0 0 12px}.dashboard-empty__body{color:var(--color-secondary);margin:0 0 28px;font-size:.95rem;line-height:1.55}.dashboard-empty__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.cmp-page{padding-bottom:64px}.cmp-page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.cmp-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(1.6rem,4vw,2.6rem);font-weight:700;line-height:1.05}.cmp-subtitle{font-size:var(--text-body-md);margin-top:6px}.cmp-back-btn{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);background:var(--color-surface-card);color:var(--color-primary);cursor:pointer;font-size:var(--text-body-sm);font-family:var(--font-body);padding:8px 18px;transition:border-color .15s,background .15s}.cmp-back-btn:hover{border-color:var(--color-primary);background:var(--color-surface)}.cmp-hero-grid{grid-template-columns:repeat(var(--cols,2), minmax(0, 1fr));gap:12px;margin-bottom:28px;display:grid}.cmp-hero-card{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);flex-direction:column;min-width:0;padding:16px 16px 12px;transition:border-color .15s,transform .15s;display:flex;position:relative;overflow:hidden}.cmp-hero-card:hover{border-color:var(--color-secondary)}.cmp-hero-stripe{background:var(--cmp-color);height:3px;position:absolute;top:0;left:0;right:0}.cmp-hero-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.cmp-ref-badge{background:var(--color-primary);color:var(--color-on-primary);font-size:var(--text-label);letter-spacing:.08em;border-radius:2px;padding:2px 6px;font-weight:700;display:inline-block}.cmp-hero-remove{border:1px solid var(--color-surface-alt);cursor:pointer;width:22px;height:22px;font-size:var(--text-body-lg);color:var(--color-secondary);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;line-height:1;transition:all .15s;display:flex}.cmp-hero-remove:hover{border-color:var(--color-danger);color:var(--color-danger)}.cmp-hero-title{font-family:var(--font-display);font-weight:600;font-size:var(--text-body-lg);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;line-height:1.2;overflow:hidden}.cmp-hero-date{font-size:var(--text-label);color:var(--color-secondary);text-transform:capitalize;margin-bottom:12px}.cmp-hero-stats{flex-wrap:wrap;gap:14px;margin-bottom:8px;display:flex}.cmp-hero-stats>div{align-items:baseline;gap:4px;display:flex}.cmp-hero-stat-num{font-family:var(--font-display);font-weight:600;font-size:var(--text-h3);color:var(--color-primary);line-height:1}.cmp-hero-stat-unit{font-size:var(--text-label);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.04em}.cmp-hero-spark{border-top:1px solid var(--color-surface-alt);margin-top:auto;padding-top:6px}.cmp-hero-spark-empty{font-size:var(--text-label);color:var(--color-secondary);text-align:center;padding:12px 0;font-style:italic}.cmp-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-bottom:28px;display:grid}.cmp-metric-group{padding:18px 18px 8px}.cmp-metric-group-title{font-family:var(--font-display);font-weight:600;font-size:var(--text-body-md);text-transform:uppercase;letter-spacing:.08em;color:var(--color-secondary);border-bottom:1px solid var(--color-surface-alt);margin-bottom:14px;padding-bottom:8px}.cmp-metric-list{flex-direction:column;gap:10px;display:flex}.cmp-metric-row{border-bottom:1px solid var(--color-surface-alt);flex-direction:column;gap:6px;padding-bottom:8px;display:flex}.cmp-metric-row:last-child{border-bottom:none;padding-bottom:0}.cmp-metric-label{font-size:var(--text-label);color:var(--color-secondary);letter-spacing:.06em}.cmp-metric-unit{font-size:var(--text-label);color:var(--color-secondary);text-transform:lowercase;letter-spacing:0}.cmp-metric-values{flex-direction:column;gap:6px;display:flex}.cmp-metric-value-cell{flex-direction:column;gap:3px;display:flex}.cmp-metric-value-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.cmp-metric-value-num{font-family:var(--font-display);font-weight:600;font-size:var(--text-body-lg);font-variant-numeric:tabular-nums}.cmp-delta{font-size:var(--text-label);letter-spacing:.02em;font-variant-numeric:tabular-nums;border-radius:2px;padding:1px 5px;font-weight:600}.cmp-delta-good{background:color-mix(in srgb, var(--color-success) 8%, transparent);color:var(--color-success)}.cmp-delta-bad{background:color-mix(in srgb, var(--color-danger) 8%, transparent);color:var(--color-danger)}.cmp-delta-neutral{background:var(--color-surface);color:var(--color-secondary)}.cmp-bar{background:var(--color-surface);border-radius:2px;width:100%;height:4px;overflow:hidden}.cmp-bar-fill{border-radius:2px;height:100%;transition:width .3s}.cmp-charts-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px;margin-bottom:28px;display:grid}.cmp-chart-card{flex-direction:column;padding:18px 18px 12px;display:flex}.cmp-chart-title{font-family:var(--font-display);font-weight:600;font-size:var(--text-body-lg);margin-bottom:2px}.cmp-chart-sub{font-size:var(--text-label);color:var(--color-secondary);margin-bottom:12px}.cmp-streams-card{padding:18px}.cmp-streams-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.cmp-xmode{border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.cmp-xmode-btn{background:var(--color-surface-card);font-size:var(--text-label);font-weight:600;font-family:var(--font-body);color:var(--color-secondary);cursor:pointer;border:none;border-right:1px solid var(--color-surface-alt);padding:6px 14px;transition:all .15s}.cmp-xmode-btn:last-child{border-right:none}.cmp-xmode-btn:hover:not(.active){background:var(--color-surface)}.cmp-xmode-btn.active{background:var(--color-primary);color:var(--color-on-primary)}.cmp-streams-tabs{border-bottom:1px solid var(--color-surface-alt);gap:2px;margin-bottom:16px;display:flex;overflow-x:auto}.cmp-streams-tab{font-size:var(--text-body-sm);font-weight:500;font-family:var(--font-body);color:var(--color-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;transition:all .15s}.cmp-streams-tab:hover{color:var(--color-primary)}.cmp-streams-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.cmp-streams-body{width:100%}.cmp-streams-legend{border-top:1px solid var(--color-surface-alt);flex-wrap:wrap;gap:14px;margin-top:12px;padding-top:12px;display:flex}.cmp-streams-legend-item{font-size:var(--text-label);color:var(--color-secondary);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;max-width:240px;display:flex;overflow:hidden}.cmp-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}@media (width<=767px){.cmp-hero-grid,.cmp-charts-grid,.cmp-metrics-grid{grid-template-columns:1fr}.cmp-page-head{flex-direction:column;align-items:flex-start}.cmp-streams-tabs{gap:0}.cmp-streams-tab{font-size:var(--text-label);padding:8px 10px}}.goals-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.goals-empty{text-align:center;color:var(--color-secondary);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;padding:80px 20px;display:flex}.goals-empty p{margin-top:12px}.goal-card{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);cursor:pointer;border-radius:10px;padding:20px;transition:border-color .15s,box-shadow .15s}.goal-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-xs)}.goal-card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.goal-event-badge{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--color-surface-alt);background:var(--color-surface);color:var(--color-primary);border-radius:2px;padding:2px 8px;font-weight:600}.goal-status-dot{border-radius:50%;width:8px;height:8px}.goal-card-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-h3);margin-bottom:8px;line-height:1.2}.goal-card-meta{font-size:var(--text-label);color:var(--color-secondary);gap:12px;margin-bottom:6px;display:flex}.goal-card-countdown{color:var(--color-accent);font-weight:600}.goal-card-target{font-size:var(--text-label);color:var(--color-secondary);gap:12px;margin-bottom:12px;display:flex}.goal-progress-bar{background:var(--color-surface-alt);border-radius:2px;height:4px;position:relative;overflow:hidden}.goal-progress-bar.large{height:6px}.goal-progress-fill{background:var(--color-accent);border-radius:2px;height:100%;transition:width .3s}.goal-progress-label{font-size:var(--text-label);color:var(--color-secondary);position:absolute;top:8px;left:0}.goal-generating{font-size:var(--text-label);color:var(--color-secondary);align-items:center;gap:8px;display:flex}.goal-generating-spinner{border:2px solid var(--color-surface-alt);border-top-color:var(--color-primary);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin}.goal-wizard{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:2px;flex-direction:column;width:90vw;max-width:520px;max-height:85vh;display:flex;overflow-y:auto}.goal-wizard-header{border-bottom:1px solid var(--color-surface-alt);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.goal-wizard-header h2{font-family:var(--font-display);font-weight:700;font-size:var(--text-h3)}.goal-wizard-close{font-size:var(--text-metric-sm);cursor:pointer;color:var(--color-secondary);background:0 0;border:none;padding:4px 8px}.goal-wizard-steps{justify-content:center;gap:6px;padding:16px 24px;display:flex}.goal-wizard-step-dot{border:1px solid var(--color-secondary);background:0 0;border-radius:50%;width:8px;height:8px;transition:background .2s}.goal-wizard-step-dot.active{background:var(--color-accent);border-color:var(--color-accent)}.goal-wizard-body{flex:1;padding:8px 24px 24px}.goal-wizard-section{flex-direction:column;display:flex}.goal-wizard-spaced{margin-top:20px}.goal-wizard-label{font-size:var(--text-body-sm);color:var(--color-primary);margin-bottom:8px;font-weight:600}.goal-wizard-input{border:1px solid var(--color-surface-alt);width:100%;font-size:var(--text-body-md);font-family:var(--font-body);background:var(--color-surface-card);color:var(--color-primary);border-radius:2px;padding:10px 12px;transition:border-color .15s}.goal-wizard-input:focus{border-color:var(--color-primary);outline:none}.goal-wizard-textarea{border:1px solid var(--color-surface-alt);width:100%;font-size:var(--text-body-md);font-family:var(--font-body);resize:vertical;background:var(--color-surface-card);color:var(--color-primary);border-radius:2px;padding:10px 12px}.goal-wizard-textarea:focus{border-color:var(--color-primary);outline:none}.goal-sport-grid,.goal-event-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.goal-sport-grid{grid-template-columns:repeat(2,1fr)}.goal-event-option{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);color:var(--color-primary);cursor:pointer;font-size:var(--text-label);border-radius:2px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;transition:border-color .15s,background .15s;display:flex}.goal-event-option:hover{border-color:var(--color-secondary)}.goal-event-option.selected{border-color:var(--color-primary);background:var(--color-surface)}.goal-event-option strong{font-size:var(--text-body-md)}.goal-event-option span:last-child{color:var(--color-secondary)}.goal-event-icon{color:var(--color-primary);justify-content:center;align-items:center;min-height:24px;display:inline-flex}.goal-event-icon svg{display:block}.goal-time-inputs{align-items:center;gap:6px;display:flex}.goal-time-field{text-align:center;width:60px}.goal-wizard-help-text{color:var(--color-secondary);font-size:var(--text-label);margin:-2px 0 10px;line-height:1.45}.goal-wizard-checkbox{font-size:var(--text-body-sm);cursor:pointer;color:var(--color-secondary);align-items:center;gap:8px;margin-top:12px;display:flex}.goal-days-selector{gap:8px;display:flex}.goal-day-btn{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);width:40px;height:40px;color:var(--color-primary);cursor:pointer;font-weight:600;font-size:var(--text-body-md);border-radius:2px;justify-content:center;align-items:center;transition:border-color .15s,background .15s;display:flex}.goal-day-btn:hover{border-color:var(--color-secondary)}.goal-day-btn.selected{border-color:var(--color-primary);background:var(--color-surface)}.goal-priority-options{flex-direction:column;gap:8px;display:flex}.goal-priority-option{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);color:var(--color-primary);cursor:pointer;text-align:left;border-radius:2px;flex-direction:column;gap:2px;padding:12px 14px;transition:border-color .15s;display:flex}.goal-priority-option strong{font-size:var(--text-body-md)}.goal-priority-option span{font-size:var(--text-label);color:var(--color-secondary)}.goal-priority-option:hover{border-color:var(--color-secondary)}.goal-priority-option.selected{border-color:var(--color-primary);background:var(--color-surface)}.goal-inline-help{color:var(--color-accent);cursor:pointer;font-size:var(--text-label);background:0 0;border:none;align-self:flex-start;margin-top:10px;padding:0;font-weight:600}.goal-help-card{border:1px solid var(--color-surface-alt);background:var(--color-surface);color:var(--color-primary);font-size:var(--text-body-sm);margin-top:10px;padding:12px 14px;line-height:1.45}.goal-help-card p{color:var(--color-secondary);margin-top:4px}.goal-wizard-summary{background:var(--color-surface);font-size:var(--text-body-sm);border-radius:2px;margin-top:20px;padding:16px}.goal-wizard-summary h4{font-family:var(--font-display);margin-bottom:8px;font-weight:700}.goal-wizard-summary p{color:var(--color-secondary);margin-bottom:4px}.goal-wizard-summary p strong{color:var(--color-primary)}.goal-wizard-footer{border-top:1px solid var(--color-surface-alt);align-items:center;gap:8px;padding:16px 24px;display:flex}.goal-wizard-footer-spacer{flex:1}.goal-detail-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.goal-back-btn{cursor:pointer;font-size:var(--text-body-md);color:var(--color-secondary);background:0 0;border:none;align-items:center;gap:6px;padding:4px 0;display:flex}.goal-back-btn:hover{color:var(--color-primary)}.goal-detail-actions{align-items:center;gap:4px;display:flex}.goal-action-icon{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);cursor:pointer;width:36px;height:36px;color:var(--color-primary);border-radius:8px;justify-content:center;align-items:center;transition:border-color .15s,background .15s;display:flex;position:relative}.goal-action-icon:hover{border-color:var(--color-accent);background:var(--color-surface-alt);color:var(--color-accent)}.goal-action-icon:disabled{opacity:.35;cursor:not-allowed}.goal-action-icon.danger{color:var(--color-danger)}.goal-action-icon.danger:hover{border-color:var(--color-danger)}.goal-action-badge{background:var(--color-accent);color:var(--color-on-primary);font-size:var(--text-label);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-weight:700;line-height:1;display:flex;position:absolute;top:-5px;right:-5px}.goal-more-wrap{position:relative}.goal-more-backdrop{z-index:99;position:fixed;inset:0}.goal-more-menu{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);box-shadow:var(--shadow-md);z-index:100;border-radius:8px;min-width:180px;padding:4px;position:absolute;top:calc(100% + 4px);right:0}.goal-more-item{width:100%;font-size:var(--text-body-sm);cursor:pointer;color:var(--color-primary);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;transition:background .15s;display:flex}.goal-more-item:hover{background:var(--color-surface-alt)}.goal-more-item.danger{color:var(--color-danger)}.goal-mobile-only{display:none}.goal-desktop-only{display:table}.goal-workout-card{border-bottom:1px solid var(--color-surface-alt);cursor:pointer;padding:12px;transition:background .15s}.goal-workout-card:last-child{border-bottom:none}.goal-workout-card:hover,.goal-workout-card:active{background:var(--color-surface-alt)}.goal-workout-card.completed{opacity:.55}.goal-workout-card.missed .goal-wcard-title{color:var(--color-danger)}.goal-wcard-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.goal-wcard-date{font-size:var(--text-label);color:var(--color-secondary);font-weight:500}.goal-wcard-title{font-size:var(--text-body-md);margin-bottom:6px;font-weight:600}.goal-wcard-meta{font-size:var(--text-label);color:var(--color-secondary);align-items:center;gap:8px;display:flex}@media (width<=640px){.goal-mobile-only{display:block}.goal-desktop-only{display:none}.goal-block-detail{padding:12px}.goal-block-detail-header{flex-direction:column;align-items:flex-start;gap:2px}}.goal-detail-info{margin-bottom:24px}.goal-detail-title{font-family:var(--font-display);margin-bottom:8px;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;line-height:1.1}.goal-detail-meta{font-size:var(--text-body-sm);color:var(--color-secondary);align-items:center;gap:12px;display:flex}.goal-detail-progress{margin-bottom:32px}.goal-detail-progress-header{font-size:var(--text-label);color:var(--color-secondary);justify-content:space-between;margin-bottom:8px;display:flex}.goal-structured-workouts{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);border-radius:2px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px;padding:14px 16px;display:flex}.goal-structured-workouts.is-ready{border-color:color-mix(in srgb, var(--color-accent) 34%, var(--color-surface-alt))}.goal-structured-workouts.is-running{border-color:color-mix(in srgb, var(--color-warning) 38%, var(--color-surface-alt))}.goal-structured-workouts.has-error{border-color:color-mix(in srgb, var(--color-danger) 38%, var(--color-surface-alt))}.goal-structured-main{flex:1;align-items:center;gap:18px;min-width:0;display:flex}.goal-structured-main h3{font-family:var(--font-display);font-size:var(--text-body-lg);margin:0 0 2px;font-weight:700}.goal-structured-main p{color:var(--color-secondary);font-size:var(--text-body-sm);margin:0}.goal-structured-metrics{color:var(--color-secondary);font-size:var(--text-label);white-space:nowrap;flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.goal-structured-metrics span{border:1px solid var(--color-surface-alt);background:var(--color-surface);border-radius:2px;padding:4px 8px}.goal-structured-metrics strong{color:var(--color-primary);font-weight:700}.goal-structured-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.goal-structured-btn{white-space:nowrap;min-height:36px}.goal-structured-note{color:var(--color-secondary);font-size:var(--text-label);flex-basis:100%}.goal-section-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-h3);margin:0}.goal-timeline{width:calc(100vw - var(--nav-rail-w) - 32px);margin-left:calc(50% - 50vw + var(--nav-rail-w));box-sizing:border-box;padding-right:32px}.goal-plan-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;display:flex}.goal-plan-count{color:var(--color-secondary);font-size:var(--text-body-sm);white-space:nowrap}.goal-blocks-timeline{border:1px solid var(--color-surface-alt);background:var(--color-surface-card);border-radius:2px;width:100%;height:34px;margin-bottom:18px;display:flex;overflow:hidden}.goal-block-bar{--phase-accent:var(--color-secondary);--phase-surface:color-mix(in srgb, var(--phase-accent) 18%, var(--color-surface-card));background:var(--color-surface-alt);color:var(--color-primary);cursor:pointer;border:0;justify-content:center;align-items:center;padding:0;transition:background .15s,box-shadow .15s,filter .15s;display:flex;position:relative;overflow:hidden}.goal-block-type-base{--phase-accent:var(--color-data-blue)}.goal-block-type-build{--phase-accent:var(--color-warning)}.goal-block-type-peak{--phase-accent:var(--color-accent)}.goal-block-type-taper{--phase-accent:var(--color-data-purple-soft)}.goal-block-type-recovery,.goal-block-type-default{--phase-accent:var(--color-secondary)}.goal-block-bar:hover,.goal-block-bar.active{background:color-mix(in srgb, var(--phase-accent) 28%, var(--color-surface-card))}.goal-block-bar.active{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--phase-accent) 72%, transparent)}.goal-block-bar.current:after{content:"";background:var(--phase-accent);border-radius:999px;height:2px;position:absolute;inset:auto 10% 0}.goal-block-label{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;color:var(--phase-accent);white-space:nowrap;text-overflow:ellipsis;opacity:.72;padding:0 4px;font-weight:700;overflow:hidden}.goal-block-detail{background:var(--color-surface-card);border:1px solid var(--color-surface-alt);border-radius:2px;padding:20px}.goal-block-detail-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.goal-block-detail-header h4{font-family:var(--font-display);font-weight:700;font-size:var(--text-body-lg)}.goal-block-dates{font-size:var(--text-label);color:var(--color-secondary)}.goal-block-focus{font-size:var(--text-body-sm);color:var(--color-secondary);margin-bottom:4px}.goal-block-volume{font-size:var(--text-body-sm);color:var(--color-secondary);margin-bottom:12px}.goal-block-workouts{overflow:hidden}.goal-no-workouts{font-size:var(--text-body-sm);color:var(--color-secondary)}.goal-workouts-table{border-collapse:collapse;width:100%;font-size:var(--text-label);table-layout:fixed}.goal-workouts-table th{text-align:left;border-bottom:1px solid var(--color-surface-alt);font-weight:600;font-size:var(--text-label);text-transform:uppercase;letter-spacing:.05em;color:var(--color-secondary);padding:6px 8px}.goal-workouts-table td{border-bottom:1px solid var(--color-surface-alt);text-overflow:ellipsis;white-space:nowrap;padding:6px 8px;overflow:hidden}.goal-workouts-table td:nth-child(2){white-space:normal;word-break:break-word}.goal-workouts-table tr.completed{color:var(--color-secondary)}.goal-workouts-table tr.missed td{color:var(--color-danger)}.goal-workout-row{cursor:pointer;transition:background .15s}.goal-workout-row:hover{background:var(--color-surface-alt);color:var(--color-accent)}.goal-week-group{margin-bottom:1rem}.goal-week-header{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.04em;color:var(--color-secondary);border-bottom:1px solid var(--color-surface-alt);justify-content:space-between;align-items:center;padding:.4rem 0;font-weight:600;display:flex}.goal-week-dates{font-weight:400;font-size:var(--text-label)}.goal-week-phase{border:1px solid var(--color-surface-alt);color:var(--color-primary);background:var(--color-surface);text-transform:none;letter-spacing:0;border-radius:2px;align-items:center;margin-left:8px;padding:2px 6px;display:inline-flex}.goal-tipo-badge{font-size:var(--text-label);border:1px solid var(--color-surface-alt);border-radius:2px;padding:1px 6px}.goal-tipo-badge.race{border-color:color-mix(in srgb, var(--color-data-blue) 45%, var(--color-surface-alt));background:color-mix(in srgb, var(--color-data-blue) 12%, transparent);color:var(--color-primary);font-weight:700}@media (width<=640px){.goal-timeline{width:100%;margin-left:0;padding-right:0}.goal-structured-workouts,.goal-structured-main,.goal-structured-actions{flex-direction:column;align-items:stretch}.goal-structured-main{gap:10px}.goal-structured-metrics{white-space:normal;margin-left:0}.goal-structured-actions{width:100%}.goal-structured-btn{justify-content:center;width:100%}.goal-plan-heading{align-items:flex-start}.goal-blocks-timeline{height:38px}.goal-week-header{flex-direction:column;align-items:flex-start;gap:4px}.goal-wcard-meta{flex-wrap:wrap}.goal-block-detail{padding:12px}.goal-block-detail-header{flex-direction:column;align-items:flex-start;gap:2px}}.goal-status-check{color:var(--color-success);font-weight:700}.goal-status-missed{color:var(--color-danger);font-weight:700}.goal-status-pending{opacity:.5}.goal-status-running{color:var(--color-warning);letter-spacing:0;font-weight:700}.btn-primary{background:var(--color-accent);color:var(--color-on-accent);font-size:var(--text-body-sm);cursor:pointer;border:none;border-radius:2px;align-items:center;gap:6px;padding:8px 16px;font-weight:600;transition:opacity .15s;display:flex}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--color-surface-card);color:var(--color-primary);border:1px solid var(--color-surface-alt);font-size:var(--text-body-sm);cursor:pointer;border-radius:2px;padding:8px 16px;font-weight:600}.btn-secondary:hover{background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface-card));border-color:var(--color-accent)}.btn-danger-outline{background:var(--color-surface-card);color:var(--color-danger);border:1px solid var(--color-danger);font-size:var(--text-body-sm);cursor:pointer;opacity:.7;border-radius:2px;padding:8px 16px;font-weight:600}.btn-danger-outline:hover{opacity:1}.btn-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;text-decoration:underline}.goal-garmin-status{font-size:var(--text-label);color:var(--color-secondary);align-items:flex-start;gap:6px;margin-bottom:16px;display:flex}.goal-garmin-status.has-error svg{stroke:var(--color-danger)}.goal-garmin-status.is-running svg{stroke:var(--color-warning)}.goal-garmin-status-copy{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.goal-upload-notice.success{color:var(--color-success)}.goal-upload-notice.error{color:var(--color-danger)}.goal-upload-notice.pending{color:var(--color-warning)}.goal-upload-errors{gap:6px;margin:-4px 0 16px;display:grid}.goal-upload-error{border:1px solid color-mix(in srgb, var(--color-danger) 28%, transparent);background:color-mix(in srgb, var(--color-danger) 7%, transparent);font-size:var(--text-label);border-radius:4px;justify-content:space-between;gap:12px;padding:8px 10px;display:flex}.goal-upload-error strong{color:var(--color-primary);white-space:nowrap}.goal-upload-error span{color:var(--color-danger);text-align:right;overflow-wrap:anywhere}.goal-adapt-banner{background:color-mix(in srgb, var(--color-warning) 8%, transparent);border:1px solid color-mix(in srgb, var(--color-warning) 25%, transparent);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:12px 16px;display:flex}.goal-adapt-banner strong{font-size:var(--text-body-md);margin-bottom:2px;display:block}.goal-adapt-banner p{font-size:var(--text-label);color:var(--color-secondary);margin:0}.goal-proposal-card{background:var(--color-surface);border:1px solid var(--color-surface-alt);border-radius:12px;margin-top:12px;padding:16px}.goal-proposal-header{gap:8px;margin-bottom:8px;display:flex}.goal-priority-badge{font-size:var(--text-label);text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 8px;font-weight:700}.goal-priority-badge.priority-resistencia{background:color-mix(in srgb, var(--color-accent) 15%, transparent);color:var(--color-accent)}.goal-priority-badge.priority-velocidad{background:color-mix(in srgb, var(--color-priority-b) 15%, transparent);color:var(--color-priority-b)}.goal-priority-badge.priority-mixto{background:color-mix(in srgb, var(--color-priority-c) 15%, transparent);color:var(--color-priority-c)}.goal-proposal-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-h3);margin-bottom:12px}.goal-proposal-details{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.goal-proposal-row{font-size:var(--text-body-sm);justify-content:space-between;display:flex}.goal-proposal-label{color:var(--color-secondary)}.goal-proposal-actions{align-items:center;gap:8px;display:flex}.goal-proposal-success{font-size:var(--text-body-sm);color:var(--color-success)}.goal-proposal-success a{color:var(--color-primary);text-decoration:underline}.goal-proposal-error{font-size:var(--text-body-sm);color:var(--color-danger);align-items:center;gap:8px;display:flex}.public-shell{background:var(--color-surface);min-height:100vh;color:var(--color-primary);flex-direction:column;display:flex}.public-main{flex:auto;width:100%}.public-header{z-index:var(--z-header);background:color-mix(in srgb, var(--color-surface) 88%, transparent);-webkit-backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--color-surface-alt);position:sticky;top:0}.public-header-inner{max-width:var(--layout-content-max);padding:var(--space-md) var(--space-xl);align-items:center;gap:var(--space-lg);margin:0 auto;display:flex}.public-header-logo{color:var(--color-primary);flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex}.public-header-logo-img{--brand-logo-height:28px;height:var(--brand-logo-height);color:var(--color-primary)}.public-header-nav{gap:var(--space-lg);margin-left:var(--space-lg);flex:1;display:flex}.public-header-nav a{font-family:var(--font-body);font-size:var(--text-body-md);font-weight:var(--font-weight-medium);color:var(--color-secondary);transition:color var(--transition-fast);text-decoration:none}.public-header-nav a:hover,.public-header-nav a:focus-visible{color:var(--color-primary)}.public-header-actions{align-items:center;gap:var(--space-sm);margin-left:auto;display:flex}.public-header-locale-select{appearance:none;border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);color:var(--color-primary);font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;background-image:linear-gradient(45deg, transparent 50%, var(--color-secondary) 50%), linear-gradient(135deg, var(--color-secondary) 50%, transparent 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding:6px 26px 6px 10px}.public-header-cta{white-space:nowrap}.public-footer{background:var(--color-surface-alt);color:var(--color-primary);padding:var(--space-2xl) var(--space-xl) var(--space-lg);margin-top:var(--space-3xl);border-top:1px solid color-mix(in srgb, var(--color-primary) 10%, transparent)}.public-footer-inner{max-width:var(--layout-content-max);gap:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid color-mix(in srgb, var(--color-primary) 10%, transparent);grid-template-columns:1.4fr 2fr;margin:0 auto;display:grid}.public-footer-brand{gap:var(--space-sm);flex-direction:column;display:flex}.public-footer-logo-img{--brand-logo-height:32px;height:var(--brand-logo-height)}.public-footer-brand-tagline{font-family:var(--font-body);font-size:var(--text-body-md);color:var(--color-secondary);max-width:32ch}.public-footer-cols{gap:var(--space-xl);grid-template-columns:repeat(3,1fr);display:grid}.public-footer-col-title{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-secondary);margin:0 0 var(--space-md)}.public-footer-col ul{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.public-footer-col a{color:var(--color-primary);font-size:var(--text-body-md);transition:color var(--transition-fast);text-decoration:none}.public-footer-col a:hover,.public-footer-col a:focus-visible{color:var(--color-accent)}.public-footer-col-body{font-size:var(--text-body-md);color:var(--color-secondary);margin:0 0 var(--space-sm)}.public-footer-email{font-family:var(--font-mono);font-size:var(--text-mono);color:var(--color-accent);text-decoration:none}.public-footer-email:hover{text-decoration:underline}.public-footer-bottom{max-width:var(--layout-content-max);padding-top:var(--space-md);font-size:var(--text-body-sm);color:var(--color-secondary);margin:0 auto}.landing-container{max-width:var(--layout-content-max);padding:0 var(--space-xl);margin:0 auto}.landing-section{padding:var(--space-3xl) 0;border-top:1px solid var(--color-surface-alt)}.landing-section-header{max-width:720px;margin:0 0 var(--space-2xl)}.landing-section-title{font-family:var(--font-display);font-size:var(--text-h1);font-weight:var(--font-weight-bold);line-height:var(--line-height-h1);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--space-md)}.landing-section-subtitle{font-family:var(--font-body);font-size:var(--text-body-lg);line-height:var(--line-height-body-lg);color:var(--color-secondary);max-width:68ch;margin:0}.landing-eyebrow{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-accent);border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);border-radius:var(--radius-full);margin-bottom:var(--space-md);padding:4px 10px;display:inline-block}.landing-hero{padding:var(--space-3xl) 0 var(--space-2xl)}.landing-hero-grid{gap:var(--space-2xl);grid-template-columns:1.1fr .9fr;align-items:center;display:grid}.landing-hero-copy{flex-direction:column;align-items:flex-start;display:flex}.landing-hero-title{font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-display);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--space-md)}.landing-hero-subtitle{font-family:var(--font-body);font-size:var(--text-body-lg);line-height:var(--line-height-body-lg);color:var(--color-secondary);margin:0 0 var(--space-xl);max-width:56ch}.landing-hero-ctas{gap:var(--space-md);flex-wrap:wrap;display:flex}.landing-cta-primary,.landing-cta-secondary{text-decoration:none}.landing-hero-visual{justify-content:center;display:flex}.landing-mockup{background:var(--color-surface-card);width:100%;max-width:460px;color:var(--color-primary);border:1px solid var(--color-surface-alt);border-radius:var(--radius-lg);padding:var(--space-xl);gap:var(--space-lg);box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.landing-mockup-status{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-secondary);justify-content:space-between;align-items:center;display:flex}.landing-mockup-status-value{color:var(--color-accent)}.landing-mockup-metric{align-items:baseline;gap:var(--space-sm);display:flex}.landing-mockup-metric-label{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-secondary);margin-right:var(--space-md)}.landing-mockup-metric-value{font-family:var(--font-display);font-size:var(--text-metric);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tighter);line-height:var(--line-height-metric)}.landing-mockup-metric-unit{font-family:var(--font-mono);font-size:var(--text-mono);color:var(--color-secondary)}.landing-mockup-row{gap:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}.landing-mockup-row>div{flex-direction:column;gap:4px;display:flex}.landing-mockup-sublabel{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-secondary)}.landing-mockup-subvalue{font-family:var(--font-display);font-size:var(--text-metric-sm);font-weight:var(--font-weight-semibold)}.landing-mockup-positive{color:var(--color-accent)}.landing-mockup-chart{width:100%;height:80px}.landing-mockup-chart svg{width:100%;height:100%}.landing-feature-grid{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.landing-feature-card{background:var(--color-surface);border:1px solid var(--color-surface-alt);border-radius:var(--radius-lg);padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.landing-feature-icon{background:color-mix(in srgb, var(--color-accent) 14%, transparent);width:44px;height:44px;color:var(--color-accent);border-radius:var(--radius-md);justify-content:center;align-items:center;display:inline-flex}.landing-feature-title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--font-weight-semibold);margin:0}.landing-feature-body{font-family:var(--font-body);font-size:var(--text-body-md);line-height:var(--line-height-body-md);color:var(--color-secondary);margin:0}.landing-sport-grid{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.landing-sport-card{border-radius:var(--radius-lg);min-height:220px;padding:var(--space-xl);justify-content:flex-start;gap:var(--space-md);background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-surface-alt);flex-direction:column;display:flex}.landing-sport-kicker{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-accent);border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);border-radius:var(--radius-full);align-self:flex-start;padding:4px 10px}.landing-sport-title{font-family:var(--font-display);font-size:var(--text-h1);font-weight:var(--font-weight-bold);line-height:var(--line-height-h1);margin:0}.landing-sport-body{font-family:var(--font-body);font-size:var(--text-body-md);line-height:var(--line-height-body-md);color:color-mix(in srgb, currentColor 72%, transparent);margin:0}.landing-audience-grid{gap:var(--space-lg);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.landing-audience-card{padding:var(--space-lg);border-left:2px solid var(--color-accent)}.landing-audience-title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-sm)}.landing-audience-body{font-family:var(--font-body);font-size:var(--text-body-md);line-height:var(--line-height-body-md);color:var(--color-secondary);margin:0}.landing-platforms{margin:0 0 var(--space-2xl);gap:var(--space-md);grid-template-columns:repeat(3,1fr);padding:0;list-style:none;display:grid}.landing-platform{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border:1px solid var(--color-surface-alt);border-radius:var(--radius-md);background:var(--color-surface);display:flex}.landing-platform-name{font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--font-weight-semibold)}.landing-platform-status{font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;border-radius:var(--radius-full);background:var(--color-surface-alt);color:var(--color-secondary);white-space:nowrap;padding:4px 10px}.landing-platform-beta .landing-platform-status{background:color-mix(in srgb, var(--color-accent) 16%, transparent);color:var(--color-accent)}.landing-platform-roadmap .landing-platform-status{background:var(--color-surface-alt);color:var(--color-secondary)}.landing-data-grid{gap:var(--space-xl);grid-template-columns:1fr 1fr;display:grid}.landing-data-title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-md)}.landing-data-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.landing-data-list li{align-items:flex-start;gap:var(--space-sm);font-family:var(--font-body);font-size:var(--text-body-md);line-height:var(--line-height-body-md);color:var(--color-primary);display:flex}.landing-data-check{color:var(--color-accent);flex-shrink:0;margin-top:2px}.landing-waitlist{background:var(--color-surface-alt);border-radius:var(--radius-xl);margin:0;margin:0 var(--space-xl);border-top:none}.landing-waitlist-grid{gap:var(--space-2xl);grid-template-columns:1fr 1fr;align-items:center;display:grid}.landing-waitlist-copy .landing-section-title{margin-top:0}.landing-waitlist-form-wrap{background:var(--color-surface);border:1px solid var(--color-surface-alt);border-radius:var(--radius-lg);padding:var(--space-xl)}.waitlist-form{gap:var(--space-md);flex-direction:column;display:flex}.waitlist-field{gap:var(--space-xs);flex-direction:column;display:flex}.waitlist-label{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-secondary)}.waitlist-input{appearance:none;background:var(--color-surface);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-body-md);color:var(--color-primary);height:var(--component-input-height);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:10px 14px}.waitlist-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 28%, transparent);outline:none}.waitlist-input[aria-invalid=true]{border-color:var(--color-danger)}.waitlist-consent{margin-top:var(--space-xs)}.waitlist-consent-label{align-items:flex-start;gap:var(--space-sm);font-family:var(--font-body);font-size:var(--text-body-sm);line-height:var(--line-height-body-sm);color:var(--color-secondary);cursor:pointer;display:flex}.waitlist-consent-label input[type=checkbox]{accent-color:var(--color-accent);flex-shrink:0;width:16px;height:16px;margin-top:3px}.waitlist-consent-label a{color:var(--color-primary);text-decoration:underline}.waitlist-error{font-family:var(--font-body);font-size:var(--text-body-sm);color:var(--color-danger);margin:0}.waitlist-submit{margin-top:var(--space-sm);width:100%}.waitlist-success{background:color-mix(in srgb, var(--color-accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center}.waitlist-success-title{font-family:var(--font-display);font-size:var(--text-h2);font-weight:var(--font-weight-bold);margin:0 0 var(--space-sm);color:var(--color-primary)}.waitlist-success-body{font-family:var(--font-body);font-size:var(--text-body-md);color:var(--color-primary);margin:0}.legal-page{padding:var(--space-2xl) 0 var(--space-3xl)}.legal-doc{display:block}.legal-doc-header{max-width:820px;margin-bottom:var(--space-2xl)}.legal-doc-title{font-family:var(--font-display);font-size:var(--text-h1);font-weight:var(--font-weight-bold);line-height:var(--line-height-h1);letter-spacing:var(--letter-spacing-tight);margin:0 0 var(--space-sm)}.legal-doc-meta{margin:0 0 var(--space-md);font-family:var(--font-body);font-size:var(--text-body-sm);color:var(--color-secondary)}.legal-doc-meta-label{text-transform:uppercase;letter-spacing:var(--letter-spacing-label);font-weight:var(--font-weight-medium)}.legal-doc-intro{font-family:var(--font-body);font-size:var(--text-body-lg);line-height:var(--line-height-body-lg);color:var(--color-secondary);margin:0}.legal-doc-grid{gap:var(--space-2xl);grid-template-columns:240px 1fr;align-items:start;display:grid}.legal-doc-toc{max-height:calc(100vh - 120px);padding-right:var(--space-md);border-right:1px solid var(--color-surface-alt);position:sticky;top:88px;overflow-y:auto}.legal-doc-toc-title{font-family:var(--font-body);font-size:var(--text-label);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-label);text-transform:uppercase;color:var(--color-secondary);margin:0 0 var(--space-md)}.legal-doc-toc ol{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.legal-doc-toc a{font-family:var(--font-body);font-size:var(--text-body-sm);color:var(--color-secondary);border-radius:var(--radius-sm);transition:background var(--transition-fast), color var(--transition-fast);padding:6px 10px;text-decoration:none;display:block}.legal-doc-toc a:hover{background:var(--color-surface-alt);color:var(--color-primary)}.legal-doc-toc a.is-active{background:var(--color-surface-alt);color:var(--color-primary);font-weight:var(--font-weight-medium)}.legal-doc-content{max-width:78ch}.legal-doc-section{padding:var(--space-xl) 0;border-bottom:1px solid var(--color-surface-alt);scroll-margin-top:88px}.legal-doc-section:last-child{border-bottom:none}.legal-doc-section-title{font-family:var(--font-display);font-size:var(--text-h2);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-md);letter-spacing:var(--letter-spacing-tight)}.legal-doc-section-body{font-family:var(--font-body);font-size:var(--text-body-md);line-height:var(--line-height-body-lg);color:var(--color-primary)}.legal-doc-section-body p{margin:0 0 var(--space-md)}.legal-doc-section-body ul,.legal-doc-section-body ol{margin:0 0 var(--space-md);padding-left:var(--space-lg);gap:var(--space-xs);flex-direction:column;display:flex}.legal-doc-section-body h4{font-family:var(--font-display);font-size:var(--text-h3);font-weight:var(--font-weight-semibold);margin:var(--space-md) 0 var(--space-sm)}.legal-doc-section-body a{color:var(--color-primary);text-decoration:underline}.legal-doc-section-body a:hover{color:var(--color-accent)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1023px){.landing-feature-grid{grid-template-columns:repeat(2,1fr)}.landing-sport-grid{grid-template-columns:1fr}.landing-sport-card{min-height:180px}.landing-audience-grid{grid-template-columns:1fr}.landing-platforms{grid-template-columns:repeat(2,1fr)}.landing-data-grid{gap:var(--space-lg);grid-template-columns:1fr}.public-footer-inner{gap:var(--space-xl);grid-template-columns:1fr}}@media (width<=767px){.public-header-inner{padding:var(--space-md);gap:var(--space-sm)}.public-header-nav{display:none}.public-header-logo-img{height:24px}.landing-container{padding:0 var(--space-md)}.landing-hero{padding:var(--space-2xl) 0 var(--space-xl)}.landing-hero-grid{gap:var(--space-xl);grid-template-columns:1fr}.landing-hero-title{font-size:2.25rem}.landing-section{padding:var(--space-2xl) 0}.landing-section-title{font-size:1.875rem}.landing-feature-grid{grid-template-columns:1fr}.landing-sport-card{min-height:auto;padding:var(--space-lg)}.landing-platforms{grid-template-columns:1fr}.landing-waitlist{margin:0 var(--space-md);padding:var(--space-xl) 0}.landing-waitlist-grid{gap:var(--space-xl);grid-template-columns:1fr}.landing-waitlist-form-wrap{padding:var(--space-lg)}.public-footer{padding:var(--space-xl) var(--space-md) var(--space-lg);margin-top:var(--space-2xl)}.public-footer-cols{gap:var(--space-lg);grid-template-columns:1fr}.legal-doc-grid{gap:var(--space-xl);grid-template-columns:1fr}.legal-doc-toc{border-right:none;border-bottom:1px solid var(--color-surface-alt);max-height:none;padding-right:0;padding-bottom:var(--space-md);position:static}.legal-doc-toc ol{flex-flow:wrap}}
