:root{--chart-surface:var(--color-surface,#fff);--chart-ink:var(--color-ink,#1a1917);--chart-ink-secondary:var(--color-ink-2,#57544e);--chart-ink-muted:var(--color-muted,#7b776f);--chart-grid:var(--color-grid,rgba(26,25,23,.05));--chart-axis:var(--color-faint,#a6a29a);--chart-border:var(--color-hairline,rgba(26,25,23,.08));--series-pace:var(--chart-ink);--series-gap:var(--chart-ink);--series-hrv:var(--chart-ink);--series-cadence:var(--chart-ink);--series-load:var(--chart-ink);--series-stride:var(--chart-ink);--series-hr:var(--chart-ink);--series-gct:var(--chart-ink);--series-generic:var(--chart-ink);--series-prev:var(--chart-ink-secondary);--series-dash:0.012 0.008;--tone-good:var(--color-steady,#2f6b45);--tone-warning:var(--color-signal,#8a5a00);--tone-serious:var(--color-notable,#a33f1f);--tone-critical:var(--color-notable,#a33f1f);--tone-neutral:var(--color-muted,#7b776f)}@media (prefers-color-scheme:dark){:root{--chart-surface:var(--color-surface,#1b1a17);--chart-ink:var(--color-ink,#f2f0ec);--chart-ink-secondary:var(--color-ink-2,#b3aea5);--chart-ink-muted:var(--color-muted,#8b867d);--chart-grid:var(--color-grid,hsla(0,0%,100%,.04));--chart-axis:var(--color-faint,#615d56);--chart-border:var(--color-hairline,hsla(0,0%,100%,.06));--tone-good:var(--color-steady,#77b98f);--tone-warning:var(--color-signal,#d9a441);--tone-serious:var(--color-notable,#e08a68);--tone-critical:var(--color-notable,#e08a68);--tone-neutral:var(--color-muted,#8b867d)}}:root[data-theme=dark]{--chart-surface:var(--color-surface,#1b1a17);--chart-ink:var(--color-ink,#f2f0ec);--chart-ink-secondary:var(--color-ink-2,#b3aea5);--chart-ink-muted:var(--color-muted,#8b867d);--chart-grid:var(--color-grid,hsla(0,0%,100%,.04));--chart-axis:var(--color-faint,#615d56);--chart-border:var(--color-hairline,hsla(0,0%,100%,.06));--tone-good:var(--color-steady,#77b98f);--tone-warning:var(--color-signal,#d9a441);--tone-serious:var(--color-notable,#e08a68);--tone-critical:var(--color-notable,#e08a68);--tone-neutral:var(--color-muted,#8b867d)}:root[data-theme=light]{--chart-surface:var(--color-surface,#fff);--chart-ink:var(--color-ink,#1a1917);--chart-ink-secondary:var(--color-ink-2,#57544e);--chart-ink-muted:var(--color-muted,#7b776f);--chart-grid:var(--color-grid,rgba(26,25,23,.05));--chart-axis:var(--color-faint,#a6a29a);--chart-border:var(--color-hairline,rgba(26,25,23,.08));--tone-good:var(--color-steady,#2f6b45);--tone-warning:var(--color-signal,#8a5a00);--tone-serious:var(--color-notable,#a33f1f);--tone-critical:var(--color-notable,#a33f1f);--tone-neutral:var(--color-muted,#7b776f)}.role-pace{color:var(--series-pace)}.role-gap{color:var(--series-gap)}.role-hr{color:var(--series-hr)}.role-cadence{color:var(--series-cadence)}.role-stride{color:var(--series-stride)}.role-gct{color:var(--series-gct)}.role-load{color:var(--series-load)}.role-hrv{color:var(--series-hrv)}.role-prev{color:var(--series-prev)}.role-generic{color:var(--series-generic)}.role-neutral{color:var(--chart-ink-secondary)}.role-loadProjected{color:var(--series-load)}.role-neutralProjected{color:var(--chart-ink-secondary)}.tone-good{color:var(--tone-good)}.tone-warning{color:var(--tone-warning)}.tone-serious{color:var(--tone-serious)}.tone-critical{color:var(--tone-critical)}.tone-neutral{color:var(--tone-neutral)}.chart-wrap{position:relative;font-family:var(--font-sans)}.chart-wrap svg{display:block;width:100%;height:auto}.chart-wrap svg text{user-select:none}.series-line{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round;transition:d var(--dur-data,.26s) var(--ease-standard,cubic-bezier(.2,0,.38,.9))}.series-line.role-neutral,.series-line.role-neutralProjected,.series-line.role-prev{stroke-width:1.25}.series-line.role-loadProjected,.series-line.role-neutralProjected{stroke-dasharray:var(--series-dash)}.bar{fill:currentColor;transition:d var(--dur-data,.26s) var(--ease-standard,cubic-bezier(.2,0,.38,.9))}.bar.is-active{stroke:var(--chart-ink);stroke-opacity:.45;stroke-width:1}.dot{fill:currentColor;stroke:var(--chart-surface);stroke-width:2;transition:cx var(--dur-data,.26s) var(--ease-standard,cubic-bezier(.2,0,.38,.9)),cy var(--dur-data,.26s) var(--ease-standard,cubic-bezier(.2,0,.38,.9))}.dot.is-active{stroke:var(--chart-ink);stroke-opacity:.45}.chart-zone{fill:currentColor;opacity:.07}.chart-zone-label{fill:var(--chart-ink-muted);font-size:10px}.chart-band{fill:var(--tone-good);opacity:.08}.chart-grid{stroke:var(--chart-grid);stroke-width:1}.chart-tick{fill:var(--chart-ink-muted);font-family:var(--font-data);font-size:10px;font-variant-numeric:tabular-nums}.chart-marker{fill:currentColor}.chart-focus{opacity:0}.chart-focus[data-active]{opacity:1}.chart-crosshair{stroke:var(--chart-axis);stroke-width:1;stroke-dasharray:3 3}.focus-dot{fill:var(--chart-surface);stroke:currentColor;stroke-width:3}.chart-hit{fill:transparent;stroke:none}.chart-tooltip{position:absolute;top:8px;transform:translateX(10px);background:var(--chart-surface);border:1px solid var(--chart-border);border-radius:6px;box-shadow:var(--shadow);padding:6px 9px;font-size:12px;line-height:1.5;white-space:nowrap;opacity:0;pointer-events:none;z-index:2}.chart-tooltip[data-active]{opacity:1}.chart-tooltip.flip{transform:translateX(calc(-100% - 10px))}.chart-tooltip .tt-x{color:var(--chart-ink-muted);font-size:11px;margin-bottom:2px}.tt-row{display:flex;align-items:center;gap:6px}.tt-key{flex:none;width:10px;height:2px;border-radius:1px;background:currentColor}.tt-label{color:var(--chart-ink-secondary)}.tt-val{margin-left:auto;padding-left:12px;color:var(--chart-ink);font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums}.chart-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:12px;color:var(--chart-ink-secondary)}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:14px;height:3px;border-radius:2px;background:currentColor}.legend-swatch.fill{width:10px;height:10px;border-radius:3px}.legend-swatch.role-loadProjected,.legend-swatch.role-neutralProjected,.tt-key.role-loadProjected,.tt-key.role-neutralProjected{background:repeating-linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px)}@keyframes chart-draw-on{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes chart-bar-rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes chart-dot-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes chart-line-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:no-preference){[data-animate] .series-line{stroke-dasharray:1;animation:chart-draw-on var(--dur-5,.48s) var(--ease-entrance,cubic-bezier(0,0,.3,1)) both}[data-animate] .series-line.role-loadProjected,[data-animate] .series-line.role-neutralProjected{stroke-dasharray:var(--series-dash);animation-name:chart-line-in}[data-animate] .bar{transform-box:fill-box;transform-origin:bottom;animation:chart-bar-rise var(--dur-4,.32s) var(--ease-entrance,cubic-bezier(0,0,.3,1)) both;animation-delay:calc(var(--mark-i, 0) * var(--stagger, 60ms))}[data-animate] .bar.bar-down{transform-origin:top}[data-animate] .dot{transform-box:fill-box;transform-origin:center;animation:chart-dot-in var(--dur-4,.32s) var(--ease-entrance,cubic-bezier(0,0,.3,1)) both;animation-delay:calc(var(--mark-i, 0) * var(--stagger, 60ms))}.chart-focus{transition:opacity var(--dur-1,.1s) var(--ease-out,cubic-bezier(.25,.46,.45,.94))}.chart-crosshair{transition:transform var(--dur-2,.16s) var(--ease-out,cubic-bezier(.25,.46,.45,.94))}.focus-dot{transition:cx var(--dur-2,.16s) var(--ease-out,cubic-bezier(.25,.46,.45,.94)),cy var(--dur-2,.16s) var(--ease-out,cubic-bezier(.25,.46,.45,.94))}.chart-tooltip{transition:opacity var(--dur-1,.1s) var(--ease-out,cubic-bezier(.25,.46,.45,.94)),left var(--dur-2,.16s) var(--ease-out,cubic-bezier(.25,.46,.45,.94)),transform var(--dur-2,.16s) var(--ease-out,cubic-bezier(.25,.46,.45,.94))}}