/* [20/10] BẢNG PHI ĐỘI 舰队表 — khối Profile (wow-ha-tang-bang-phi-doi-profile). Màu qua token (cam WOW / vàng Landrover đổi ở cổng).
   ⛔ CHỮ TIẾNG VIỆT KHÔNG ĐI FONT MONO (CEO 15/10 "viết tiếng Việt cho đàng hoàng" → 20/10 khoanh chip "CẦN NGƯỜI" bản đầu: "font chữ bị vấn đề…
   cạch mặt nó rồi"): JetBrains Mono dồn dấu chồng của chữ hoa (Ầ · Ấ · Ờ) ở 10px ⇒ méo. Mono chỉ cho số · IP · giờ. Cổng check-wow-chu-viet-khong-font-mono. */
.pd-loc { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; align-items: center; }
.pd-chip, .pd-them { font-family: var(--wow-font-chu); font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--wow-chu-2);
  border: 1px solid var(--wow-vien); background: var(--wow-mat); border-radius: 3px; padding: 5px 10px; cursor: pointer; white-space: nowrap; }
.pd-chip b { margin-left: 6px; font-family: var(--wow-font-so); font-weight: 500; letter-spacing: 0; color: var(--wow-chu); }
.pd-chip.chon { border-color: var(--wow-cam); color: var(--wow-cam-nhat); background: var(--wow-cam-mo); }
.pd-them { color: var(--wow-cam-sang); border-color: rgb(var(--wow-cam-rgb) / .45); }
.pd-chip:hover, .pd-them:hover { filter: brightness(1.3); }
.pd-chip:focus-visible, .pd-them:focus-visible { outline: 1px solid var(--wow-cam-sang); }

/* [20/10] CEO khoanh thanh cuộn ngang: "cấm scroll ngang trong toàn bộ hệ sinh thái synd" ⇒ khung KHÔNG cuộn (bỏ overflow-x + min-width 1080px).
   Rộng: bảng co theo khung, cột Mới nhất nhường chỗ (max-width 0 + cắt "…"). Hẹp hơn tổng cột cố định: mỗi dòng gập thành THẺ (@container cuối tệp). */
