:root{color-scheme:dark;--charcoal-950: #141416;--charcoal-900: #1B1B1F;--charcoal-850: #1C1C1F;--charcoal-800: #232328;--zinc-500: #71717A;--zinc-400: #A1A1AA;--zinc-300: #D4D4D8;--zinc-200: #E4E4E7;--pure-white: #FFFFFF;--pure-black: #000000;--glass-chrome-bg: linear-gradient(145deg, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, .06) 55%, rgba(255, 255, 255, .03) 100%), rgba(22, 22, 26, .62);--glass-card-bg: linear-gradient(145deg, rgba(255, 255, 255, .14) 0%, rgba(255, 255, 255, .055) 55%, rgba(255, 255, 255, .025) 100%), rgba(22, 22, 26, .58);--glass-card-hover-bg: linear-gradient(145deg, rgba(255, 255, 255, .19) 0%, rgba(255, 255, 255, .08) 55%, rgba(255, 255, 255, .04) 100%), rgba(24, 24, 28, .62);--glass-pill-bg: linear-gradient(145deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .05) 100%), rgba(22, 22, 26, .45);--glass-pill-hover-bg: linear-gradient(145deg, rgba(255, 255, 255, .18) 0%, rgba(255, 255, 255, .08) 100%), rgba(24, 24, 28, .5);--glass-specular: inset 0 1px 1px rgba(255, 255, 255, .2);--glass-specular-chrome: inset 0 1px 1px rgba(255, 255, 255, .22);--glass-specular-hover: inset 0 1px 1.5px rgba(255, 255, 255, .26);--glass-specular-pill: inset 0 1px 0 rgba(255, 255, 255, .15);--glass-shadow: 0 18px 40px rgba(0, 0, 0, .38);--glass-shadow-chrome: 0 20px 44px rgba(0, 0, 0, .44);--glass-shadow-hover: 0 22px 46px rgba(0, 0, 0, .46);--glass-cta-shadow: 0 12px 28px rgba(0, 0, 0, .4);--header-scrim-bg: rgba(20, 20, 22, .82);--backdrop-scrim: rgba(0, 0, 0, .72);--sheet-backdrop-bg: rgba(27, 27, 31, .95);--surface-overlay-subtle: rgba(255, 255, 255, .06);--surface-overlay-active: rgba(255, 255, 255, .16);--surface-track-bg: rgba(255, 255, 255, .12);--surface-code-bg: rgba(12, 12, 14, .85);--surface-handle-bg: rgba(255, 255, 255, .25);--glass-border-subtle: rgba(255, 255, 255, .1);--topo-glow-top: radial-gradient(circle at 20% 26%, rgba(255, 255, 255, .085) 0%, rgba(255, 255, 255, .025) 32%, transparent 62%);--topo-glow-bottom: radial-gradient(circle at 80% 70%, rgba(96, 165, 250, .1) 0%, rgba(255, 255, 255, .03) 34%, transparent 65%);--blue-400: #60A5FA;--blue-300: #93C5FD;--sky-400: #38BDF8;--emerald-400: #34D399;--emerald-300: #6EE7B7;--violet-400: #A78BFA;--purple-400: #C084FC;--hr-z1: #34D399;--hr-z2: #A3E635;--hr-z3: #FACC15;--hr-z4: #FB923C;--hr-z5: #F87171;--amber-600: #D97706;--amber-500: #F59E0B;--amber-400: #FBBF24;--amber-300: #FCD34D;--amber-200: #FDE68A;--red-500: #EF4444;--red-400: #F87171;--tint-accent-bg: rgba(96, 165, 250, .14);--tint-accent-glow: rgba(96, 165, 250, .25);--tint-success-bg: rgba(52, 211, 153, .14);--tint-warning-bg: rgba(245, 158, 11, .14);--tint-danger-bg: rgba(239, 68, 68, .14);--tint-purple-bg: rgba(192, 132, 252, .12);--tint-trail-bg: rgba(52, 211, 153, .16);--tint-trail-glow: radial-gradient(circle at 0% 50%, rgba(52, 211, 153, .1) 0%, transparent 56%);--tint-swim-bg: rgba(56, 189, 248, .16);--tint-swim-glow: radial-gradient(circle at 0% 50%, rgba(56, 189, 248, .1) 0%, transparent 56%);--tint-bike-bg: rgba(167, 139, 250, .16);--tint-bike-glow: radial-gradient(circle at 0% 50%, rgba(167, 139, 250, .1) 0%, transparent 56%);--tint-default-sport-bg: rgba(255, 255, 255, .12);--tint-default-sport-glow: radial-gradient(circle at 0% 50%, rgba(255, 255, 255, .05) 0%, transparent 56%);--source-garmin: #007CC3;--source-coros: #E2E8F0;--source-suunto: #E4002B;--source-polar: #D10019;--source-wahoo: #0091D5;--source-amazfit: #F59E0B;--source-huawei: #CF0A2C;--source-other: var(--zinc-500);--color-bg: var(--charcoal-950);--color-glass-chrome: var(--glass-chrome-bg);--color-glass: var(--glass-card-bg);--color-glass-hover: var(--glass-card-hover-bg);--color-glass-pill: var(--glass-pill-bg);--color-glass-pill-hover: var(--glass-pill-hover-bg);--color-text: var(--pure-white);--color-text-soft: var(--zinc-300);--color-text-secondary: var(--zinc-400);--color-text-missing: rgba(161, 161, 170, .75);--color-cta-bg: var(--pure-white);--color-cta-hover: var(--zinc-200);--color-cta-text: var(--charcoal-950);--color-accent: var(--blue-400);--color-accent-soft: var(--blue-300);--color-hr-z1: var(--hr-z1);--color-hr-z2: var(--hr-z2);--color-hr-z3: var(--hr-z3);--color-hr-z4: var(--hr-z4);--color-hr-z5: var(--hr-z5);--color-sport-trail: var(--emerald-400);--color-sport-swim: var(--sky-400);--color-sport-bike: var(--violet-400);--color-success: var(--emerald-400);--color-warning: var(--amber-300);--color-danger: var(--red-400);--font-sans: "Plus Jakarta Sans", "Outfit", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-features-data: "tnum" 1, "cv11" 1;--text-display: 1.875rem;--leading-display: 2.25rem;--text-title: 1.375rem;--leading-title: 1.75rem;--text-heading: 1.0625rem;--leading-heading: 1.5rem;--text-metric: 1.25rem;--leading-metric: 1.5rem;--text-body: .9375rem;--leading-body: 1.375rem;--text-input: 1rem;--text-label: .75rem;--leading-label: 1rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius-control: 16px;--radius-panel: 20px;--radius-card: 28px;--radius-sheet: 32px;--radius-full: 9999px;--target-size: 44px;--bottom-nav-height: 76px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-ios: cubic-bezier(.32, .72, 0, 1);--ease-spring-subtle: linear(0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 17.7%, 1.017 20.9%, 1.041 24.3%, 1.028 29.7%, 1.003 38.7%, .996 47.4%, 1);--dur-press: .1s;--dur-fast: .14s;--dur-sheet: .22s;--z-header: 30;--z-nav: 40;--z-toast: 50;--z-sheet: 60;--bg-primary: var(--color-bg);--bg-secondary: var(--charcoal-900);--bg-card: var(--charcoal-850);--bg-card-hover: var(--charcoal-800);--surface-raised: var(--charcoal-850);--border-color: var(--glass-border-subtle);--text-main: var(--color-text);--text-muted: var(--color-text-secondary);--action-fill: var(--color-cta-bg);--accent-primary: var(--color-accent);--accent-emerald: var(--color-success);--accent-rose: var(--color-danger);--accent-amber: var(--amber-500);--coros-color: var(--source-coros);--garmin-color: var(--source-garmin)}@media(pointer:fine){:root{--target-size: 36px}}@media(min-width:1024px){:root{--text-input: .875rem}}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/plus-jakarta-sans-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/plus-jakarta-sans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/plus-jakarta-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/outfit-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/outfit-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-block:5rem calc(var(--bottom-nav-height) + var(--safe-bottom) + 1rem)}html,body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100%}h1,h2,h3,h4{text-wrap:balance;letter-spacing:-.015em}p,li{text-wrap:pretty}code{font-family:var(--font-mono);font-size:.85em}button,input,select,textarea{font:inherit;color:inherit}:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(pointer:coarse){:where(button,summary,a.btn,input,select){scroll-margin-block:5rem calc(var(--bottom-nav-height) + var(--safe-bottom) + 1rem)}}.tnum,.num{font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data)}.topo-bg{background-color:var(--color-bg);background-image:var(--topo-glow-top),var(--topo-glow-bottom),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='640' viewBox='0 0 640 640'%3E%3Cpath d='M90 310 C150 220, 310 210, 375 290 C440 370, 385 485, 265 495 C145 505, 30 400, 90 310 Z' fill='%23ffffff' fill-opacity='0.055'/%3E%3Cpath d='M155 335 C195 275, 290 270, 330 320 C370 370, 335 440, 260 445 C185 450, 115 395, 155 335 Z' fill='%23ffffff' fill-opacity='0.045'/%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.10' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M-50 120 C80 60, 180 180, 320 110 C450 45, 520 150, 680 90'/%3E%3Cpath d='M-50 185 C90 125, 190 245, 330 170 C460 100, 530 210, 680 150'/%3E%3Cpath d='M-50 250 C100 190, 200 305, 340 230 C470 160, 540 265, 680 210'/%3E%3Cpath d='M90 310 C150 220, 310 210, 375 290 C440 370, 385 485, 265 495 C145 505, 30 400, 90 310 Z'/%3E%3Cpath d='M155 335 C195 275, 290 270, 330 320 C370 370, 335 440, 260 445 C185 450, 115 395, 155 335 Z'/%3E%3Cpath d='M-40 520 C120 470, 240 570, 410 510 C510 475, 570 530, 680 500'/%3E%3C/g%3E%3C/svg%3E");background-size:cover,cover,640px 640px}.w-full{width:100%}.min-w-0{min-width:0}.shrink-0{flex-shrink:0}.ml-auto{margin-left:auto}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-3{margin-bottom:var(--space-3)}.text-xs{font-size:var(--text-label);line-height:var(--leading-label)}.text-center{text-align:center}.text-muted{color:var(--color-text-secondary)}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-mono{font-family:var(--font-mono)}.break-all{word-break:break-all}.select-all{user-select:all;-webkit-user-select:all}.hidden{display:none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.shell-root{display:flex;flex-direction:column;min-height:100dvh}@media(min-width:1024px){.shell-root{flex-direction:row}}.desktop-sidebar{display:none}@media(min-width:1024px){.desktop-sidebar{display:flex;flex-direction:column;justify-content:space-between;width:16rem;flex-shrink:0;margin:var(--space-4);padding:var(--space-5);border-radius:var(--radius-card);position:sticky;top:var(--space-4);height:calc(100dvh - 2rem);min-height:620px;z-index:var(--z-nav)}}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1)}.brand-mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-control);background-color:var(--color-cta-bg);color:var(--color-cta-text);box-shadow:var(--glass-cta-shadow);flex-shrink:0}.brand-name{font-size:1rem;font-weight:700;letter-spacing:-.015em;color:var(--color-text);white-space:nowrap}.sidebar-pill-wrap{margin-top:var(--space-4)}.sidebar-nav{margin-top:var(--space-6);display:flex;flex-direction:column;gap:.375rem}.nav-side{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;min-height:46px;padding:0 var(--space-4);border-radius:var(--radius-panel);border:none;background:transparent;color:var(--color-text-soft);font-size:.875rem;font-weight:500;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-ios)}.nav-side:active{transform:scale(.98)}.nav-side:hover{background-color:var(--surface-overlay-subtle);color:var(--color-text)}.nav-side.is-active{color:var(--color-text);font-weight:600}.nav-side.is-active:hover{background-color:transparent}.nav-side-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-panel);background-color:var(--surface-overlay-active);box-shadow:var(--glass-specular-pill);pointer-events:none}.nav-side-label{position:relative;z-index:1;display:flex;align-items:center;gap:var(--space-3);min-width:0}.nav-side.is-active .nav-side-icon{color:var(--color-accent)}.nav-side-dot{position:relative;z-index:1;width:6px;height:6px;border-radius:var(--radius-full);background-color:var(--color-accent);flex-shrink:0}.nav-warn-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--amber-400);flex-shrink:0}.sidebar-footer{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4)}.sidebar-cta{width:100%;min-height:48px;border-radius:var(--radius-panel)}.mobile-header{position:sticky;top:0;z-index:var(--z-header);background-color:var(--header-scrim-bg);backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);padding:calc(var(--safe-top) + var(--space-3)) calc(var(--safe-right) + var(--space-4)) var(--space-3) calc(var(--safe-left) + var(--space-4))}@media(min-width:1024px){.mobile-header{display:none}}.mobile-header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.mobile-header-brand{display:flex;align-items:center;gap:.625rem;min-width:0}.mobile-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.mobile-header-cta{min-height:44px;min-width:44px;padding:0 var(--space-3);border-radius:var(--radius-control);font-size:var(--text-label)}.mobile-header-cta-label{display:none}@media(min-width:480px){.mobile-header-cta-label{display:inline}}.mobile-header-sub{margin-top:.375rem}.tablet-nav{display:none}@media(min-width:641px)and (max-width:1023px){.tablet-nav{display:flex;align-items:center;gap:.25rem;padding:.25rem;border-radius:var(--radius-full)}}.tnav-btn{position:relative;min-height:36px;padding:0 .85rem;border-radius:var(--radius-full);border:none;background:transparent;color:var(--color-text-soft);font-size:var(--text-label);font-weight:500;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;transition:color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-ios)}.tnav-btn:active{transform:scale(.96)}.tnav-btn:hover{color:var(--color-text)}.tnav-btn.is-active{color:var(--color-cta-text);font-weight:600}.tnav-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-full);background-color:var(--color-cta-bg);pointer-events:none}.nav-pill-label{position:relative;z-index:1}.shell-main{flex:1;min-width:0;padding:var(--space-5) calc(var(--safe-right) + var(--space-4)) calc(var(--bottom-nav-height) + var(--safe-bottom) + var(--space-8)) calc(var(--safe-left) + var(--space-4))}@media(min-width:641px){.shell-main{padding:var(--space-6) calc(var(--safe-right) + var(--space-6)) var(--space-8) calc(var(--safe-left) + var(--space-6))}}@media(min-width:1024px){.shell-main{padding:var(--space-8)}}.shell-content{max-width:960px;margin:0 auto}.mobile-dock{position:fixed;left:calc(var(--safe-left) + var(--space-3));right:calc(var(--safe-right) + var(--space-3));bottom:calc(var(--safe-bottom) + var(--space-3));z-index:var(--z-nav);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-1);padding:.375rem;border-radius:var(--radius-card)}@media(min-width:641px){.mobile-dock{display:none}}.mnav-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:.25rem var(--space-1);border-radius:var(--radius-panel);border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--text-label);line-height:1.2;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-ios)}.mnav-btn:active{transform:scale(.95)}.mnav-btn.is-active{color:var(--color-cta-text);font-weight:600}.mnav-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-panel);background-color:var(--color-cta-bg);box-shadow:var(--glass-cta-shadow);pointer-events:none}.mnav-btn>:not(.mnav-pill){position:relative;z-index:1}.mnav-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.mnav-warn-dot{position:absolute;top:-2px;right:-6px;width:9px;height:9px;border-radius:var(--radius-full);background-color:var(--amber-600);box-shadow:0 0 0 2px var(--charcoal-850)}.mnav-btn.is-active .mnav-warn-dot{box-shadow:0 0 0 2px var(--color-cta-bg)}.app-alert{margin-bottom:var(--space-4)}.app-alert-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3)}.stack{display:flex;flex-direction:column}.form-stack{display:flex;flex-direction:column;gap:.85rem}.segmented{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:var(--space-2)}.action-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2)}@media(min-width:520px){.action-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:380px){.brand-name{font-size:.9375rem}.mobile-header-actions{min-width:0}}.glass-chrome{background:var(--color-glass-chrome);backdrop-filter:blur(32px) saturate(160%);-webkit-backdrop-filter:blur(32px) saturate(160%);border:none;box-shadow:var(--glass-specular-chrome),var(--glass-shadow-chrome)}.glass-card{background:var(--color-glass);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:none;border-radius:var(--radius-card);box-shadow:var(--glass-specular),var(--glass-shadow)}.glass-card-interactive{transition:background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.glass-card-interactive:hover{background:var(--color-glass-hover);box-shadow:var(--glass-specular-hover),var(--glass-shadow-hover);transform:translateY(-1px)}.glass-pill{background:var(--color-glass-pill);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:none;box-shadow:var(--glass-specular-pill)}.glass-pill:hover{background:var(--color-glass-pill-hover)}.lang-toggle{display:inline-flex;align-items:center;gap:.3rem;min-height:var(--target-size);padding:.25rem .7rem;border-radius:var(--radius-full);border:none;background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);color:var(--color-text);font-size:var(--text-label);font-weight:600;cursor:pointer}.lang-toggle:active{background:var(--color-glass-pill-hover)}.section-card{background:var(--color-glass);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:none;box-shadow:var(--glass-specular),var(--glass-shadow);border-radius:var(--radius-card);padding:var(--space-4);margin-bottom:var(--space-4);min-width:0}@media(min-width:641px){.section-card{padding:var(--space-5)}}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4);gap:var(--space-3)}.section-header h1,.section-header h2{font-weight:700;line-height:1.3}.section-header h1{font-size:var(--text-display);line-height:var(--leading-display)}.section-header h2{font-size:var(--text-title);line-height:var(--leading-title)}.title-with-icon{display:flex;align-items:center;gap:var(--space-2);min-width:0}.title-with-icon svg{flex-shrink:0}.subheading{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.notice{background-color:var(--tint-accent-bg);color:var(--color-accent-soft);padding:.7rem .85rem;border-radius:var(--radius-panel);font-size:.8rem;display:flex;align-items:flex-start;gap:.6rem;margin-bottom:var(--space-4)}.notice svg{margin-top:.1rem}.alert{padding:.65rem .85rem;border-radius:var(--radius-panel);font-size:.82rem;overflow-wrap:anywhere}.alert-error{background-color:var(--tint-danger-bg);color:var(--color-danger)}.alert-warning{background-color:var(--tint-warning-bg);color:var(--color-warning)}.feedback{display:flex;align-items:flex-start;gap:.45rem;margin-top:var(--space-3);font-size:.8rem;overflow-wrap:anywhere}.feedback svg{margin-top:.15rem}.feedback-ok{color:var(--color-success)}.feedback-error{color:var(--color-danger)}.confirm-box{margin-top:var(--space-3);display:flex;flex-direction:column;gap:.6rem;background-color:var(--tint-danger-bg);padding:var(--space-3);border-radius:var(--radius-panel)}.confirm-dialog{width:min(100% - 2rem,36rem);max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 2rem);overflow-y:auto;margin:auto 1rem;background:var(--sheet-backdrop-bg);backdrop-filter:blur(32px) saturate(160%);-webkit-backdrop-filter:blur(32px) saturate(160%);padding:var(--space-5)}.confirm-text{display:flex;align-items:center;gap:.4rem;color:var(--color-danger);font-size:.85rem;font-weight:500}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-size:.875rem;font-weight:600;line-height:1.2;text-align:center;padding:.6rem var(--space-4);border-radius:var(--radius-control);border:none;cursor:pointer;min-height:var(--target-size);transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-ios),filter var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:active:not(:disabled){transform:scale(.96)}a.btn{text-decoration:none}.btn svg{flex-shrink:0}.btn-cta{background-color:var(--color-cta-bg);color:var(--color-cta-text);box-shadow:var(--glass-cta-shadow)}.btn-cta:hover:not(:disabled){background-color:var(--color-cta-hover)}.btn-cta:active:not(:disabled){transform:scale(.98)}.btn-primary{background-color:var(--color-accent);color:var(--color-cta-text)}.btn-primary:hover:not(:disabled){background-color:var(--color-accent-soft)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-secondary{background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-glass-pill-hover)}.btn-secondary:active:not(:disabled){transform:scale(.98)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){color:var(--color-text);background:var(--surface-overlay-subtle)}.btn-danger{background-color:var(--tint-danger-bg);color:var(--color-danger)}.btn-danger:active:not(:disabled){transform:scale(.98)}.btn-sm{padding:.45rem var(--space-3);font-size:var(--text-label)}.btn-xs{padding:.35rem .65rem;font-size:var(--text-label);min-height:var(--target-size)}.btn-lg{padding:.85rem var(--space-5);font-size:1rem;border-radius:var(--radius-panel)}.btn:disabled,.btn-disabled{opacity:.5;cursor:not-allowed}.btn-icon{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:var(--target-size);min-height:var(--target-size);border-radius:var(--radius-control)}.btn-icon:hover{color:var(--color-text);background-color:var(--surface-overlay-subtle)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.input-label{display:block;font-size:var(--text-label);font-weight:600;color:var(--color-text-secondary);margin-bottom:.35rem}.input-text,.input-select{display:block;background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);border:none;color:var(--color-text);padding:.65rem .95rem;border-radius:var(--radius-panel);font-size:var(--text-input);min-height:var(--target-size);font-family:inherit;width:100%;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input-text::placeholder{color:var(--color-text-secondary)}.input-text.font-mono{font-family:var(--font-mono);font-size:var(--text-input)}.input-select{padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23A1A1AA' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.input-text::-webkit-search-decoration{-webkit-appearance:none}.input-text:focus,.input-select:focus{background:var(--color-glass-pill-hover);outline:2px solid var(--color-accent);outline-offset:1px}.search-input-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.input-text.search-field{padding-left:2.5rem}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);border:none;color:var(--color-text-soft);font-size:var(--text-label);font-weight:500;padding:.4rem var(--space-4);border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;min-height:var(--target-size);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-ios);-webkit-tap-highlight-color:transparent}.chip:active{transform:scale(.95)}.chip:hover{color:var(--color-text);background:var(--color-glass-pill-hover)}.chip.chip-active{background:var(--color-cta-bg);color:var(--color-cta-text);font-weight:600;box-shadow:none}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--text-label);font-weight:500;padding:.25rem .65rem;border-radius:var(--radius-full);white-space:nowrap}.badge-btn{cursor:pointer;font-family:inherit;border:none}.status-dot{width:7px;height:7px;border-radius:var(--radius-full);flex-shrink:0}.dot-online{background-color:var(--color-success)}.dot-offline{background-color:var(--color-danger)}.dot-checking{background-color:var(--amber-400)}.badge-success{background-color:var(--tint-success-bg);color:var(--color-success)}.badge-offline{background-color:var(--tint-danger-bg);color:var(--color-danger)}.badge-neutral{background-color:var(--surface-overlay-subtle);color:var(--color-text-secondary)}.badge-warning{background-color:var(--tint-warning-bg);color:var(--color-warning)}.badge-label-short{display:none}@media(max-width:480px){.header-actions .badge .badge-label{display:none}.header-actions .badge .badge-label-short{display:inline}.header-actions .badge-btn{min-height:var(--target-size);justify-content:center;padding-inline:.65rem}}@media(max-width:380px){.header-actions .badge{font-size:var(--text-label);padding-inline:var(--space-2)}.header-actions .badge svg{flex-shrink:0}}.provider-tag{display:inline-block;font-size:var(--text-label);font-weight:600;line-height:1.35;padding:.15rem .5rem;border-radius:var(--radius-full);background:var(--surface-overlay-subtle);color:var(--color-text)}.tag-coros{color:var(--source-coros)}.tag-garmin{color:var(--source-garmin)}.tag-suunto{color:var(--source-suunto)}.tag-amazfit{color:var(--source-amazfit)}.tag-polar,.tag-huawei{color:var(--source-huawei)}.tag-wahoo{color:var(--source-wahoo)}.tag-other{color:var(--color-text-soft)}.source-badge{flex-shrink:0;font-size:var(--text-label);font-weight:600;color:var(--color-text-secondary);background:var(--surface-overlay-subtle);border-radius:var(--radius-full);padding:.1rem .45rem;margin-left:.35rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--backdrop-scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-sheet)}@media(min-width:641px){.modal-backdrop{align-items:center;padding:var(--space-4)}}.bottom-sheet-mobile{background:var(--color-glass-chrome);background-color:var(--sheet-backdrop-bg);backdrop-filter:blur(32px) saturate(160%);-webkit-backdrop-filter:blur(32px) saturate(160%);border:none;border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;width:100%;max-width:640px;max-height:calc(100dvh - var(--safe-top) - 1.5rem);display:flex;flex-direction:column;overflow:hidden;padding-bottom:var(--safe-bottom);box-shadow:var(--glass-specular-chrome),var(--glass-shadow-chrome)}@media(min-width:641px){.bottom-sheet-mobile{border-radius:var(--radius-sheet);max-height:85vh}}.bottom-sheet-drag-area{touch-action:none;cursor:grab}.bottom-sheet-drag-area:active{cursor:grabbing}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.bottom-sheet-handle{width:44px;height:5px;background-color:var(--surface-handle-bg);border-radius:var(--radius-full);margin:.65rem auto .25rem;flex-shrink:0}@media(min-width:641px){.bottom-sheet-handle{display:none}}.modal-header{padding:.6rem var(--space-3) .85rem var(--space-4);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2);flex-shrink:0}.modal-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.modal-title{margin-top:.35rem;font-size:var(--text-title);line-height:var(--leading-title);font-weight:700;overflow-wrap:anywhere}.modal-subtitle{display:flex;flex-wrap:wrap;gap:.15rem .25rem}.modal-id-pill{white-space:nowrap}.modal-body{padding:var(--space-4);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.update-banner{position:fixed;left:calc(var(--safe-left) + var(--space-3));right:calc(var(--safe-right) + var(--space-3));top:calc(var(--safe-top) + 4.5rem);bottom:auto;z-index:var(--z-toast);display:flex;flex-wrap:wrap;align-items:center;gap:.6rem var(--space-3);padding:var(--space-3) .85rem;background:var(--color-glass-chrome);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);border-radius:var(--radius-panel);box-shadow:var(--glass-specular-chrome),var(--glass-shadow-chrome);animation:slideUp var(--dur-sheet) var(--ease-out)}@media(min-width:641px){.update-banner{left:50%;right:auto;bottom:var(--space-5);top:auto;width:min(560px,calc(100% - 2rem));transform:translate(-50%);animation:fadeIn var(--dur-fast) var(--ease-out)}}.update-banner-text{flex:1;min-width:10rem;display:flex;flex-direction:column;font-size:.82rem;color:var(--color-text-secondary)}.update-banner-text strong{color:var(--color-text);font-size:.9rem}.update-banner-actions{display:flex;gap:var(--space-2);margin-left:auto}.update-toast{padding-top:.4rem;padding-bottom:.4rem}.icon-blue{color:var(--color-accent)}.icon-emerald{color:var(--color-success)}.icon-amber{color:var(--amber-400)}.icon-orange{color:var(--hr-z4)}.icon-rose{color:var(--color-danger)}.icon-indigo{color:var(--color-sport-bike)}.icon-purple{color:var(--purple-400)}.source-pill{display:inline-flex;align-items:center;gap:.4rem;min-height:24px;padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);font-size:var(--text-label);line-height:var(--leading-label);font-weight:500;color:var(--color-text);white-space:nowrap}.source-inline{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--text-label);line-height:var(--leading-label);color:var(--color-text-secondary)}.source-swatch{width:7px;height:7px;border-radius:var(--radius-full);flex-shrink:0}.source-swatch-garmin{background-color:var(--source-garmin)}.source-swatch-coros{background-color:var(--source-coros)}.source-swatch-suunto{background-color:var(--source-suunto)}.source-swatch-polar{background-color:var(--source-polar)}.source-swatch-wahoo{background-color:var(--source-wahoo)}.source-swatch-amazfit{background-color:var(--source-amazfit)}.source-swatch-huawei{background-color:var(--source-huawei)}.source-swatch-other{background-color:var(--source-other)}.source-suffix{color:var(--color-text-secondary);font-weight:500}.coverage-badge{display:inline-flex;align-items:center;gap:.35rem;min-height:24px;padding:.15rem .6rem;border-radius:var(--radius-full);font-size:var(--text-label);line-height:var(--leading-label);font-weight:500;white-space:nowrap}.coverage-tone-warning{background-color:var(--tint-warning-bg);color:var(--color-warning)}.coverage-tone-info{background-color:var(--tint-accent-bg);color:var(--color-accent-soft)}.coverage-tone-success{background-color:var(--tint-success-bg);color:var(--color-success)}.coverage-tone-neutral{background-color:var(--surface-overlay-subtle);color:var(--color-text-secondary)}.metric-tile{border-radius:var(--radius-panel);padding:.875rem var(--space-4);display:flex;flex-direction:column;gap:.35rem;min-width:0}.metric-tile-label{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--text-label);line-height:var(--leading-label);font-weight:500;color:var(--color-text-secondary)}.metric-tile-value{font-size:var(--text-metric);line-height:var(--leading-metric);font-weight:700;color:var(--color-text)}.metric-tile-unit{font-size:var(--text-label);font-weight:500;color:var(--color-text-secondary);margin-left:.25rem}.lang-switch{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--radius-full);padding:2px;gap:2px}.lang-switch-btn{min-height:36px;min-width:36px;padding:0 var(--space-2);border-radius:var(--radius-full);border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--text-label);font-weight:600;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.lang-switch-btn:hover{color:var(--color-text)}.lang-switch-btn.is-active{background-color:var(--color-cta-bg);color:var(--color-cta-text)}.local-storage-pill{display:inline-flex;align-items:center;gap:.5rem;min-height:36px;padding:.35rem .85rem;border-radius:var(--radius-control);border:none;color:var(--color-text-soft);font-size:var(--text-label);line-height:var(--leading-label);font-weight:500;cursor:pointer;text-align:left}.local-storage-pill-full{width:100%}.local-storage-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.local-storage-dot.is-ok{background-color:var(--color-success)}.local-storage-dot.is-warn{background-color:var(--amber-400)}.sport-icon-well{width:44px;height:44px;border-radius:var(--radius-control);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sport-tone-trail{background-color:var(--tint-trail-bg);color:var(--color-sport-trail)}.sport-tone-swim{background-color:var(--tint-swim-bg);color:var(--color-sport-swim)}.sport-tone-bike{background-color:var(--tint-bike-bg);color:var(--color-sport-bike)}.sport-tone-default{background-color:var(--tint-default-sport-bg);color:var(--color-text)}.alert-info{background-color:var(--tint-accent-bg);color:var(--color-accent-soft)}.alert-success{background-color:var(--tint-success-bg);color:var(--color-success)}.filter-bar{display:flex;flex-direction:column;gap:.6rem;margin-bottom:var(--space-4)}.activity-filters summary,.csv-export summary{cursor:pointer;color:var(--color-text);font-size:var(--text-label);font-weight:500;min-height:var(--target-size);display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .85rem;border-radius:var(--radius-full);background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);list-style:none}.activity-filters summary::-webkit-details-marker,.csv-export summary::-webkit-details-marker{display:none}.activity-filters summary:before,.csv-export summary:before{content:"▸";font-size:var(--text-label);color:var(--color-text-secondary)}.activity-filters[open] summary:before,.csv-export[open] summary:before{content:"▾"}.filter-active{color:var(--color-accent)}.filter-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.filter-fields label{min-width:0;color:var(--color-text-secondary);font-size:var(--text-label);font-weight:600}.filter-fields input,.filter-fields select{margin-top:.3rem}.csv-export p{margin-top:var(--space-2)}.onboarding-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);width:100%}.onboarding-actions .btn{white-space:nowrap}@media(max-width:380px){.filter-fields,.onboarding-actions{grid-template-columns:1fr}}.mobile-cards-list{display:flex;flex-direction:column;gap:var(--space-4)}.activity-card-touch{background:var(--color-glass);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:none;border-radius:var(--radius-card);box-shadow:var(--glass-specular),var(--glass-shadow);padding:var(--space-4);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-press) var(--ease-ios);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;min-width:0}.activity-card-touch:active{background:var(--color-glass-hover);transform:scale(.985)}.activity-card-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:.35rem;min-width:0}.activity-card-subtitle{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem var(--space-2);font-size:var(--text-label);color:var(--color-text-secondary);margin-bottom:.55rem}.review-pill{flex-shrink:0;font-size:var(--text-label);font-weight:600;padding:.15rem .55rem;border-radius:var(--radius-full);background-color:var(--tint-warning-bg);color:var(--color-warning);white-space:nowrap}.activity-card-header .provider-tag{flex-shrink:0}.activity-sport-title{flex:1;min-width:0;font-weight:600;font-size:var(--text-body);line-height:var(--leading-body);overflow-wrap:anywhere}.activity-date{flex-shrink:0;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data);font-size:var(--text-label);color:var(--color-text-secondary)}.activity-card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);padding:.55rem 0;margin-bottom:.55rem}.stat-col{display:flex;flex-direction:column;min-width:0}.stat-val{font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data);font-size:var(--text-metric);line-height:var(--leading-metric);font-weight:700;letter-spacing:-.02em}.stat-unit{font-size:var(--text-label);line-height:var(--leading-label);color:var(--color-text-secondary)}.activity-card-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.activity-card-extras{display:flex;flex-wrap:wrap;gap:.35rem .85rem;font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data);font-size:var(--text-label);color:var(--color-text-secondary);min-width:0}.activity-card-extras span{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap}.desktop-table-only{display:none}@media(min-width:768px){.mobile-cards-list{display:none}.desktop-table-only{display:block}}.table-container{overflow-x:auto}.table-scroll-hint{display:none;margin-bottom:var(--space-2)}@media(min-width:768px)and (max-width:1023px){.table-scroll-hint{display:block}}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;font-size:var(--text-label);font-weight:600;color:var(--color-text-secondary);padding:var(--space-2) .45rem;border-bottom:1px solid var(--border-color);white-space:nowrap}.data-table td{padding:.55rem .45rem;border-bottom:1px solid var(--surface-overlay-subtle);white-space:nowrap}.table-row-clickable{cursor:pointer}.table-row-clickable:hover{background-color:var(--surface-overlay-subtle)}.activity-name-cell{display:flex;flex-direction:column;max-width:215px}.activity-name-cell>span{overflow-wrap:anywhere}.empty-state{text-align:center;padding:var(--space-8) var(--space-2)}.activity-list{border-radius:var(--radius-card)}.activity-list .section-header h1{font-size:var(--text-display);line-height:var(--leading-display)}.activity-list .section-header p{color:var(--color-text-secondary);font-size:.875rem;margin-top:var(--space-1)}.activity-list .filter-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:start;margin-bottom:var(--space-6)}.activity-list .search-input-wrapper,.activity-list .chip-row{grid-column:1 / -1}.activity-list .activity-filters{grid-column:1;grid-row:2}.activity-list .csv-export{grid-column:2;grid-row:2}.activity-list .activity-filters[open]{grid-column:1 / -1}.activity-list .activity-filters[open]~.csv-export{grid-column:1 / -1;grid-row:4}.activity-list .activity-filters[open] .filter-fields{margin-top:var(--space-3)}.activity-list .chip-row{grid-row:3}.activity-list .csv-export[open]{grid-column:1 / -1;grid-row:4}.activity-list .csv-export p{max-width:65ch}.activity-list .data-table th:nth-child(n+4):not(:last-child),.activity-list .data-table td:nth-child(n+4):not(:last-child){text-align:right}@media(max-width:380px){.activity-list .section-header h1{font-size:var(--text-title)}}@media(min-width:768px){.activity-list .filter-bar{grid-template-columns:minmax(14rem,1fr) auto auto}.activity-list .search-input-wrapper{grid-column:1;grid-row:1}.activity-list .activity-filters{grid-column:2;grid-row:1}.activity-list .csv-export{grid-column:3;grid-row:1}.activity-list .activity-filters[open]{grid-column:1 / -1;grid-row:2}.activity-list .csv-export[open],.activity-list .activity-filters[open]~.csv-export{grid-column:1 / -1;grid-row:3}.activity-list .chip-row{grid-row:4}}.logbook-container{container-type:inline-size}.card-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:14px}.metrics-narrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);padding-top:var(--space-3);margin-top:var(--space-1)}.metrics-wide,.week-col-headers{display:none}@container (min-width: 720px){.card-grid{grid-template-columns:minmax(14rem,1fr) repeat(5,5.75rem);align-items:start;gap:var(--space-3)}.metrics-narrow{display:none}.metrics-wide{display:contents}.week-col-headers{display:grid;grid-template-columns:minmax(14rem,1fr) repeat(5,5.75rem);gap:var(--space-3);padding:0 var(--space-6) var(--space-2) var(--space-6);font-size:var(--text-label);font-weight:500;color:var(--color-text-secondary);text-align:right}.week-col-headers>:first-child{text-align:left}}.logbook-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3)}.logbook-title{font-size:var(--text-display);line-height:var(--leading-display);font-weight:700;color:var(--color-text)}.logbook-subtitle{margin-top:2px;font-size:var(--text-label);line-height:var(--leading-label);color:var(--color-text-secondary)}.review-compact-pill{display:inline-flex;align-items:center;gap:var(--space-2);min-height:36px;padding:.375rem .875rem;border-radius:var(--radius-full);border:none;background-color:var(--tint-warning-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--amber-200);font-size:var(--text-label);font-weight:500;cursor:pointer}.review-compact-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--amber-400);flex-shrink:0}.review-compact-action{padding:2px var(--space-2);border-radius:var(--radius-full);background-color:var(--surface-overlay-active);color:var(--color-text);font-size:var(--text-label);font-weight:600}.week-group{margin-top:var(--space-6)}.week-group-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2);padding:0 var(--space-1);margin-bottom:var(--space-3)}.week-group-title{font-size:var(--text-heading);line-height:var(--leading-heading);font-weight:600;color:var(--color-text)}.week-group-summary{font-size:var(--text-label);line-height:var(--leading-label);font-weight:500;color:var(--color-text-secondary)}.workout-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-4)}.workout-card{position:relative;padding:var(--space-4);overflow:hidden}@media(min-width:641px){.workout-card{padding:var(--space-5) var(--space-6)}}.workout-card-trigger{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:transparent;border:none;border-radius:inherit;cursor:pointer}.workout-card-trigger:focus-visible{outline:2px solid var(--color-cta-bg);outline-offset:2px}.workout-card-glow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;border-radius:inherit}.workout-glow-trail{background:var(--tint-trail-glow)}.workout-glow-swim{background:var(--tint-swim-glow)}.workout-glow-bike{background:var(--tint-bike-glow)}.workout-glow-default{background:var(--tint-default-sport-glow)}.workout-hr-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);background:var(--surface-track-bg);font-size:var(--text-label);font-weight:600;margin-left:4px}.workout-head{display:flex;align-items:flex-start;gap:.875rem;min-width:0}.workout-head-text{min-width:0;flex:1}.workout-title{font-size:var(--text-body);line-height:var(--leading-body);font-weight:600;color:var(--color-text);overflow-wrap:anywhere}.workout-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:2px;font-size:var(--text-label);line-height:var(--leading-label);color:var(--color-text-secondary)}.workout-subrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.workout-sparkline{display:block;flex-shrink:0}.workout-badge-slot{position:relative;z-index:2}.workout-metric-wide{text-align:right;min-width:0}.workout-metric-narrow{display:flex;flex-direction:column;gap:2px;min-width:0}.workout-metric-span2{grid-column:1 / -1}.workout-label{font-size:var(--text-label);line-height:var(--leading-label);font-weight:500;color:var(--color-text-secondary)}.workout-val{font-size:var(--text-metric);line-height:var(--leading-metric);font-weight:700;color:var(--color-text)}.workout-val-accent{color:var(--color-accent)}.workout-val-missing{color:var(--color-text-missing)}.workout-unit{font-size:var(--text-label);line-height:var(--leading-label);color:var(--color-text-secondary)}.workout-unit-inline{font-size:var(--text-label);font-weight:400;color:var(--color-text-secondary)}.header-buttons{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.drop-zone{position:relative}.drop-zone-active{box-shadow:0 0 0 2px var(--color-accent),var(--glass-specular-hover),var(--glass-shadow-hover)}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-4);border-radius:inherit;background-color:var(--backdrop-scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--color-accent-soft);font-weight:600;pointer-events:none}.import-panel{position:fixed;bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + var(--space-3));left:calc(var(--safe-left) + var(--space-3));right:calc(var(--safe-right) + var(--space-3));z-index:var(--z-toast);display:flex;align-items:flex-start;gap:.65rem;padding:var(--space-3) .85rem;background:var(--color-glass-chrome);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);border-radius:var(--radius-panel);box-shadow:var(--glass-specular-chrome),var(--glass-shadow-chrome);animation:slideUp var(--dur-sheet) var(--ease-out)}@media(min-width:641px){.import-panel{top:calc(var(--safe-top) + 4rem);bottom:auto;left:50%;right:auto;width:min(560px,calc(100% - 2rem));transform:translate(-50%);animation:fadeIn var(--dur-fast) var(--ease-out)}}.import-panel>svg{margin-top:.1rem}.import-panel-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;font-size:.82rem;color:var(--color-text-secondary)}.import-panel-text strong{color:var(--color-text);font-size:.9rem}.import-failures{margin-top:.3rem;padding-left:var(--space-4);font-size:var(--text-label);color:var(--color-danger);overflow-wrap:anywhere}.providers-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media(min-width:768px){.providers-grid{grid-template-columns:1fr 1fr}}.provider-box{background:var(--color-glass);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-radius:var(--radius-card);box-shadow:var(--glass-specular),var(--glass-shadow);padding:var(--space-4);display:flex;flex-direction:column;gap:.85rem;min-width:0}.provider-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem}.provider-header h2{font-size:1rem;font-weight:600}.provider-header .badge{flex-shrink:0}.provider-links{display:flex;flex-direction:column;gap:.35rem}.provider-link{display:flex;align-items:center;gap:var(--space-2);font-size:.8rem;color:var(--color-text-secondary);text-decoration:none;padding:var(--space-2) .65rem;border-radius:var(--radius-control);background:var(--color-glass-pill);min-height:var(--target-size)}.provider-link:hover,.provider-link:active{color:var(--color-text);background:var(--color-glass-pill-hover)}.provider-details{display:flex;flex-direction:column;gap:.6rem}.detail-item{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);font-size:.82rem;color:var(--color-text-secondary);min-width:0}.detail-item>:last-child{color:var(--color-text);text-align:right;min-width:0}.tools-tag-cloud{display:flex;flex-wrap:wrap;gap:.35rem;max-height:180px;overflow-y:auto;padding:var(--space-2);background-color:var(--surface-code-bg);border-radius:var(--radius-control)}.tool-chip{font-family:var(--font-mono);font-size:var(--text-label);padding:.15rem .45rem;border-radius:var(--radius-full);background-color:var(--tint-warning-bg);color:var(--color-warning);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.advanced summary{cursor:pointer;font-size:var(--text-label);color:var(--color-text-secondary);min-height:var(--target-size);display:flex;align-items:center;list-style:none;gap:.4rem}.advanced summary::-webkit-details-marker{display:none}.advanced summary:before{content:"▸";font-size:var(--text-label)}.advanced[open] summary:before{content:"▾"}.callback-helper-box{background-color:var(--surface-code-bg);padding:.6rem var(--space-3);border-radius:var(--radius-control)}.callback-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.results-grid{display:grid;grid-template-columns:1fr;gap:.6rem}@media(min-width:520px){.results-grid{grid-template-columns:1fr 1fr}}.result-card{background:var(--color-glass-pill);border-left:3px solid transparent;border-radius:var(--radius-panel);padding:var(--space-3);min-width:0}.result-card.status-success{border-left-color:var(--color-success)}.result-card.status-partial{border-left-color:var(--amber-500)}.result-card.status-failed{border-left-color:var(--color-danger)}.result-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.result-metrics{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);font-size:.85rem;color:var(--color-text-secondary)}.result-metrics strong{color:var(--color-text);font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data)}.result-meta{margin-top:.35rem;font-size:var(--text-label);color:var(--color-text-secondary);overflow-wrap:anywhere}.result-message{margin-top:.4rem;font-size:var(--text-label);color:var(--color-danger);overflow-wrap:anywhere}.ai-shortcut{background-color:var(--tint-purple-bg);border-radius:var(--radius-panel);padding:.85rem}.steps-list{padding-left:1.2rem;display:flex;flex-direction:column;gap:.45rem;font-size:.82rem;color:var(--color-text-secondary)}.copy-field{display:flex;align-items:center;gap:var(--space-2);background:var(--color-glass-pill);border-radius:var(--radius-control);padding:.35rem .35rem .35rem var(--space-3);min-width:0}.copy-field code{flex:1;min-width:0;font-size:var(--text-label);white-space:nowrap;overflow-x:auto;scrollbar-width:none}.tips-box{background:var(--color-glass-pill);border-radius:var(--radius-panel);padding:.7rem .85rem;font-size:var(--text-label);color:var(--color-text-secondary);overflow-wrap:anywhere}.tips-box ul{margin-top:.35rem;padding-left:1.1rem;display:flex;flex-direction:column;gap:.3rem}.import-hub-header{margin-bottom:var(--space-5)}.import-hub-title{font-size:var(--text-display);line-height:var(--leading-display);font-weight:700;color:var(--color-text)}.import-hub-subtitle{margin-top:var(--space-1);font-size:.875rem;color:var(--color-text-secondary)}.import-hub-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4);align-items:start}@media(min-width:1024px){.import-hub-grid{grid-template-columns:1fr 1fr}}.import-hub-col{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.dropzone-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.75rem var(--space-5);min-height:200px;transition:box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.dropzone-card.is-dragging{background:var(--color-glass-hover);box-shadow:0 0 0 2px var(--color-accent),var(--glass-specular-hover),var(--glass-shadow-hover)}.dropzone-icon-well{width:56px;height:56px;border-radius:var(--radius-control);background:var(--surface-overlay-subtle);color:var(--color-text);display:flex;align-items:center;justify-content:center}.dropzone-title{margin-top:.875rem;font-size:var(--text-body);font-weight:600;color:var(--color-text)}@media(pointer:coarse){.dropzone-title-desktop{display:none}}.dropzone-formats{margin-top:.625rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.375rem}.dropzone-format-chip{border-radius:var(--radius-full);background:var(--surface-overlay-subtle);padding:2px var(--space-3);font-size:var(--text-label);font-weight:500;color:var(--color-text-soft)}.dropzone-hint{margin-top:.625rem;font-size:var(--text-label);color:var(--color-text-secondary)}.dropzone-cta{margin-top:var(--space-4);min-height:48px;border-radius:var(--radius-panel);padding-inline:var(--space-6)}.bridge-card{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.bridge-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.bridge-card-meta{font-size:var(--text-label);color:var(--color-text-secondary)}.bridge-card-warn{display:flex;align-items:center;gap:.375rem;font-size:var(--text-label);color:var(--color-warning)}.bridge-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}@media(min-width:560px){.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.metric-box{background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);border-radius:var(--radius-panel);padding:.65rem .75rem;display:flex;flex-direction:column;gap:.2rem;min-width:0}.metric-label{display:flex;align-items:center;gap:.35rem;font-size:var(--text-label);color:var(--color-text-secondary);line-height:var(--leading-label)}.metric-label svg{flex-shrink:0}.metric-val{font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data);font-size:1rem;font-weight:700}.metric-val small{font-size:var(--text-label);font-weight:500;color:var(--color-text-secondary)}.detail-metrics summary{cursor:pointer;color:var(--color-text-secondary);min-height:var(--target-size);padding:var(--space-2) 0}.fit-download-card{margin:var(--space-4) 0}.fit-laps{padding-left:var(--space-6)}.fit-map{width:100%;height:320px;margin:var(--space-2) 0;background:var(--charcoal-900);border-radius:var(--radius-panel);overflow:hidden}.fit-section-title{font-size:1rem}.fit-metric-title{font-size:.83rem}.raw-title{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;margin-bottom:var(--space-2)}.code-block{background-color:var(--surface-code-bg);border-radius:var(--radius-control);padding:var(--space-3);font-family:var(--font-mono);font-size:var(--text-label);overflow:auto;max-height:260px;color:var(--color-text-soft);white-space:pre-wrap;overflow-wrap:anywhere}.code-block.prompt-block{max-height:none;font-size:var(--text-label);line-height:1.5}.source-link-card{margin-top:.65rem;display:flex;flex-direction:column;gap:.55rem;padding:var(--space-3);border-radius:var(--radius-panel);background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill)}.source-review-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.source-review-title{font-size:.85rem;font-weight:600;overflow-wrap:anywhere}@media(min-width:641px){.source-review-row{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-4)}}.source-link-review{background-color:var(--tint-warning-bg)}.source-link-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.source-state-badge{font-size:var(--text-label);font-weight:600;padding:.12rem .5rem;border-radius:var(--radius-full);white-space:nowrap}.state-confirmed{background-color:var(--tint-success-bg);color:var(--color-success)}.state-review{background-color:var(--tint-warning-bg);color:var(--color-warning)}.detail-sheet{max-height:92dvh}@media(min-width:1024px){.detail-sheet-backdrop{justify-content:flex-end;align-items:stretch;padding:var(--space-4)}.detail-sheet{width:540px;max-width:540px;max-height:calc(100dvh - 2rem);border-radius:var(--radius-sheet);animation:slideRight var(--dur-sheet) var(--ease-out)}}@keyframes slideRight{0%{opacity:0;transform:translate(2.5rem)}to{opacity:1;transform:translate(0)}}.coverage-channels-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.coverage-channel-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:var(--radius-full);font-size:var(--text-label);font-weight:600}.coverage-channel-on{background:var(--tint-success-bg);color:var(--color-success)}.coverage-channel-off{background:var(--color-glass-pill);color:var(--color-text-muted)}.telemetry-card{border-radius:var(--radius-panel);background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);padding:var(--space-3);margin-top:var(--space-3)}.telemetry-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.telemetry-peak-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.18rem .55rem;border-radius:var(--radius-full);background:var(--color-cta-bg);color:var(--color-cta-text);font-size:var(--text-label);font-weight:700;font-variant-numeric:tabular-nums}.telemetry-svg{width:100%;height:120px;display:block}.hr-zone-dist-bar{display:flex;width:100%;height:8px;border-radius:var(--radius-full);overflow:hidden;gap:2px;margin-top:var(--space-2)}.hr-zone-dist-seg{height:100%;border-radius:var(--radius-full)}.hr-zone-dist-legend{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-label);color:var(--color-text-secondary)}.dashboard-filters,.goal-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.goal-field-full{grid-column:1 / -1}.dashboard-filters label,.goal-fields label{min-width:0;color:var(--color-text-secondary);font-size:var(--text-label);font-weight:600}.dashboard-filters select,.goal-fields input,.goal-fields select{margin-top:.3rem}.dashboard-period{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.4rem;text-align:center;font-size:.8rem}.dashboard-period span{overflow-wrap:anywhere}.dashboard h1{font-size:var(--text-display);font-weight:700;line-height:var(--leading-display)}.dashboard h2{font-size:var(--text-title);line-height:var(--leading-title)}.dashboard h2.dashboard-section-title{font-size:.95rem}.dashboard h3{font-size:.95rem;line-height:1.3}.dashboard-view-btn{width:100%}@media(min-width:641px){.dashboard-view-btn{width:auto}}.dashboard .metrics-grid .metric-box{padding:.65rem}.dashboard .metrics-grid .metric-box>span{color:var(--color-text-secondary);font-size:var(--text-label)}.dashboard .metrics-grid .metric-box>strong{font-size:1rem;font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data)}.dashboard .metrics-grid .metric-box>small{color:var(--color-text-secondary);font-size:var(--text-label);line-height:1.35}.daily-values-details summary,.goal-editor summary{cursor:pointer;color:var(--color-text);font-size:var(--text-label);font-weight:500;min-height:var(--target-size);display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .85rem;border-radius:var(--radius-full);background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);list-style:none}.daily-values-details summary::-webkit-details-marker,.goal-editor summary::-webkit-details-marker{display:none}.daily-values-details summary:before,.goal-editor summary:before{content:"▸";font-size:var(--text-label);color:var(--color-text-secondary)}.daily-values-details[open] summary:before,.goal-editor[open] summary:before{content:"▾"}.daily-chart{display:flex;overflow-x:auto;gap:.4rem;align-items:end;min-height:112px;margin-top:var(--space-2);padding-bottom:var(--space-1);scrollbar-width:thin}.daily-bar-col{flex:1 0 34px;text-align:center}.daily-chart-month .daily-bar-col{flex:0 0 32px}.daily-bar-track{height:80px;display:flex;align-items:end;justify-content:center}.daily-bar-fill{width:18px;background-color:var(--color-accent);border-radius:3px 3px 0 0}.daily-bar-label{display:block;margin-top:var(--space-1);font-size:var(--text-label);color:var(--color-text-secondary)}.chart-empty{padding:var(--space-4);border-radius:var(--radius-panel);background:var(--color-glass-pill);color:var(--color-text-secondary);font-size:.8rem;text-align:center}.daily-table-wrap{overflow-x:auto;margin-top:.35rem}.daily-values-table{width:100%;border-collapse:collapse;font-size:.8rem}.daily-values-table th,.daily-values-table td{padding:.45rem var(--space-2);border-bottom:1px solid var(--surface-overlay-subtle);text-align:left}.daily-values-table th{color:var(--color-text-secondary);font-weight:600}.daily-values-table td:nth-child(2),.daily-values-table td:nth-child(3),.daily-values-table th:nth-child(2),.daily-values-table th:nth-child(3){text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data)}.comparison-bars{display:flex;gap:.6rem;align-items:end;height:72px;margin-top:.4rem}.comparison-bar-current{width:32px;background-color:var(--color-accent);border-radius:4px 4px 0 0}.comparison-bar-prior{width:32px;background-color:var(--zinc-500);border-radius:4px 4px 0 0}.latest-activity-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);text-align:left;padding:.65rem var(--space-3);border-radius:var(--radius-panel);background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);border:none;color:var(--color-text);font-size:.8rem;line-height:1.35;cursor:pointer}.latest-activity-btn:active{background:var(--color-glass-pill-hover)}.goal-card{margin-top:var(--space-3);background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);border-radius:var(--radius-panel);padding:.75rem .85rem}.goal-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.goal-card-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .6rem;font-size:.88rem}.goal-card-title span{font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data)}.goal-progress-track{margin-top:.45rem;height:6px;background-color:var(--surface-track-bg);border-radius:var(--radius-full);overflow:hidden}.goal-progress-fill{height:100%;background-color:var(--color-accent);border-radius:var(--radius-full);transition:width .25s var(--ease-out)}.goal-progress-fill.goal-complete{background-color:var(--color-success)}.goal-editor summary{margin-top:var(--space-1)}.goal-feedback{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.dashboard-goals{margin-top:var(--space-4)}.dashboard-goals .section-card{margin:0}.storage-stats-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-bottom:var(--space-3)}.stat-pill{background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);padding:var(--space-2) .65rem;border-radius:var(--radius-control);font-size:var(--text-label);display:flex;flex-direction:column;color:var(--color-text-secondary);min-width:0}.stat-pill strong{color:var(--color-text);font-variant-numeric:tabular-nums;font-feature-settings:var(--font-features-data);font-size:1.1rem}.hr-zones-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2)}.hr-zone-tile{border-radius:var(--radius-control);background:var(--color-glass-pill);box-shadow:var(--glass-specular-pill);padding:.625rem var(--space-2);text-align:center}.hr-zone-bar{width:2rem;height:6px;border-radius:var(--radius-full);margin:0 auto}
