# EmptyState
Khung viền đứt báo "chưa có gì ở đây": ô khách trống trong làn, ô không dữ liệu, và dòng "Đang chờ khách…" ở quầy.
## Khi nào dùng
- Làn khách chưa có ai ("Chưa có khách").
- Danh sách/ô chưa có dữ liệu thì hiện dấu "—".
- Quầy pha đang rảnh: "Đang chờ khách… / Ngồi chơi xíu đi".
- Đang tải hoặc lỗi thì không dùng; đây chỉ để báo trống.
## Biến thể
| Biến thể | Lớp | Dùng khi |
|---|---|---|
| Thường | `tt-empty` | Khung viền đứt 2px `line`, chữ `soft` .8rem, cao tối thiểu 84px |
| Làn khách | `tt-empty tt-empty--lane` | Ô trống trong làn: rộng 100%, cao 128px |
| Sân khấu | `tt-empty tt-empty--stage` | Trên quầy 768px: chữ `stage-muted` 24px đậm, nền `stage-paper` .85, viền `stage-track` |
Phần tử con: `tt-empty__icon` (sticker 40px, vd. `stk_cup`), `tt-empty__hint` (dòng phụ nhỏ hơn), `tt-empty__none` (dấu "—").
## Cấu trúc
```html
Chưa có khách
—
Đang chờ khách…Ngồi chơi xíu đi
```
## Trạng thái
| Trạng thái | Hiệu ứng |
|---|---|
| Mặc định | Tĩnh, không bấm được (game đặt `cursor: default`) |
| Có dữ liệu | Thay cả khung bằng nội dung thật, đừng giữ viền đứt |
## Token sử dụng
`line`, `soft`, `alpha-empty-hint` (độ đục dòng gợi ý), `stage-muted`, `stage-paper`, `stage-track`, `radius-12/14`, `space-4/6/12`.
## Khả năng tiếp cận
- Ảnh trang trí dùng `alt=""`; chữ nằm cạnh ảnh đã đủ nghĩa.
- Nếu trạng thái trống xuất hiện/biến mất động, đặt khung trong vùng `aria-live="polite"` ở nơi dùng.
- `soft` trên `bg` / `panel` đạt tối thiểu 5.52:1 ở mọi theme; `stage-muted` trên `stage-paper` chỉ dùng cho chữ lớn 24px đậm.
## Nên / Không nên
| Nên | Không nên |
|---|---|
| Câu thân thiện, ngắn ("Ngồi chơi xíu đi") | Văn bản kỹ thuật ("No data") |
| Giữ cùng chiều cao với thẻ khách (`--lane`) để làn không nhảy | Đổi chiều cao khi khách tới |
| Kèm sticker `stk_cup` khi khung đủ rộng | Nhồi ảnh lớn vào ô 84px |
## Nguồn
`.cust.empty` (viền đứt, nền trong, `.8rem`, `soft`), `.lane .cust.empty` (100% x 128px) — css/style.css dòng 352 và 337; `.q3idle`, `.q3idle small` (chữ `#8a6f58` thành `stage-muted`, 800; dòng phụ .8em/700/opacity .8) và `.q3wait` (nền `rgba(255,250,240,.85)` thành `stage-paper` .85, bo 12, padding 4px 12px) — dòng 604, 614; `.none` — dòng 371. Viền đứt của `--stage` dùng `stage-track` (game không có viền, thêm để khung nhìn thấy trên nền sân khấu).