:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#172b28;--paper:#f5f5ef;--lime:#c7e685;--green:#3d5947;--bg:var(--paper);--surface:#fff;--surface-2:#ecf0e6;--surface-3:#e1e6da;--surface-hero:var(--ink);--surface-overlay:#172b286b;--line:#dfe3d8;--line-strong:#bfc7ba;--fg:var(--ink);--fg-muted:#566359;--fg-faint:#6b746c;--fg-on-hero:#f3f5ee;--fg-on-hero-muted:#b4bfaf;--fg-on-accent:var(--ink);--accent:var(--lime);--accent-hover:#b9dc70;--accent-active:#a9cf5e;--link:var(--green);--link-hover:#2f473a;--focus:#2f6f4e;--selected:var(--surface-2);--selected-line:var(--green);--ok:#2f6f4e;--ok-soft:#e3f1e5;--ok-line:#a9d1b3;--warn:#725317;--warn-soft:#fff2d5;--warn-line:#e8cf8f;--info:#345d79;--info-soft:#e9f1f7;--info-line:#b7cfe1;--danger:#973c37;--danger-soft:#fff0ed;--danger-line:#eab7b1;--sport-climb:#c25a24;--sport-run:#2b6fa3;--sport-strength:#2b8550;--sport-hike:#7a5fb0;--sport-cycle:#a98a0f;--sport-rest:#8a948b;--race:#973c37;--constraint:#6b746c;--viz-grid:#e6e9e0;--viz-axis:#c4cbbd;--viz-planned:var(--green);--viz-recorded:var(--green);--viz-fill-alpha:.14;--viz-missing:#b7bfb3;--viz-ink:var(--fg);--viz-ink-muted:var(--fg-muted);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:26px;--text-3xl:32px;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--tracking-caps:.08em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-full:999px;--shadow-sm:0 1px 2px #172b280f, 0 1px 1px #172b280a;--shadow-md:0 8px 24px #172b281a;--shadow-sheet:0 -8px 32px #172b2829;--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--tap:44px;--gutter:16px;--content-max:1200px;--measure:62ch;--sidebar-w:240px;--context-w:360px;--bottom-nav-h:64px;--action-bar-h:72px;--muted:var(--fg-muted);--white:var(--surface);--green-soft:var(--surface-2);--amber:var(--warn);--amber-soft:var(--warn-soft);--blue:var(--info);--blue-soft:var(--info-soft);--red:var(--danger);--red-soft:var(--danger-soft);--shadow:var(--shadow-md)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1614;--surface:#16211f;--surface-2:#1d2a27;--surface-3:#27352f;--surface-hero:#1f3029;--surface-overlay:#050a0999;--line:#2a3733;--line-strong:#3f4f49;--fg:#e9ece4;--fg-muted:#aab5a8;--fg-faint:#8d988e;--fg-on-hero:#f1f4ea;--fg-on-hero-muted:#b9c4b3;--fg-on-accent:#172b28;--accent:#c7e685;--accent-hover:#d4ec9c;--accent-active:#b9dc70;--link:#a8cf7c;--link-hover:#c1de9a;--focus:#c7e685;--selected:#243530;--selected-line:#a8cf7c;--ok:#8fcf9f;--ok-soft:#15301f;--ok-line:#2e5a3c;--warn:#e8c57a;--warn-soft:#3a2e12;--warn-line:#6b5423;--info:#8fb8d6;--info-soft:#15283a;--info-line:#2c4a63;--danger:#f0998f;--danger-soft:#3b1a17;--danger-line:#6d3029;--sport-climb:#d9703d;--sport-run:#4a8fc4;--sport-strength:#3f9b68;--sport-hike:#977bd8;--sport-cycle:#b08f1d;--sport-rest:#7f8a80;--race:#f0998f;--constraint:#8d988e;--viz-grid:#233029;--viz-axis:#3f4f49;--viz-planned:#a8cf7c;--viz-recorded:#a8cf7c;--viz-fill-alpha:.2;--viz-missing:#4a5852;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #0006;--shadow-sheet:0 -8px 32px #00000080}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1614;--surface:#16211f;--surface-2:#1d2a27;--surface-3:#27352f;--surface-hero:#1f3029;--surface-overlay:#050a0999;--line:#2a3733;--line-strong:#3f4f49;--fg:#e9ece4;--fg-muted:#aab5a8;--fg-faint:#8d988e;--fg-on-hero:#f1f4ea;--fg-on-hero-muted:#b9c4b3;--fg-on-accent:#172b28;--accent:#c7e685;--accent-hover:#d4ec9c;--accent-active:#b9dc70;--link:#a8cf7c;--link-hover:#c1de9a;--focus:#c7e685;--selected:#243530;--selected-line:#a8cf7c;--ok:#8fcf9f;--ok-soft:#15301f;--ok-line:#2e5a3c;--warn:#e8c57a;--warn-soft:#3a2e12;--warn-line:#6b5423;--info:#8fb8d6;--info-soft:#15283a;--info-line:#2c4a63;--danger:#f0998f;--danger-soft:#3b1a17;--danger-line:#6d3029;--sport-climb:#d9703d;--sport-run:#4a8fc4;--sport-strength:#3f9b68;--sport-hike:#977bd8;--sport-cycle:#b08f1d;--sport-rest:#7f8a80;--race:#f0998f;--constraint:#8d988e;--viz-grid:#233029;--viz-axis:#3f4f49;--viz-planned:#a8cf7c;--viz-recorded:#a8cf7c;--viz-fill-alpha:.2;--viz-missing:#4a5852;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #0006;--shadow-sheet:0 -8px 32px #00000080}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-slow:0s}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);margin:0;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button{color:inherit;background:0 0;border:0}a{color:var(--link)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1{letter-spacing:-1.2px;margin-bottom:18px;font-size:clamp(28px,3vw,36px);font-weight:600;line-height:1.12}h2{letter-spacing:-.5px;margin-bottom:12px;font-size:23px;font-weight:600;line-height:1.3}h3{margin-bottom:12px;font-size:16px}h4{margin:16px 0 8px;font-size:14px}p{margin-bottom:16px}strong{font-weight:600}small,.small{font-size:13px}label{flex-direction:column;gap:7px;min-width:0;margin-bottom:16px;font-weight:600;display:flex}input,select,textarea{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-sm);width:100%;color:var(--fg);min-width:0;min-height:44px;padding:12px 14px;font-size:16px}select{appearance:none;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='%23566359' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:16px;padding-right:42px}@media (forced-colors:active){select{appearance:auto;background-image:none}}textarea{resize:vertical;min-height:80px}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--link);flex-shrink:0}input[type=date]{max-width:100%}input[type=number]{min-width:65px}summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:14px;font-weight:600}details{border-top:1px solid var(--line)}.muted{color:var(--fg-muted)}.eyebrow{font-weight:700}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.primary,.secondary,.text-button,.icon-button{border-radius:var(--r-sm);justify-content:center;align-items:center;gap:10px;min-height:48px;padding:12px 18px;font-size:14px;font-weight:600;line-height:1.3;display:inline-flex}.primary{background:var(--accent);color:var(--fg-on-accent)}.primary:hover{background:var(--accent-hover)}.primary:active{background:var(--accent-active)}.primary span{margin-left:10px}.secondary{border:1.5px solid var(--line-strong);color:var(--fg);background:0 0}.secondary:hover{background:var(--surface-2)}.text-button{color:var(--link);text-align:left;padding:10px 0}.icon-button{flex-shrink:0;width:44px;padding:6px;font-size:24px}.full{width:100%}.badge{background:var(--surface-2);color:var(--link);border-radius:var(--r-full);white-space:nowrap;font-size:10px;font-weight:600;line-height:1.4;display:inline-block}.badge.amber{background:var(--warn-soft);color:var(--warn)}.banner{border-radius:var(--r-sm);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:15px 20px;display:flex}.banner button{min-width:44px;min-height:44px}.error{background:var(--danger-soft);color:var(--danger);border-radius:var(--r-sm);padding:12px}.notice{background:var(--surface-2);color:var(--link)}.brandmark{background:var(--accent);width:38px;height:38px;color:var(--fg-on-accent);border-radius:var(--r-sm);letter-spacing:-2px;flex-shrink:0;justify-content:center;align-items:center;font-size:25px;font-weight:800;display:flex}.page-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.page-heading p:not(.eyebrow){color:var(--fg-muted);margin:0}.page-heading.compact h1{margin-bottom:12px;font-size:34px}.page-heading.compact .eyebrow{margin-bottom:12px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:24px}.section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-heading h2{margin:0}.activity-card{text-align:left;border-bottom:1px solid var(--line);align-items:center;width:100%;display:flex}.activity-card:last-child{border:0}.activity-icon{background:var(--surface-2);color:var(--link);border-radius:var(--r-sm);flex-shrink:0;justify-content:center;align-items:center;font-size:24px;display:flex}.activity-icon.running{background:var(--info-soft);color:var(--info)}.activity-text{flex:1;min-width:0}.activity-text strong{overflow-wrap:anywhere;display:block}.activity-text>span{color:var(--fg-muted);font-size:11px;display:block}.activity-tail{align-items:center;display:flex}.week-switch{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);flex-shrink:0;align-items:center;display:flex}.week-switch button{min-width:44px;min-height:44px}.week-switch input{border:0;width:155px;padding:10px 4px;font-size:13px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.checkbox-label{flex-direction:row;align-items:center;gap:10px;margin:18px 0;font-weight:400}.inline-note{background:var(--warn-soft);color:var(--warn);border-radius:var(--r-sm);overflow-wrap:anywhere;margin:14px 0;padding:12px 14px}.empty-state{text-align:center;color:var(--fg-muted);padding:40px 15px;font-size:13px}.empty-state>span{margin-bottom:15px;font-size:35px;display:block}.sport-tag{background:var(--surface-2);color:var(--link);border-radius:var(--r-sm);white-space:nowrap}.sport-tag.running{color:var(--info);background:var(--info-soft)}.sport-tag.climbing{background:var(--warn-soft);color:var(--warn)}.sport-tag.cycling{background:var(--surface-2)}.skipped{opacity:.7}.skipped h3{text-decoration:line-through}.source-link{overflow-wrap:anywhere;align-items:center;max-width:100%;min-height:44px;font-size:12px;text-decoration:none;display:inline-flex}.source-link:hover{text-decoration:underline}.login-wrap{background:var(--surface-hero);justify-content:center;align-items:center;min-height:100vh;padding:30px;display:flex}.login-card{background:var(--bg);border-radius:var(--r-lg);width:min(450px,100%);box-shadow:var(--shadow-md);padding:44px}.login-card .brandmark{background:var(--surface-hero);color:var(--accent);margin-bottom:32px}.login-card h1{margin-bottom:20px;font-size:40px;line-height:1.12}.login-card>p:not(.eyebrow){color:var(--fg-muted);font-size:13px}.login-card>label{margin-top:28px}.login-card>.primary{width:100%;margin-top:8px}.modal{border-radius:var(--r-md);width:min(850px,100% - 32px);max-height:90vh;box-shadow:var(--shadow-md);color:var(--fg);background:var(--surface);border:0;padding:0}.modal::backdrop{background:var(--surface-overlay)}.modal.leave-dialog{width:min(460px,100% - 32px)}.leave-dialog p{margin:0 0 20px;line-height:1.5}.leave-dialog-actions{flex-wrap:wrap;gap:12px;display:flex}.modal>header{border-bottom:1px solid var(--line);background:var(--surface);z-index:1;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.modal>header h2{overflow-wrap:anywhere;margin:0;font-size:20px}.detail-meta{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:24px;font-size:12px;display:flex}.recording-detail{border-bottom:1px solid var(--line);padding:22px 0}.recording-detail .section-heading{margin-bottom:10px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0;display:grid}.metric-grid>div{border:1px solid var(--line);border-radius:var(--r-sm);min-width:0;padding:14px}.metric-grid span{color:var(--fg-muted);font-size:10px;display:block}.metric-grid strong{overflow-wrap:anywhere;margin-top:6px;font-size:16px;display:block}.raw-text{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);border-radius:var(--r-sm);max-width:100%;max-height:400px;padding:14px;line-height:1.65;overflow-y:auto}.fingerprint{overflow-wrap:anywhere;color:var(--fg-muted);font-size:11px}.table-scroll{margin:12px 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:11px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:10px}th{background:var(--bg)}.feedback-item{border:1px solid var(--line);border-radius:var(--r-sm);margin:12px 0;padding:14px;font-size:13px}.feedback-item p{margin:8px 0}.divider{border-top:1px solid var(--line);margin:28px 0}@media (max-width:980px){.page-heading{align-items:flex-start}.page-heading.compact{flex-wrap:wrap}.activity-tail{gap:14px}}@media (max-width:700px){.page-heading{gap:14px}.page-heading:not(.compact){flex-direction:column;align-items:flex-start}.page-heading h1{font-size:30px}.page-heading.compact h1{letter-spacing:-1px;font-size:28px}.section-heading{align-items:flex-start;gap:10px}.activity-card{align-items:flex-start}.activity-icon{font-size:21px}.activity-tail{gap:0}.activity-tail>span:last-child{display:none}.login-wrap{padding:16px}.login-card{padding:28px 20px}.login-card h1{font-size:36px}.modal>header{padding:15px 20px}.modal-body{padding:20px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:no-preference){button,a{transition:background .15s,color .15s,border-color .15s}}@media (max-width:700px){.week-switch input{font-size:16px}}.small,.muted.small,.badge{font-size:12px}.page-heading h1{font-size:clamp(28px,3vw,36px)}.request-progress{background:var(--surface-2);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:16px;display:flex}@media (max-width:700px){.request-progress{align-items:flex-start}}[hidden]{display:none!important}fieldset{border:0;width:100%;min-width:0;margin:0;padding:0}svg{vertical-align:middle;flex-shrink:0}label{font-size:14px;line-height:1.4}input:disabled,select:disabled,textarea:disabled{color:var(--fg-muted);background:var(--bg);opacity:1}textarea::placeholder,input::placeholder{color:var(--fg-faint);opacity:1}.eyebrow{letter-spacing:1.2px;margin-bottom:12px;font-size:11px;line-height:1.4}.badge,.small,.muted.small,.activity-text>span,.source-link,.detail-meta,.recording-detail,.fingerprint,.metric-grid span{font-size:13px}.badge{padding:4px 9px}.page-heading{margin-bottom:24px}.page-heading h1{letter-spacing:-1px;margin-bottom:12px}.page-heading p:not(.eyebrow){max-width:65ch;font-size:15px}.section-heading{margin-bottom:20px}.section-heading h2{letter-spacing:-.5px;font-size:22px}.section-heading .eyebrow{margin-bottom:6px}.primary,.secondary{min-height:48px}.text-button{min-height:44px;font-size:14px}.activity-list{padding:0 20px}.activity-card{gap:14px;min-height:82px;padding:18px 0}.activity-card:hover .activity-text strong{color:var(--link)}.activity-text strong{font-size:16px;font-weight:600;line-height:1.4}.activity-text>span{margin-top:4px;line-height:1.45}.activity-icon{width:44px;height:44px}.activity-tail{gap:16px}.activity-tail>.badge{font-size:12px}.activity-chevron{color:var(--fg-muted)}.evidence-disclosure{color:var(--fg-muted);font-size:14px}.evidence-disclosure summary{color:var(--link)}.inline-note{font-size:14px;line-height:1.5}.session-summary-meta,.session-summary-purpose{color:var(--fg-muted);overflow-wrap:anywhere;margin-top:5px;font-size:13px;line-height:1.45;display:block}.sport-tag{align-items:center;gap:5px;padding:5px 8px;font-size:12px;display:inline-flex}.activity-overview{padding-bottom:20px}.activity-overview .detail-meta{margin-bottom:16px}.table-scroll table{font-size:13px}.request-progress{border:1px solid var(--line);font-size:14px}.request-progress strong{display:block}.request-progress-copy{overflow-wrap:anywhere;gap:6px;min-width:0;display:grid}.request-progress-copy [role=status]>span{margin-top:6px;line-height:1.5;display:block}.request-progress>button{flex-shrink:0}.modal>header{padding:20px 24px}.modal-body{padding:24px}.raw-text{font-size:13px}@media (max-width:700px){.page-heading h1,.page-heading.compact h1{font-size:28px;line-height:1.15}.page-heading p:not(.eyebrow){font-size:14px}.page-heading .eyebrow{margin-bottom:8px;font-size:10px}.panel{padding:20px}.section-heading h2{font-size:20px}.section-heading>.text-button{max-width:none;font-size:13px}.activity-list{padding:0 14px}.activity-card{gap:12px;min-height:82px;padding:16px 0}.activity-icon{width:40px;height:40px}.activity-text strong{font-size:15px}.activity-text>span{font-size:13px}.activity-tail{align-self:center}.activity-tail>.badge{white-space:normal;max-width:84px;padding:4px 7px;font-size:12px;line-height:1.35}.modal{width:calc(100% - 20px);max-height:calc(100dvh - 24px)}.modal>header,.modal-body{padding:16px}.modal>header h2{font-size:19px}.modal-body{padding-bottom:max(20px, env(safe-area-inset-bottom))}.metric-grid strong{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.session-summary{align-items:flex-start;gap:12px;width:100%;min-width:0;display:flex}.session-summary-icon{border-radius:var(--r-sm);background:var(--surface-2);width:40px;height:40px;color:var(--link);flex-shrink:0;justify-content:center;align-items:center;display:flex}.session-summary-content{flex:1;min-width:0}.session-summary-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.session-summary-meta{color:var(--fg-muted);font-size:13px;line-height:1.45}.session-summary-purpose{color:var(--fg-muted);white-space:normal;margin:8px 0 0;font-size:14px;line-height:1.5}.session-summary-state{border-radius:var(--r-full);background:var(--surface-2);color:var(--link);flex-shrink:0;padding:4px 8px;font-size:12px;line-height:1.4}.source-link{gap:6px}@media (max-width:700px){.session-summary{gap:10px}.session-summary-icon{width:36px;height:36px}}.session-summary-content{flex-direction:column;gap:5px;display:flex}.session-summary-heading>span:first-child{overflow-wrap:anywhere;font-size:16px;font-weight:600;line-height:1.4}.session-summary-meta{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:3px 6px;margin-top:0;display:flex}.session-summary-meta>span+span:before{content:"·";content:"·" / "";margin-right:6px}.session-summary-state{border:1px solid var(--line-strong);white-space:nowrap}.session-summary[data-state=draft] .session-summary-state{background:var(--surface);color:var(--link);border-style:dashed}.session-summary[data-state=planned] .session-summary-state{border-color:var(--accent);background:var(--accent);color:var(--fg-on-accent)}.session-summary[data-state=skipped] .session-summary-state{border-color:var(--line);background:var(--bg);color:var(--fg-muted)}.session-summary[data-state=skipped] .session-summary-heading>span:first-child{color:var(--fg-muted);text-decoration:line-through}.session-summary-purpose{white-space:pre-line;margin-top:3px}@media (max-width:700px){.session-summary-heading>span:first-child{font-size:15px}}.quick-rating,.word-choices{border:0;min-width:0;margin:0 0 20px;padding:0}.quick-rating legend,.word-choices legend{margin-bottom:8px;font-size:16px;font-weight:600}.rating-readout{justify-content:space-between;align-items:center;min-height:44px;margin-bottom:8px;display:flex}.rating-readout output{color:var(--fg-muted)}.rating-options{grid-template-columns:repeat(6,minmax(44px,1fr));gap:8px;display:grid}.rating-options label{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;place-items:center;min-height:48px;margin:0;display:grid;position:relative}.rating-options input{opacity:0;cursor:pointer;width:100%;min-width:0;height:100%;min-height:0;margin:0;padding:0;position:absolute;inset:0}.rating-options label.selected,.choice-buttons button[aria-pressed=true]{background:var(--accent);border-color:var(--link);color:var(--fg-on-accent)}.rating-options label:focus-within{outline:2px solid var(--link);outline-offset:3px}.rating-options label:has(input:disabled){cursor:default;opacity:.65}.rating-precision{margin-top:12px}.quick-rating .rating-precision summary{font-size:14px;font-weight:400}.choice-buttons{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.choice-buttons button{min-height:48px;padding:8px 14px}.provider-badge,.activity-text .provider-badge{vertical-align:middle;align-items:center;gap:6px;display:inline-flex}.provider-badge>span,.activity-text .provider-badge>span{display:inline}.provider-badge .provider-mark,.activity-text .provider-badge .provider-mark{border:1px solid var(--line);background:var(--bg);min-width:26px;height:26px;color:var(--fg);border-radius:7px;place-items:center;padding:0 4px;font-size:13px;font-weight:700;display:inline-grid}.provider-mark.strava{border-radius:50%}.provider-mark.strong{border:2px solid var(--link)}.source-link{flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;display:inline-flex}.file-type{border:1px solid var(--line);border-radius:4px;padding:2px 5px;font-size:12px}.recording-metrics{font-variant-numeric:tabular-nums;margin:12px 0}.recording-metrics dt{color:var(--fg-muted);font-size:13px}.recording-metrics dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:17px;font-weight:600}.recording-overview{margin-bottom:24px}.recording-overview-row{border-bottom:1px solid var(--line);padding:12px 0}.recording-overview-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.compact-metrics{flex-wrap:wrap;gap:12px 20px;display:flex}.compact-metrics>div{background:0 0;border:0;padding:0}.compact-metrics dd{font-size:14px}.loading-spinner{border:2px solid var(--line);border-top-color:var(--link);vertical-align:-2px;border-radius:50%;flex:none;width:16px;height:16px;margin-right:8px;animation:.85s linear infinite job-spin;display:inline-block}@keyframes job-spin{to{transform:rotate(360deg)}}@media (max-width:380px){.rating-options{grid-template-columns:repeat(4,minmax(44px,1fr))}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation:none}}.choice-buttons button{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:10px}.feedback-actions{z-index:1;background:var(--surface);border-top:1px solid var(--line);margin-top:16px;padding:12px 0;position:sticky;bottom:0}.feedback-actions button{width:100%}.recording-overview>summary{flex-wrap:wrap;align-items:center;gap:8px;min-height:48px;display:flex}.source-badge-list{flex-wrap:wrap;gap:12px;display:inline-flex}.recording-overview>summary:before{content:"▸"}.recording-overview[open]>summary:before{content:"▾"}.library-back{margin-bottom:12px}.login-card.wide{width:min(780px,100%)}.entry-fields{gap:14px;margin-top:24px;display:grid}.entry-fields label{margin:0}.field-hint{margin-top:6px;display:block}.entry-footer{margin-top:18px}.entry-footer .text-button{min-height:0;font-size:inherit;padding:0}.login-card .entry-notice{border-radius:var(--r-sm);margin-top:16px;padding:12px 14px;font-size:13px}.entry-fields+.primary{margin-top:24px}.login-card .entry-error{margin-top:16px;font-size:13px}@media (max-width:700px){.login-card .form-grid{grid-template-columns:1fr;gap:0}}.load-error{justify-items:start;gap:8px;display:grid}.load-error h2{margin:0;font-size:18px}.load-error p{margin:0}.page-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-columns{gap:var(--space-5);align-items:start;display:grid}.page-main,.page-context{min-width:0}.page-context{gap:var(--space-4);align-content:start;display:grid}@media (min-width:1100px){.page-columns{grid-template-columns:minmax(0, 1fr) var(--context-w);gap:var(--space-8)}}.section-tabs{gap:var(--space-2);margin:0 0 var(--space-6);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.section-tabs button{min-height:var(--tap);padding:var(--space-3) var(--space-4);color:var(--fg-muted);font-size:var(--text-base);font-weight:var(--weight-semibold);border-bottom:2px solid #0000}.section-tabs button[aria-selected=true]{border-color:var(--selected-line);color:var(--fg)}.app-shell{min-height:100dvh}.sidebar{z-index:5;width:var(--sidebar-w);gap:var(--space-5);padding:var(--space-6) var(--space-4) var(--space-5);background:var(--surface-hero);color:var(--fg-on-hero);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar :focus-visible{outline-color:var(--accent)}.brand{align-items:center;gap:var(--space-3);min-height:var(--tap);padding:0 var(--space-2);color:var(--fg-on-hero-muted);font-size:var(--text-xs);letter-spacing:.14em;line-height:1.15;text-decoration:none;display:flex}.brand b{color:var(--fg-on-hero)}.sidebar .brandmark{width:36px;height:36px;font-size:22px}.sidebar nav,.nav-group{flex-direction:column;gap:2px;display:flex}.nav-group+.nav-group{margin-top:var(--space-3)}.nav-group-title{padding:var(--space-2) var(--space-2) var(--space-1);color:var(--fg-on-hero-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;margin:0}.sidebar nav button{width:100%;min-height:var(--tap);padding:0 var(--space-2);border-radius:var(--r-sm);text-align:left;color:var(--fg-on-hero-muted);font-size:var(--text-base);font-weight:var(--weight-medium);align-items:center;gap:10px;display:flex}.sidebar nav button:hover:not(.active){color:var(--fg-on-hero);background:color-mix(in srgb, var(--fg-on-hero) 7%, transparent)}.sidebar nav button.active{background:var(--accent);color:var(--fg-on-accent);font-weight:var(--weight-semibold)}.sidebar nav button:not(.on-desktop),.mobile-nav-label{display:none}.sidebar-bottom{gap:var(--space-4);margin-top:auto;display:grid}.sidebar-bottom>*{min-width:0}.side-status{gap:var(--space-3);padding:var(--space-3);border-radius:var(--r-md);background:color-mix(in srgb, var(--fg-on-hero) 6%, transparent);color:var(--fg-on-hero-muted);font-size:var(--text-sm);display:grid}.side-status p{gap:2px;margin:0;display:grid}.side-status strong{color:var(--fg-on-hero);font-weight:var(--weight-semibold);overflow-wrap:anywhere}.athlete{padding:var(--space-3) var(--space-1) 0;border-top:1px solid color-mix(in srgb, var(--fg-on-hero) 14%, transparent);color:var(--fg-on-hero-muted);font-size:var(--text-sm);align-items:center;gap:10px;display:flex}.avatar{border-radius:var(--r-full);background:var(--surface-3);width:32px;height:32px;color:var(--fg);font-size:var(--text-xs);font-weight:var(--weight-semibold);flex:none;place-items:center;display:grid}.athlete>span{flex:1;min-width:0}.athlete strong{color:var(--fg-on-hero);overflow-wrap:anywhere;display:block}.athlete small{font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.athlete button{width:var(--tap);height:var(--tap);border-radius:var(--r-sm);color:var(--fg-on-hero-muted);flex:none;place-items:center;display:grid}.athlete button:hover{color:var(--fg-on-hero);background:color-mix(in srgb, var(--fg-on-hero) 7%, transparent)}.main{min-width:0;min-height:100dvh;margin-left:var(--sidebar-w);flex-direction:column;display:flex}.page-content{width:100%;max-width:var(--content-max);padding:var(--space-8) var(--space-10) var(--space-12);flex:1;margin:0 auto}footer{justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-4) var(--space-10);border-top:1px solid var(--line);color:var(--fg-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.action-bar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}@media (max-width:1100px){.sidebar{width:208px;padding-inline:var(--space-3)}.main{margin-left:208px}.page-content{padding:var(--space-6)}footer{padding-inline:var(--space-6)}}@media (max-width:700px){:root{--phone-nav-h:calc(64px + env(safe-area-inset-bottom))}.sidebar{z-index:30;width:100%;height:var(--phone-nav-h);padding:4px 8px calc(4px + env(safe-area-inset-bottom));display:block;inset:auto 0 0;overflow:visible}.brand,.sidebar-bottom,footer{display:none}.sidebar nav{grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;display:grid}.nav-group{display:contents}.nav-group-title,.sidebar nav button:not(.on-phone){display:none}.sidebar nav button.on-phone{text-align:center;min-height:56px;font-size:var(--text-xs);flex-direction:column;justify-content:center;gap:3px;padding:6px 2px;display:flex}.sidebar nav button.active{color:var(--accent);background:0 0}.sidebar nav button:focus-visible{outline-offset:-3px}.sidebar nav .nav-label{display:none}.sidebar nav .mobile-nav-label{line-height:1.2;display:block}.main{padding-bottom:calc(var(--phone-nav-h) + var(--space-4));margin-left:0}.main:has(.action-bar){padding-bottom:calc(var(--phone-nav-h) + var(--action-bar-h) + var(--space-4))}.page-content{padding:var(--space-5) var(--gutter) var(--space-6)}.action-bar{left:0;right:0;bottom:var(--phone-nav-h);z-index:20;padding:var(--space-3) var(--gutter);background:var(--surface);border-top:1px solid var(--line);position:fixed}.action-bar>*{flex:auto}:root[data-keyboard=open] .sidebar{display:none}:root[data-keyboard=open] .action-bar{bottom:var(--keyboard-inset,0px)}:root[data-keyboard=open] .main{padding-bottom:calc(var(--keyboard-inset,0px) + var(--space-4))}:root[data-keyboard=open] .main:has(.action-bar){padding-bottom:calc(var(--keyboard-inset,0px) + var(--action-bar-h) + var(--space-4))}}
