/* 기본 틀(TASK-S4-003). 색·크기는 전부 토큰 변수(src/web/tokens/tokens.css)만 쓴다 — 06장 U-1.
   외부 글꼴·CDN 없음(U-9): 번들 글꼴 CareSans(나눔고딕 OFL 서브셋, src/web/fonts/subset.py) 를 먼저 쓴다 — 기기마다 글꼴이 달라 골든 스크린샷이 어긋나는 것을 막는다(2026-09-23 실측: 로컬 36/36 불일치). */
@font-face { font-family: "CareSans"; font-style: normal; font-weight: 400; font-display: block; src: url("../fonts/CareSans-Regular.woff2") format("woff2"); }
@font-face { font-family: "CareSans"; font-style: normal; font-weight: 700; font-display: block; src: url("../fonts/CareSans-Bold.woff2") format("woff2"); }
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }   /* .stack·.row 의 display 가 hidden 속성을 덮어 숨긴 폼이 보이던 결함(2026-09-23, 버전 이력 취소 폼) */
input, select, textarea, button { accent-color: var(--color-primary); }
html { font-size: var(--font-base); }
body {
  margin: 0; background: var(--color-bg); color: var(--color-ink);
  font-family: "CareSans", system-ui, "Noto Sans CJK KR", "Noto Sans KR", "Malgun Gothic", sans-serif;
  font-size: var(--font-base); line-height: 1.5;
}
h1, h2, h3 { margin: 0 0 calc(var(--space-unit) * 2); line-height: 1.3; }
code, kbd, pre { font-family: inherit; }   /* 고정폭 기기 글꼴은 기기마다 달라 골든이 어긋난다 — 번들 글꼴로 통일 */
h1 { font-size: calc(var(--font-base) * 1.5); }
h2 { font-size: calc(var(--font-base) * 1.25); }
p { margin: 0 0 calc(var(--space-unit) * 2); }
.muted { color: var(--color-muted); }
.stack { display: flex; flex-direction: column; gap: calc(var(--space-unit) * 3); }
.row { display: flex; flex-wrap: wrap; gap: calc(var(--space-unit) * 2); align-items: center; }
.surface { background: var(--color-surface); border-radius: var(--radius-md); padding: calc(var(--space-unit) * 4); }
.header { background: var(--color-surface); color: var(--color-ink); padding: calc(var(--space-unit) * 3) calc(var(--space-unit) * 4); font-weight: 700; border-bottom: 2px solid var(--color-muted); }
/* 메뉴 바탕(color.nav) 위 글자 토큰이 계약 ⑧ 에 없다(D 참고값에선 ink, 밝은 후보에선 흰색이어야 함) → `color.on-nav` 추가를 ADR 초안에 제안. 그 전에는 nav 바탕에 글자를 올리지 않는다. */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
