/* =============================================================================
 * TÚI ĐỒ › DỌN ĐƯỜNG KẺ / ĐƯỜNG CONG / HIỆU ỨNG NỀN XUYÊN QUA GIAO DIỆN (864)
 *
 * PHẠM VI: CHỈ nền trang trí của khu TÚI ĐỒ (`.sf-panel.mode-bag`). KHÔNG đụng
 * `.sf-plus` / `.sf-inv-add` (lane khác), KHÔNG đụng thanh trên (lane khác),
 * KHÔNG đụng cửa hàng (`.sf-panel` không có `.mode-bag`), KHÔNG đụng luật chơi,
 * API, hay sim Go.
 *
 * ───────────────────── LỖI THẬT (đo bằng pixel-diff, không suy đoán) ─────────
 * `inventory-781/inventory.css:2` đặt cho riêng túi đồ:
 *     .sf-panel.mode-bag { background: #0b1120 url(inventory-781/vault.svg)
 *                          right top / auto 100% no-repeat !important }
 *
 * `vault.svg` KHÔNG chỉ là quầng sáng — nó còn chứa NÉT VẼ CỨNG:
 *     • 3 đường tròn đồng tâm r=210/260/320 quanh (790,80);
 *     • 3 đoạn thẳng  M450 80h450 · M790 0v470 · M540 320L900 0;
 *     • 4 vệt chéo dài  M0 699L900 120 … M600 700L900 555 (gradient #7ce9cb).
 *
 * `.sf-panel` là TỔ TIÊN của cả thanh trên, menu trái và thân túi đồ, nên nét
 * vẽ đó chạy XUYÊN dưới khay ví / nút X / hàng "VẬT PHẨM ĐANG SỞ HỮU" / hàng
 * tab lọc / khe giữa cột trang bị và lưới. Đo bằng cách bật-tắt đúng lớp nền
 * rồi đếm pixel đổi màu (tests `_qa_w2_layers.py` · `_qa_w2_mag.py`):
 *
 *     khổ       pixel đổi trên .sf-top         Δ≥10     Δ≥20   Δmax
 *     1920×1080         23 374                15 353    6 126    70
 *     1366×768          17 882                11 240    5 369    85
 *      414×896           8 008                 7 793    4 274    85
 *      360×640           7 214                 6 876    2 399    84
 *
 * Δ≥20 trên nền tối là NHÌN THẤY ĐƯỢC: ảnh chụp 1366 cho thấy rõ một đường
 * thẳng đứng cắt ngang thanh trên rồi chui tiếp vào thẻ túi đồ, cùng 2 vệt chéo
 * cắt qua khe giữa hai ô trang bị phụ và mép nút "SẮP XẾP".
 *
 * Lỗi thứ hai, cùng gốc: `inventory-781/inventory.css:17` cho thẻ túi đồ nền
 * `#0e1624db` — ALPHA 0,86 ⇒ hình nền của panel đọc XUYÊN qua chính thẻ. Đo
 * được 14 853 px (1920) / 8 195 px (1366) đổi màu khi ép thẻ thành đục.
 *
 * ĐỐI CHỨNG ÂM đã chạy: một luật vô hại cho ≤ 21 px (nhiễu khử răng cưa) ⇒ các
 * con số trên là TÍN HIỆU, không phải nhiễu. ĐỐI CHỨNG DƯƠNG (ẩn nền tab đang
 * chọn) cho ≥ 2 602 px ở cả 6 khổ ⇒ bộ đo có răng.
 *
 * ──────────────────────────────── CÁCH VÁ ───────────────────────────────────
 * (1) GIỮ hiệu ứng nền THUỘC THIẾT KẾ — quầng tím ở góc trên-phải — nhưng dựng
 *     lại bằng gradient CSS thay vì ảnh, nên KHÔNG còn nét vẽ nào để xuyên qua.
 *     Toạ độ chép ĐÚNG từ vault.svg: <ellipse cx=710 cy=100 rx=410 ry=380>
 *     trong viewBox 900×700, ảnh neo `right top / auto 100%`:
 *         tâm   710/900 = 78,89%   ·   100/700 = 14,29%
 *         bán kính 410/900 = 45,56%   ·   380/700 = 54,29%
 *         khổ hộp gradient = (900/700)×100% × 100% = 128,571% × 100%, neo phải-trên
 *     ⇒ quầng sáng nằm ĐÚNG chỗ cũ, cùng màu #8264cf alpha .22.
 *     CỐ Ý không thay bằng tệp .svg mới: ảnh nền có script deploy RIÊNG,
 *     `scripts/deploy_game.py` bỏ qua thư mục asset ⇒ thêm ảnh là thêm một bước
 *     deploy dễ quên; gradient đi cùng file .css nên không thể lệch.
 *
 * (2) KẸP phần nền còn lại bằng bề mặt ĐỤC thay vì bằng clip: thẻ túi đồ
 *     `.sf-inv` trả về `#0e1624` (đúng màu cũ, bỏ alpha) ⇒ không còn gì đọc
 *     xuyên qua lưới vật phẩm, kể cả lớp sao `.sf-panel::before` của shopframe.
 *
 * (3) CHỐT LẠI các cửa clip đang đúng, để lớp CSS thêm sau không vô tình mở ra:
 *     `.sf-bag` · `.sf-inv` · `.sf-load-ship` · `.sf-cell` = overflow:hidden,
 *     `.sf-inv-scroll` chỉ cuộn DỌC. Đã đo: không lớp trang trí nào vẽ ra ngoài
 *     `.sf-panel` (outPanel = 0 px ở cả 6 khổ) — mục này là bảo hiểm, không
 *     đổi pixel nào ở hiện trạng.
 *
 * ─────────────────────── VÌ SAO 9 LẦN #shopframe ────────────────────────────
 * Chủ hiện hành của nền panel túi đồ là `inventory-781/inventory.css`
 * (`#shopframe#shopframe .sf-panel.mode-bag`, kèm `!important`), và
 * `shop-sortsel-863.css` đã dùng tới 8 lần id. File này × 9 + `!important`,
 * và PHẢI được <link> SAU tất cả.
 *
 * KHÔNG ĐỔI Ở CỬA HÀNG: mọi luật dưới đây đều có `.mode-bag`, mà lớp đó chỉ
 * được gắn khi `view === 'collection'` (shopframe.ts:897).
 * ========================================================================== */

