/* [13/10] TIẾN TRÌNH (popup cây từng mã · nhật ký cả hệ) + CẤU HÌNH (dây chuyền 4 mảng · công tắc) — dựng trên bộ đại màn wow-dai-man:
   nền đen sâu, nhãn mono giãn, số SYND So, cam Shopee là MỘT điểm nhấn; hover chỉ brightness. Lớp `tt-` = Tiến trình, `ch-` = Cấu hình. */

/* ── thẻ trên bảng: lãi lỗ realtime ── */
.mw-lai { color: var(--wow-tot) !important; }
.mw-lo { color: var(--wow-xau) !important; }

/* ── popup cây dòng chảy một mã ── */
/* [22/10] CEO "mở rộng bề ngang của pop up ra" — để ads đối thủ và tư liệu mới đứng song song (920px chỉ đủ một dải 3 thẻ) */
dialog.mw-ss.tt-hop { width: min(1360px, calc(100vw - 32px)); }
.tt-hop .rd-phan { gap: 18px; }
.tt-hop-dau { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.tt-hop-dau h2 { margin: 4px 0 0; font-weight: 300; font-size: clamp(17px, 2vw, 22px); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tt-hop-dau .mw-the-anh { width: 56px; height: 56px; }
.tt-cay { list-style: none; margin: 0; padding: 0; display: grid; }
.tt-nut { --mau: var(--wow-chu-4); position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; padding-bottom: 18px; }
.tt-nut:last-child { padding-bottom: 0; }
/* dây nối dọc giữa các nút: sáng theo màu nút TRÊN (đoạn đã đi qua) */
.tt-nut:not(:last-child)::before { content: ''; position: absolute; left: 10px; top: 20px; bottom: 0; width: 2px; background: var(--mau); opacity: .45; }
.tt-nut[data-tt="xong"] { --mau: var(--wow-tot); }
.tt-nut[data-tt="dang"] { --mau: var(--wow-cam-sang); }
.tt-nut[data-tt="xau"] { --mau: var(--wow-xau); }
/* [17/10] chấm tự vẽ + quầng sáng bỏ: nút cây dùng icon trạng thái (cửa MỘT). Nhỏ một nấc, căn với dây nối. */
.tt-nut > .tt-ic { width: 18px; height: 18px; margin: 1px 0 0 2px; } .tt-nut > .tt-ic svg { width: 11px; height: 11px; }



.tt-nut-than { display: grid; gap: 10px; min-width: 0; }
.tt-nut-dau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.tt-nut-dau b { font-weight: 500; font-size: 15px; }
.tt-tom { font-size: 13px; color: var(--mau); }
.tt-nut[data-tt="cho"] .tt-tom { color: var(--wow-chu-3); }
.tt-ly-do { margin: 0; padding-left: 16px; font-size: 12.5px; line-height: 1.5; color: var(--wow-chu-2); }
/* [14/10] dòng hành vi đối thủ (hạng hiển thị · leo hạng · tốc độ bán) — số mono, chi tiết ở title */
/* [16/10] PA 05 (CEO chọn): thanh nhịp 24h ads lên (xanh) đối lại ads tắt (đỏ) + dòng hạng ads mẫu — chữ thường, không mono cam */
/* [18/10] dải lịch sử mã (điểm theo ngày; cam đặc = trong tiềm năng · rỗng = ngoài · mờ = chưa có sổ lý do) */
.tt-ls { margin-top: 8px; }
.tt-ls-svg { display: block; width: 100%; height: auto; }
.tt-ls-duong { fill: none; stroke: var(--wow-chu-4); stroke-width: 1.5; }
.tt-ls-cham { fill: var(--wow-cam-sang); stroke: var(--wow-mat); stroke-width: 2; cursor: help; }
.tt-ls-cham.ngoai { fill: var(--wow-mat); stroke: var(--wow-chu-3); stroke-width: 1.5; }
.tt-ls-cham.cu { fill: var(--wow-chu-4); }
.tt-ls-ngay { fill: var(--wow-chu-3); font-family: var(--wow-font-mono); font-size: 10px; }
.tt-ls-bd { display: flex; flex-wrap: wrap; gap: 2px 14px; font-size: 12.5px; color: var(--wow-chu-2); }
.tt-hanh-vi { margin-top: 6px; display: grid; gap: 8px; font-size: 12.5px; color: var(--wow-chu-2); cursor: help; }
/* [23/10] thanh ads lên/tắt mảnh đầy ngang đọc như đường kẻ ⇒ chừa thêm 6px dưới (khe 10 ⇒ 16) cho khối kế không dính — cổng check-wow-khoi-khong-dinh-sat */
.tt-nv { display: grid; gap: 6px; margin-bottom: 6px; }
.tt-nv-nhan { display: flex; justify-content: space-between; gap: 10px; }
.tt-nv-nhan > :nth-child(2) { color: var(--wow-chu-3); text-align: center; }
.tt-nv-len { color: var(--wow-tot); }
.tt-nv-tat { color: var(--wow-xau); }
.tt-nv-thanh { display: flex; gap: 3px; height: 8px; border-radius: 4px; overflow: hidden; background: var(--wow-mat-2); }
.tt-nv-thanh i { flex-basis: 0; min-width: 0; }
.tt-nv-xanh { background: var(--wow-tot); } .tt-nv-do { background: var(--wow-xau); }/* [16/10] dải content gốc của mã: lướt ngang (cuộn bắt thẻ), thẻ gốc combo đứng đầu viền cam, thẻ khác theo hạng trong mã */
/* [17/10] ma trận đối thủ: ô số to + nhãn đời thường (thay văn xuôi lý do) */
.tt-mt { display: grid; grid-template-columns: repeat(auto-fit, minmax(104px, 1fr)); gap: 6px; }
.tt-mt-o { display: grid; align-content: start; gap: 4px; padding: 8px 10px; border: 1px solid var(--wow-vien-nhat); border-radius: 8px; cursor: help; }
.tt-mt-o b { font-family: var(--wow-font-so); font-weight: 400; font-size: 22px; line-height: 1; color: var(--wow-chu); }
.tt-mt-o span { font-size: 11.5px; line-height: 1.3; color: var(--wow-chu-3); }
.tt-mt-xau b { color: var(--wow-xau); }
.tt-mt-thanh { display: block; height: 4px; border-radius: 2px; background: var(--wow-mat-2); overflow: hidden; }
.tt-mt-thanh i { display: block; height: 100%; background: var(--wow-cam-sang); }
.tt-goc-o { display: none; } /* chỗ giữ dải gốc trong lúc chờ API — không chiếm khoảng gap của nút cây */
/* [20/10] CEO "cấm scroll ngang trong toàn bộ hệ sinh thái synd" ⇒ dải video gốc gói dòng (bỏ cuộn ngang + mũi ‹ ›) */
/* [22/10] dải gốc bên trái · ô chi tiết (caption + link) bên phải — không mở popup lồng; khung hẹp ⇒ chồng dọc */
.tt-goc { position: relative; display: grid; grid-template-columns: minmax(0, 3fr) minmax(220px, 2fr); gap: 12px; align-items: start; }
.tt-goc-ct { display: grid; gap: 8px; min-width: 0; padding: 10px 12px; border: 1px solid var(--wow-vien-nhat); border-radius: 8px; background: var(--wow-mat-2); }
.tt-goc-ct-dau { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.tt-goc-ct-ten { flex: 1 1 120px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: var(--wow-chu-3); }
.tt-goc-ct-chu { margin: 0; max-height: 320px; overflow-y: auto; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 13px; line-height: 1.5; color: var(--wow-chu); }
@media (max-width: 640px) { .tt-goc { grid-template-columns: minmax(0, 1fr); } }
/* [22/10] hai cột ads đối thủ | tư liệu mới + ô chi tiết bên phải; khung hẹp ⇒ xếp chồng (container, không cuộn ngang) */
.tt-goc:has(.tt-goc-hai) { grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); }
.tt-goc-hai { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; align-items: start; min-width: 0; }
.tt-goc-cot { display: grid; gap: 6px; min-width: 0; }
/* [23/10] thẻ mất ảnh + video (link hết hạn, chưa có bản sao): chữ giữa thẻ thay ô đen trơn */
.tt-goc-het { position: absolute; inset: 0; display: grid; place-content: center; gap: 2px; text-align: center; font-family: var(--wow-font-chu); font-size: 12px; color: var(--wow-chu-3); }
.tt-goc-het b { font-weight: 500; color: var(--wow-chu-2); }
/* [23/10] logo nền tảng (bộ chung veLogoTk, màu thương hiệu như Xưởng): đầu cột + góc dưới phải mỗi thẻ */
.tt-goc-nen-dau { display: inline-grid; width: 18px; height: 18px; }
.tt-goc-nen-dau svg, .tt-goc-nen svg { width: 100%; height: 100%; display: block; }
.tt-goc-nen { position: absolute; right: 6px; bottom: 6px; z-index: 1; width: 20px; height: 20px; padding: 2px; border-radius: 6px; background: rgb(0 0 0 / .6); }
.tt-goc-nen-dau.facebook, .tt-goc-nen.facebook { color: var(--wow-mau-facebook); }
.tt-goc-nen-dau.tiktok, .tt-goc-nen.tiktok { color: var(--wow-mau-tiktok); }
.tt-goc-so { padding-right: 32px; }
/* [23/10] số + trạng thái bước Tư liệu ở đầu cột Media gốc (bước 02 gộp vào khối 01) */
.tt-goc-tl { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-family: var(--wow-font-chu); font-size: 12px; color: var(--wow-chu-3); }
.tt-goc-tl b { font-weight: 500; color: var(--wow-chu); }
/* [23/10] độ phủ lọc trùng: "! 21/23 ads đã so" — dấu ! tách khỏi số */
.tt-goc-phu { display: inline-flex; align-items: center; gap: 5px; }
/* [23/10] video đối thủ ĐÃ TẮT: vẫn hiện (tham chiếu · lọc trùng), hình xám + một dấu ⏸ góc phải trên; rê chuột/đang chọn thì sáng lại */
.tt-goc-the-tat video, .tt-goc-the-tat img { filter: grayscale(1) brightness(.6); }
.tt-goc-the-tat:hover video, .tt-goc-the-tat:hover img, .tt-goc-the-tat.tt-goc-dang video, .tt-goc-the-tat.tt-goc-dang img { filter: grayscale(.3) brightness(.95); }
.tt-goc-dau-tat { position: absolute; top: 6px; right: 6px; display: grid; place-items: center; padding: 2px; border-radius: 4px; background: rgb(0 0 0 / .7); }
.tt-goc-cot + .tt-goc-cot { padding-left: 14px; border-left: 1px solid var(--wow-vien-nhat); }
.tt-goc-cot-dau { display: flex; align-items: baseline; gap: 8px; margin: 0; font-family: var(--wow-font-chu); font-weight: 500; font-size: 12px; color: var(--wow-chu-2); }
.tt-goc-cot-dau b { font-weight: 400; color: var(--wow-chu-3); }
@media (max-width: 900px) { .tt-goc:has(.tt-goc-hai) { grid-template-columns: minmax(0, 1fr); } .tt-goc-cot + .tt-goc-cot { padding-left: 0; border-left: 0; } }
.tt-goc-dai { display: flex; flex-wrap: wrap; gap: 8px; padding: 2px 0 6px; }
.tt-goc-the { position: relative; flex: 0 0 120px; aspect-ratio: 9 / 16; padding: 0; overflow: hidden; cursor: pointer;
  border: 1px solid var(--wow-vien); border-radius: 8px; background: #000; }
.tt-goc-chinh { flex-basis: 150px; border: 2px solid var(--wow-cam); box-shadow: 0 0 14px rgb(var(--wow-cam-sang-rgb) / .35); }
.tt-goc-the video, .tt-goc-the img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tt-goc-the:hover, .tt-goc-the:focus-visible { filter: brightness(1.2); outline: none; }
.tt-goc-the.tt-goc-dang { border: 2px solid var(--wow-cam-sang); box-shadow: 0 0 0 2px rgb(var(--wow-cam-sang-rgb) / .45); } /* ảnh đang xem ở ô chi tiết */
.tt-goc-nhan { position: absolute; top: 6px; left: 6px; padding: 1px 6px; border-radius: 4px; background: rgb(0 0 0 / .7);
  font: 500 10.5px/1.5 var(--wow-font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--wow-chu); }
.tt-goc-chinh .tt-goc-nhan { background: var(--wow-cam); color: #fff; }
.tt-goc-so { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 6px 5px; background: linear-gradient(transparent, rgb(0 0 0 / .85));
  font: 500 10.5px/1.3 var(--wow-font-mono); color: var(--wow-chu-2); text-align: left; }
.tt-goc-so > * { display: block; }
.tt-goc-xem { font-weight: 500; font-size: 10px; letter-spacing: 0; color: var(--wow-chu); }
/* [23/10 khuya] tư liệu mới: hạng ế xám mờ (cùng luật thẻ Xưởng .xc-mt-e) · có đơn thật ⇒ "N đơn/ngày" chữ Việt (font chữ, không mono — luật màn WOW 9) nhấn sáng */
.tt-goc-the-e video, .tt-goc-the-e img { filter: grayscale(1) brightness(.55); }
.tt-goc-the-e:hover video, .tt-goc-the-e:hover img, .tt-goc-the-e.tt-goc-dang video, .tt-goc-the-e.tt-goc-dang img { filter: none; }
.tt-goc-the-don .tt-goc-so { font-family: var(--wow-font-chu); font-weight: 600; color: var(--wow-chu); }
@media (max-width: 640px) { .tt-goc-the { flex-basis: 96px; } .tt-goc-chinh { flex-basis: 128px; } }
.tt-ds { display: grid; gap: 4px; }
.tt-dong { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 6px 10px;
  border: 1px solid var(--wow-vien-nhat); border-radius: 8px; font-size: 12.5px; color: var(--wow-chu-2); text-align: left; background: none; font-family: inherit; }
.tt-dong > :first-child { color: var(--wow-chu); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-dong small { color: var(--wow-chu-3); text-align: right; }
.tt-bam { cursor: pointer; } .tt-bam:hover, .tt-bam:focus-visible { filter: brightness(1.35); border-color: rgb(var(--wow-cam-sang-rgb) / .4); outline: none; }
.tt-tt-xong { color: var(--wow-tot); } .tt-tt-loi { color: var(--wow-xau); } .tt-tt-dang-chay, .tt-tt-cho { color: var(--wow-cam-sang); }
.tt-phu { font-size: 12.5px; color: var(--wow-chu-3); }
.tt-tao-page { display: grid; gap: 4px; padding: 10px 12px; border: 1px dashed rgb(var(--wow-cam-sang-rgb) / .4); border-radius: 8px; }
.tt-tao-page p { margin: 0; font-size: 13px; color: var(--wow-chu); }
.tt-so { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.tt-so div { display: grid; }
.tt-so b { font-family: var(--wow-font-so); font-weight: 400; font-size: 22px; }
.tt-so span { font-size: 11.5px; color: var(--wow-chu-3); }

/* ── nhật ký cả hệ tự động ── */
.tt-khoi-nk .rd-phan-dau { flex-wrap: wrap; gap: 10px; }
.tt-loc { display: flex; flex-wrap: wrap; gap: 6px; }
.tt-chip { min-height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--wow-vien); background: none; color: var(--wow-chu-3);
  font: 500 11px/1 var(--wow-font-chu); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.tt-chip:hover { filter: brightness(1.35); }
.tt-chip[aria-pressed="true"] { color: var(--wow-cam-sang); border-color: rgb(var(--wow-cam-sang-rgb) / .55); }
.tt-nk { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; max-height: 460px; overflow-y: auto; overflow-x: clip;
  -webkit-mask-image: linear-gradient(180deg, #000 88%, transparent); mask-image: linear-gradient(180deg, #000 88%, transparent); }
.tt-nk li { --mau: var(--wow-cam-sang); display: grid; grid-template-columns: 64px 84px minmax(0, 1fr) auto; gap: 10px; align-items: baseline;
  padding: 5px 8px; border-left: 2px solid transparent; font-size: 13px; }
.tt-nk li.rd-trong { display: block; }
.tt-nk .gio { font-family: var(--wow-font-mono); font-size: 11px; color: var(--wow-chu-3); }
.tt-nk .the { font-family: var(--wow-font-chu); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--mau); white-space: nowrap; }
.tt-nk .chu { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tt-nk .dv { font-size: 12px; color: var(--mau); white-space: nowrap; text-align: right; }
.tt-nk li[data-l="tu-khoa"], .tt-nk li[data-l="cham"], .tt-nk li[data-l="thieu"] { --mau: #FFC56B; }
.tt-nk li[data-l="giai-link"] { --mau: #7FD3FF; }
.tt-nk li[data-l="het-qc"] { --mau: var(--wow-chu-3); }
.tt-nk li[data-l="phan-loai"], .tt-nk li[data-l="page"] { --mau: var(--wow-tot); }
.tt-nk li[data-l="ai"] { --mau: #B9A4FF; }
.tt-nk li[data-l="loi"] { --mau: var(--wow-xau); }
.tt-nk li[data-l="xuong"] { --mau: var(--wow-cam); }
.tt-nk li[data-l="camp"] { --mau: #FFE2D2; }
.tt-nk li[data-l="cau-hinh"] { --mau: var(--wow-chu); }
.tt-nk li.dang .chu { color: var(--mau); }
.tt-nk li.moi { border-left-color: var(--mau); animation: tt-vao .9s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes tt-vao { from { opacity: 0; transform: translateX(-10px); } }

/* ── CẤU HÌNH ── */
.ch-man { display: grid; gap: 22px; }

/* ── CẤU HÌNH: khối từng mảng ── */
.ch-mang { display: grid; gap: 16px; scroll-margin-top: 90px; }
.ch-mang[data-che="chua-xay"] { opacity: .7; }
.ch-mang-dau { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: center; }
.ch-mang-so { font-size: clamp(30px, 3.4vw, 44px); line-height: 1; }
.ch-mang-dau h2 { margin: 0; font-weight: 300; font-size: clamp(18px, 2vw, 24px); letter-spacing: .04em; }
.ch-viec { margin: 4px 0 0; font-size: 13px; color: var(--wow-chu-3); }
.ch-che { padding: 8px 14px; border-radius: 999px; font: 500 11px/1 var(--wow-font-chu); letter-spacing: .14em; text-transform: uppercase; }
.ch-che-tu-dong { color: var(--wow-tot); border: 1px solid rgb(111 207 154 / .5); }
.ch-cot { display: grid; gap: 8px; align-content: start; min-width: 0; }
/* [14/10] CEO "trang cào data dài ngoằng": 9 máy xếp dọc 410px ⇒ lưới 2 cột từ ~800px (390 vẫn 1 cột) */
.ch-bang { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); column-gap: 40px; }
.ch-dong { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; min-height: 44px; padding: 4px 0; border-bottom: 1px solid var(--wow-vien-nhat); font-size: 13.5px; }
.ch-dong small { font-size: 11.5px; color: var(--wow-chu-3); white-space: nowrap; }
.ch-dong.tat > span { color: var(--wow-chu-3); }
.ch-gia-tri { font-family: var(--wow-font-so); font-weight: 400; font-size: 15px; color: var(--wow-chu); text-align: right; grid-column: 2 / -1; }
.ch-dong small + .ch-gia-tri { grid-column: auto; }
.ch-den { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--wow-chu-2); }
.ch-den span { display: inline-flex; align-items: center; gap: 6px; }
.ch-den i { width: 7px; height: 7px; border-radius: 50%; background: var(--wow-xau); }
.ch-den span[data-tt="song"] i { background: var(--wow-tot); box-shadow: 0 0 8px var(--wow-tot); }
.ch-den span[data-tt="cho"] i { background: #FFC56B; }
.ch-lan-cuoi { margin: 0; font-size: 13px; color: var(--wow-chu-2); }
.ch-trong { margin: 0; font-size: 13px; color: var(--wow-chu-4); }

/* công tắc: nút 44px, chấm trượt; BẬT = xanh, TẮT = viền xám */
.ch-ct { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; min-width: 76px; padding: 0 12px 0 6px; border-radius: 999px; border: 1px solid var(--wow-vien);
  background: none; color: var(--wow-chu-3); font: 500 11px/1 var(--wow-font-chu); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.ch-ct i { width: 22px; height: 22px; border-radius: 50%; background: var(--wow-chu-4); transition: transform .2s; }
.ch-ct[aria-checked="true"] { color: var(--wow-tot); border-color: rgb(111 207 154 / .55); flex-direction: row-reverse; padding: 0 6px 0 12px; }
.ch-ct[aria-checked="true"] i { background: var(--wow-tot); box-shadow: 0 0 10px var(--wow-tot); }
.ch-ct:hover { filter: brightness(1.35); }
.ch-ct:disabled { opacity: .45; cursor: not-allowed; filter: none; }
.ch-ct-lon { min-height: 44px; min-width: 96px; font-size: 12px; }
/* [03/11] công tắc nhiều mức (AI đổi người: Tắt / Khi cần / Bật) — cùng chất liệu .ch-ct, mức đang chạy sáng; gói dòng khi hẹp (cấm cuộn ngang) */
.ch-muc { display: inline-flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.ch-muc-nut { min-height: 36px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--wow-vien); background: none; color: var(--wow-chu-3);
  font: 500 11px/1 var(--wow-font-chu); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; white-space: nowrap; }
.ch-muc-nut.dang { color: var(--wow-tot); border-color: rgb(111 207 154 / .55); cursor: default; }
.ch-muc-nut:not(.dang):hover { filter: brightness(1.35); }
.ch-muc-nut:disabled { opacity: .45; cursor: not-allowed; filter: none; }
.ch-ct-lon i { width: 30px; height: 30px; }

/* ── Hạ tầng: bảng dùng AI ── */
.ai-bang td b { display: block; font-weight: 400; }
.ai-bang td small { font-size: 11px; color: var(--wow-chu-3); }
.ai-bang td.ai-hong { color: var(--wow-xau); }
.ai-bang td.ai-model { font-family: var(--wow-font-mono); font-size: 11.5px; color: var(--wow-chu-2); white-space: nowrap; }

@media (max-width: 720px) {
  .tt-dong { grid-template-columns: minmax(0, 1fr) auto; }
  .tt-dong small { grid-column: 1 / -1; text-align: left; }
  .tt-nk li { grid-template-columns: 56px minmax(0, 1fr) auto; }
  .tt-nk .the { display: none; }
  .ch-mang-dau { grid-template-columns: minmax(0, 1fr) auto; }
  .ch-mang-so { display: none; }
  /* chụp 390 ngày 13/10: dải 4 trạm phải cuộn ngang, trạm 3–4 khuất ⇒ lưới 2×2, bỏ đoạn nối (thứ tự đọc theo số 01–04) */
}

/* ── [14/10] CẤU HÌNH = khu chứa mọi công cụ: dải mảng (ngoài #man) + bảng điều khiển mảng + thẻ mảng ở Tổng quan ── */
.ch-tab { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px; /* [20/10] cấm cuộn ngang ⇒ hẹp thì tab xuống dòng */ border-radius: 14px; border: 1px solid var(--wow-vien); background: var(--wow-mat-2); }
.ch-tab-muc { --mau: var(--wow-chu-4); flex: 1 1 0; min-width: max-content; display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 10px;
  color: var(--wow-chu-2); text-decoration: none; transition: filter .15s; }
.ch-tab-muc:hover { filter: brightness(1.35); }
.ch-tab-muc .wow-so { font-size: 12px; color: var(--wow-chu-3); }
.ch-tab-muc b { font-weight: 400; font-size: 13.5px; letter-spacing: .04em; white-space: nowrap; }
.ch-tab-muc.dang { background: rgb(var(--wow-cam-rgb) / .14); color: var(--wow-chu); box-shadow: inset 0 0 0 1px rgb(var(--wow-cam-sang-rgb) / .45); }
.ch-tab-muc.dang .wow-so { color: var(--wow-cam-sang); }
.ch-tab-den { width: 7px; height: 7px; border-radius: 50%; background: var(--mau); margin-left: auto; }
.ch-tab-muc[data-tt="chay"] { --mau: var(--wow-tot); } .ch-tab-muc[data-tt="tat"] { --mau: var(--wow-cam-sang); }
.ch-tab-muc[data-tt="chay"] .ch-tab-den { box-shadow: 0 0 8px var(--wow-tot); }

/* ── [14/10] FANPAGE: dòng sản phẩm → page ── */
.fp-man { display: grid; gap: 22px; }
.fp-bang { display: grid; gap: 6px; }
/* [14/10] CEO "chưa cân đối": cột tên rộng CỐ ĐỊNH ⇒ cột số thẳng hàng mọi dòng (1fr cũ co theo nút bên phải) */
.fp-dong { display: grid; grid-template-columns: 240px minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 10px 14px; border-radius: 10px; border: 1px solid var(--wow-vien-nhat); }
.fp-dong b { font-weight: 500; font-size: 14px; } .fp-dong small { display: block; font-size: 11.5px; color: var(--wow-chu-3); }
.fp-cot { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--wow-chu-4); }
.fp-cot b { font-family: var(--wow-font-so); font-weight: 400; font-size: 16px; margin-right: 4px; }
.fp-cot .co { color: var(--wow-chu-2); } .fp-cot .ket { color: var(--wow-cam-sang); }
.fp-tt { font-family: var(--wow-font-mono); font-size: 10.5px; letter-spacing: .12em; white-space: nowrap; padding: 6px 10px; border-radius: 999px; border: 1px solid currentColor; }
.fp-tt.tot { color: var(--wow-tot); } .fp-tt.dang { color: var(--wow-cam-sang); } .fp-tt.xau { color: var(--wow-xau); }
.fp-page { font-size: 12.5px; color: var(--wow-chu-2); max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-cho { font-size: 12.5px; color: var(--wow-cam-sang); }
/* [14/10] CEO "nút tạo và gắn page thô thiển" ⇒ nút viền nhỏ cùng dáng chip (thay chip + nút cam to) */
.fp-nut { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; border: 1px solid rgb(var(--wow-cam-sang-rgb) / .55); background: rgb(var(--wow-cam-rgb) / .1);
  color: var(--wow-cam-nhat); font: inherit; font-size: 12.5px; font-weight: 500; letter-spacing: .03em; white-space: nowrap; cursor: pointer; transition: filter .15s; }
.fp-nut:hover { filter: brightness(1.3); } .fp-nut:disabled { opacity: .5; cursor: default; }
.fp-dang { margin: 0; font-size: 13px; color: var(--wow-cam-sang); }
.fp-luoi-concept { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.fp-luoi-concept .pn-concept { margin-top: 0; }
.fp-luoi-nick { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 14px; }
@media (max-width: 720px) {
  .fp-dong { grid-template-columns: minmax(0, 1fr) auto; }
  .fp-cot { grid-column: 1 / -1; }
  .ch-tab-muc { flex: 0 0 auto; }
}

/* [14/10 v2] Fanpage theo cụm: thiếu gì để đủ ngưỡng · hàng chờ mã chưa thuộc cụm */
/* [14/10] điều kiện mở page: 3 ô biểu tượng + có/cần — chưa đạt cam, đạt xanh */
.fp-nguong { display: inline-flex; gap: 6px; }
.fp-ng { display: inline-flex; align-items: baseline; gap: 4px; padding: 3px 9px; border-radius: 999px; border: 1px solid rgb(var(--wow-cam-sang-rgb) / .4); font-family: var(--wow-font-mono); font-size: 11px; color: var(--wow-chu-3); white-space: nowrap; }
.fp-ng i { font-style: normal; font-size: 14px; line-height: 1; color: var(--wow-cam-sang); }
.fp-nick-san { font-family: var(--wow-font-mono); font-size: 11px; letter-spacing: .04em; color: var(--wow-cam-sang); } /* [14/10] nick gắn sẵn trên thẻ concept */
.fp-nick-san.xau { color: var(--wow-xau); }
.fp-ng b { font-family: var(--wow-font-so); font-weight: 400; font-size: 14px; color: var(--wow-cam-nhat); }
.fp-ng.dat { border-color: rgb(111 207 154 / .4); } .fp-ng.dat i, .fp-ng.dat b { color: var(--wow-tot); }
.fp-hang-cho summary { cursor: pointer; font-family: var(--wow-font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--wow-chu-3); padding: 8px 0; }
.fp-hang-cho summary:hover { filter: brightness(1.35); }
.fp-cho-dong { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--wow-vien-nhat); font-size: 12.5px; }
.fp-cho-dong span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .fp-cho-dong small { color: var(--wow-chu-3); }

/* [14/10] THAM SỐ = LƯỚI Ô SỐ luôn hiện (CEO: "quá xấu, không nên ẩn mà sắp xếp hiện ra các thông số") */
.ch-than { display: grid; gap: 18px; }
.ch-so-luoi { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 12px; }
.ch-so-o { position: relative; display: grid; align-content: start; gap: 12px; min-width: 0; padding: 14px 16px 12px; border: 1px solid var(--wow-vien-nhat);
  border-radius: 10px; background: linear-gradient(160deg, rgb(var(--wow-cam-sang-rgb) / .06), transparent 55%); transition: border-color .15s, box-shadow .15s; }
.ch-so-o.nhap:focus-within { border-color: rgb(var(--wow-cam-sang-rgb) / .6); box-shadow: 0 0 18px rgb(var(--wow-cam-sang-rgb) / .12); }
.ch-so-dau { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; min-height: 2.9em; }
.ch-so-ten { font: 500 10px var(--wow-font-chu); letter-spacing: .06em; /* [20/10] mono → chữ: Inter in hoa rộng hơn ⇒ hạ giãn chữ, "TRẦN PHÂN LOẠI PAGE / NGÀY" không gãy */ text-transform: uppercase; color: var(--wow-chu-3); line-height: 1.4; min-width: 0; }
.ch-so-gia { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
.ch-so-gia b, .ch-so-nhap { font-family: var(--wow-font-so); font-weight: 300; font-size: 30px; line-height: 1.05; color: var(--wow-chu); }
.ch-so-gia b.chu { font-family: inherit; font-size: 16px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-so-gia small { font-size: 12.5px; color: var(--wow-chu-3); }
.ch-so-nhap { padding: 0 0 3px; border: 0; border-bottom: 1px dashed rgb(var(--wow-cam-sang-rgb) / .4); background: transparent;
  color: var(--wow-cam-sang); -moz-appearance: textfield; appearance: textfield; }
.ch-so-nhap::-webkit-inner-spin-button, .ch-so-nhap::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.ch-so-nhap:focus { outline: none; border-bottom: 1px solid var(--wow-cam-sang); }
.ch-so-nhap:disabled { opacity: .5; }
.ch-so-khoang { flex: none; font: 10px var(--wow-font-chu); letter-spacing: .06em; color: var(--wow-chu-4); line-height: 1.5; white-space: nowrap; }
/* [14/10] "dài ngoằng" ở 390: mỗi ô một hàng (5 ô ≈ 600px) ⇒ 2 ô một hàng, số nhỏ lại */
@media (max-width: 720px) {
  .ch-so-luoi { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .ch-so-o { padding: 10px 12px; gap: 8px; }
  .ch-so-dau { min-height: 0; }
  .ch-so-ten { font-size: 9.5px; letter-spacing: .08em; }
  .ch-so-gia b, .ch-so-nhap { font-size: 22px; }
}

/* [16/10] DẢI GỌN mảng Fanpage · Xưởng · Ads (CEO: khung đầu "chiếm quá khung hình") — một hàng, cao ~64px thay ~250px */
.rd-phan.ch-mang-gon { gap: 6px; padding-top: 12px; padding-bottom: 12px; }
.ch-gon-hang { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.ch-gon-ten { display: flex; align-items: baseline; gap: 12px; flex: 1 1 280px; min-width: 0; }
.ch-gon-ten .ch-mang-so { font-size: 22px; }
.ch-gon-ten h2 { margin: 0; font-weight: 300; font-size: 18px; letter-spacing: .04em; white-space: nowrap; }
.ch-gon-ten .ch-viec { margin: 0; font-size: 12px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-gon-so { display: inline-flex; align-items: center; gap: 8px; padding: 4px 10px; min-height: 34px; border: 1px solid var(--wow-vien-nhat); border-radius: 6px; }
.ch-gon-so.nhap:focus-within { border-color: rgb(var(--wow-cam-sang-rgb) / .6); }
.ch-gon-so.tat .ch-so-ten { opacity: .6; }
.ch-gon-so .ch-so-ten { font-size: 9.5px; letter-spacing: .1em; white-space: nowrap; }
.ch-gon-so b, .ch-gon-so .ch-so-nhap { font-family: var(--wow-font-so); font-weight: 300; font-size: 17px; line-height: 1; color: var(--wow-chu); }
.ch-gon-so small { font-size: 11px; color: var(--wow-chu-3); }
.ch-mang-gon .ch-lan-cuoi { font-size: 11.5px; color: var(--wow-chu-3); }
@media (max-width: 720px) { .ch-gon-ten { flex-basis: 100%; } .ch-gon-ten .ch-viec { display: none; } }
/* [16/10] dải không còn tên mảng ⇒ công tắc "Tự động" đứng cuối hàng, bên phải */
.ch-gon-chinh { margin-left: auto; }
/* [16/10] đầu bảng Cào data không còn số · tên: [đèn lệch (nếu có)] … [công tắc / TỰ ĐỘNG] */
.ch-mang-dau-gon { grid-template-columns: minmax(0, 1fr) auto; }

/* [18/10] khối "TikTok · Meta trống" (hệ săn trend TikTok) — bìa nhỏ · tên SP · 4 số (nhãn cột một lần ở dòng đầu) · icon Meta */
.st-ds { display: grid; gap: 2px; }
.st-dong { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto 22px; align-items: center; gap: 12px; padding: 8px 6px; color: inherit; text-decoration: none; border-top: 1px solid var(--vien, rgba(255,255,255,.06)); }
.st-dong:hover { filter: brightness(1.25); }
.st-dau { border-top: 0; padding-bottom: 2px; }
.st-bia { width: 40px; height: 54px; object-fit: cover; border-radius: 3px; background: rgba(255,255,255,.04); display: block; }
.st-dau .st-bia { height: 0; background: none; }
.st-ten { min-width: 0; display: grid; gap: 2px; }
.st-ten b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.st-ten small { opacity: .55; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.st-so { display: grid; grid-template-columns: repeat(4, 80px); text-align: right; gap: 10px; font-variant-numeric: tabular-nums; }
.st-dau .st-so span { font-family: var(--wow-font-chu); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; opacity: .5; }
@media (max-width: 640px) {
  .st-dong { grid-template-columns: 36px minmax(0, 1fr) 22px; }
  .st-dong .st-so { grid-column: 2 / 4; grid-template-columns: repeat(4, 1fr); text-align: left; }
  .st-dong > :last-child { grid-row: 1; grid-column: 3; }
  .st-dau .st-so span { white-space: nowrap; letter-spacing: .02em; font-size: 9px; }
}

/* [22/10] popup cấu hình một cột Dòng chảy (thay dải tab Cấu hình) */
.ch-hop-cot { display: grid; gap: 16px; min-width: min(560px, 100%); } /* [23/10] 86vw = 335px > ruột popup 318px ở 390 ⇒ dòng lấn mép phải */
.ch-hop-cot .ch-bang { grid-template-columns: minmax(0, 1fr); }
/* [24/10] popup cột đang sửa bộ cấu hình của một chế độ nguồn (Shopee · Đang trend · Bò sữa) — một dòng nhỏ đầu popup, màu nhấn */
.ch-mo-man { display: flex; justify-content: flex-end; }
dialog.ht-hop:has(.ch-hop-cot) { max-height: 92vh; overflow-y: auto; }
.ch-mo-man { justify-content: flex-start; }
/* [22/10] popup Xưởng (cột Làm biến thể) — rộng gần hết màn, cuộn dọc trong popup, không cuộn ngang */
dialog.xc-hop { width: min(1400px, calc(100vw - 32px)); max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); padding: 0; border: 0; background: transparent; color: var(--wow-chu); overflow: visible; }
dialog.xc-hop::backdrop { background: rgb(0 0 0 / 0.8); backdrop-filter: blur(3px); }
dialog.xc-hop > .wow-khung { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-height: calc(100dvh - 32px); overflow-y: auto; overflow-x: hidden; padding: clamp(18px, 2.4vw, 28px); }
.xc-hop-than { min-width: 0; }
/* [22/10] popup cấu hình công đoạn — PA04 CEO chọn: dải 8 trạm · lệch · vào/ra · máy + luật một dòng mỗi mục */
.ch-dai-tram { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 4px; }
.ch-tram { font: inherit; font-size: 10.5px; line-height: 1.3; display: grid; gap: 2px; justify-items: center; padding: 6px 2px; border-radius: 6px; border: 1px solid var(--wow-vien-nhat); background: var(--wow-mat-2); color: var(--wow-chu-3); cursor: pointer; min-width: 0; }
/* [03/11] tên trạm GÓI tối đa 2 dòng, không cắt "…" — 390 cắt "Sáng tạo nộ…"; tên = MỘT nguồn tên cột (ngan = ten), không đẻ tên ngắn thứ hai */
.ch-tram span { white-space: normal; text-align: center; max-width: 100%; }
.ch-tram b { font-family: var(--wow-font-mono); font-size: 14px; font-weight: 500; color: var(--wow-chu-2); }
.ch-tram:hover { filter: brightness(1.25); }
.ch-tram.dang { border-color: var(--wow-cam-sang); background: rgb(var(--wow-cam-rgb) / 0.14); color: var(--wow-chu); cursor: default; }
.ch-tram.dang b { color: var(--wow-cam-sang); }
.ch-lech p { margin: 0; font-size: 13px; color: var(--wow-canh-bao, #e8b48f); }
.ch-vao-ra { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 4px 8px; font-size: 13px; line-height: 1.5; }
.ch-vao-ra > span:nth-child(odd) { color: var(--wow-cam-sang); }
.ch-vao-ra b { font-weight: 500; }
/* [03/11] khối "Đang chạy" (popup cột · popup mã) chưa từng có kiểu ⇒ <b> bước + <span> SP · profile · giờ dính liền một dòng ("Đọc giọngSản phẩm mẫu" — CEO chụp).
   Dòng = icon │ chữ hai tầng │ nút; chữ co được, dòng dưới cắt "…" (title giữ đủ). */
.vdc-khoi { display: grid; gap: 6px; }
.vdc-khoi > h3 { margin: 0; font-size: 13px; font-weight: 500; color: var(--wow-chu-2); }
.vdc-dong { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 4px 10px; align-items: center; }
.vdc-chu { display: grid; min-width: 0; line-height: 1.4; }
.vdc-chu > b { font-weight: 500; font-size: 13px; color: var(--wow-chu); }
.vdc-chu > span { font-size: 12px; color: var(--wow-chu-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-may-luat { display: grid; border-top: 1px solid var(--wow-vien-nhat); }
.ch-luat { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 40px; border-bottom: 1px solid var(--wow-vien-nhat); font-size: 13.5px; color: var(--wow-chu-2); }
.ch-luat > b { font-family: var(--wow-font-mono); font-weight: 500; color: var(--wow-chu); }
.ch-luat-gia { display: inline-flex; align-items: baseline; gap: 4px; }
.ch-luat-gia small { font-size: 11.5px; color: var(--wow-chu-3); }
@container (max-width: 480px) { .ch-dai-tram { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ch-dai-tram { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ch-luat .ch-so-nhap { font-size: 16px; font-family: var(--wow-font-mono); text-align: right; padding: 2px 0; }

/* [22/10] popup mã = 8 bước = 8 cột: bước đang đứng mở · đã qua gập · chưa tới mờ một dòng · ⚙ mở cấu hình cột */
.tt-dai { margin-bottom: 4px; }
/* [27/10] CEO 12:55 popup cây "loạn xì ngầu": điện thoại dải 8 bước gãy 2 hàng 4 ⇒ MỘT hàng: bước đang đứng giữ tên, bước khác chỉ dấu (tên ở ô gợi ý) */
@media (max-width: 520px) { .tt-dai.ch-dai-tram { display: flex; } .tt-dai .ch-tram { flex: 1 1 0; } .tt-dai .ch-tram.dang { flex: 3 1 0; } .tt-dai .ch-tram:not(.dang) span { display: none; } }
.ch-tram.qua b { color: var(--wow-tot); }
.tt-nut[data-buoc="dang"] > .tt-nut-than { padding: 10px 12px; margin: -10px -12px 0; border-radius: 8px; background: rgb(var(--wow-cam-rgb) / 0.07); }
.tt-nut[data-buoc="toi"] { opacity: .55; padding-bottom: 12px; }
.tt-nut-dau .tt-ch { margin-left: auto; font: inherit; font-size: 13px; line-height: 1; padding: 3px 7px; border-radius: 6px; border: 1px solid var(--wow-vien-nhat); background: none; color: var(--wow-chu-3); cursor: pointer; }
.tt-nut-dau .tt-ch:hover { filter: brightness(1.4); }
.tt-gap > summary { cursor: pointer; font-size: 12px; color: var(--wow-chu-3); }
.tt-gap[open] { display: grid; gap: 10px; }
/* [22/10] dải đầu trang con — lối về Tiến trình + tên màn (vào bằng link thẳng) */
.dau-con { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 0 16px; }
.dau-con-lui { text-decoration: none; }
.dau-con h2 { margin: 0; font-weight: 300; font-size: clamp(20px, 2vw, 26px); color: var(--wow-chu); }
