---
task_id: task-2857-followup
team: dev2-team
level: 1
priority: P3
scope: task
depends_on: [task-2857]
created_by: ANU
created_at: 2026-07-25
---

# task-2857 후속 — 플로팅 카드 버튼 ID 스타일 스코프 위생 픽스

## 배경
task-2857(PR #130) 머지됨. Codex 반증리뷰에서 MEDIUM 1건 확인:
`extension/content.js`의 `ensureInsuroFloatingPanelStyle` 주입 style 중 **버튼 ID 셀렉터**가
`#insuro-floating-panel` 스코프 프리픽스 없이 전역 ID 셀렉터로 주입됨.

대상 셀렉터(전역 → 스코프 필요):
- `#insuro-consent-save-btn`, `#insuro-ppd-preview-btn`
- `#insuro-crm-search-btn`
- `#insuro-crm-create-btn`, `#insuro-crm-new-btn`
- `#insuro-crm-create-status`, `#insuro-consent-status`, `#insuro-ppd-status`

(`.insuro-*` 클래스 셀렉터는 이미 `scope + " ..."` 로 정상 스코프됨 — 손대지 말 것)

## 목표
위 버튼/상태 ID 규칙을 전부 `scope + " #insuro-..."` 형태로 프리픽스하여
`#insuro-floating-panel` 내부로 한정. 호스트 페이지 CSS 오염(이론적) 제거.

## 제약 (동결)
- 렌더 로직·핸들러·consent 상수·CRM 매칭/저장 로직(§1~§9) 절대 불변. **CSS 셀렉터 프리픽스만**.
- element ID 자체 제거/변경 금지.
- innerHTML 신규 사용 금지.
- 기존 테스트 424 전부 PASS 유지 + 신규 스코프 계약 검증 테스트 1건 추가(주입 style에 전역 `#insuro-...{` 규칙이 0건인지 asserting).

## 완료 기준
- `git diff` 는 content.js CSS 문자열 + 테스트만.
- npx vitest run extension/__tests__/ 전부 PASS.
- merge_policy=none → 머지는 ANU 권한.
