feat(maintenance): 차량 교체(신차/중고차) — 교체일 기준 정비주기 리셋 차량을 교체하면 기존 기록은 모두 보존하되, 교체일 이후부터 신차 기준으로 정비주기와 주행거리를 다시 계산한다. 프로필 차량정보에서 교체일·시작 km· 새 차량번호를 입력하면 currentVehicleStartDate/Odometer 경계가 저장된다. - 교체일 이전 기록은 baseline 계산에서 제외하고 '이전 차량' 뱃지로 구분 - 교체 후 미수행 항목은 시작 km를 가상 baseline으로 주입(다음 정비 = 시작 km + 주기) - 대시보드 현재 주행거리/최신 주유도 교체 경계 이후만 반영 - 리셋 계산부를 lib/maintenanceCalc.ts 순수 함수로 추출, vitest 5건으로 불변식 고정 Constraint: 기존 정비/주유/가계부 기록은 삭제하지 않고 보존한다(경계 기반 필터링만 적용). Confidence: high Scope-risk: module Reversibility: moderate Directive: 운영 배포 시 prisma migrate deploy로 currentVehicleStart* 2개 컬럼 추가 필요. Tested: tsc·build EXIT 0, vitest 108건(신규 5건 포함) 통과 — 교체경계 없음/가상baseline/이전차량 제외 불변식. Not-tested: 실제 운영 DB에서의 교체 후 UI 시각 확인은 배포 후 수행. Related: docs/specs/2026-06-09-vehicle-change-design.md 🐙 Autopus