:root{--ink:#202020;--muted:#707070;--quiet:#9a9a9a;--line:#f1f1f1;--line-strong:#e8e8e8;--accent:#505050;--accent-soft:#f3f3f3;--accent-hover:#383838;--race-bg:#ffd9d9;--race-text:#c01623;--surface:#fff;--surface-alt:#fafafa;--page-bg:#fff;--overlay-bg:#ebebeba3;--header-fade:#ffffffd9;--header-fade-end:#fff0;--phase-column-bg:#f7f7f7;--table-header-text:#4f4f4f;--phase-week-text:#303030;--today-bg:#000;--today-text:#fff;--toggle-track:#dedede;--toggle-track-hover:#d3d3d3;--toggle-thumb-shadow:#2020202e;--scrollbar-thumb:#b0b0b0;--scroll-edge-inset:16px;--legend-accent:#b8b8b8;--note-text:#5f5f5f;--modal-shadow:#20202008;--button-secondary-border-hover:#e4e4e4;--run-default-bg:#f3f3f3;--run-default-text:#606060;--run-easy-bg:#ebe5f5;--run-easy-text:#7a6ba8;--run-long-bg:#fce8e8;--run-long-text:#c44f4f;--run-intervals-bg:#e5f2ec;--run-intervals-text:#4f9678;--run-tempo-bg:#faefe3;--run-tempo-text:#b8894a;--run-strides-bg:#e8f5ec;--run-strides-text:#52a078}html.dark-mode{--ink:#e8e8e8;--muted:#9a9a9a;--quiet:#6e6e6e;--line:#2c2c2c;--line-strong:#383838;--accent:#c8c8c8;--accent-soft:#2a2a2a;--accent-hover:#dedede;--race-bg:#3d2020;--race-text:#ff7a7a;--page-bg:#0d0d0d;--surface:#0d0d0d;--surface-alt:#161616;--overlay-bg:#000000a3;--header-fade:#0d0d0deb;--header-fade-end:#0d0d0d00;--phase-column-bg:#0d0d0d;--table-header-text:#8a8a8a;--phase-week-text:#d8d8d8;--today-bg:#e8e8e8;--today-text:#0d0d0d;--toggle-track:#444;--toggle-track-hover:#505050;--toggle-thumb-shadow:#00000059;--scrollbar-thumb:#555;--legend-accent:#666;--note-text:#a0a0a0;--modal-shadow:#00000059;--button-secondary-border-hover:#444;--run-default-bg:#2a2a2a;--run-default-text:#a8a8a8;--run-easy-bg:#2a2538;--run-easy-text:#a99dd4;--run-long-bg:#3a2525;--run-long-text:#e08080;--run-intervals-bg:#1f3028;--run-intervals-text:#6bc49a;--run-tempo-bg:#302820;--run-tempo-text:#d4a86a;--run-strides-bg:#1f2e24;--run-strides-text:#6bc49a}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker,.intensity-chart__series,.intensity-today-point).run-type-easy{--run-bg:var(--run-easy-bg);--run-text:var(--run-easy-text)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker,.intensity-chart__series,.intensity-today-point).run-type-recovery-day,:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker,.intensity-chart__series,.intensity-today-point).run-type-optional{--run-bg:var(--run-default-bg);--run-text:var(--quiet)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker,.intensity-chart__series,.intensity-today-point).run-type-easy-strides{--run-bg:var(--run-strides-bg);--run-text:var(--run-easy-text)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker,.intensity-chart__series,.intensity-today-point).run-type-long{--run-bg:var(--run-long-bg);--run-text:var(--run-long-text)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker,.intensity-chart__series,.intensity-today-point).run-type-intervals{--run-bg:var(--run-intervals-bg);--run-text:var(--run-intervals-text);--run-dot-icon:var(--run-icon-stopwatch)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker,.intensity-chart__series,.intensity-today-point).run-type-tempo{--run-bg:var(--run-tempo-bg);--run-text:var(--run-tempo-text);--run-dot-icon:var(--run-icon-stopwatch)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker,.intensity-chart__series,.intensity-today-point).run-type-race{--run-bg:var(--race-bg);--run-text:var(--race-text);--run-dot-icon:var(--run-icon-race)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker).run-type-recovery-day,:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker).run-type-strength,:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker).run-type-rest,:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker).run-type-optional{--run-text:var(--quiet)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker).run-type-rest,:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker).run-type-optional,:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker).run-type-recovery-day{--run-dot-icon:var(--run-icon-rest)}:is(.run-day,.modal--run-detail,.legend__item,.intensity-marker).run-type-strength{--run-dot-icon:var(--run-icon-strength)}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{color:var(--ink);background:var(--page-bg);margin:0;padding:16px;font:15px/1.5 Sora,system-ui,sans-serif}main{width:100%;margin:auto}h1{letter-spacing:-.025em;margin:0 0 6px;font-size:clamp(18px,3vw,24px);line-height:1.15}h2{letter-spacing:-.015em;margin:0;font-size:20px;line-height:1.25}p{margin:6px 0}.legend{flex-direction:column;display:flex}.legend__item{--run-bg:var(--run-default-bg);--run-text:var(--run-default-text);--run-dot-icon:var(--run-icon-default);appearance:none;width:calc(100% + 20px);color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:14px;margin:0 -10px;padding:16px 10px;font-size:13px;line-height:1.6;transition:background .18s,border-color .18s;display:flex}.legend__item:not(:last-child){border-bottom:1px solid var(--line)}.legend__item:hover:not(:disabled):not(.is-selected){background:color-mix(in srgb, var(--run-bg) 55%, transparent)}.legend__item:focus-visible{outline:2px solid var(--run-text);outline-offset:-2px}.legend__item.is-selected{background:var(--run-bg);border-bottom-color:#0000}.legend__item.is-selected .legend__icon{background:color-mix(in srgb, var(--run-text) 14%, var(--run-bg))}.legend__item:disabled{cursor:not-allowed;opacity:.42}.legend__icon{background:var(--run-bg);border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:grid}.legend__item.run-type-easy-strides .legend__icon{background:linear-gradient(90deg, var(--run-easy-bg), var(--run-strides-bg))}.legend__icon .run-type-icon{background-color:var(--run-text);width:13px;height:15px;-webkit-mask-image:var(--run-dot-icon);-webkit-mask-image:var(--run-dot-icon);mask-image:var(--run-dot-icon);display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.legend__item.run-type-strength .legend__icon .run-type-icon{width:17px}.legend__item.run-type-recovery-day .legend__icon .run-type-icon,.legend__item.run-type-rest .legend__icon .run-type-icon,.legend__item.run-type-optional .legend__icon .run-type-icon,.legend__item.run-type-strength .legend__icon .run-type-icon{opacity:.5}.legend__item.run-type-race .legend__icon .run-type-icon{width:14px;height:14px}.legend__copy{flex:1;min-width:0}.legend__header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.legend strong{color:var(--ink);font-size:15px;line-height:1.25}.legend__rpe{color:var(--quiet);flex-shrink:0;font-size:12px;font-weight:400;line-height:1.25}.legend__details{flex-direction:column;gap:2px;display:flex}.legend__metric{color:var(--ink);margin:0;font-size:13px;line-height:1.5}.legend__note{color:var(--quiet);margin:4px 0 0;font-size:13px;font-weight:300;line-height:1.5}.note{background:0 0;border:0;flex-direction:column;padding:0;display:flex}.note p{color:var(--note-text);margin:0;padding:16px 0;font-size:13px;line-height:1.6}.note p:not(:last-child){border-bottom:1px solid var(--line)}.note p strong{color:var(--ink);font-weight:700}@media (width<=700px){body{padding:16px 8px 28px}}@media (width<=480px){body{padding:12px 6px 24px}}@media print{@page{size:A4 landscape;margin:16mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:0;font-size:10px}.page-header{display:none!important}h2{font-size:14px}}:root{--table-corner-radius:12px;--run-icon-default:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2017%2022%22%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M12.6%2C21c-.2.8-1%2C1.2-1.7.9s-.9-.8-.8-1.3l.8-5c0-.1%2C0-.2-.2-.3l-3.1-1.8c-.6-.3-.9-.9-.9-1.6s.2-1.4.5-2l1.2-2.8c-.7%2C0-1.3.2-1.9.5s-.3.2-.4.4c-.2.5-.5%2C1.2-.6%2C1.7s-.3.6-.6.7-.8.1-1.1-.1-.5-.6-.4-1%2C.3-.9.5-1.3.3-.7.5-1.1.3-.4.5-.6c1.2-.9%2C2.8-1.5%2C4.3-1.4s1.4.2%2C2%2C.5.4.2.6.4c.3.3.6.6.7%2C1%2C.2.6.4%2C1.3.8%2C1.8s.3.2.5.1l.8-.2%2C1.1-.3c.5-.1%2C1%2C0%2C1.2.5s.2.6%2C0%2C1-.4.5-.7.6l-2.4.6c-.6.2-1.2%2C0-1.7-.4-.2-.2-.4-.5-.6-.8l-1%2C2.3%2C2.3%2C1.4c.7.4%2C1.1%2C1.1%2C1%2C1.9l-.4%2C2.1-.8%2C3.8Z%22%2F%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M1.6%2C19c-.4%2C0-.8%2C0-1.1-.3S0%2C18.1%2C0%2C17.7c0-.6.5-1.1%2C1.1-1.2l.7-.2%2C2.8-.7c.2%2C0%2C.4-.2.5-.4l.8-1.4c.1-.2.5-.2.7%2C0l1.6%2C1c.2.1.2.5%2C0%2C.7l-1.1%2C1.6c-.3.5-.8.8-1.3.9l-4.2%2C1Z%22%2F%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M10.1%2C4c-.8-.9-.9-2.2%2C0-3.1S11.1%2C0%2C11.8%2C0s1.3.3%2C1.8.9c.8%2C1%2C.7%2C2.4-.3%2C3.2s-2.3.8-3.2-.1Z%22%2F%3E%3C%2Fsvg%3E);--run-icon-rest:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2022%22%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M13.8%2C16.9l-3.8%2C1.3-3.8-1.3c.2-.4.4-.8.4-1.2v-2.5s-.6%2C1.3-.6%2C1.3c-.2.5-.6%2C1.1-1.1%2C1.3l-3%2C1.3c-.7.3-1.5%2C0-1.8-.6s0-1.5.6-1.8l2.3-1c.2%2C0%2C.5-.4.6-.6l1.3-3.4c.5-1.3%2C1.7-2.2%2C3.1-2.1h4.4c1.1%2C0%2C2.2.8%2C2.6%2C1.9l1.4%2C3.7c0%2C.2.4.5.6.6l2.2.9c.7.3%2C1%2C1.1.7%2C1.8s-1%2C1-1.8.7l-2.8-1.2c-.5-.2-1-.6-1.2-1.1l-.6-1.6v2.3c0%2C.5%2C0%2C.9.4%2C1.4Z%22%2F%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M15.3%2C17.4c1.3-.5%2C2.6.7%2C2.7%2C2s-.7%2C2.6-2.1%2C2.6H4.1c-1.4%2C0-2.2-1.4-2.1-2.6s1.3-2.5%2C2.6-2l5.4%2C1.8%2C5.3-1.8Z%22%2F%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M9.6%2C0c1.9-.2%2C3.4%2C1.2%2C3.6%2C2.9s-1.1%2C3.4-2.9%2C3.6-3.3-1.1-3.5-2.9S7.8.2%2C9.6%2C0Z%22%2F%3E%3C%2Fsvg%3E);--run-icon-stopwatch:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2019%2022%22%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M17%2C7.3c1.2%2C1.7%2C1.9%2C3.8%2C1.8%2C5.9s-.5%2C2.8-1.2%2C4c-1.1%2C1.9-2.8%2C3.3-4.9%2C4.1-3.4%2C1.3-7.1.5-9.7-2S0%2C15.4%2C0%2C12.9C0%2C8.3%2C3.4%2C4.2%2C8%2C3.5v-1.1s-.8%2C0-.8%2C0c-.8%2C0-1.3-.7-1.1-1.5S6.7%2C0%2C7.2%2C0h4.2c.6%2C0%2C1.1.4%2C1.2%2C1.1s-.4%2C1.3-1.1%2C1.4h-.9s0%2C1.1%2C0%2C1.1c1.9.3%2C3.6%2C1.1%2C5%2C2.4s0%2C0%2C0%2C0l.4-.4c-.3-.4-.3-.9%2C0-1.2s.9-.4%2C1.2%2C0l1.3%2C1.3c.3.3.3.8%2C0%2C1.1s-.9.4-1.3.1l-.5.5ZM12.4%2C19.1c3.1-1.4%2C4.7-4.8%2C3.8-8s-3.7-5.3-6.9-5.2-3.1.6-4.3%2C1.5c-2%2C1.5-3%2C4-2.7%2C6.4s.7%2C2.5%2C1.6%2C3.5c2.1%2C2.4%2C5.6%2C3.2%2C8.5%2C1.9Z%22%2F%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M8.8%2C14.2c-.5-.2-.9-.7-1-1.3s.2-1.1.7-1.5v-3.6c0-.5.4-.8.9-.8s.8.4.8.8v3.5c.7.4.9%2C1.3.5%2C2s-1.2%2C1-2%2C.7Z%22%2F%3E%3C%2Fsvg%3E);--run-icon-strength:url(data:image/svg+xml,%3Csvg%20%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20%20viewBox%3D%220%200%2028%2022%22%3E%0A%20%20%0A%20%20%3Cpath%20fill%3D%22black%22%20d%3D%22M16.8%2C12.7l3.5%2C1.6c.6.3.9.9.8%2C1.6l-.5%2C4.8c0%2C.8-.9%2C1.3-1.6%2C1.3s-1.4-.7-1.4-1.5l.3-3.9-3.1-1.5c-.4-.2-1.2-.2-1.6%2C0l-3.3%2C1.5.3%2C3.7c0%2C.8-.5%2C1.5-1.3%2C1.6s-1.6-.3-1.7-1.2l-.5-5c0-.7.4-1.3.9-1.6l3.4-1.6-.3-3.3-1.9%2C1.4c-.4.3-.9.4-1.5.2s-.8-.5-.9-1.1l-.6-3.6h-2.2s0%2C2%2C0%2C2c0%2C.3-.3.5-.5.5h-1.2c-.3%2C0-.5-.2-.5-.6v-2s-1.2%2C0-1.2%2C0c-.2%2C0-.4-.2-.4-.4s.1-.5.4-.5h1.2s0-2%2C0-2c0-.3.3-.6.6-.6h1.2c.3%2C0%2C.5.3.5.6v2s2.2%2C0%2C2.2%2C0c.2-.5.6-.8%2C1.1-.8s.9.3%2C1.1.8h3.6c1.3%2C1.1%2C3%2C1.1%2C4.3%2C0h3.7c.2-.5.6-.9%2C1.1-.8s.8.3%2C1%2C.8h2.2s0-2%2C0-2c0-.3.3-.6.6-.6h1.1c.3%2C0%2C.6.2.6.5v2.1s1.2%2C0%2C1.2%2C0c.3%2C0%2C.4.2.4.5s-.1.5-.4.5h-1.2s0%2C2%2C0%2C2c0%2C.3-.3.6-.6.6h-1.2c-.2%2C0-.5-.2-.5-.5v-2s-2.2%2C0-2.2%2C0l-.6%2C3.4c-.1.6-.4%2C1-.8%2C1.2s-1.1.3-1.6%2C0l-1.9-1.5-.3%2C3.2ZM10.5%2C6.4h-2.1s.3%2C1.8.3%2C1.8l1.8-1.8ZM19.7%2C6.4h-2.1s1.8%2C1.8%2C1.8%2C1.8l.3-1.8Z%22%2F%3E%0A%20%20%3Cpath%20fill%3D%22black%22%20d%3D%22M15.5%2C5.1c-1%2C.7-2.2.6-3.1%2C0s-1.3-1.8-1-2.9S12.7%2C0%2C13.8%2C0s2.3.7%2C2.7%2C1.9%2C0%2C2.6-1.1%2C3.3Z%22%2F%3E%0A%3C%2Fsvg%3E);--run-icon-race:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2022%2022%22%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M20.8%2C12.5c-1.5%2C1.2-3.4%2C1.5-5.3%2C1.1s-1.1-.2-1.6-.4l-1.6-.5c-1.4-.4-2.9-.7-4.3-.3s-1.2.5-1.7%2C1-.4.5-.4.7l.9%2C4%2C.5%2C2.1c.2.7-.3%2C1.4-1%2C1.6s-1.4-.2-1.6-1l-2.1-8.8-1.2-5L.3%2C2.8%2C0%2C1.7C-.1%2C1%2C.3.2%2C1%2C0s1.5.3%2C1.6%2C1.1l.2%2C1.1c1.5-1.3%2C3.2-1.9%2C5.1-1.6s1.1.2%2C1.7.4l1.9.6c.6.2%2C1.1.3%2C1.7.4%2C1.4.3%2C2.7%2C0%2C4-.5s1.1-.6%2C1.6-1.1.4-.1.6%2C0%2C.3.3.3.5l1.3%2C6.1.7%2C3.3c.2.9-.6%2C1.7-1.2%2C2.2ZM15.2%2C7.8l-1-4.4c-.7%2C0-1.4-.2-2.1-.4l-2.1-.6c-.5-.1-.9-.3-1.4-.4l.3%2C1.3.8%2C3.3c.6%2C0%2C1.2.2%2C1.9.4l1.9.5c.6.2%2C1.1.3%2C1.7.3ZM16.3%2C12.6c1.4.2%2C2.7-.1%2C3.8-1%2C.3-.2.5-.5.7-.8s0-.2%2C0-.3l-.9-4.1c-.3.3-.7.6-1.1.8-.7.4-1.4.6-2.2.7-.5%2C0-1%2C0-1.5%2C0l.3%2C1.3.8%2C3.4ZM6.5%2C11.8c.7-.4%2C1.5-.6%2C2.4-.7.6%2C0%2C1.1%2C0%2C1.7%2C0l-1-4.4c-1.9-.2-3.7.3-5.3%2C1.3l.7%2C3%2C.4%2C1.7c.3-.3.7-.6%2C1.1-.8Z%22%2F%3E%3C%2Fsvg%3E);--plan-entry-fade-duration:.9s;--plan-entry-fade-delay:.12s;--plan-entry-divider-duration:.9s;--plan-entry-divider-delay:.12s}@keyframes plan-fade-in{0%{opacity:0}to{opacity:1}}@keyframes plan-fade-in-outside-month{0%{opacity:0}to{opacity:.5}}@keyframes plan-floating-header-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes plan-run-pill-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes plan-divider-in{0%{border-bottom-color:#0000}to{border-bottom-color:var(--line)}}html.plan-entry-pending .page-header,html.plan-entry-pending thead th:not(:first-child),html.plan-entry-pending:not(.phase-column-hidden) thead th:first-child,html.plan-entry-pending .day-date,html.plan-entry-pending:not(.phase-column-hidden) tbody td:first-child>strong,html.plan-entry-pending:not(.phase-column-hidden) tbody td:first-child>.date,html.plan-entry-pending .floating-month-header:before,html.plan-entry-pending .floating-month-header:after,html.plan-entry-pending .floating-month-title,html.plan-entry-pending #month-header-actions,html.plan-entry-pending .month-header:not(.plan-entry-static) .month-title,html.plan-entry-pending .run-day{opacity:0}html.plan-entry-pending .page-header,html.plan-entry-pending .floating-month-header:before,html.plan-entry-pending .floating-month-header:after,html.plan-entry-pending #month-header-actions{transform:translateY(-20px)}html.plan-entry-pending .run-day,html.plan-entry-pending .floating-month-title,html.plan-entry-pending .month-header:not(.plan-entry-static) .month-title{transform:translateY(20px)}html.plan-entry-pending tr.plan-entry-static .run-day,html.plan-entry-pending .month-header.plan-entry-static .month-title{opacity:1;transform:none}html.plan-entry-pending th:not(:first-child),html.plan-entry-pending td:not(:first-child),html.plan-entry-pending:not(.phase-column-hidden) th:first-child,html.plan-entry-pending:not(.phase-column-hidden) td:first-child{border-bottom-color:#0000}html.plan-entry-active thead th{animation:plan-fade-in var(--plan-entry-fade-duration) ease-out var(--plan-entry-fade-delay) both, plan-divider-in var(--plan-entry-divider-duration) ease-out var(--plan-entry-divider-delay) both}html.plan-entry-active .day-date{animation:plan-fade-in var(--plan-entry-fade-duration) ease-out var(--plan-entry-fade-delay) both}html.plan-entry-active .day-date.is-outside-month{animation:plan-fade-in-outside-month var(--plan-entry-fade-duration) ease-out var(--plan-entry-fade-delay) both}html.plan-entry-active:not(.phase-column-hidden) tbody td:first-child>strong,html.plan-entry-active:not(.phase-column-hidden) tbody td:first-child>.date{animation:plan-fade-in var(--plan-entry-fade-duration) ease-out var(--plan-entry-fade-delay) both}html.plan-entry-active .floating-month-header:before,html.plan-entry-active .floating-month-header:after,html.plan-entry-active #month-header-actions,html.plan-entry-active .page-header{animation:.56s cubic-bezier(.22,1,.36,1) .35s both plan-floating-header-in}html.plan-entry-active .floating-month-title{animation:.56s cubic-bezier(.22,1,.36,1) both plan-run-pill-in;animation-delay:calc(.16s + var(--week-entry-delay,0s))}html.plan-entry-active tbody td:not(:first-child),html.plan-entry-active:not(.phase-column-hidden) tbody td:first-child{animation:plan-divider-in var(--plan-entry-divider-duration) ease-out var(--plan-entry-divider-delay) both}html.plan-entry-active .run-day,html.plan-entry-active .month-header:not(.plan-entry-static) .month-title{animation:.56s cubic-bezier(.22,1,.36,1) both plan-run-pill-in;animation-delay:calc(.16s + var(--week-entry-delay,0s))}html.plan-entry-active tr.plan-entry-static .run-day,html.plan-entry-active .month-header.plan-entry-static .month-title{opacity:1;animation:none;transform:none}html.phase-column-reveal-pending tbody td:first-child>strong,html.phase-column-reveal-pending tbody td:first-child>.date,html.phase-column-reveal-pending thead th:first-child{opacity:0}html.phase-column-reveal-pending th:first-child,html.phase-column-reveal-pending td:first-child{border-bottom-color:#0000}html.phase-column-reveal-active thead th:first-child{animation:plan-fade-in var(--plan-entry-fade-duration) ease-out var(--plan-entry-fade-delay) both, plan-divider-in var(--plan-entry-divider-duration) ease-out var(--plan-entry-divider-delay) both}html.phase-column-reveal-active tbody td:first-child>strong,html.phase-column-reveal-active tbody td:first-child>.date{animation:plan-fade-in var(--plan-entry-fade-duration) ease-out var(--plan-entry-fade-delay) both}html.phase-column-reveal-active tbody td:first-child{animation:plan-divider-in var(--plan-entry-divider-duration) ease-out var(--plan-entry-divider-delay) both}@media (prefers-reduced-motion:reduce){html.plan-entry-pending .page-header,html.plan-entry-pending thead th:not(:first-child),html.plan-entry-pending:not(.phase-column-hidden) thead th:first-child,html.plan-entry-pending .day-date,html.plan-entry-pending:not(.phase-column-hidden) tbody td:first-child>strong,html.plan-entry-pending:not(.phase-column-hidden) tbody td:first-child>.date,html.plan-entry-pending .floating-month-header:before,html.plan-entry-pending .floating-month-header:after,html.plan-entry-pending .floating-month-title,html.plan-entry-pending #month-header-actions,html.plan-entry-pending .month-header:not(.plan-entry-static) .month-title,html.plan-entry-pending .run-day{opacity:1;transform:none}html.plan-entry-pending th:not(:first-child),html.plan-entry-pending td:not(:first-child),html.plan-entry-pending:not(.phase-column-hidden) th:first-child,html.plan-entry-pending:not(.phase-column-hidden) td:first-child{border-bottom-color:var(--line)}html.plan-entry-active .page-header,html.plan-entry-active thead th:not(:first-child),html.plan-entry-active .day-date,html.plan-entry-active:not(.phase-column-hidden) thead th:first-child,html.plan-entry-active:not(.phase-column-hidden) tbody td:first-child>strong,html.plan-entry-active:not(.phase-column-hidden) tbody td:first-child>.date,html.plan-entry-active .floating-month-header:before,html.plan-entry-active .floating-month-header:after,html.plan-entry-active .floating-month-title,html.plan-entry-active #month-header-actions,html.plan-entry-active th:not(:first-child),html.plan-entry-active td:not(:first-child),html.plan-entry-active:not(.phase-column-hidden) th:first-child,html.plan-entry-active:not(.phase-column-hidden) td:first-child,html.plan-entry-active .month-header:not(.plan-entry-static) .month-title,html.plan-entry-active .run-day{animation:none}html.phase-column-reveal-pending tbody td:first-child>strong,html.phase-column-reveal-pending tbody td:first-child>.date,html.phase-column-reveal-pending thead th:first-child{opacity:1}html.phase-column-reveal-pending th:first-child,html.phase-column-reveal-pending td:first-child{border-bottom-color:var(--line)}html.phase-column-reveal-active thead th:first-child,html.phase-column-reveal-active tbody td:first-child>strong,html.phase-column-reveal-active tbody td:first-child>.date,html.phase-column-reveal-active th:first-child,html.phase-column-reveal-active td:first-child{animation:none}}.table-wrap{border-radius:var(--table-corner-radius);scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin;overflow:auto}.monthly-tables{gap:16px;display:grid}.month-section{min-width:0}.month-header,.floating-month-header{justify-content:space-between;align-items:center;gap:16px;min-width:0;min-height:82px;padding:20px 16px;display:flex}.month-header{background:linear-gradient(to bottom, var(--header-fade) 0%, var(--header-fade) 10%, var(--header-fade-end) 100%)}.floating-month-header{z-index:20;isolation:isolate;--floating-header-gradient-height:120px;background:0 0;display:none;position:fixed;top:0}.floating-month-header:before,.floating-month-header:after{content:"";height:var(--floating-header-gradient-height);z-index:0;pointer-events:none;position:absolute;top:0;left:0;right:0}.floating-month-header:before{background:color-mix(in srgb, var(--page-bg) 1%, transparent);-webkit-backdrop-filter:blur(8px);-webkit-mask-image:linear-gradient(#000 0% 22%,#0000 100%);mask-image:linear-gradient(#000 0% 22%,#0000 100%)}.floating-month-header:after{background:linear-gradient(to bottom, var(--header-fade) 0%, var(--header-fade) 50%, var(--header-fade-end) 100%)}.floating-month-header>*{z-index:1;position:relative}#month-header-actions{z-index:21;position:fixed}.month-header.is-floating-active .month-title{opacity:0}.month-title{min-width:0;margin:0;font-size:22px;font-weight:500}.table-load-error{border:1px solid var(--line-strong);border-radius:var(--table-corner-radius);color:var(--muted);margin:0;padding:18px}table{border-collapse:separate;border-spacing:0;table-layout:fixed;background:0 0;width:100%;min-width:1280px}html.phase-column-hidden table{min-width:1128px}html.phase-column-hidden th:first-child,html.phase-column-hidden td:first-child{display:none}th,td{vertical-align:top;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;border:0;border-bottom:1px solid var(--line);padding:12px 18px}th{z-index:3;background:var(--surface);color:var(--table-header-text);letter-spacing:.075em;text-align:left;text-transform:uppercase;white-space:nowrap;padding-block:10px;font-size:11px;font-weight:750}th:first-child,td:first-child{width:152px}th:first-child{z-index:5;text-align:left;border-top-left-radius:var(--table-corner-radius);background:0 0;position:sticky;left:0}th:last-child{border-top-right-radius:var(--table-corner-radius)}html.phase-column-hidden thead th:first-child{border-top-left-radius:0}html.phase-column-hidden thead th:nth-child(2){border-top-left-radius:var(--table-corner-radius)}tbody td:first-child{z-index:2;background:0 0;position:sticky;left:0}tbody tr{height:152px}tbody td{isolation:isolate;height:152px;padding-bottom:34px;font-size:13px;line-height:1.43;position:relative;overflow:hidden}tbody td:not(:first-child){--cell-day-padding-top:32px;--cell-day-padding-bottom:11px;--cell-day-padding-inline:10px;--pill-summary-padding-inline:10px;--pill-summary-padding-block:6px;padding:var(--cell-day-padding-top) var(--cell-day-padding-inline) var(--cell-day-padding-bottom)}tbody td:first-child>strong{color:var(--phase-week-text);font-size:14px;line-height:1.25;display:block}.date{width:max-content;max-width:100%;color:var(--quiet);white-space:nowrap;margin:5px 0 6px;font-size:11px;font-weight:400;line-height:1.2;display:block}.day-date{top:calc(var(--cell-day-padding-inline,12px) + var(--pill-summary-padding-block,6px) + 2px);z-index:2;min-width:28px;height:28px;color:var(--quiet);white-space:nowrap;justify-content:center;align-items:center;margin:-8px 0;font-size:11px;font-weight:400;line-height:1;display:inline-flex;position:absolute;left:12px}.day-date.is-today{width:28px;min-width:28px;color:var(--today-text);isolation:isolate;border-radius:50%;font-weight:600}.day-date.is-today:before{content:"";z-index:-1;background:var(--today-bg);border-radius:50%;position:absolute;inset:0;transform:translateY(-1px)}.day-date.is-outside-month{opacity:.5}.key{color:var(--muted);margin-bottom:4px;font-weight:600;display:block}.key.rest,.key.recovery{color:var(--quiet);font-weight:400}tbody td:not(:first-child)>.run-day{right:var(--cell-day-padding-inline,10px);bottom:var(--cell-day-padding-bottom,11px);left:var(--cell-day-padding-inline,10px);position:absolute}.run-day{--run-bg:var(--run-default-bg);--run-text:var(--run-default-text);--run-chevron:var(--run-text);--run-dot:var(--run-text);--run-dot-icon:var(--run-icon-default);z-index:1;background:var(--run-bg);border-radius:8px;transition:filter .15s,box-shadow .15s;position:relative}.run-day:has(>summary[aria-controls=run-detail-modal][aria-expanded=true]){box-shadow:0 0 0 2px var(--run-text);z-index:2}.run-day:has(>summary[aria-controls=run-detail-modal][aria-expanded=true]):hover{filter:none}.run-day:hover{filter:brightness(.93)}.run-type-easy-strides{--run-chevron:var(--run-strides-text);--run-dot:linear-gradient(90deg, var(--run-easy-text) 50%, var(--run-strides-text) 50%);background:linear-gradient(90deg, var(--run-easy-bg), var(--run-strides-bg))}.run-day.run-type-race:hover,.run-day-static.run-type-race:hover{filter:none}.run-type-recovery-day,.run-type-strength,.run-type-rest,.run-type-optional{--run-bg:transparent;--run-chevron:var(--quiet);background:0 0}.run-type-recovery-day,.run-type-strength,.run-type-optional{transition:background-color .15s}.run-day.run-type-recovery-day:hover,.run-day.run-type-strength:hover,.run-day.run-type-optional:hover{filter:none;background:var(--accent-soft);--run-text:var(--muted);--run-chevron:var(--muted)}.run-day.run-type-recovery-day:hover .run-details,.run-day.run-type-strength:hover .run-details,.run-day.run-type-optional:hover .run-details{opacity:.75}.run-type-recovery-day summary .key,.run-type-strength summary .key,.run-type-optional summary .key,.run-type-recovery-day .run-type-icon,.run-type-strength .run-type-icon,.run-type-optional .run-type-icon,.run-type-recovery-day .run-details,.run-type-strength .run-details,.run-type-optional .run-details,.run-type-recovery-day .run-chevron,.run-type-strength .run-chevron,.run-type-optional .run-chevron{transition:color .15s,opacity .15s}.run-day.is-completed{--run-bg:transparent;--run-text:var(--quiet);--run-chevron:var(--quiet);background:0 0;transition:background-color .15s}.run-day.is-completed:hover{--run-text:var(--muted);--run-chevron:var(--muted);background:var(--accent-soft);filter:none}.run-day.is-completed .run-type-icon{opacity:.5;transition:color .15s,opacity .15s}.run-day.run-type-rest:hover{filter:none}.run-day summary{width:100%;min-width:0;padding:var(--pill-summary-padding-block,6px) var(--pill-summary-padding-inline,10px);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:8px;flex:none;align-items:center;gap:8px;list-style:none;display:flex}.run-day-static{flex-direction:column;min-height:100%;display:flex;overflow:hidden}.run-type-race.run-day-static{inset:auto var(--cell-day-padding-inline,10px) var(--cell-day-padding-bottom,11px) var(--cell-day-padding-inline,10px);min-height:auto;position:absolute}.run-day-static .run-summary{padding:var(--pill-summary-padding-block,6px) var(--pill-summary-padding-inline,10px);border-radius:8px;flex:none;align-items:center;gap:8px;display:flex}.run-day summary:hover{background:0 0}.run-day summary::-webkit-details-marker{display:none}.run-day summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.run-day summary .key{min-width:0;color:var(--run-text);white-space:nowrap;text-overflow:ellipsis;flex:auto;margin:0;overflow:hidden}.run-day.is-completed summary .key{color:var(--muted)}.run-type-icon{background-color:var(--run-text);width:11px;height:13px;-webkit-mask-image:var(--run-dot-icon);-webkit-mask-image:var(--run-dot-icon);mask-image:var(--run-dot-icon);flex:none;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.run-type-strength .run-type-icon{width:17px}.run-type-rest .run-type-icon,.run-type-optional .run-type-icon,.run-type-recovery-day .run-type-icon,.run-type-strength .run-type-icon{opacity:.5}.run-day-static .key{color:var(--run-text);margin:0;font-size:14px;line-height:1.25}.run-distance{min-width:0;max-width:100%;color:var(--run-text);white-space:nowrap;text-overflow:ellipsis;opacity:.65;flex:auto;font-size:11px;font-weight:500;line-height:1;transition:opacity .18s,visibility linear;display:none;overflow:hidden}.run-distance.run-detail{font-weight:300}.run-day[open] .run-distance{visibility:hidden;opacity:0;transition:opacity .18s,visibility 0s linear .18s}.run-type-race .run-summary{flex-wrap:wrap;align-items:center;gap:3px 4px;width:100%}.run-type-race .run-summary .key{flex:1 1 0;min-width:0}.run-type-race .run-distance{text-overflow:ellipsis;white-space:nowrap;opacity:.65;flex:0 0 100%;width:auto;min-width:0;max-width:100%;margin-left:0;font-size:11px;font-weight:500;line-height:1.2;display:block;overflow:hidden}.run-type-race .run-type-icon{width:13px;height:13px}.run-type-race .run-details{opacity:.78;font-weight:600}.run-chevron{color:var(--run-chevron);opacity:.5;flex:none;margin-left:auto;transition:opacity .15s;display:flex}.run-day summary:hover .run-chevron{opacity:.9}.run-chevron svg{transition:transform .18s;display:block;transform:rotate(180deg)}.run-day[open] .run-chevron svg{transform:rotate(0)}.run-day[open]{flex-direction:column-reverse;display:flex;overflow:hidden}.run-details{min-height:0;max-height:var(--run-details-max-height,none);scrollbar-color:color-mix(in srgb, var(--run-text) 35%, transparent) transparent;scrollbar-width:thin;color:var(--run-text);opacity:.5;flex:auto;margin:0;padding:0 10px 8px;font-size:11px;font-weight:400;line-height:1.43;overflow-y:auto}tbody td.has-open-run{z-index:4}tbody td.has-open-run .day-date{z-index:31}@media screen and (width>=481px){.run-day summary:has(.run-distance){grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 8px;width:100%;min-width:0;display:grid}.run-day-static .run-summary:has(.run-distance){grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 8px;width:100%;min-width:0;display:grid}.run-day summary:has(.run-distance) .run-type-icon{grid-area:1/1/-1;align-self:center}.run-day-static .run-summary:has(.run-distance) .run-type-icon{grid-area:1/1/-1;align-self:center}.run-day summary:has(.run-distance) .key{text-overflow:ellipsis;white-space:nowrap;flex:none;grid-area:1/2;min-width:0;max-width:100%;margin:0;line-height:1.2;overflow:hidden;transform:none}.run-day-static .run-summary:has(.run-distance) .key{text-overflow:ellipsis;white-space:nowrap;flex:none;grid-area:1/2;min-width:0;max-width:100%;margin:0;line-height:1.2;overflow:hidden;transform:none}.run-day summary:has(.run-distance) .run-distance{text-overflow:ellipsis;white-space:nowrap;flex:none;grid-area:2/2;width:auto;min-width:0;max-width:100%;margin:0;line-height:1.2;display:block;overflow:hidden}.run-day-static .run-summary:has(.run-distance) .run-distance{text-overflow:ellipsis;white-space:nowrap;flex:none;grid-area:2/2;width:auto;min-width:0;max-width:100%;margin:0;line-height:1.2;display:block;overflow:hidden}}@media screen and (width>=1101px){.run-day summary:has(.run-distance){row-gap:2px}.run-day-static .run-summary:has(.run-distance){row-gap:2px}.run-day summary:has(.run-distance) .key{font-size:14px}:is(.run-day:has(>summary[aria-controls=run-detail-modal]) summary .key,.run-day summary:has(.run-detail) .key){font-size:inherit}.run-day-static .run-summary:has(.run-distance) .key{font-size:14px}.run-type-race .run-distance{font-size:12px}.run-day summary:has(.run-distance) .run-distance{font-size:12px}.run-day-static .run-summary:has(.run-distance) .run-distance{font-size:12px}.run-day summary:has(.run-distance){grid-template-columns:auto minmax(0,1fr) auto}.run-day summary:has(.run-distance) .run-chevron{grid-area:1/3/-1;align-self:center;margin-left:0}.day-date{min-width:32px;height:32px;font-size:13px}.day-date.is-today{width:32px;min-width:32px}}@media screen and (width>=801px){.run-day summary:not(:has(.run-distance)) .key{transform:translateY(1px)}.run-day-static .run-summary:not(:has(.run-distance)) .key{transform:translateY(1px)}}@media screen and (width<=1100px){table,html.phase-column-hidden table{min-width:100%}th:first-child,td:first-child{width:128px}th,td{padding-inline:8px}tbody td:not(:first-child){--cell-day-padding-inline:7px;--pill-summary-padding-inline:7px}.day-date{left:10px}.run-chevron,.run-day-static .run-details{display:none}}@media screen and (width<=960px){th:first-child,td:first-child{width:116px}.run-day summary .key,.run-day-static .key{text-overflow:ellipsis;white-space:nowrap;-webkit-hyphens:none;hyphens:none;min-width:0;font-size:11px;line-height:1.2;overflow:hidden}}@media screen and (width<=800px){th:first-child,td:first-child{width:104px}.run-day summary,.run-day-static .run-summary{flex-flow:wrap;align-items:center;gap:3px 4px;width:100%;min-width:0}.run-day summary .key,.run-day-static .run-summary .key{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;width:auto;min-width:0;overflow:hidden}.run-distance{text-overflow:ellipsis;white-space:nowrap;flex:0 0 100%;width:100%;min-width:0;max-width:100%;line-height:1.2;display:block;overflow:hidden}tbody tr,tbody td{height:138px}.day-date{top:calc(var(--cell-day-padding-inline,12px) + var(--pill-summary-padding-block,6px) + 6px);font-size:12px}.day-date.is-today{width:24px;min-width:24px;height:24px;margin:-6px 0}}@media screen and (width<=700px){:root{--table-corner-radius:9px}.monthly-tables{gap:24px}th,td{padding-block:11px;padding-inline:6px}tbody tr,tbody td{height:122px}tbody td{padding-bottom:28px}tbody td:not(:first-child){--cell-day-padding-top:26px;--cell-day-padding-bottom:8px;--cell-day-padding-inline:5px;--pill-summary-padding-inline:5px;--pill-summary-padding-block:5px;padding:var(--cell-day-padding-top) var(--cell-day-padding-inline) var(--cell-day-padding-bottom)}.day-date{left:8px}.month-header,.floating-month-header{gap:12px;min-height:auto;padding:28px 8px}.floating-month-header{--floating-header-gradient-height:96px}.month-title{font-size:18px}}@media screen and (width<=620px){th:first-child,td:first-child{width:88px}th{text-align:left;padding-inline:2px;font-size:0}th:first-child{text-align:left}th:not(:first-child){text-align:center}th:after{font-size:9px}th:first-child:after{content:"Week"}th:nth-child(2):after{content:"Mon"}th:nth-child(3):after{content:"Tue"}th:nth-child(4):after{content:"Wed"}th:nth-child(5):after{content:"Thu"}th:nth-child(6):after{content:"Fri"}th:nth-child(7):after{content:"Sat"}th:nth-child(8):after{content:"Sun"}.run-day summary,.run-day-static .run-summary{flex-flow:row;align-items:center}tbody tr,tbody td{height:110px}.day-date{font-size:11px}tbody td:first-child>strong{font-size:12px}}@media screen and (width<=480px){th:first-child,td:first-child{width:72px}th:nth-child(2):after{content:"M"}th:nth-child(3):after{content:"T"}th:nth-child(4):after{content:"W"}th:nth-child(5):after{content:"T"}th:nth-child(6):after{content:"F"}th:nth-child(7):after,th:nth-child(8):after{content:"S"}tbody tr,tbody td{height:94px}tbody td:not(:first-child){--cell-day-padding-top:22px;--cell-day-padding-bottom:5px;--cell-day-padding-inline:3px;--pill-summary-padding-inline:2px;--pill-summary-padding-block:4px}tbody td:first-child{padding-inline:5px}tbody td:first-child>strong{font-size:11px}tbody td:first-child>.date{font-size:9px}.day-date{font-size:10px}td:not(:first-child)>.day-date{left:50%;transform:translate(-50%)}.run-type-race.run-day-static{background:var(--run-bg);border-radius:6px;justify-content:space-between}.run-day,.run-day.is-completed:hover,.run-day.run-type-recovery-day:hover,.run-day.run-type-strength:hover,.run-day.run-type-optional:hover,.run-day.run-type-rest:hover{background:0 0}.run-day:hover{filter:none}.run-day{--run-dot:var(--run-bg)}.run-type-easy-strides{--run-dot:linear-gradient(90deg, var(--run-easy-bg), var(--run-strides-bg))}.run-type-rest{--run-dot:var(--accent-soft)}.run-type-optional,.run-type-recovery-day,.run-type-strength{--run-dot:transparent}.run-type-icon{display:none}.run-day summary,.run-day-static .run-summary{min-height:32px;padding:var(--pill-summary-padding-block,4px) 0;justify-content:center;position:relative}.run-day summary:before,.run-day-static .run-summary:before{content:"";background-color:var(--run-dot);border-radius:50%;flex:none;width:32px;height:32px;transition:filter .15s,background-color .15s,box-shadow .15s;display:block}.run-day:has(>summary[aria-controls=run-detail-modal][aria-expanded=true]){box-shadow:none}.run-day:has(>summary[aria-controls=run-detail-modal][aria-expanded=true]) summary:before{box-shadow:0 0 0 2px var(--run-text)}.run-type-race .run-summary:before{content:none;display:none}.run-type-easy-strides summary:before,.run-type-easy-strides .run-summary:before{background-color:#0000;background-image:var(--run-dot)}.run-day summary:after,.run-day-static .run-summary:after{content:"";background-color:var(--run-text);width:14px;height:14px;-webkit-mask-image:var(--run-dot-icon);-webkit-mask-image:var(--run-dot-icon);mask-image:var(--run-dot-icon);pointer-events:none;transition:opacity .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.run-day:hover summary:before,.run-day-static:not(.run-type-race):hover .run-summary:before{filter:brightness(.93)}.run-day.run-type-recovery-day:hover summary:before,.run-day.is-completed:hover summary:before,.run-day.run-type-strength:hover summary:before,.run-day.run-type-optional:hover summary:before,.run-day.run-type-rest:hover summary:before,.run-day.run-type-recovery-day:hover .run-summary:before,.run-day.run-type-strength:hover .run-summary:before,.run-day.run-type-optional:hover .run-summary:before,.run-day.run-type-rest:hover .run-summary:before{filter:none;background-color:var(--accent-soft)}.run-day.run-type-recovery-day:hover,.run-day.is-completed:hover,.run-day.run-type-strength:hover,.run-day.run-type-optional:hover{--run-text:var(--muted)}.run-day.run-type-recovery-day:hover summary:after,.run-day.is-completed:hover summary:after,.run-day.run-type-strength:hover summary:after,.run-day.run-type-optional:hover summary:after,.run-day.run-type-rest:hover summary:after,.run-day.run-type-recovery-day:hover .run-summary:after,.run-day.run-type-strength:hover .run-summary:after,.run-day.run-type-optional:hover .run-summary:after,.run-day.run-type-rest:hover .run-summary:after{opacity:.75}.run-type-rest summary:after,.run-day.is-completed summary:after,.run-type-optional summary:after,.run-type-recovery-day summary:after,.run-type-strength summary:after,.run-type-rest .run-summary:after,.run-type-optional .run-summary:after,.run-type-recovery-day .run-summary:after,.run-type-strength .run-summary:after{opacity:.5}.run-type-strength summary:after,.run-type-strength .run-summary:after{width:18px}.run-day summary:has(.run-distance){flex-direction:column;align-items:center;gap:0;min-height:auto}.run-day-static .run-summary:has(.run-distance){flex-direction:column;align-items:center;gap:0;min-height:auto}.run-day summary:has(.run-distance) .run-distance{text-overflow:ellipsis;white-space:nowrap;text-align:center;opacity:.65;flex:none;width:100%;min-width:0;max-width:100%;margin:4px 0 0;font-size:9px;font-weight:500;line-height:1.1;display:block;overflow:hidden}.run-day-static .run-summary:has(.run-distance) .run-distance{text-overflow:ellipsis;white-space:nowrap;text-align:center;opacity:.65;flex:none;width:100%;min-width:0;max-width:100%;margin:4px 0 0;font-size:9px;font-weight:500;line-height:1.1;display:block;overflow:hidden}:is(.run-type-strength summary:has(.run-detail) .run-distance,.run-type-recovery-day summary:has(.run-detail) .run-distance){color:#0000;font-size:0}.run-type-strength summary:has(.run-detail) .run-distance:after{text-overflow:ellipsis;white-space:nowrap;color:var(--run-text);opacity:.65;font-size:9px;font-weight:500;line-height:1.1;display:block;overflow:hidden}.run-type-recovery-day summary:has(.run-detail) .run-distance:after{text-overflow:ellipsis;white-space:nowrap;color:var(--run-text);opacity:.65;font-size:9px;font-weight:500;line-height:1.1;display:block;overflow:hidden}.run-type-strength summary:has(.run-detail) .run-distance:after{content:"Strength"}.run-type-recovery-day summary:has(.run-detail) .run-distance:after{content:"Rest"}.run-day summary:has(.run-distance):after{top:calc(var(--pill-summary-padding-block,4px) + 16px);left:50%;transform:translate(-50%,-50%)}.run-day-static .run-summary:has(.run-distance):after{top:calc(var(--pill-summary-padding-block,4px) + 16px);left:50%;transform:translate(-50%,-50%)}.run-type-race .run-summary:has(.run-distance){padding:var(--pill-summary-padding-block,4px) 4px 4px;flex:1;justify-content:center;gap:0}.run-type-race .run-summary:has(.run-distance) .run-distance{order:1;margin:4px 0 0}.run-type-race .run-summary:has(.run-distance):after{order:0;width:32px;height:32px;margin:0 auto;display:block;position:static;top:auto;left:auto;transform:none;-webkit-mask-size:15px 15px;mask-size:15px 15px}.run-day summary .key,.run-day-static .key{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.run-type-rest summary:not(:has(.run-distance)){min-height:auto;padding:0 0 var(--pill-summary-padding-block,4px) 0;flex-direction:column;align-items:center;gap:0}.run-type-recovery-day summary:not(:has(.run-distance)){min-height:auto;padding:0 0 var(--pill-summary-padding-block,4px) 0;flex-direction:column;align-items:center;gap:0}.run-type-strength summary:not(:has(.run-distance)){min-height:auto;padding:0 0 var(--pill-summary-padding-block,4px) 0;flex-direction:column;align-items:center;gap:0}.run-day-static.run-type-rest .run-summary:not(:has(.run-distance)){min-height:auto;padding:0 0 var(--pill-summary-padding-block,4px) 0;flex-direction:column;align-items:center;gap:0}.run-day-static.run-type-recovery-day .run-summary:not(:has(.run-distance)){min-height:auto;padding:0 0 var(--pill-summary-padding-block,4px) 0;flex-direction:column;align-items:center;gap:0}.run-day-static.run-type-strength .run-summary:not(:has(.run-distance)){min-height:auto;padding:0 0 var(--pill-summary-padding-block,4px) 0;flex-direction:column;align-items:center;gap:0}.run-type-rest summary:not(:has(.run-distance)):after{top:calc(var(--pill-summary-padding-block,4px) + 16px);left:50%;transform:translate(-50%,-50%)}.run-type-recovery-day summary:not(:has(.run-distance)):after{top:calc(var(--pill-summary-padding-block,4px) + 16px);left:50%;transform:translate(-50%,-50%)}.run-type-strength summary:not(:has(.run-distance)):after{top:calc(var(--pill-summary-padding-block,4px) + 16px);left:50%;transform:translate(-50%,-50%)}.run-day-static.run-type-rest .run-summary:not(:has(.run-distance)):after{top:calc(var(--pill-summary-padding-block,4px) + 16px);left:50%;transform:translate(-50%,-50%)}.run-day-static.run-type-recovery-day .run-summary:not(:has(.run-distance)):after{top:calc(var(--pill-summary-padding-block,4px) + 16px);left:50%;transform:translate(-50%,-50%)}.run-day-static.run-type-strength .run-summary:not(:has(.run-distance)):after{top:calc(var(--pill-summary-padding-block,4px) + 16px);left:50%;transform:translate(-50%,-50%)}.run-type-rest summary:not(:has(.run-distance)) .key{--mobile-session-label-color:color-mix(in srgb, var(--run-text) 65%, transparent);clip:auto;white-space:nowrap;text-align:center;opacity:1;width:auto;height:auto;color:var(--mobile-session-label-color);border:0;margin:4px 0 0;padding:0;font-size:9px;font-weight:500;line-height:1.1;display:block;position:static;overflow:visible}.run-type-recovery-day summary:not(:has(.run-distance)) .key{--mobile-session-label-color:color-mix(in srgb, var(--run-text) 65%, transparent);clip:auto;white-space:nowrap;text-align:center;opacity:1;width:auto;height:auto;color:var(--mobile-session-label-color);border:0;margin:4px 0 0;padding:0;font-size:9px;font-weight:500;line-height:1.1;display:block;position:static;overflow:visible}.run-type-strength summary:not(:has(.run-distance)) .key{--mobile-session-label-color:color-mix(in srgb, var(--run-text) 65%, transparent);clip:auto;white-space:nowrap;text-align:center;opacity:1;width:auto;height:auto;color:var(--mobile-session-label-color);border:0;margin:4px 0 0;padding:0;font-size:9px;font-weight:500;line-height:1.1;display:block;position:static;overflow:visible}.run-day-static.run-type-rest .run-summary:not(:has(.run-distance)) .key{--mobile-session-label-color:color-mix(in srgb, var(--run-text) 65%, transparent);clip:auto;white-space:nowrap;text-align:center;opacity:1;width:auto;height:auto;color:var(--mobile-session-label-color);border:0;margin:4px 0 0;padding:0;font-size:9px;font-weight:500;line-height:1.1;display:block;position:static;overflow:visible}.run-day-static.run-type-recovery-day .run-summary:not(:has(.run-distance)) .key{--mobile-session-label-color:color-mix(in srgb, var(--run-text) 65%, transparent);clip:auto;white-space:nowrap;text-align:center;opacity:1;width:auto;height:auto;color:var(--mobile-session-label-color);border:0;margin:4px 0 0;padding:0;font-size:9px;font-weight:500;line-height:1.1;display:block;position:static;overflow:visible}.run-day-static.run-type-strength .run-summary:not(:has(.run-distance)) .key{--mobile-session-label-color:color-mix(in srgb, var(--run-text) 65%, transparent);clip:auto;white-space:nowrap;text-align:center;opacity:1;width:auto;height:auto;color:var(--mobile-session-label-color);border:0;margin:4px 0 0;padding:0;font-size:9px;font-weight:500;line-height:1.1;display:block;position:static;overflow:visible}.run-type-recovery-day summary:not(:has(.run-distance)) .key{opacity:1;color:#0000;font-size:0}.run-day-static.run-type-recovery-day .run-summary:not(:has(.run-distance)) .key{opacity:1;color:#0000;font-size:0}.run-type-recovery-day summary:not(:has(.run-distance)) .key:after{content:"Rest";opacity:1;color:var(--mobile-session-label-color);font-size:9px;font-weight:500;line-height:1.1;display:block}.run-day-static.run-type-recovery-day .run-summary:not(:has(.run-distance)) .key:after{content:"Rest";opacity:1;color:var(--mobile-session-label-color);font-size:9px;font-weight:500;line-height:1.1;display:block}.month-header,.floating-month-header{padding:24px 12px}}@media print{.monthly-tables{display:block}.month-section{break-inside:avoid;page-break-inside:avoid;margin-top:0;padding:4mm 8mm 0}.month-section+.month-section{break-before:page;page-break-before:always}.month-header{background:0 0;min-height:0;padding:0 0 42px;position:static}.month-title{font-size:28px}.month-header.is-floating-active .month-title{opacity:1}.floating-month-header{display:none!important}.table-wrap{border-radius:0;padding:0;overflow:visible}table,html.phase-column-hidden table{width:100%!important;min-width:0!important;max-width:100%!important}th{vertical-align:top;padding:6px 8px;font-size:9px;position:static!important}td{vertical-align:top;padding:6px 8px;font-size:9px;position:relative!important}tbody tr{page-break-inside:avoid;height:32mm}tbody td{height:32mm;min-height:32mm;padding-bottom:8px;overflow:hidden!important}.day-date{justify-content:center;align-items:center;font-size:10px;display:inline-flex;width:auto!important;min-width:0!important;height:auto!important;color:var(--quiet)!important;isolation:auto!important;background:0 0!important;margin:0!important;padding:0!important;font-weight:500!important;position:absolute!important;top:8px!important;left:8px!important;transform:none!important}.day-date.is-today{color:var(--quiet)!important;font-weight:500!important}.day-date.is-today:before{content:none!important;display:none!important}.run-day{width:auto!important;max-height:none!important;box-shadow:none!important;border-radius:8px!important;position:relative!important;top:auto!important;left:auto!important}.run-day-static{min-height:0!important;overflow:hidden!important}.run-type-race.run-day-static{border-radius:4px;padding:4px;background:var(--run-bg)!important;position:static!important;inset:auto!important}.run-day summary,.run-day-static .run-summary{flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;gap:6px!important;min-height:28px!important;padding:6px 10px!important;display:flex!important;position:static!important}.run-day summary:has(.run-distance){grid-template-rows:auto auto!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:0 8px!important;display:grid!important}.run-day-static .run-summary:has(.run-distance){grid-template-rows:auto auto!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:0 8px!important;display:grid!important}.run-day summary:has(.run-distance) .run-type-icon{grid-area:1/1/-1!important;align-self:center!important}.run-day-static .run-summary:has(.run-distance) .run-type-icon{grid-area:1/1/-1!important;align-self:center!important}.run-day summary:has(.run-distance) .key{flex:none!important;grid-area:1/2!important;min-width:0!important;margin:0!important;line-height:1.2!important;transform:none!important}.run-day-static .run-summary:has(.run-distance) .key{flex:none!important;grid-area:1/2!important;min-width:0!important;margin:0!important;line-height:1.2!important;transform:none!important}.run-day summary:has(.run-distance) .run-distance{flex:none!important;grid-area:2/2!important;width:auto!important;margin:0!important;line-height:1.2!important;display:block!important}.run-day-static .run-summary:has(.run-distance) .run-distance{flex:none!important;grid-area:2/2!important;width:auto!important;margin:0!important;line-height:1.2!important;display:block!important}.run-day summary:before,.run-day-static .run-summary:before,.run-day summary:after,.run-day-static .run-summary:after{content:none!important;width:0!important;height:0!important;display:none!important}.run-type-icon{flex:none!important;width:10px!important;height:12px!important;display:block!important}.run-day summary .key,.run-day-static .key{clip:auto!important;clip-path:none!important;white-space:normal!important;width:auto!important;height:auto!important;color:var(--run-text)!important;border:0!important;margin:0!important;padding:0!important;font-size:11px!important;line-height:1.25!important;position:static!important;overflow:visible!important}.run-distance{opacity:.75!important;visibility:visible!important;margin:0!important;font-size:10px!important;display:block!important}.run-type-race .run-summary:has(.run-distance){flex-wrap:nowrap!important;flex:none!important;grid-template-rows:auto auto!important;grid-template-columns:auto 1fr!important;justify-content:flex-start!important;align-items:center!important;gap:0 8px!important;display:grid!important}.run-type-race .run-summary:has(.run-distance) .run-type-icon{grid-area:1/1/-1!important;align-self:center!important}.run-type-race .run-summary:has(.run-distance) .key{grid-area:1/2!important}.run-type-race .run-summary:has(.run-distance) .run-distance{grid-area:2/2!important}.run-details,.run-chevron{display:none!important}}.page-header{justify-content:center;align-items:center;gap:24px;padding:10px 16px;display:flex}.page-header__title-row{justify-content:center;align-items:center;gap:10px;width:100%;min-width:0;min-height:42px;display:flex}.page-header h1{text-align:center;margin:0;line-height:42px}.page-header__title-mobile{display:none}.page-header__title-row .info-button{flex:none}@media (width>=701px){.page-header__title-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;width:100%;display:grid}.page-header h1{text-align:center;grid-column:2}.page-header__title-row .info-button{opacity:0;visibility:hidden;pointer-events:none;grid-column:3;justify-self:start;transition:opacity .15s,visibility .15s}.page-header:hover .page-header__title-row .info-button,.page-header__title-row .info-button:focus-visible{opacity:1;visibility:visible;pointer-events:auto}}.header-actions{flex:none;align-items:center;gap:10px;display:flex}.info-button img{width:18px;height:auto;display:block}.main-menu-button img{display:block}html.dark-mode .info-button img,html.dark-mode .main-menu-button img{filter:invert()}.info-button:hover img,.main-menu-button:hover img{filter:brightness(0)invert()}html.dark-mode .main-menu-button:hover img,html.dark-mode .main-menu-button:active img{filter:none}.info-button,.today-button,.main-menu-button{background:var(--accent-soft);height:42px;max-height:42px;color:var(--accent);font:inherit;cursor:pointer;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:500;transition:background-color .15s,color .15s,transform .15s;display:inline-flex}.info-button:hover,.today-button:hover,.main-menu-button:hover{background:var(--accent);color:var(--surface)}.info-button:active,.today-button:active,.main-menu-button:active{transform:translateY(1px)}.info-button,.main-menu-button{width:42px;padding:0}.info-button:focus-visible,.today-button:focus-visible,.main-menu-button:focus-visible,.modal__close:focus-visible,.modal__save:focus-visible,.button-secondary:focus-visible,.toggle__input:focus-visible+.toggle__track{outline:2px solid var(--accent);outline-offset:3px}.main-menu{display:inline-flex;position:relative}.main-menu__dropdown{z-index:30;border:1px solid var(--line);background:var(--surface);width:220px;max-width:calc(100vw - 16px);box-shadow:0 4px 20px var(--modal-shadow);border-radius:16px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.main-menu__dropdown[hidden]{display:none}.main-menu__item{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:500;transition:background-color .15s;display:block}.main-menu__item--with-icon{align-items:center;gap:8px;display:flex}.main-menu__item-icon{flex-shrink:0;width:16px;height:auto;display:block}html.dark-mode .main-menu__item-icon{filter:invert()}.main-menu__item:hover{background:var(--accent-soft)}.main-menu__item:disabled{cursor:wait;opacity:.65}.main-menu__item--account{flex-direction:column;gap:2px;min-width:0;display:flex}.main-menu__account-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:400;overflow:hidden}.main-menu__status{color:var(--muted);margin:2px 12px 6px;font-size:11px;line-height:1.35}.main-menu__status--error{color:var(--accent)}.main-menu__item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.main-menu__divider{border:0;border-top:1px solid var(--line);margin:4px 6px}html.modal-scroll-lock{overflow:hidden}.modal-overlay{z-index:100;background:var(--overlay-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;pointer-events:none;justify-content:center;align-items:center;padding:24px 16px;transition:opacity .2s,visibility .2s;display:flex;position:fixed;inset:0;overflow:hidden}.modal-overlay[hidden]{display:none}.modal-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}.modal{border:1px solid var(--line);background:var(--surface);width:360px;min-width:360px;max-width:360px;min-height:360px;box-shadow:0 4px 20px var(--modal-shadow);border-radius:26px;flex-direction:column;padding:20px;display:flex;overflow-x:hidden}.modal__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-bottom:16px;display:flex}.modal__title{letter-spacing:-.025em;margin:0;font-size:18px;font-weight:600}.modal__close{width:32px;height:32px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.modal__close svg{width:14px;height:14px}.modal__close:hover{background:var(--accent-soft)}.modal--wide{width:100%;min-width:0;max-width:min(560px,100%);min-height:0;max-height:min(648px,100vh - 48px)}.modal-guide__body{min-width:0;min-height:0;padding:16px var(--scroll-edge-inset) 0 0;overscroll-behavior-x:none;scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin;flex:auto;overflow:hidden auto}#pace-guide-modal .modal-guide__body{padding-left:10px}.modal-guide__title{color:var(--quiet);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:600}.modal-guide__title-row{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.modal-guide__title-row .modal-guide__title{margin-bottom:0}.modal-guide__clear-selection{color:var(--accent);font:inherit;letter-spacing:normal;text-transform:none;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0;font-size:12px;font-weight:500;text-decoration:underline}.modal-guide__clear-selection:hover{color:var(--accent-hover)}.modal-guide__clear-selection:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.modal-guide__clear-selection[hidden]{display:none}.modal-guide__title-row+.intensity-chart{margin-bottom:28px}.intensity-chart{--chart-gutter-left:34px;--chart-gutter-bottom:22px;--chart-pad-top:14px;--intensity-easy:#30a46c;--intensity-medium:#e9a23b;--intensity-hard:#e5484d;width:100%;max-width:100%;height:200px;margin-bottom:8px;position:relative;overflow:hidden}html.dark-mode .intensity-chart{--intensity-easy:#3dd68c;--intensity-medium:#ffb224;--intensity-hard:#ff6369}.intensity-chart__y-axis{top:var(--chart-pad-top);bottom:var(--chart-gutter-bottom);width:var(--chart-gutter-left);position:absolute;left:0}.intensity-chart__y-tick{color:var(--quiet);white-space:nowrap;font-size:10px;line-height:1;position:absolute;right:7px;transform:translateY(-50%)}.intensity-chart__x-axis{left:var(--chart-gutter-left);height:var(--chart-gutter-bottom);position:absolute;bottom:0;right:0}.intensity-chart__x-tick{color:var(--quiet);white-space:nowrap;font-size:10px;line-height:1;position:absolute;top:6px;transform:translate(-50%)}.intensity-chart__x-tick.is-suppressed{visibility:hidden}.intensity-chart__plot{top:var(--chart-pad-top);right:0;bottom:var(--chart-gutter-bottom);left:var(--chart-gutter-left);position:absolute}.intensity-chart__grid-line{border-top:1px solid var(--line);height:0;position:absolute;left:0;right:0;transform:translateY(-.5px)}.intensity-chart__grid-line--base{border-top-color:var(--line-strong)}.intensity-chart__data-layer{clip-path:inset(0 100% 0 0);position:absolute;inset:0}.intensity-chart.is-drawn .intensity-chart__data-layer{animation:1.8s cubic-bezier(.4,.4,.98,1) both intensity-chart-reveal}.intensity-chart__svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.intensity-chart__line{stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.intensity-chart__stop--easy{stop-color:var(--intensity-easy)}.intensity-chart__stop--medium{stop-color:var(--intensity-medium)}.intensity-chart__stop--hard{stop-color:var(--intensity-hard)}.intensity-chart__area-stop--easy{stop-color:var(--intensity-easy);stop-opacity:0}.intensity-chart__area-stop--medium{stop-color:var(--intensity-medium);stop-opacity:.1}.intensity-chart__area-stop--hard{stop-color:var(--intensity-hard);stop-opacity:.18}.intensity-chart__series-stop,.intensity-chart__series-area-stop{stop-color:var(--run-text)}.intensity-chart__series-stop--low{stop-opacity:.32}.intensity-chart__series-stop--medium{stop-opacity:.66}.intensity-chart__series-stop--high{stop-opacity:1}.intensity-chart__series-area-stop--low{stop-opacity:.02}.intensity-chart__series-area-stop--medium{stop-opacity:.1}.intensity-chart__series-area-stop--high{stop-opacity:.2}.intensity-chart__area{opacity:1}@keyframes intensity-chart-reveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.intensity-today{opacity:0;width:0;position:absolute;top:0;bottom:0}.intensity-today:before{content:"";border-left:1px dashed var(--line-strong);position:absolute;top:-2px;bottom:0;left:0}.intensity-chart.is-drawn .intensity-today{animation:.24s ease-out both intensity-today-in;animation-delay:var(--marker-delay,0s)}@keyframes intensity-today-in{0%{opacity:0}to{opacity:1}}.intensity-inspector{opacity:0;pointer-events:none;width:0;position:absolute;top:0;bottom:0}.intensity-inspector:before{content:"";border-left:1px dashed var(--line-strong);position:absolute;top:-2px;bottom:0;left:0}.intensity-chart.is-inspecting .intensity-inspector{opacity:1}.intensity-inspector__date{color:var(--ink);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;font-size:10px;font-weight:600;line-height:1;position:absolute;top:6px;left:0;transform:translate(-50%)}.intensity-chart.is-inspecting .intensity-inspector__date{opacity:1;visibility:visible}.intensity-inspector__tooltip{top:var(--chart-y-100,5%);z-index:10;background:var(--accent-soft);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;border-radius:999px;align-items:center;gap:6px;height:28px;padding:0 4px 0 12px;display:flex;position:absolute;left:0;transform:translate(-50%,-50%)}.intensity-chart.is-inspecting .intensity-inspector__tooltip{opacity:1;visibility:visible}.intensity-inspector__value{color:var(--ink);letter-spacing:.06em;font-size:12px;font-weight:500;line-height:1}.intensity-inspector__delta{color:#fff;letter-spacing:.09em;border-radius:999px;align-items:center;height:20px;padding:2px 5px 0;font-size:10px;font-weight:400;line-height:1;display:inline-flex}.intensity-inspector__delta[hidden]{display:none}.intensity-inspector__delta--up{background:#e5484d}.intensity-inspector__delta--down{background:#30a46c}.intensity-inspector__delta--flat{background:var(--line-strong);color:var(--muted)}.intensity-today__label{top:var(--chart-y-100,5%);background:var(--accent-soft);color:var(--muted);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:600;line-height:1.4;position:absolute;left:50%;transform:translate(-50%,-50%)}.intensity-today-point{background:var(--marker-color,var(--accent));width:11px;height:11px;box-shadow:0 0 0 3px var(--surface), 0 0 0 6px color-mix(in srgb, var(--marker-color,var(--accent)) 18%, transparent);opacity:0;border-radius:50%;position:absolute;transform:translate(-50%,-50%)scale(.35)}.intensity-today-point.is-filtered{--filtered-marker-color:color-mix(in srgb, var(--run-text) var(--marker-color-weight,100%), transparent);background:var(--filtered-marker-color);box-shadow:0 0 0 3px var(--surface), 0 0 0 6px color-mix(in srgb, var(--filtered-marker-color) 18%, transparent)}.intensity-chart.is-drawn .intensity-today-point{animation:.18s ease-out both intensity-marker-in;animation-delay:var(--marker-delay,0s)}.intensity-marker{--run-bg:var(--run-default-bg);--run-text:var(--run-default-text);--run-dot-icon:var(--run-icon-default);--marker-size:6px;width:var(--marker-size);height:var(--marker-size);background:var(--marker-color,var(--run-text));box-shadow:0 0 0 2px var(--surface);opacity:0;border-radius:50%;place-items:center;display:grid;position:absolute;overflow:hidden;transform:translate(-50%,-50%)scale(.35)}.intensity-marker.is-filtered{background:color-mix(in srgb, var(--run-text) var(--marker-color-weight,100%), transparent)}.intensity-marker:before{content:"";border-radius:50%;width:24px;height:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.intensity-chart.is-drawn .intensity-marker{animation:.18s ease-out both intensity-marker-in;animation-delay:var(--marker-delay,0s)}@keyframes intensity-marker-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.intensity-marker:hover,.intensity-marker:focus-visible,.intensity-marker.is-inspector-active{--marker-size:22px;background:var(--run-bg);box-shadow:0 0 0 2px var(--surface), 0 3px 10px var(--modal-shadow);z-index:5}.intensity-chart.is-drawn .intensity-marker:hover,.intensity-chart.is-drawn .intensity-marker:focus-visible,.intensity-chart.is-drawn .intensity-marker.is-inspector-active{transition:none}.intensity-chart.is-resetting .intensity-chart__data-layer,.intensity-chart.is-resetting .intensity-marker,.intensity-chart.is-resetting .intensity-today,.intensity-chart.is-resetting .intensity-today-point{animation:none}.intensity-marker__icon{background-color:var(--run-text);width:10px;height:12px;-webkit-mask-image:var(--run-dot-icon);-webkit-mask-image:var(--run-dot-icon);mask-image:var(--run-dot-icon);opacity:0;pointer-events:none;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.intensity-marker:hover .intensity-marker__icon,.intensity-marker:focus-visible .intensity-marker__icon,.intensity-marker.is-inspector-active .intensity-marker__icon{opacity:1}.intensity-marker.run-type-strength .intensity-marker__icon{width:13px}.intensity-marker.run-type-race .intensity-marker__icon{width:11px;height:11px}@media (prefers-reduced-motion:reduce){.intensity-chart__data-layer,.intensity-chart__area,.intensity-chart__line,.intensity-marker,.intensity-marker__icon,.intensity-today,.intensity-today-point,.intensity-inspector,.intensity-chart.is-drawn .intensity-chart__area,.intensity-chart.is-drawn .intensity-chart__data-layer,.intensity-chart.is-drawn .intensity-chart__line,.intensity-chart.is-drawn .intensity-marker,.intensity-chart.is-drawn .intensity-today,.intensity-chart.is-drawn .intensity-today-point{transition:none;animation:none}.intensity-chart__data-layer{clip-path:inset(0)}.intensity-chart__line{stroke-dasharray:none;stroke-dashoffset:0}.intensity-chart__area,.intensity-marker,.intensity-today,.intensity-today-point{opacity:1}.intensity-marker,.intensity-today-point{transform:translate(-50%,-50%)scale(1)}}.modal__form{flex-direction:column;flex:1;display:flex}.modal__form-fields{flex-direction:column;flex:none;gap:14px;display:flex}.modal__field{flex-direction:column;flex:none;gap:4px;display:flex}.modal__field-label{color:var(--ink);font-size:13px;font-weight:500;line-height:1.3}.modal__field-label span{color:var(--quiet);font-weight:400}.modal__input{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:42px;color:var(--ink);font:inherit;border-radius:10px;outline:0;padding:0 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.modal__input::placeholder{color:var(--quiet)}.modal__input:hover{border-color:var(--button-secondary-border-hover)}.modal__input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.modal__form-actions{gap:10px;display:flex}.modal__form-actions>button{flex:1 1 0;min-width:0}.modal-settings__list{flex-direction:column;display:flex}.modal-settings__row{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:20px 6px;display:flex}.modal-settings__row--control{cursor:default}.modal-settings__copy{flex-direction:column;gap:4px;min-width:0;display:flex}.modal-settings__label{color:var(--ink);font-size:14px;font-weight:500;line-height:1.35}.modal-settings__description{color:var(--muted);font-size:12px;font-weight:300;line-height:1.3}.theme-select{flex:none;position:relative}.theme-select__input{appearance:none;border:1px solid var(--line-strong);background:var(--surface);width:96px;height:36px;color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;padding:0 24px 0 10px;font-size:13px;font-weight:500;line-height:1;transition:border-color .15s,background-color .15s}.theme-select__input:hover{background:var(--surface-alt)}.theme-select__input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-select__chevron{width:14px;height:14px;color:var(--quiet);pointer-events:none;transition:color .15s;position:absolute;top:50%;right:8px;transform:translateY(-50%)}html.dark-mode .theme-select__chevron{color:var(--muted)}.theme-select:hover .theme-select__chevron{color:var(--accent)}html.dark-mode .theme-select:hover .theme-select__chevron{color:var(--quiet)}.toggle{flex:none;display:inline-flex;position:relative}.toggle__input{opacity:0;width:1px;height:1px;margin:-1px;position:absolute}.toggle__track{background:var(--toggle-track);border-radius:999px;width:32px;height:22px;transition:background-color .18s;display:block;position:relative}.toggle__thumb{background:var(--surface);width:16px;height:16px;box-shadow:0 1px 3px var(--toggle-thumb-shadow);border-radius:50%;transition:transform .18s;position:absolute;top:3px;left:3px}.toggle__input:checked+.toggle__track{background:var(--accent)}.toggle__input:checked+.toggle__track .toggle__thumb{transform:translate(10px)}.modal-settings__row:hover .toggle__track{background:var(--toggle-track-hover)}.modal-settings__row:hover .toggle__input:checked+.toggle__track{background:var(--accent-hover)}.modal__actions{margin-top:auto;padding-top:20px}.modal__save{background:var(--accent);width:100%;height:42px;max-height:42px;color:var(--surface);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:0 20px;font-size:14px;font-weight:500;transition:background-color .15s,transform .15s}.modal__save:hover{background:var(--accent-hover)}.modal__save:active{transform:translateY(1px)}.button-secondary{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:42px;max-height:42px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:0 20px;font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s,transform .15s}.button-secondary:hover{background:var(--surface-alt);border-color:var(--button-secondary-border-hover)}.button-secondary:active{transform:translateY(1px)}.modal--info{min-height:0}.modal-info__body{padding-top:20px}.modal-info__list{flex-direction:column;gap:16px;margin:0;display:flex}.modal-info__item{flex-direction:column;gap:4px;display:flex}.modal-info__item dt{color:var(--ink);font-size:14px;font-weight:600;line-height:1.35}.modal-info__item dd{color:var(--muted);margin:0;font-size:14px;line-height:1.5}@media (width<=799px){.modal-overlay .modal{width:100%;min-width:0;max-width:100%;transition:transform .58s cubic-bezier(.08,.92,.18,1);transform:translateY(100%)}.modal-overlay.is-open .modal{transform:translateY(0)}}@media (width<=700px){.page-header{gap:12px;padding:8px}.page-header__title-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;min-height:auto;display:grid}.page-header h1{text-align:center;grid-column:2;font-size:17px;line-height:1.2}.page-header__title-desktop{display:none}.page-header__title-mobile{display:block}.page-header__title-primary{font-weight:600;display:block}.page-header__title-sub{font-weight:400;display:block}.page-header__title-row .info-button{opacity:1;visibility:visible;pointer-events:auto;background:0 0;border-radius:0;grid-column:3;justify-self:end;width:42px;height:42px;padding:0}.page-header__title-row .info-button:hover,.page-header__title-row .info-button:active{color:inherit;background:0 0}.page-header__title-row .info-button:hover img{filter:none;opacity:.7}html.dark-mode .page-header__title-row .info-button:hover img{filter:invert();opacity:.7}.modal{border-radius:22px;padding:20px}}@media (width<=480px){.page-header{padding:6px 12px}.page-header h1{font-size:16px}.header-actions{gap:6px}}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal-overlay .modal,.info-button,.today-button,.main-menu-button,.main-menu__item,.modal__save,.button-secondary,.theme-select__input,.toggle__track,.toggle__thumb,.legend__item,.page-header__title-row .info-button{transition:none}.modal-overlay .modal,.modal-overlay.is-open .modal{transform:none}}@media print{.header-actions,.page-header .info-button,.modal-overlay{display:none!important}}#run-detail-modal{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;justify-content:flex-start;align-items:flex-start;padding:0}#run-detail-modal .modal--run-detail{pointer-events:auto}.modal--run-detail{--run-bg:var(--run-default-bg);--run-text:var(--run-default-text);--run-dot-icon:var(--run-icon-default);background:linear-gradient(to bottom, var(--run-bg) 0%, transparent 120px), var(--surface);width:min(360px,100vw - 24px);min-width:0;max-width:calc(100vw - 24px);min-height:0;max-height:min(460px,100vh - 24px);box-shadow:0px 16px 32px 0px var(--modal-shadow);opacity:1;border-radius:20px;margin:0;position:fixed;overflow:hidden;transform:translate(0)scale(1)}.modal--run-detail.is-workout-tab{min-height:min(var(--run-detail-workout-min-height,0px), calc(100vh - 24px))}.modal--run-detail.is-resizing{transition:height .28s cubic-bezier(.22,1,.36,1)}.modal--run-detail[data-placement=right]{transform-origin:0}.modal--run-detail[data-placement=left]{transform-origin:100%}.modal--run-detail.is-entering[data-placement=right]{animation:.22s ease-out forwards run-detail-enter-from-left}.modal--run-detail.is-entering[data-placement=left]{animation:.22s ease-out forwards run-detail-enter-from-right}@keyframes run-detail-enter-from-left{0%{opacity:.5;transform:translate(-10px)scale(.99)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes run-detail-enter-from-right{0%{opacity:.5;transform:translate(10px)scale(.99)}to{opacity:1;transform:translate(0)scale(1)}}.modal--run-detail>*{position:relative}.modal--run-detail.run-type-easy-strides{background:linear-gradient(to bottom, transparent 0%, var(--surface) 120px), linear-gradient(90deg, var(--run-easy-bg), var(--run-strides-bg)), var(--surface)}.modal--run-detail.is-completed{--run-bg:var(--run-default-bg);--run-text:var(--quiet);background:linear-gradient(to bottom, var(--run-bg) 0%, transparent 120px), var(--surface)}.run-detail__title-row{min-width:0;color:var(--run-text);align-items:center;gap:8px;display:flex}.modal--run-detail .modal__title{color:inherit}.modal--run-detail .modal__header{border-bottom:0;padding-bottom:0}.run-detail__view{flex-direction:column;flex:auto;width:100%;min-height:0;display:flex}.run-detail__view[hidden]{display:none}.run-detail__view.is-fading-out,.run-detail__title-row.is-fading-out{pointer-events:none;animation:.14s ease-in forwards run-detail-content-fade-out}.run-detail__view.is-fading-in,.run-detail__title-row.is-fading-in{animation:.14s ease-out both run-detail-content-fade-in}@keyframes run-detail-content-fade-out{to{opacity:0;transform:translateY(-4px)}}@keyframes run-detail-content-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.modal--run-detail .run-type-icon{opacity:1;width:16.5px;height:19.5px;-webkit-mask-image:var(--run-dot-icon);-webkit-mask-image:var(--run-dot-icon);mask-image:var(--run-dot-icon);background-color:currentColor;flex:none;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.modal--run-detail.run-type-strength .run-type-icon{width:25.5px}.modal--run-detail.run-type-race .run-type-icon{width:19.5px;height:19.5px}.modal--run-detail .modal__close{color:var(--run-text)}.modal--run-detail .modal__close:hover{background:color-mix(in srgb, var(--run-text) 10%, transparent)}.modal--run-detail .modal__save{background:var(--run-text);color:var(--surface)}.modal--run-detail .modal__save:hover{background:color-mix(in srgb, var(--run-text) 88%, #000)}.modal--run-detail.run-type-optional{--run-bg:var(--run-default-bg)}.run-detail__stats{gap:10px;padding-top:20px;padding-bottom:18px;display:flex}.run-detail__stat{text-align:center;flex-direction:column;flex:1 1 0;align-items:center;gap:2px;min-width:0;display:flex}.run-detail__stat-label{color:color-mix(in srgb, var(--run-text) 50%, transparent);font-size:12px;line-height:1.3}.run-detail__stat-value{color:var(--ink);font-size:18px;font-weight:600;line-height:1.25}.run-detail__tabs{border-top:1px solid var(--line);flex:none;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.run-detail__tab{min-width:0;color:var(--quiet);font:inherit;cursor:pointer;background:0 0;border:0;padding:15px 8px 11px;font-size:14px;font-weight:400;line-height:1.3;position:relative}.run-detail__tab:before{content:"";background:0 0;height:3px;position:absolute;top:-1px;left:0;right:0}.run-detail__tab.is-active{color:var(--ink)}.run-detail__tab.is-active:before{background:var(--run-text)}.run-detail__tab:not(:disabled):hover{color:var(--ink)}.run-detail__tab:disabled{cursor:default}.run-detail__tab:focus-visible{z-index:1;outline:2px solid var(--run-text);outline-offset:-3px;border-radius:4px}.run-detail__body{overscroll-behavior:contain;scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin;flex:auto;min-height:0;padding:4px;overflow-y:auto}.run-detail__body.has-scrollable-content{padding-right:var(--scroll-edge-inset)}.modal--run-detail .modal__actions{border-top:0;flex:none}.modal--run-detail .modal__actions.has-scrollable-content{border-top:1px solid var(--line)}.modal--run-detail .modal__form-fields{padding:20px 4px 4px}.modal--run-detail .modal__input:focus{border-color:var(--run-text);box-shadow:0 0 0 1px var(--run-text)}.run-detail__workout-summary{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px}.run-detail__workout-summary:not([hidden]){display:grid}.run-detail__workout-metric{text-align:center;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:8px 10px;display:flex}.run-detail__workout-label{color:var(--quiet);font-size:12px;line-height:1.3}.run-detail__workout-value{max-width:100%;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:500;line-height:1.25;overflow:hidden}.run-detail__sections{flex-direction:column;gap:18px;display:flex}.run-detail__section-title{color:var(--quiet);text-transform:uppercase;letter-spacing:.04em;margin:0 0 7px;font-size:12px;font-weight:400}.run-detail__step{align-items:stretch;margin-bottom:8px;padding-left:15px;display:flex;position:relative}.run-detail__step:last-child{margin-bottom:0}.run-detail__step:before{background:var(--run-text);content:"";border-radius:999px;width:3px;position:absolute;top:1px;bottom:1px;left:0}.run-detail__section--soft-accent .run-detail__step:before{opacity:.25}.run-detail__section--strides-accent .run-detail__step:before{background:var(--run-strides-text)}.run-detail__step-text{color:var(--ink);flex-direction:column;gap:4px;margin:0;font-size:13px;font-weight:400;line-height:1.3;display:flex}.run-detail__step-distance{font-size:15px;font-weight:600;line-height:1.25}.run-detail__step-detail{color:var(--quiet);font-weight:400;line-height:1.3}@media (width<=799px){#run-detail-modal{background:var(--overlay-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:center;padding:24px 16px}#run-detail-modal.is-open{pointer-events:auto}#run-detail-modal .modal--run-detail{transform-origin:50%;width:min(360px,100%);max-width:100%;max-height:calc(100dvh - 48px);animation:none;position:relative;top:auto!important;left:auto!important}#run-detail-modal .modal--run-detail.is-workout-tab{min-height:min(var(--run-detail-workout-min-height,0px), calc(100dvh - 48px))}.modal--run-detail.is-entering{animation:none}}@media (prefers-reduced-motion:reduce){.modal--run-detail.is-entering,.run-detail__view.is-fading-out,.run-detail__view.is-fading-in,.run-detail__title-row.is-fading-out,.run-detail__title-row.is-fading-in{animation:none}}.modal--auth{min-height:0}.auth-modal__brand{text-align:center;flex-direction:column;align-items:center;margin:12px 0 20px;display:flex}.auth-modal__logo{width:32px;height:auto;margin-bottom:10px;display:block}html.dark-mode .auth-modal__logo{filter:invert()}.auth-modal__title{text-align:center}.auth-modal__subtitle{max-width:18ch;color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.4}.auth-modal__form{flex-direction:column;gap:14px;display:flex}.modal--auth .modal__input:focus{border-color:#cdcdcd;box-shadow:inset 0 0 0 1px #cdcdcd}.auth-modal__error{margin:0}.auth-modal__divider{text-align:center;margin:16px 0;position:relative}.auth-modal__divider:before{content:"";background:var(--line-strong);height:1px;position:absolute;inset:50% 0 auto}.auth-modal__divider span{background:var(--surface);color:var(--muted);padding:0 12px;font-size:13px;position:relative}.auth-modal__google{justify-content:center;align-items:center;gap:10px;display:inline-flex}.auth-modal__switch{color:var(--muted);text-align:center;margin:20px 0 0;font-size:14px}.auth-modal__switch-link{color:var(--ink);font:inherit;font-size:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline}.auth-modal__switch-link:hover:not(:disabled){color:var(--accent-hover)}.auth-modal__switch-link:disabled{opacity:.7;cursor:wait}