.pd-khung { container-type: inline-size; margin-top: 4px; min-width: 0; }
.pd-bang { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.pd-bang th { text-align: left; font-family: var(--wow-font-chu); font-size: 10px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
  color: var(--wow-chu-3); padding: 8px 4px; border-bottom: 1px solid var(--wow-vien); white-space: nowrap; background: var(--wow-mat-2); } /* [09/11] đệm 7/6 ⇒ 4: 12 cột, trả chỗ cho ô tên + Mới nhất */
.pd-bang td { padding: 7px 4px; border-bottom: 1px solid var(--wow-vien-nhat); vertical-align: middle; white-space: nowrap; }
.pd-dong { cursor: pointer; }
.pd-dong:focus-visible { outline: 1px solid var(--wow-cam-sang); outline-offset: -1px; }
.pd-dong:hover > td { background: rgb(var(--wow-quet-rgb) / .03); }
.pd-dong.mo > td { background: var(--wow-cam-mo); }
.pd-dong > td:first-child { box-shadow: inset 2px 0 0 transparent; }
.pd-dong.can > td:first-child { box-shadow: inset 2px 0 0 var(--wow-cam-sang); }
.pd-dong.loi > td:first-child { box-shadow: inset 2px 0 0 var(--wow-xau); }

.pd-nguoi { display: flex; gap: 10px; align-items: center; min-width: 210px; } /* [09/11] 238 ⇒ 210: bỏ dấu "+" ở dòng; 238 bóp cột Mới nhất còn 1 chữ trên màn thật 1440 */
/* [09/11] MỘT CHỦ NHIỀU PROFILE (CEO "1 chủ có thể nhiều profile… tái cấu trúc phần UI"): profile phụ nằm ngay dưới chủ, nét nối cây từ ảnh chủ xuống,
   không lặp ảnh; dòng trong nhóm bỏ vạch ngăn để cả nhóm đọc thành một khối; chủ có dấu +N */
.pd-noi { position: relative; flex: 0 0 34px; align-self: stretch; min-height: 26px; }
.pd-noi::before { content: ""; position: absolute; left: 16px; top: -8px; bottom: -8px; border-left: 1px solid rgb(var(--wow-cam-rgb) / .45); }
.pd-noi::after { content: ""; position: absolute; left: 16px; top: 50%; width: 12px; border-top: 1px solid rgb(var(--wow-cam-rgb) / .45); }
.pd-phu.cuoi .pd-noi::before { bottom: 50%; }
.pd-bang .pd-chu-hang > td, .pd-bang .pd-phu:not(.cuoi) > td { border-bottom-color: transparent; }
/* [09/11] HAI TẦNG (xem chú thích đầu tệp .js): dòng CHỦ = người, nền nhạt để cả nhóm đọc thành một khối; chủ một profile gộp vào dòng profile */
.pd-chu-hang > td { padding: 10px 7px 8px; background: rgb(var(--wow-quet-rgb) / .035); white-space: normal; }
.pd-chu-hang.can > td { box-shadow: inset 2px 0 0 var(--wow-cam-sang); }
.pd-chu-khoi { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; min-width: 0; }
.pd-chu-ten { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1 1 160px; }
.pd-chu-ten .ht-co-dong.pd-ho-ten { margin: 0; padding: 0; max-width: 260px; font-size: 14px; color: var(--wow-chu); font-family: var(--wow-font-chu); }
.pd-chu-ten .ht-co-dong.pd-ho-ten.thieu { color: #f2b84b; }
.pd-chu-ten .ht-them-o { width: 200px; height: 28px; font-size: 13px; }
.pd-ten-hang { display: flex; align-items: center; gap: 8px; min-width: 0; }
/* [09/11] ô tên CỐ ĐỊNH, tên dài cắt "…" (ô gợi ý giữ đủ): đo màn thật 1440 — tên tự giãn 222→255px ⇒ tràn đè công tắc + bảng lấn khung 12px + cột Mới nhất còn 73px */
.pd-bang .pd-nguoi-o { width: 218px; min-width: 218px; max-width: 218px; }
.pd-ten .ht-co-dong { max-width: 100%; }
.pd-bang .pd-nguoi-o .pd-nguoi { min-width: 0; }
.pd-ten-hang > b { display: block; min-width: 0; white-space: normal; line-height: 1.25; } /* tên dài xuống dòng (cắt "…" làm mất cả chấm trạng thái — ảnh thật 1440) */
.pd-ten-hang > b > .ht-den, .pd-ten-hang > b > .pd-bat-lai { margin-left: 6px; }
.pd-ten-hang .ht-tk-logo, .pd-chu-ten .ht-tk-logo { width: 24px; height: 24px; flex: none; }
.pd-ten-hang .ht-tk-logo > svg, .pd-chu-ten .ht-tk-logo > svg { width: 17px; height: 17px; }
.pd-zalo { cursor: pointer; }
.pd-zalo:hover { filter: brightness(1.3); }
.pd-zalo:focus-visible { outline: 1px solid var(--wow-cam-sang); border-radius: 4px; }
/* nút "+ profile": chủ nhiều profile = chip chữ ở dòng chủ; chủ một profile = chỉ dấu + mờ cạnh logo Zalo (chữ lặp mỗi dòng là lắm mồm) */
.pd-them-chu { font-family: var(--wow-font-chu); font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--wow-cam-sang);
  border: 1px solid rgb(var(--wow-cam-rgb) / .45); background: var(--wow-mat); border-radius: 3px; padding: 4px 10px; cursor: pointer; white-space: nowrap; }
.pd-them-chu:hover { filter: brightness(1.4); }
.pd-them-chu:focus-visible { outline: 1px solid var(--wow-cam-sang); }
.pd-phu .pd-ten b { font-size: 12.5px; }
.pd-ten-chu { color: var(--wow-chu-3); margin-right: .3em; }
.pd-so-phu { font-family: var(--wow-font-so); font-size: 10px; color: var(--wow-cam-nhat); border: 1px solid rgb(var(--wow-cam-rgb) / .4); border-radius: 8px; padding: 0 5px; letter-spacing: 0; }
.pd-ten { min-width: 0; display: grid; }
.pd-ten b { font-weight: 400; letter-spacing: .06em; font-size: 13.5px; display: inline-flex; gap: 8px; align-items: center; }
/* [20/10] họ tên cổ đông = nút sửa ngay ở dòng (dongHoTenCoDong) */
.pd-ten .ht-co-dong { margin: 0; text-align: left; padding: 0; font-size: 11.5px; color: var(--wow-chu-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 150px; }
.pd-ten .ht-co-dong.thieu { color: #f2b84b; }
.pd-ten .ht-ten-o { font-size: 13px; width: 160px; height: 28px; letter-spacing: .04em; }
/* công tắc Tự động gọn: chỉ núm, chữ ở đầu cột */
.ht-tu-dong.gon { min-width: 0; min-height: 22px; padding: 0 3px; gap: 0; width: 40px; }
.ht-tu-dong.gon i { width: 14px; height: 14px; }
.ht-tu-dong.gon[aria-checked="true"] { padding: 0 3px; }

/* ảnh Zalo chủ profile: viền = trạng thái kết bạn Ngọc Hàn (xanh đã bạn · cam chờ họ gửi lời mời · xám chưa) */
.pd-av { --pd-co: 34px; position: relative; flex: none; width: var(--pd-co); height: var(--pd-co); border-radius: 50%; overflow: hidden; display: grid; place-items: center;
  background: var(--wow-mat-2); box-shadow: 0 0 0 2px var(--wow-nen), 0 0 0 3px var(--wow-chu-4); }
.pd-av.ban { box-shadow: 0 0 0 2px var(--wow-nen), 0 0 0 3px var(--wow-tot); }
.pd-av.cho { box-shadow: 0 0 0 2px var(--wow-nen), 0 0 0 3px var(--wow-cam-sang); }
.pd-av-chu::before { content: attr(data-chu); }
.pd-av-chu { font-family: var(--wow-font-mono); font-weight: 600; font-size: calc(var(--pd-co) * .34); color: var(--wow-chu-3); letter-spacing: 0; }
.pd-av img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.pd-ip { font-family: var(--wow-font-mono); font-size: 11px; }
.pd-ip small { display: block; color: var(--wow-chu-3); margin-top: 1px; } /* [09/11] nhà mạng xuống dòng dưới IP: nhường ~40px cho ô tên (logo Zalo + dấu +) */
.pd-ip .tt-ic { margin-left: 6px; vertical-align: middle; }
.pd-ip .xau { font-family: var(--wow-font-chu); font-size: 12px; } /* "chưa ghim IP" là chữ Việt, không phải số */
/* hộp Tài khoản của thẻ dùng lại ở dòng: chỉ hàng logo, nhãn ẩn */
.pd-tk .ht-tk-mo { padding: 2px 4px; min-height: 0; border-color: transparent; background: none; width: auto; }
.pd-tk .ht-tk-mo-nhan { display: none; }
.pd-tk .ht-tk-logo { width: 26px; height: 26px; } .pd-tk .ht-tk-logo > svg { width: 18px; height: 18px; } /* [09/11] logo nhỏ một nấc: nhường chỗ cho ô tên (logo Zalo của chủ) */
.pd-tk .ht-tk-mo-chip { flex-wrap: nowrap; } /* đo 390px: ô co ⇒ logo xếp dọc, dòng cao 195px */
.pd-so { font-family: var(--wow-font-so); font-size: 14px; }
/* [20/10] ô gõ ngân sách ngay ở dòng (số = font số), thanh mảnh dưới = đã chi hôm nay */
.pd-ns-khoi { display: grid; gap: 3px; width: 78px; } /* [09/11] 96 ⇒ 78: "500.000" vừa ô; trả chỗ cho cột Mới nhất (đo 1440 thật còn 73px) */
.pd-ns-o { width: 100%; box-sizing: border-box; padding: 3px 6px; border: 1px solid var(--wow-vien); border-radius: 4px; background: var(--wow-mat-2);
  color: var(--wow-chu); font-family: var(--wow-font-so); font-size: 13px; text-align: right; font-variant-numeric: tabular-nums; }
.pd-ns-o::placeholder { color: var(--wow-chu-4); }
.pd-ns-o:hover { filter: brightness(1.25); }
.pd-ns-o:focus { outline: none; border-color: var(--wow-cam-sang); }
.pd-ns { display: block; height: 3px; border-radius: 2px; background: var(--wow-vien-nhat); overflow: hidden; }
.pd-ns i { display: block; height: 100%; background: linear-gradient(90deg, var(--wow-cam-dam), var(--wow-cam-sang)); }
.pd-ns.het i { background: var(--wow-xau); }
.pd-moi-o { width: 100%; max-width: 0; } /* cột co giãn duy nhất: ăn phần còn lại, thiếu chỗ thì cắt "…" (title giữ câu đủ) */
.pd-moi { display: block; overflow: hidden; text-overflow: ellipsis; font-family: var(--wow-font-chu); font-size: 12px; color: var(--wow-chu-3); }
.pd-moi-gio { font-family: var(--wow-font-mono); font-size: 11px; color: var(--wow-chu-4); margin-right: 8px; } /* giờ = số ⇒ mono được */
.pd-moi.m-xau { color: var(--wow-xau); } .pd-moi.m-can, .pd-moi.m-can-nguoi { color: var(--wow-cam-sang); }
.pd-viec > div { display: flex; gap: 8px; align-items: center; justify-content: flex-end; }
.pd-vao { padding: 6px 12px; font-size: 12px; min-height: 0; }

/* [20/10] ngăn chi tiết: nhật ký (terminal + 7 ngày) | page và hai liên kết aff — mọi điều khiển đã ở dòng trên */
.pd-ct > td { padding: 12px 10px 16px; background: rgb(0 0 0 / .25); white-space: normal; }
.pd-ct-khoi { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 360px); gap: 20px; align-items: start; max-width: 100%; }
.pd-ct-khoi.mot { grid-template-columns: minmax(0, 560px); }
.pd-ct-nk { display: grid; gap: 8px; }
.pd-ct-nk .ht-nut-7n { justify-self: start; min-height: 30px; }
@container (max-width: 900px) { .pd-ct-khoi { grid-template-columns: minmax(0, 1fr); } }
.pd-viec .wow-nut { padding: 6px 12px; font-size: 12px; min-height: 0; width: auto; }
.pd-viec .ht-nut-dt { width: 32px; min-height: 30px; }
.pd-viec .ht-nut-dt .tt-vat svg { width: 15px; height: 15px; }

/* [20/10] khung hẹp hơn tổng cột cố định ⇒ dòng gập thành THẺ: người + nút trên cùng · icon/số giữa (tên cột từ data-nhan) · nhật ký mới nhất cuối.
   Ngưỡng = cột cố định (đo máy chủ giả 20/10: 1.032px) + ~170px cho Mới nhất — dưới đó câu nhật ký bị cắt còn vài chữ, gập thẻ đọc được hơn. */
/* [09/11] ngưỡng 1199 → 1335 (đo: cột cố định giờ 1.284px — ô tên thêm logo Zalo + dấu +, người đã lên dòng); bảng không được tràn mép phải */
@container (max-width: 1335px) {
  .pd-bang, .pd-bang > tbody { display: block; }
  .pd-bang > thead { display: none; }
  .pd-dong { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 10px 10px 10px 12px; border-bottom: 1px solid var(--wow-vien-nhat); }
  .pd-dong > td { display: block; padding: 0; border: 0; background: none !important; box-shadow: none !important; }
  .pd-dong:hover { background: rgb(var(--wow-quet-rgb) / .03); }
  .pd-dong.mo { background: var(--wow-cam-mo); }
  .pd-dong.can { box-shadow: inset 2px 0 0 var(--wow-cam-sang); }
  .pd-dong.loi { box-shadow: inset 2px 0 0 var(--wow-xau); }
  /* ba tầng: tên · công tắc · nút ⇒ ngắt ⇒ IP · tài khoản · icon/số ⇒ ngắt ⇒ dòng mới nhất. Ngắt = ::before/::after rộng 100% (cũng là mục flex, nhận order). */
  .pd-dong::before, .pd-dong::after { content: ""; flex-basis: 100%; height: 0; }
  .pd-dong::before { order: 3; } .pd-dong::after { order: 5; }
  .pd-nguoi-o, .pd-bang .pd-nguoi-o { order: 0; flex: 1 1 200px; min-width: 0; width: auto; max-width: none; } /* [09/11] ô tên cố định 218px chỉ ở dạng bảng */
  .pd-nguoi { min-width: 0; }
  .pd-td { order: 1; }
  .pd-viec { order: 2; }
  .pd-dong > td:not(.pd-nguoi-o):not(.pd-td):not(.pd-viec):not(.pd-moi-o) { order: 4; }
  .pd-dong > td[data-nhan] { display: inline-flex; align-items: center; gap: 6px; }
  .pd-dong > td[data-nhan]::before { content: attr(data-nhan); font-family: var(--wow-font-chu); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--wow-chu-4); }
  .pd-dong > td[data-nhan].pd-rong, .pd-dong > td.pd-moi-o:empty { display: none; }
  .pd-moi-o { order: 6; flex: 1 1 100%; width: auto; max-width: 100%; min-width: 0; }
  .pd-ct, .pd-ct > td { display: block; }
  .pd-chu-hang { display: block; border-bottom: 0; }
  .pd-chu-hang > td { display: block; }
}

/* [21/10] profile cần bật lại để nhận cấu hình khởi động mới — một hình nhỏ cam cạnh chấm đang mở (lý do ở title) */
.pd-bat-lai { display: inline-flex; vertical-align: middle; margin-left: 4px; color: rgb(var(--wow-cam-rgb)); }
.pd-bat-lai .tt-vat svg { width: 12px; height: 12px; }
/* [22/10] link màn hình cho người ngoài — khuôn nút điện thoại chép vào đây (cổng Landrover không nạp CSS nút điện thoại); một logo: xám = chưa có link · đủ màu = đang mở */
.pd-link { display: inline-grid; place-items: center; padding: 0; border-radius: 6px; border: 1px solid #3a1c12; background: #0e0a09; color: var(--wow-cam-nhat); cursor: pointer; }
.pd-link:hover { filter: brightness(1.35); }
.pd-link-chua { opacity: .35; filter: grayscale(1); }
.pd-link-chua:hover { opacity: .7; }
.pd-viec .pd-link { width: 32px; min-height: 30px; }
.pd-viec .pd-link .tt-vat svg { width: 15px; height: 15px; }
.pd-link-o { width: 100%; box-sizing: border-box; padding: 10px 12px; background: #0b0b0b; color: var(--wow-chu, #eee); border: 1px solid #333; border-radius: 6px; font-family: var(--wow-font-so, monospace); font-size: 13px; text-overflow: ellipsis; }
.pd-link-het { margin: 8px 0 12px; color: var(--wow-chu-phu, #aaa); font-family: var(--wow-font-chu); }
.pd-link-nut { display: flex; flex-wrap: wrap; gap: 8px; }

/* [22/10] NÚT NẠP VÍ TKQC ở dòng profile — cùng khuôn logo của nút link: xám = chưa đọc số dư · cam = dưới điểm báo (cần nạp) */
.pd-nap { display: inline-grid; place-items: center; padding: 0; border-radius: 6px; border: 1px solid #3a1c12; background: #0e0a09; color: var(--wow-cam-nhat); cursor: pointer; }
.pd-nap:hover { filter: brightness(1.35); }
.pd-nap-chua { opacity: .35; filter: grayscale(1); }
.pd-nap-thap { border-color: rgb(var(--wow-cam-rgb)); color: rgb(var(--wow-cam-rgb)); box-shadow: inset 0 0 0 1px rgba(255, 140, 60, .25); }
.pd-viec .pd-nap { width: 32px; min-height: 30px; }
.pd-viec .pd-nap .tt-vat svg { width: 15px; height: 15px; }

/* Hộp nạp ví: mỗi TKQC một khối — đầu dòng (4 số cuối · số dư) rồi QR hoặc ô số tiền. Không cuộn ngang: QR + chữ gập dòng. */
.pd-nap-ds { display: grid; gap: 16px; min-width: 0; }
.pd-nap-tk { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--wow-vien, #2a2a2a); border-radius: 8px; background: var(--wow-mat-2, #121212); min-width: 0; }
.pd-nap-dau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; font-family: var(--wow-font-chu); }
.pd-nap-dau b { font-family: var(--wow-font-so, monospace); letter-spacing: .04em; }
.pd-nap-so { color: var(--wow-chu-phu, #aaa); font-family: var(--wow-font-so, monospace); }
.pd-nap-so.xau { color: rgb(var(--wow-cam-rgb)); }
.pd-nap-so small { font-family: var(--wow-font-chu); }
.pd-nap-qr { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; min-width: 0; }
.pd-nap-qr img { width: 200px; height: 200px; flex: 0 0 auto; border-radius: 6px; background: #fff; padding: 6px; box-sizing: content-box; object-fit: contain; }
.pd-nap-khong-anh { flex: 0 1 200px; margin: 0; }
.pd-nap-qrtt { display: grid; gap: 6px; min-width: 0; flex: 1 1 180px; font-family: var(--wow-font-chu); }
.pd-nap-nhan { font-family: var(--wow-font-chu); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--wow-chu-4, #777); }
.pd-nap-tien { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pd-nap-tien b { font-family: var(--wow-font-so, monospace); font-size: 18px; color: var(--wow-kimloai, #ffd79a); }
.pd-nap-het { color: var(--wow-chu-phu, #aaa); }
.pd-nap-stk { font-family: var(--wow-font-so, monospace); letter-spacing: .04em; color: var(--wow-chu, #eee); }
.pd-nap-nut { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pd-nap-o { width: 130px; box-sizing: border-box; padding: 6px 10px; border: 1px solid var(--wow-vien, #2a2a2a); border-radius: 6px; background: #0b0b0b; color: var(--wow-chu, #eee); font-family: var(--wow-font-so, monospace); font-size: 14px; }
.pd-nap-o:focus { outline: none; border-color: var(--wow-cam-sang, #ff8a3d); }
.pd-nap-tt { margin: 0; color: var(--wow-chu-phu, #aaa); font-family: var(--wow-font-chu); }
.pd-nap-tt.xau { color: var(--wow-xau, #ff6b6b); }

/* [22/10] KHỐI ĐANG CHẠY: vòng quay + giây đã chờ — CEO "nên có hiệu ứng loading để người ta còn chờ mà đợi".
   Chỉ xoay + đếm giây (không thanh tiến trình giả): việc này mất ~1 phút, không biết trước còn bao lâu. */
.pd-nap-cho { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; color: var(--wow-chu-phu, #aaa); font-family: var(--wow-font-chu); }
.pd-nap-quay { width: 16px; height: 16px; flex: 0 0 auto; border-radius: 50%; border: 2px solid rgb(var(--wow-cam-rgb) / .2); border-top-color: var(--wow-cam-sang, #ff8a3d); border-right-color: rgb(var(--wow-cam-rgb) / .55); animation: pd-quay .8s linear infinite; }
@keyframes pd-quay { to { transform: rotate(360deg); } }
.pd-nap-giay { font-family: var(--wow-font-so, monospace); color: var(--wow-cam-nhat); min-width: 28px; }
@media (prefers-reduced-motion: reduce) { .pd-nap-quay { animation-duration: 2.4s; } }
.pd-ten-hang > b > .ht-den.thoi i { background: var(--wow-xau); } /* [09/11] máy thôi tự bật lại — cần người mở */
