# [fix] 확장 캡처 — 오마이매니저 보험사 선택(체크박스) 존중, 제외 보험사는 비교대상서 제거

## allowed_resources
```yaml
allowed_resources:
  paths:
    - "extension/content.js"
    - "extension/__tests__/**"
  forbidden_paths:
    - "src/**"
    - "server/**"
    - ".github/**"
    - "extension/manifest.json"
    - "extension/background/**"
  commands: ["npx vitest","git"]
  merge_policy: "none"
  ttl_hours: 10
```
> ★ merge_policy=none. base=현 origin/main. 신규 브랜치. consent/egress/single-egress/taint-guard·저장 흐름 로직 불변 — **캡처(스크래핑)가 선택된 보험사만 담게** + 표시 필터만.

## 배경 (회장 피드백)
오마이매니저 보험료 비교표는 보험사별 체크박스(가입/미가입/모두보기)가 있고, **선택 해제한 보험사는 보험료가 0** 으로 표시된다. 그런데 InsuRo 확장 캡처 팝업 테이블에는 **제외된 보험사도 그대로 나온다**(예: 롯데손해보험 체크해제·오마이매니저 0원인데 팝업엔 267,520원). → 캡처가 **체크박스 상태를 무시**하고 전 보험사를 담고 있음.

## 작업
1. **캡처 시 선택된 보험사만 포함**: `scrapeMmlfcpMatrix`(또는 매트릭스 조립부)가 오마이매니저 **보험사 헤더의 체크박스/선택 상태**를 읽어, **선택 해제(unchecked)되었거나 보험료 합계가 0/미조회인 보험사는 캡처 매트릭스에서 제외**한다.
   - 판정: 보험사 컬럼의 체크박스 상태(`input[type=checkbox]` checked) 우선. DOM 구조상 애매하면 **해당 보험사의 담보 보험료가 전부 0/빈값이면 제외**(2차 판정).
   - 제외된 보험사는 `analysis_matrix.insurers`·`coverages[].premiums` 격자·팝업 테이블·per_insurer **모든 곳에서 제거**(일관).
2. **팝업 테이블 = 캡처 결과 그대로**: 제외된 보험사는 테이블에도 안 나온다(별도 필터 불필요 — 캡처 자체가 제외했으므로).
3. **재캡처 반영**: 사용자가 선택을 바꾸고 "보험료 미리보기"를 다시 누르면 새 선택 기준으로 재캡처(기존 재캡처 흐름 유지).
4. **1·2·3사 조합 정합**: 제외된 보험사가 매트릭스에 없으므로, 저장→웹앱 계산의 조합도 자동으로 선택 보험사만 대상(서버/웹앱 변경 0 — 입력 매트릭스만 정제됨).

## 제약
- content.js 캡처/조립·표시만. consent·single-egress·taint-guard·저장 전송·매칭 로직 0 변경.
- 선택 판정은 견고하게(체크박스 부재/구조변경 시 2차 판정=0원 제외). 전부 제외되는 극단(선택 0개)은 "선택된 보험사가 없습니다" 안내.
- 기존 캡처(선택 다수) 회귀 0.

## 검증
- `npx vitest run extension/__tests__/` 전체 PASS. 신규 테스트: 체크해제 보험사(또는 전担보 0원) → 매트릭스·팝업·premiums 격자에서 제외 / 선택 보험사만 포함 / 선택 0개 안내 / 조합계산 입력 정합. 기존 캡처·저장·consent 회귀 0.

## 완료 (★ 순서 B)
- content.js(+테스트) 외 변경 0.
- **dev6 금지** — dev2. 커밋 → push → finish-task **foreground 1회** → .done 즉시 종료. **background+wait 금지.** ANU 검증·Codex 검토·머지·새 파일럿빌드 전송은 ANU.

## goal_assertions (auto-generated)
- `npx vitest run extension/__tests__/`
