## 역할
비인증 사용자의 로그인 페이지. 세션 쿠키 기반 인증 후 `/dashboard`로 리다이렉트.

## 공통 패턴
- 단일 페이지: `login/page.tsx` (`"use client"`)
- `POST /api/auth/login` → `{ userId, password }` 전송, `{ success, message }` 응답
- 성공: `router.push("/dashboard")`, 실패: `Swal.fire({ icon: "error" })`

## 숨겨진 스펙
- 다크 배경: `bg-[#1e2432]`, 흰색 폼 카드
- 빈값 체크: 클라이언트에서만 (`!userId || !password`)
- 로딩 상태: 버튼 disabled + 텍스트 "로그인 중..."
- autoFocus: ID 필드에 자동 포커스
- autoComplete: `"username"`, `"current-password"` 설정

@MISTAKES.md
