/* =============================================================================
 * TÚI ĐỒ › THANH TRÊN — build 864   (SUBTASK 3)
 * -----------------------------------------------------------------------------
 * PHẠM VI: hàng `.sf-top` (tiêu đề · khay ví · nút X) · hàng tiêu đề kho
 * `.sf-inv-head` · dải tab lọc `.sf-inv-tabs`.
 * KHÔNG đụng hộp `.sf-plus` / `.sf-inv-add` (lane khác đang vá vị trí nút "+"),
 * KHÔNG đụng nền/hiệu ứng khung, KHÔNG đụng lưới ô, KHÔNG đụng logic ví.
 *
 * ĐO TRƯỚC KHI VÁ — tests/qa/shop/invtop.spec.ts, chuỗi 39 <link> CSS THẬT của
 * client/index.html, 10 khổ màn hình (có cả body.rot90):
 *
 *  LỖI 1 — TAB LỌC PHÌNH 78–160px (đáng ra 44px)
 *      cao × rộng của `.sf-inv-tab`:
 *        360×640  160,00   375×667  153,47   390×844  147,44   414×896  138,70
 *        667×375   86,31   896×414   78,02   rot90-360  89,98  rot90-390 82,92
 *      Dải tab tràn ngang 330px (360) · 289 (375) · 250 (390) · 191 (414).
 *      Ảnh chụp: một pill "TẤT CẢ" chiếm gần nửa chiều cao túi đồ trên điện thoại.
 *    VÌ SAO. shop-textwrap-847.css:295 đặt
 *        min-height: max(36px, var(--sw-tap));  min-width: max(44px, var(--sw-tap))
 *      với `--sw-tap` = `--sf-tap` = clamp(44px, 44px / var(--sf-fit), 160px).
 *      Phép CHIA cho `--sf-fit` là để bù ngược `transform: scale()` của
 *      `.sf-panel` — mà shop-responsive-779.css:4 đã GỠ `transform` từ lâu
 *      (`transform: none`), nên px bố cục ĐÃ LÀ px thật và phép bù biến thành
 *      phép PHÓNG TO: ở 360 `--sf-fit` = 0,2750 ⇒ 44 / 0,275 = 160px.
 *      Đây đúng một mạch với lỗi đã chữa cho `.sf-cta` (852) và cho ô sắp xếp
 *      `<select>` (863); `.sf-inv-tab` là chỗ CÒN LẠI chưa ai chạm.
 *    VÁ. Chốt sàn chạm 44px PHẲNG (44px đã là sàn WCAG 2.5.5 — px bố cục = px
 *      thật nên không cần nhân chia gì nữa). KHÔNG đụng `--sf-tap`/`--sw-tap`
 *      toàn cục: nhiều lớp khác còn bám vào nó, đổi biến là nới phạm vi bản vá.
 *
 *  LỖI 2 — rot90: NÚT X DÀY 44px TRONG THANH DÀY 34px
 *      bề dày hàng trên (rot90-360 / rot90-390):
 *        .sf-wal = 34,00   .sf-wal = 34,00   .sf-closebtn = 44,00  ⇒ chênh 10px
 *      mobile-repair-830.css:113-116 thu thanh còn 38px và ép khay ví + nút "+"
 *      xuống 34px, nhưng với nút X chỉ đặt `flex: 0 0 34px` — tức BỀ DÀI dọc
 *      thanh, KHÔNG phải bề dày; `height: 44px` của 779 còn nguyên. Hệ quả: nút
 *      X nhô ra khỏi dải ví 5px mỗi bên và tự kéo thanh dày thêm.
 *    VÁ. Cho bề DÀY nút X đúng 34px như khay ví. VÙNG CHẠM KHÔNG GIẢM: lớp phủ
 *      `::after` của 847 là `max(100%, 44px)` nên vẫn 44×44 — phần nở 5px nằm
 *      theo chiều VUÔNG GÓC với thanh (không có nút hàng xóm ở đó), còn chiều
 *      DỌC thanh giữ nguyên 44px của 847 nên KHÔNG hề lấn sang nút "+" của ví
 *      kim cương (đúng cái bẫy mà 847 đã phải chữa một lần). Bộ đo có nhóm I
 *      quét tâm MỌI nút bấm được để chứng minh không nút nào bị nuốt.
 *
 * CỐ Ý KHÔNG LÀM — KHÔNG chuyển hàng nào sang trục CHÂN CHỮ.
 *      Đo được hai chỗ chân chữ không trùng:
 *        `.sf-top`      tiêu đề ↔ số dư ví : 1,45px (rot90) → 5,72px (1366)
 *        `.sf-inv-head` nhãn kho ↔ ô đếm   : 1,86px (1280) · 2,47px (1366)
 *      Đã THỬ `align-items: baseline` cho `.sf-inv-head` rồi BỎ, vì đo được nó
 *      đổi trục theo hướng XẤU HƠN (1366×768):
 *        .sf-inv-title tâm 179,00 → 170,41   (lên 8,6px)
 *        .sf-inv-count tâm 178,99 → 172,45   (lên 6,5px)
 *        .sf-inv-add   tâm 179,00 → 179,00   (nút "+" đứng yên)
 *      tức hai nhãn chữ BAY LÊN khỏi tâm hàng và rời khỏi nút "+" — canh chân
 *      chữ xếp nhóm vào ĐẦU trục ngang chứ không vào giữa. Cả hai hàng đều
 *      trộn chữ với KHỐI BO TRÒN (viên ví, ô đếm nền pill, nút tròn), nên trục
 *      chung ĐÚNG là TÂM HỘP — và tâm đang trùng khít sẵn: lệch 0,00–0,01px ở
 *      cả 10 khổ màn hình. Các số chân chữ vẫn được ghi lại trong báo cáo dưới
 *      dạng GHI NHẬN, kèm cổng kiểm "không nhãn nào để `line-height: normal`"
 *      (để phép đo xuống dòng không ra PASS giả).
 *
 * 7 lần `#shopframe`: phải thắng shop-textwrap-847.css (6 lần id) và, ở rot90,
 * thắng cả `!important` của 830 (3 id) + 836 (4 id) + 847 (6 id).
 * ========================================================================== */

