.ProjectionChart_container__9J_lB{display:flex;flex-direction:column;gap:16px}.ProjectionChart_chartWrapper__jmBeL{width:100%;height:400px;position:relative}.ProjectionChart_empty__PsvSj{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--color-text-secondary);font-size:15px;border:1px dashed var(--color-border);border-radius:8px}.ProjectionChart_tooltip__t9C8H{background:var(--color-surface,white);border:1px solid var(--color-border,#e0e0e0);border-radius:6px;padding:10px 14px;font-size:13px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.ProjectionChart_tooltipMonth__pwyKo{font-weight:600;margin-bottom:6px;color:var(--color-text)}.ProjectionChart_tooltipRow__eSseG{display:flex;justify-content:space-between;gap:12px;color:var(--color-text-secondary)}.ProjectionChart_tooltipRow__eSseG strong{color:var(--color-text)}.ProjectionChart_tooltipPace__5aUfR{font-size:11px;color:var(--color-text-secondary,#888);margin-top:2px}.ProjectionChart_tooltipRange__T0PS5{justify-content:space-between;gap:12px;font-size:12px;color:var(--color-text-secondary)}.ProjectionChart_tooltipRace___Zrnd,.ProjectionChart_tooltipRange__T0PS5{display:flex;margin-top:4px;border-top:1px solid var(--color-border,#e0e0e0);padding-top:4px}.ProjectionChart_tooltipRace___Zrnd{flex-direction:column}.ProjectionChart_tooltipRace___Zrnd .ProjectionChart_tooltipRow__eSseG,.ProjectionChart_tooltipRace___Zrnd .ProjectionChart_tooltipRow__eSseG strong{color:inherit}.ProjectionChart_tooltipRace___Zrnd .ProjectionChart_tooltipPace__5aUfR{color:inherit;opacity:.75}.ProjectionChart_tooltipRace___Zrnd .ProjectionChart_tooltipRange__T0PS5{color:inherit;opacity:.75;border-top:none;margin-top:2px;padding-top:0}.ProjectionChart_racesLegend___ISng{display:flex;flex-wrap:wrap;gap:12px;padding:12px 0;border-top:1px solid var(--color-border)}.ProjectionChart_raceLegendItem__89OjQ{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text)}.ProjectionChart_raceDot__nLlPb{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ProjectionChart_raceTime__59LB8{color:var(--color-text-secondary);font-weight:500}.ProjectionChart_tooltipResult__es_l4{margin-top:4px;padding-top:4px;border-top:1px solid var(--color-border,#e0e0e0);font-weight:500}.ProjectionChart_tooltipNotes__TM40u{font-size:11px;font-style:italic;opacity:.8;margin-top:2px}@media (max-width:768px){.ProjectionChart_chartWrapper__jmBeL{height:300px}}.PlannedRacesList_title__KrfnR{margin:0;font-size:18px;font-weight:var(--header-font-weight);color:var(--color-text)}.PlannedRacesList_raceList__lN6lH{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.PlannedRacesList_raceRow__bbf7C{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--color-background);border-radius:6px;font-size:14px}.PlannedRacesList_raceDate__Wf_3z{min-width:90px;font-weight:500;color:var(--color-text)}.PlannedRacesList_raceDistance__3mzPb{min-width:110px;color:var(--color-text);display:flex;align-items:center;gap:6px}.PlannedRacesList_distanceDot__gYsr5{width:8px;height:8px;border-radius:50%;flex-shrink:0}.PlannedRacesList_raceExpected__b9Waw{color:var(--color-text-secondary);font-weight:500;min-width:80px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-grow:1}.PlannedRacesList_removeButton__0UQbP{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:2px;display:flex;align-items:center;justify-content:center}.PlannedRacesList_removeButton__0UQbP:hover{color:var(--color-error,#e53e3e)}.PlannedRacesList_addRow__isSQJ{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.PlannedRacesList_dateInput__5F4is,.PlannedRacesList_distanceSelect__O7hEP{padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;background:var(--color-surface);color:var(--color-text)}.PlannedRacesList_dateInput__5F4is:focus,.PlannedRacesList_distanceSelect__O7hEP:focus{outline:none;border-color:var(--color-primary);box-shadow:none}.PlannedRacesList_addButton__953Uk{padding:8px 16px;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.PlannedRacesList_addButton__953Uk:hover:not(:disabled){opacity:.9}.PlannedRacesList_addButton__953Uk:disabled{opacity:.5;cursor:not-allowed}.PlannedRacesList_editButton__Nhx7W{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:2px;display:flex;align-items:center;justify-content:center}.PlannedRacesList_editButton__Nhx7W:hover{border-color:var(--color-primary);color:var(--color-primary)}.PlannedRacesList_nameInput__kXFdH{padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;background:var(--color-surface);color:var(--color-text);min-width:120px;flex:1 1}.PlannedRacesList_nameInput__kXFdH:focus{outline:none;border-color:var(--color-primary);box-shadow:none}.PlannedRacesList_resultForm__CmBmC{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;width:100%}.PlannedRacesList_resultLabel__vVX7C{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;color:var(--color-text-secondary);flex:1 1;min-width:120px}.PlannedRacesList_completedIcon__0nFkW{color:var(--color-success,#38A169);flex-shrink:0}.PlannedRacesList_actualTime__icY5a{display:block;font-size:12px;color:var(--color-text-secondary);font-weight:400}@media (max-width:768px){.PlannedRacesList_raceRow__bbf7C{flex-wrap:wrap}.PlannedRacesList_addRow__isSQJ{flex-direction:column;align-items:stretch}}.page_container__jglnR{max-width:1200px;margin:0 auto;padding:32px 24px}.page_content__q10WG{display:flex;flex-direction:column;gap:24px}@media (max-width:768px){.page_container__jglnR{padding:24px 16px}}