서버에서 받은 약관 HTML 한 벌을 스크롤 카드 안에 렌더하는 정적 고지 화면. 공용 컴포넌트 TermsContent가 로딩·오류·내용없음·본문 네 상태를 배타적으로 가른다. 08-03·08-04·08-05와 구조가 완전히 동일하다 — 차이는 termsId 값(YOUTH_PROTECTION)과 헤더 제목뿐이다.
GET /terms/YOUTH_PROTECTION (진입 onMounted 1회 + 로케일 변경 시 재호출) — 게시 중인 청소년보호정책 1건 조회. 응답 { status, code, value? }. value 부재는 오류가 아니라 내용없음 정상 케이스. 서버에 YOUTH_PROTECTION 종류가 아직 없어 현재는 오류 또는 내용없음만 보인다(#1557).back-title — 제목 "청소년보호정책"(common.headerTitles.youthProtection) + 뒤로가기. 이동뒤로가기 → 직전 화면(이 화면군 밖).useScrollLock({ alwaysLock: true })).content 한 필드만 쓴다. DOMPurify.sanitize(content, { ADD_ATTR: ['target','rel'] })로 소독 후 v-html 렌더.LayoutFooter.vue:43) · 영문 풋터 "Youth Protection Policy"(LayoutFooter.vue:90).isLoading 동안 24px 원형 스피너만 보인다. 규칙재조회할 때마다 오류·본문을 먼저 비우고 시작한다.200)인데 활성 약관이 없는 경우. i18n legal.terms.noContent. 규칙오류가 아니다 — 오류 화면으로 가지 않는다.catch) 시 i18n legal.terms.loadError. 규칙재시도 버튼이 없다 — 로케일을 바꾸거나 화면에 다시 들어와야 재호출된다.