#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe {
  /* Sàn chạm PHẲNG — KHÔNG chia cho --sf-fit. Giữ tên riêng để lớp khác không
     vô tình thừa hưởng. */
  --ivt-tap: 44px;
  /* Bề dày khay ví ở rot90 (mobile-repair-830.css:114). */
  --ivt-rot-chip: 34px;
}

/* ---------------------------------------------------------------------------
 * (1) DẢI TAB LỌC — bỏ phép bù ngược cho transform:scale ĐÃ BỊ GỠ
 * ------------------------------------------------------------------------- */
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-inv-tab {
  height: auto;
  min-height: var(--ivt-tap);
  min-width: var(--ivt-tap);
  /* TƯỜNG MINH: `normal` làm mọi phép đo "nhãn có xuống dòng không" ra 1 dòng. */
  line-height: 1.25;
}
body.rot90 #shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-inv-tab {
  height: auto !important;
  min-height: var(--ivt-tap) !important;
  min-width: var(--ivt-tap) !important;
  line-height: 1.25 !important;
}

/* ---------------------------------------------------------------------------
 * (2) NÚT X — bề dày bằng khay ví ở rot90, vùng chạm vẫn 44×44
 * ------------------------------------------------------------------------- */
body.rot90 #shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-wallets .sf-closebtn {
  height: var(--ivt-rot-chip) !important;
}

/* `.sf-inv-head` / `.sf-title` / `.sf-wal b` KHÔNG có luật nào ở đây: đo xong
   thấy chúng đã canh đúng tâm hàng và line-height đều đã TƯỜNG MINH (1.25 /
   1.3 / 1), nên thêm luật chỉ là thêm rủi ro. Xem khối "CỐ Ý KHÔNG LÀM". */
