/* 유틸리티 클래스(u-) — 두 셸이 싣는다 · 크기는 셸 중립 토큰 --u-sp-*·--u-fw-* · 이 앱 화면이 쓰는 것만 둔다 */

/* ── 건너뛰기 링크 ── */
/* KWCAG 2.4.1 — 초점을 받을 때만 보이고 반복 메뉴를 건너뛰어 본문(#u-main)으로 */
.u-skip-nav {
    position: absolute; left: -9999px; top: 0; z-index: 1000;
    padding: var(--u-sp-8) var(--u-sp-16); background: var(--u-accent); color: var(--u-on-accent);
    font-size: 0.875rem; font-weight: var(--u-fw-semibold);
}
.u-skip-nav:focus { left: 0; }

/* ── 스크린리더 전용 ── */
/* 시각적으로 숨기고 보조기기엔 남긴다 · 숨김은 clip-path 한 벌 · 표 캡션은 caption 안쪽 span 에 건다(core/shell CONTRACT.md §2-D-2) */
.u-sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* ── 배치 ── */
.u-flex { display: flex; }
.u-hidden { display: none !important; }
.u-items-center { align-items: center; }
.u-justify-center { justify-content: center; }
.u-justify-between { justify-content: space-between; }
.u-flex-wrap { flex-wrap: wrap; }
.u-flex-1 { flex: 1; }

/* ── 간격 ── */
.u-gap-4  { gap: var(--u-sp-4); }
.u-gap-8  { gap: var(--u-sp-8); }
.u-gap-12 { gap: var(--u-sp-12); }
.u-gap-16 { gap: var(--u-sp-16); }
.u-mb-0  { margin-bottom: 0; }
.u-mb-12 { margin-bottom: var(--u-sp-12); }
.u-mb-16 { margin-bottom: var(--u-sp-16); }

/* ── 글자 ── */
.u-fw-semibold { font-weight: var(--u-fw-semibold); }
.u-text-accent  { color: var(--u-accent); }