/* ---------------------------------------------------------------------------
 * (1) NỀN KHU TÚI ĐỒ — giữ quầng sáng, bỏ toàn bộ nét vẽ.
 * ------------------------------------------------------------------------- */
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-panel.mode-bag {
  background-color: #0b1120 !important;
  background-image: radial-gradient(
      ellipse 45.56% 54.29% at 78.89% 14.29%,
      rgba(130, 100, 207, .22) 0%,
      /* màu cuối CHÍNH LÀ màu nền, alpha 0 — không dùng `transparent` để tránh
         nội suy qua đen trên trình duyệt cũ (vệt xám ở rìa quầng sáng). */
      rgba(11, 17, 32, 0) 100%) !important;
  background-size: 128.571% 100% !important;
  background-position: 100% 0 !important;
  background-repeat: no-repeat !important;
  background-attachment: scroll !important;
  background-origin: padding-box !important;
  background-clip: border-box !important;
}

/* ---------------------------------------------------------------------------
 * (2) THẺ TÚI ĐỒ ĐỤC — chặn mọi thứ đọc xuyên qua lưới vật phẩm.
 *     `#0e1624` là ĐÚNG màu 781 đang dùng, chỉ bỏ hai ký tự alpha `db`.
 * ------------------------------------------------------------------------- */
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-panel.mode-bag .sf-inv {
  background-color: #0e1624 !important;
  background-image: none !important;
}

/* ---------------------------------------------------------------------------
 * (3) BẢO HIỂM CLIP — chốt lại trạng thái ĐANG ĐÚNG (0 px đổi khi áp lớp này).
 * ------------------------------------------------------------------------- */
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-panel.mode-bag .sf-bag,
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-panel.mode-bag .sf-inv,
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-panel.mode-bag .sf-load-ship,
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-panel.mode-bag .sf-mini,
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-panel.mode-bag .sf-inv-grid .sf-cell {
  overflow: hidden;
}
#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe#shopframe .sf-panel.mode-bag .sf-inv-scroll {
  overflow-x: hidden;
}
