/* desk.css - trader247 web: the HUD look ported from the user's other app (AI Agent Trading/chart/desk_2tab.css).
   Copied lines 1-829 minus 194-198 + 201-222 (AI button, sound), 459-466 (AI speech line), 616-646 (old Neural Graph row:
   the trader247 flow row brings its own rules), 703-707 (AI intervention card), 710-713 (?sim=cu) and 784-828
   (THINH VUONG tab). #rongLogo is renamed #brand. trader247 additions live in t247.css, not here. */
/* desk_2tab.css — BÀN HAI TAB · PHƯƠNG ÁN A "BUỒNG LÁI" (người dùng 23/10/2026 ~05:45 "Chọn phương án A"; playbook/BAN-HAI-TAB.md; đặc tả ban2tab/DAC-TA.md mục 1–3, 2.2;
   chép từ bản xem thử chart/ban2_a.css nhánh ban2tab-a). Kiểu sửa lệnh thử tại chỗ (tay nắm, băng SỬA, lớp phủ) ở chart/desk_sua.css. */
/*
   Ngôn ngữ hình lấy từ Neural Graph đã được khen (chart/ng.css, khung HUD ng_3d.js:945): nền xanh đen, ô cắt góc 10 px, nét góc sáng,
   tiêu đề HUD Bahnschrift chữ hoa, số Cascadia Mono thẳng cột. Màu tab: THỬ tím #a98bff · MT5 THẬT lục #22d68c · MÔ PHỎNG sọc cam · CHƯA NỐI xám.
   Đè lên CSS của chart/desk.html bằng bộ chọn .desk.b2a; không phông ngoài; chữ ≥ 11 px; lưới 8 px. */

:root {
  --b-nen: #03060c; --b-luoi: rgba(41, 182, 255, .035); --b-o: #060c18; --b-o2: rgba(4, 16, 34, .62); --b-vien: rgba(70, 185, 255, .26); --b-vien2: rgba(70, 185, 255, .13);
  --b-vien-sang: #8fe1ff; --b-cyan: #29b6ff; --b-cyan2: #5fd3ff;
  --b-chu: #e3eefa; --b-chu2: #9db6d2; --b-chu3: #6a84a3; --b-chu4: #4a5d75;
  --b-mua: #0ecb81; --b-ban: #f6465d; --b-lai: #2bff9e; --b-lo: #ff3b5c; --b-trap: #ff9a1f; --b-canh: #e3b341; --b-dung: #f85149;
  --tk-thu: #a98bff; --tk-thu-q: rgba(169, 139, 255, .55); --tk-thu-n: #1c1540;
  --tk-that: #22d68c; --tk-that-q: rgba(34, 214, 140, .5); --tk-that-n: #0a2a1e;
  --tk-mp: #ff8a1f; --tk-mp-q: rgba(255, 138, 31, .5); --tk-mp-n: #2a1708;
  --tk-dm: #3fb6ff; --tk-dm-q: rgba(63, 182, 255, .45); --tk-dm-n: #0a2033;
  --tk-na: #6a84a3; --tk-na-q: rgba(106, 132, 163, .35); --tk-na-n: #111a28;
  --f-hud: 'Bahnschrift', 'Barlow Semi Condensed', 'Segoe UI', system-ui, sans-serif;
  --f-ui: 'Segoe UI Variable Text', 'Segoe UI', system-ui, sans-serif;
  --f-so: 'Cascadia Mono', 'JetBrains Mono', Consolas, monospace;
  /* token của bàn cũ → ngôn ngữ mới (biểu đồ đọc css(...) lúc dựng) */
  --bg: #03060c; --panel: #050b16; --panel-2: #0a1424; --line: rgba(70, 185, 255, .16); --grid: rgba(41, 182, 255, .055);
  --ink: #e3eefa; --ink-2: #9db6d2; --ink-3: #6a84a3;
  --up: #0ecb81; --down: #f6465d; --up-soft: rgba(14, 203, 129, .22); --down-soft: rgba(246, 70, 93, .22);
  --entry: #5fd3ff; --sell: #ff9a62; --accent: #29b6ff; --res: #b48cf0;
  /* NẾN như TradingView (người dùng 23/10/2026 ~12:50: "chỉ có xanh và đỏ, kể cả cây nến cuối cùng"): thân + viền + râu cùng màu; khối lượng cùng hai màu, nhạt hơn */
  --nen-len: #089981; --nen-xuong: #F23645; --nen-len-kl: rgba(8, 153, 129, .5); --nen-xuong-kl: rgba(242, 54, 69, .5);
  /* giá lệnh MT5 trên biểu đồ (đoạn ngắn + thẻ giá trục phải, kiểu TradingView): VÀO xanh lam · SL đỏ · TP xanh lá */
  --mt5-entry: #2962FF; --mt5-sl: #F23645; --mt5-tp: #089981;
  --font-ui: var(--f-ui); --font-mono: var(--f-so);
  /* màu tab đang xem */
  --tk: var(--tk-that); --tk-q: var(--tk-that-q); --tk-n: var(--tk-that-n);
  /* kích thước phương án A ở 1920 × 1080 */
  /* vòng sửa theo phiếu giám khảo: hai cánh 340 px (biểu đồ ≈ 1 210 px ở 1920); ≤ 1599 px: trái 280, phải 260, NHẬT KÝ gom vào nút ≡ NK */
  --w-col: 340px; --w-l: 340px; --w-r: 340px; --h-bar: 48px; --h-tk: 200px; --h-th: 224px; --h-von: 300px; --h-hud: 32px; --pad: 16px; --hang: 32px;
  --c-so: 30px; --c-chinh: 22px; --c-phu: 14px; --c-nhan: 12px; --c-the: 13px;
}
html[data-tk="thu"] { --tk: var(--tk-thu); --tk-q: var(--tk-thu-q); --tk-n: var(--tk-thu-n); }
html[data-tk="mt5"][data-mt5="mo_phong"] { --tk: var(--tk-mp); --tk-q: var(--tk-mp-q); --tk-n: var(--tk-mp-n); }
html[data-tk="mt5"][data-mt5="chua_noi"] { --tk: var(--tk-na); --tk-q: var(--tk-na-q); --tk-n: var(--tk-na-n); }
html[data-tk="mt5"][data-mt5="demo"] { --tk: var(--tk-dm); --tk-q: var(--tk-dm-q); --tk-n: var(--tk-dm-n); }
@media (max-width: 1599px), (max-height: 859px) {
  :root { --w-col: 280px; --w-l: 280px; --w-r: 260px; --h-bar: 40px; --h-tk: 156px; --h-th: 156px; --h-von: 208px; --h-hud: 28px; --pad: 12px; --hang: 28px;
          --c-so: 22px; --c-chinh: 18px; --c-phu: 13px; --c-nhan: 11px; --c-the: 12px; }
}

html, body { background: var(--b-nen); }
body { color: var(--b-chu); font-family: var(--f-ui);
  background-image: linear-gradient(var(--b-luoi) 1px, transparent 1px), linear-gradient(90deg, var(--b-luoi) 1px, transparent 1px);
  background-size: 32px 32px; background-position: -1px -1px; }
body.mo-phong { box-shadow: none; }
/* KHO ẨN: một vỏ cho mọi khối cũ chưa có chỗ trên màn mới (giữ id); nút nào được dời ra thẻ nổi thì hiện ở thẻ, trả về đây thì ẩn lại */
#khoAn, #khoAn[hidden] { display: none !important; }
/* chip "Simulator lỗi — bàn vẫn đủ" (DOI-CHIEU dòng 12): ở thanh trên, chỉ hiện khi Simulator không gắn được */
header#A.b2-bar #chipSimLoi { height: 24px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid rgba(248, 81, 73, .6); border-radius: 3px;
  background: rgba(248, 81, 73, .12); color: #ffb3ae; font: 600 11px/1 var(--f-hud); letter-spacing: .08em; white-space: nowrap; }
header#A.b2-bar #chipSimLoi[hidden] { display: none; }
/* lớp mới (desk_tk / desk_o / desk_the) lỗi: chip đỏ dẫn về bàn một tab /desk-1tab — luôn còn bàn chạy được (DOI-CHIEU mục 2.4) */
.b2-loi { height: 24px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid #f85149; border-radius: 3px; background: rgba(248, 81, 73, .18); color: #ffd0cc;
  font: 600 11px/1 var(--f-hud); letter-spacing: .08em; white-space: nowrap; text-decoration: none; animation: b2-nhip 1.4s ease-in-out infinite; }

/* ================================================================ LƯỚI (đặc tả 2.2) */
.desk.b2a, .desk.b2a.co-sim { height: 100vh; display: grid; gap: 0 8px; padding: 0 8px 8px; overflow: hidden;
  grid-template-columns: var(--w-l) minmax(0, 1fr) var(--w-r);
  grid-template-rows: calc(var(--h-bar) + 8px) auto minmax(0, 1fr) calc(var(--sim-h, 288px) + 8px); }
.desk.b2a > header#A { grid-row: 1; grid-column: 1 / -1; margin: 0 -8px; height: var(--h-bar); align-self: start; }
.desk.b2a > #bands { grid-row: 2; grid-column: 1 / -1; }
.desk.b2a > #bands:not(:empty) { margin-bottom: 8px; }
.desk.b2a > #L { grid-row: 3; grid-column: 1; }
.desk.b2a > #C { grid-row: 3; grid-column: 2; }
.desk.b2a > #R { grid-row: 3; grid-column: 3; }
.desk.b2a.co-sim > #sim { grid-row: 4; grid-column: 1 / -1; align-self: end; height: var(--sim-h, 288px); }
.desk.b2a.chi-bieu-do { grid-template-columns: 0 minmax(0, 1fr) 0; column-gap: 0; }
.desk.b2a.chi-bieu-do > #L, .desk.b2a.chi-bieu-do > #R { display: none; }
.desk.b2a.chi-bieu-do > #C { grid-column: 1 / -1; }
#L, .desk.b2a > #R { display: grid; gap: 8px; min-height: 0; min-width: 0; }
#L { grid-template-rows: var(--h-tk) minmax(0, 1fr); }
.desk.b2a > #R { grid-template-rows: var(--h-th) var(--h-von) minmax(0, 1fr); flex-direction: initial; }
.b2-nk-nut { display: none; }
/* NHẬT KÝ chỉ hiện khi đủ chỗ (≥ 1600 × 1001): màn thấp hơn (vd 1920 × 953) ô chỉ còn 1–2 dòng → gom vào nút ≡ NK, chỗ trống nhường cho ô đường vốn */
@media (max-width: 1599px), (max-height: 1000px) {
  .desk.b2a > #R { grid-template-rows: var(--h-th) minmax(0, 1fr); }
  .desk.b2a > #R > #oNK { display: none; }
  header#A.b2-bar .b2-nk-nut { display: inline-flex; align-items: center; height: 28px; padding: 0 9px; border-left: 1px solid rgba(70, 185, 255, .12); font: 600 11px/1.4 var(--f-hud); letter-spacing: .1em; color: var(--b-chu2); }
  header#A.b2-bar .b2-nk-nut:hover { color: #fff; }
}
@media (max-width: 1279px) {
  body { overflow: auto; }
  .desk.b2a, .desk.b2a.co-sim { height: auto; grid-template-columns: 1fr; grid-template-rows: auto; }
  .desk.b2a > * { grid-column: 1 / -1 !important; grid-row: auto !important; }
  .desk.b2a > #C { height: 560px; }
  #L { grid-template-rows: var(--h-tk) 420px; }
  .desk.b2a > #R { grid-template-rows: var(--h-th) var(--h-von) 220px; }
}

/* ================================================================ Ô HUD CẮT GÓC (một kiểu cho mọi ô — đặc tả 1.2) */
.o { --g: var(--b-vien-sang); --gq: rgba(41, 182, 255, .45);
  position: relative; display: flex; flex-direction: column; min-height: 0; min-width: 0; isolation: isolate;
  filter: drop-shadow(0 0 5px rgba(41, 182, 255, .16)); }
.o.tien { --g: var(--tk); --gq: var(--tk-q); }
.o::before, .o::after { content: ''; position: absolute; z-index: -1; pointer-events: none; }
.o::before { inset: 0; background: linear-gradient(180deg, rgba(95, 211, 255, .34), rgba(70, 185, 255, .16) 30%, rgba(70, 185, 255, .2));
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
.o.tien::before { background: linear-gradient(180deg, color-mix(in srgb, var(--tk) 62%, transparent), rgba(70, 185, 255, .16) 30%, rgba(70, 185, 255, .2)); }
.o::after { inset: 1px; background: radial-gradient(120% 60% at 50% 0%, rgba(20, 60, 110, .22), transparent 60%), linear-gradient(180deg, #071224, #050a15 46%, #04080f);
  clip-path: polygon(9.6px 0, 100% 0, 100% calc(100% - 9.6px), calc(100% - 9.6px) 100%, 0 100%, 0 9.6px); }
.o > .g { position: absolute; z-index: 2; fill: none; stroke: var(--g); stroke-width: 2; pointer-events: none; filter: drop-shadow(0 0 4px var(--gq)); }
.o > .g-l { left: 0; top: 0; width: 40px; height: 22px; }
.o > .g-r { right: 0; top: 0; width: 30px; height: 14px; }
.o > .hud { flex: 0 0 var(--h-hud); height: var(--h-hud); display: flex; align-items: center; gap: 8px; padding: 0 12px 0 20px;
  background: linear-gradient(90deg, rgba(4, 16, 34, .9), rgba(4, 16, 34, .35)); border-bottom: 1px solid rgba(70, 185, 255, .12); }
.o > .hud > b { font: 600 var(--c-nhan)/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .1em; color: #8fd6ff; text-shadow: 0 0 6px rgba(41, 182, 255, .55); white-space: nowrap; }
.o.tien > .hud > b { color: color-mix(in srgb, var(--tk) 55%, #dff4ff); text-shadow: 0 0 6px var(--tk-q); }
.sp { flex: 1 1 auto; }
.chip-tk, .chip-luat, .b2-chip { display: inline-flex; align-items: center; gap: 4px; height: 18px; padding: 0 6px; border-radius: 3px; white-space: nowrap;
  font: 600 11px/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .08em; }
.chip-tk { color: var(--tk); border: 1px solid color-mix(in srgb, var(--tk) 55%, transparent); background: var(--tk-n); box-shadow: 0 0 8px -2px var(--tk-q); }
.chip-tk:empty, .chip-luat:empty { display: none; }
html[data-tk="mt5"][data-mt5="mo_phong"] .chip-tk { background: repeating-linear-gradient(135deg, #2a1708 0 6px, #3a200a 6px 12px); }
.chip-luat { color: #8fd6ff; border: 1px solid rgba(95, 211, 255, .4); background: rgba(41, 182, 255, .08); }
.b2-chip.tm { color: var(--b-chu3); border: 1px dashed var(--b-chu4); }
.b2-chip.ke { color: var(--tk-thu); border: 1px solid rgba(169, 139, 255, .5); background: rgba(169, 139, 255, .1); }

/* số / chữ dùng chung */
.n, .so, .mono { font-family: var(--f-so); font-variant-numeric: tabular-nums; }
.len { color: var(--b-lai); } .xuong { color: var(--b-lo); } .hoa { color: var(--b-chu2); }
.b2n { display: inline-block; font: 600 11px/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .08em; color: var(--b-chu3); text-transform: uppercase; white-space: nowrap; }
.mo-na { color: var(--b-chu3); font: 600 11px/1.3 var(--f-hud); letter-spacing: .08em; text-transform: uppercase; }

/* ================================================================ THANH TRÊN (đặc tả 2.1) */
header#A.b2-bar { position: relative; display: flex; align-items: center; gap: 8px; padding: 0 12px 0 8px; overflow: visible; border: 0; border-radius: 0;
  background: linear-gradient(180deg, #071326, #050b17); border-bottom: 1px solid rgba(70, 185, 255, .18); box-shadow: 0 6px 18px -10px rgba(0, 0, 0, .9); }
header#A.b2-bar::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--tk); box-shadow: 0 0 12px var(--tk-q); transition: background .2s, box-shadow .2s; }
html[data-tk="mt5"][data-mt5="mo_phong"] header#A.b2-bar::before { background: repeating-linear-gradient(135deg, #ff8a1f 0 8px, #6a3606 8px 16px); }
header#A.b2-bar::after { content: ''; position: absolute; left: 0; top: 0; height: 2px; width: 30%; background: linear-gradient(90deg, transparent, #fff, transparent); opacity: 0; pointer-events: none; }
header#A.b2-bar.quet::after { animation: b2-quet .4s ease-out 1; }
@keyframes b2-quet { from { transform: translateX(-30%); opacity: .9; } to { transform: translateX(340%); opacity: 0; } }
header#A.b2-bar > * { flex: 0 0 auto; }
header#A.b2-bar > .sp { flex: 1 1 auto; }
.b2-bar button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.b2-bar button:focus-visible, .tools button:focus-visible, .o button:focus-visible { outline: 1px dashed var(--b-cyan2); outline-offset: 2px; }
header#A.b2-bar #brand { display: inline-flex; align-items: center; gap: 1px; height: 32px; width: 104px; padding: 0 8px 0 4px; margin: 0; border: 0; background: none; box-shadow: none; cursor: pointer;
  font: 700 13px/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .12em; color: #cfeeff; text-shadow: 0 0 8px rgba(41, 182, 255, .7); }
header#A.b2-bar #brand::before { content: ''; flex: none; width: 13px; height: 13px; margin-right: 9px; transform: rotate(45deg); border: 1.5px solid var(--b-cyan2);
  box-shadow: 0 0 8px rgba(41, 182, 255, .8), inset 0 0 0 3px #071326, inset 0 0 0 6px rgba(95, 211, 255, .85); }
header#A.b2-bar #brand b, header#A.b2-bar #brand span, header#A.b2-bar #brand i { font: inherit; color: inherit; font-style: normal; letter-spacing: inherit; }
header#A.b2-bar #brand i { color: var(--b-cyan2); }
.b2-tabs { display: flex; gap: 4px; height: 100%; align-items: stretch; }
.b2-tab { --c: var(--tk-that); --cq: var(--tk-that-q); --cn: var(--tk-that-n);
  position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 0 16px; margin-top: 4px;
  font: 600 13px/1 var(--f-hud) !important; font-stretch: 87.5% !important; letter-spacing: .1em; color: var(--b-chu3) !important; white-space: nowrap;
  clip-path: polygon(8px 0, 100% 0, 100% 100%, 0 100%, 0 8px); transition: color .2s, background .2s; }
#tabThu { --c: var(--tk-thu); --cq: var(--tk-thu-q); --cn: var(--tk-thu-n); min-width: 232px; justify-content: center; }
#tabMt5 { min-width: 184px; justify-content: center; }
html[data-mt5="mo_phong"] #tabMt5 { --c: var(--tk-mp); --cq: var(--tk-mp-q); --cn: var(--tk-mp-n); }
html[data-mt5="chua_noi"] #tabMt5 { --c: var(--tk-na); --cq: var(--tk-na-q); --cn: var(--tk-na-n); }
html[data-mt5="demo"] #tabMt5 { --c: var(--tk-dm); --cq: var(--tk-dm-q); --cn: var(--tk-dm-n); }
.b2-tab .dau { width: 8px; height: 8px; transform: rotate(45deg); border: 1.5px solid var(--c); opacity: .7; }
.b2-tab:hover { color: var(--b-chu) !important; background: rgba(255, 255, 255, .025) !important; }
.b2-tab[aria-selected="true"] { color: #fff !important; background: linear-gradient(180deg, color-mix(in srgb, var(--c) 26%, transparent), var(--cn)) !important;
  text-shadow: 0 0 10px var(--cq); }
html[data-mt5="mo_phong"] #tabMt5[aria-selected="true"] { background: repeating-linear-gradient(135deg, rgba(255, 138, 31, .26) 0 8px, rgba(255, 138, 31, .1) 8px 16px) !important; }
.b2-tab[aria-selected="true"]::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--c); box-shadow: 0 0 10px var(--cq), 0 0 3px var(--c); }
.b2-tab[aria-selected="true"] .dau { background: var(--c); opacity: 1; box-shadow: 0 0 8px var(--c); }
.b2-tab .ngan { display: none; }
.b2-cham { width: 7px; height: 7px; border-radius: 50%; background: var(--b-dung); box-shadow: 0 0 8px var(--b-dung); animation: b2-nhip 1.1s ease-in-out infinite; }
.b2-gia { display: inline-flex; align-items: baseline; gap: 8px; height: 32px; padding: 0 12px; min-width: 264px; border-left: 1px solid rgba(70, 185, 255, .12); align-items: center; }
.b2-gia .ma { font: 600 12px/1 var(--f-hud); letter-spacing: .1em; color: var(--b-chu3); }
.b2-gia .so { font-size: 18px; font-weight: 600; color: var(--b-chu); letter-spacing: -.01em; transition: color .15s; }
.b2-gia .so.len { color: var(--b-lai); } .b2-gia .so.xuong { color: var(--b-lo); }
.b2-gia .pct { font: 12px/1 var(--f-so); }
.b2-gia .led { width: 7px; height: 7px; border-radius: 50%; background: var(--b-chu4); }
.b2-gia .led.song { background: var(--b-mua); box-shadow: 0 0 6px var(--b-mua); animation: b2-nhip 1.6s ease-in-out infinite; }
.b2-he, .b2-dh, .b2-tt, .b2-day, .b2-cai { height: 32px; display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; border-left: 1px solid rgba(70, 185, 255, .12); }
.b2-he .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--b-mua); box-shadow: 0 0 6px var(--b-mua); }
.b2-he .dot.loi { background: var(--b-dung); box-shadow: 0 0 6px var(--b-dung); }
.b2-he .nh { font: 600 11px/1 var(--f-hud); letter-spacing: .1em; color: var(--b-chu3); }
.b2-he b { font: 600 13px/1 var(--f-so); color: var(--b-chu); }
.b2-dh svg { width: 22px; height: 22px; transform: rotate(-90deg); }
.b2-dh .nen { fill: none; stroke: rgba(70, 185, 255, .16); stroke-width: 3; }
.b2-dh .vong { fill: none; stroke: var(--b-cyan2); stroke-width: 3; stroke-linecap: round; filter: drop-shadow(0 0 3px rgba(41, 182, 255, .8)); transition: stroke-dasharray .6s; }
.b2-dh.gan .vong { stroke: var(--b-canh); }
.b2-dh b { font: 600 13px/1 var(--f-hud); letter-spacing: .06em; color: #cfeeff; }
.b2-dh span { font: 13px/1 var(--f-so); color: var(--b-chu2); }
.b2-tt { font: 600 12px/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .1em; padding: 0 12px; min-width: 120px; justify-content: center; }
.b2-tt.thu { color: var(--tk-thu); text-shadow: 0 0 8px var(--tk-thu-q); }
.b2-tt.thu::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--tk-thu); box-shadow: 0 0 8px var(--tk-thu); animation: b2-nhip 1.6s ease-in-out infinite; }
.b2-tt.live { color: var(--tk-that); } .b2-tt.live::before { content: '♥'; color: var(--tk-that); animation: b2-nhip 1s ease-in-out infinite; }
.b2-tt.tre { color: var(--b-canh); }
.b2-tt.mp { color: #ffb066; background: repeating-linear-gradient(135deg, rgba(255, 138, 31, .16) 0 6px, rgba(255, 138, 31, .05) 6px 12px); }
.b2-tt.na { color: var(--b-chu3); }
.b2-day span { font: 600 11px/1 var(--f-hud); letter-spacing: .1em; color: var(--b-chu3); margin-right: 2px; }
.b2-day i { width: 7px; height: 7px; border-radius: 50%; background: var(--b-chu4); }
.b2-day i.yen { background: var(--b-mua); box-shadow: 0 0 5px rgba(14, 203, 129, .8); }
.b2-day i.gan { background: var(--b-canh); box-shadow: 0 0 5px var(--b-canh); }
.b2-day i.cham { background: var(--b-dung); box-shadow: 0 0 7px var(--b-dung); animation: b2-nhip .9s infinite; }
.b2-cai svg { width: 18px; height: 18px; fill: none; stroke: var(--b-chu2); stroke-width: 1.6; }
.b2-cai:hover svg { stroke: var(--b-cyan2); }
header#A.b2-bar #clock { border: 0; background: none; padding: 0 0 0 12px; border-left: 1px solid rgba(70, 185, 255, .12); font: 13px/1 var(--f-so); color: var(--b-chu2); min-width: 104px; text-align: right; }
@keyframes b2-nhip { 50% { opacity: .35; } }
@keyframes b2-chay { from { background-position: 100% 0; } to { background-position: 0 0; } }
@media (max-width: 1599px), (max-height: 859px) {
  header#A.b2-bar #brand { width: 44px; padding: 0 4px; } header#A.b2-bar #brand b, header#A.b2-bar #brand i { display: none; }
  #tabThu { min-width: 136px; } #tabMt5 { min-width: 136px; } .b2-tab { padding: 0 10px; font-size: 12px !important; }
  #tabThu .dai { display: none; } #tabThu .ngan { display: inline; }
  .b2-gia { min-width: 200px; padding: 0 8px; } .b2-gia .pct { display: none; } .b2-gia .so { font-size: 16px; }
  .b2-he, .b2-dh, .b2-tt, .b2-day, .b2-cai { padding: 0 7px; }
  .b2-tt { min-width: 104px; }
  header#A.b2-bar #clock { min-width: 72px; }
  header#A.b2-bar #nutRong { min-width: 48px; padding: 0 8px; }
}

/* ================================================================ TÀI KHOẢN */
#oTK .than { flex: 1 1 auto; display: grid; grid-template-rows: auto 1fr; padding: 12px var(--pad) 12px 20px; gap: 10px; min-height: 0; }
.tk-dau { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; }
.tk-dau .b2n { display: block; margin-bottom: 6px; }
.tk-so { font: 600 var(--c-so)/1 var(--f-hud); font-variant-numeric: tabular-nums; letter-spacing: .01em; color: #f2f8ff; white-space: nowrap;
  text-shadow: 0 0 14px rgba(120, 200, 255, .35); }
.tk-so small { font: 600 12px/1 var(--f-hud); letter-spacing: .08em; color: var(--b-chu3); margin-left: 6px; }
.tk-von { height: 24px; padding: 0 8px; border: 1px solid rgba(70, 185, 255, .3); border-radius: 3px; background: rgba(41, 182, 255, .06); color: var(--b-chu2); cursor: pointer;
  font: 600 11px/1 var(--f-hud); letter-spacing: .08em; white-space: nowrap; }
.tk-von b { font: 600 12px/1 var(--f-so); color: var(--b-chu); margin-left: 4px; }
.tk-von:hover { border-color: var(--b-cyan2); color: var(--b-chu); }
/* vốn chưa đặt (tab MT5, đặc tả 2.2): nút lớn "ĐẶT VỐN" — mọi lot / % rủi ro tính trên số anh đặt */
.tk-von.dat { height: 32px; padding: 0 14px; border-color: var(--b-canh, #e3b341); background: rgba(227, 179, 65, .12); color: #ffe2a0; font-size: 13px; }
.tk-dat-von { align-self: center; justify-self: center; }
.tk-o3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid rgba(70, 185, 255, .12); background: rgba(3, 10, 22, .55); min-height: 0; }
.tk-o3 > div { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 0 12px; min-width: 0; }
.tk-o3 > div + div { border-left: 1px solid rgba(70, 185, 255, .12); }
.tk-o3 .v { font: 600 var(--c-phu)/1 var(--f-so); white-space: nowrap; color: var(--b-chu); }
.tk-o3 .thanh { height: 3px; background: rgba(70, 185, 255, .14); position: relative; overflow: hidden; }
.tk-o3 .thanh i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--tk); box-shadow: 0 0 6px var(--tk-q); }
.tk-o3 .thanh i.vuot { background: var(--b-dung); }
.tk-dat { align-self: center; justify-self: start; height: 40px; padding: 0 20px; border: 1px solid var(--b-canh); background: rgba(227, 179, 65, .1); color: var(--b-canh);
  font: 600 13px/1 var(--f-hud); letter-spacing: .12em; cursor: pointer; clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
@media (max-width: 1599px), (max-height: 859px) {
  #oTK .than { padding: 8px 12px 10px 16px; gap: 8px; }
  .tk-dau .b2n { margin-bottom: 4px; }
  .tk-o3 > div { padding: 0 8px; gap: 6px; }
}

/* ================================================================ SỔ LỆNH */
.so-loc { flex: 0 0 auto; display: flex; gap: 3px; padding: 8px 10px 6px 14px; }
.so-loc button { height: 24px; padding: 0 6px; border: 1px solid rgba(70, 185, 255, .18); border-radius: 3px; background: transparent; color: var(--b-chu3); cursor: pointer;
  font: 600 11px/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .08em; white-space: nowrap; }
.so-loc button b { font: 600 11px/1 var(--f-so); margin-left: 4px; color: var(--b-chu2); }
.so-loc button[aria-selected="true"] { color: #fff; border-color: var(--tk); background: color-mix(in srgb, var(--tk) 16%, transparent); box-shadow: inset 0 -2px 0 var(--tk); }
.so-loc button:hover { color: var(--b-chu); }
/* cột LOT 44 px: lot THỬ là lot bộ máy trên 100.000 lãi kép (tới "113,81"); LÃI ≤ 7 ký tự ("+495,9k"), R ≤ 5 ký tự ("+10,1") — đủ số ở title của hàng
   cột đầu "#" 28 px (lời 23/10/2026 ~23:21: số thứ tự lệnh, cùng số nhãn trên biểu đồ): ▲ / ▼ + số tới "▼112"; LÃI / R bớt vài px (KHUNG giữ 58 px: chip "CHƯA NỐI"
   của tab MT5 cần đủ chỗ; VÀO hẹp 2 px — giá MT5 một số lẻ "78.659,9" vẫn đủ) */
.so-dau, .so-hang { display: grid; grid-template-columns: 28px 58px 44px minmax(0, 1fr) 58px 36px 12px; gap: 0 4px; align-items: center; padding: 0 10px 0 12px; }
.so-dau { flex: 0 0 24px; height: 24px; border-bottom: 1px solid rgba(70, 185, 255, .14); }
.so-dau span { font: 600 11px/1 var(--f-hud); letter-spacing: .08em; color: var(--b-chu4); white-space: nowrap; }
.so-dau .r, .so-hang .r { text-align: right; }
.so-bang { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(70, 185, 255, .3) transparent; }
.so-hang { height: var(--hang); border-bottom: 1px solid rgba(70, 185, 255, .06); cursor: pointer; position: relative; font-size: 12px; }
.so-hang:hover { background: rgba(41, 182, 255, .06); }
.so-hang.chon { background: color-mix(in srgb, var(--tk) 12%, transparent); box-shadow: inset 2px 0 0 var(--tk); }
.so-hang.moi { animation: b2-loe 1.2s ease-out 1; }
@keyframes b2-loe { from { background: color-mix(in srgb, var(--tk) 40%, transparent); } }
.so-hang .chieu { font-size: 11px; text-align: center; }
.so-hang .chieu.mua { color: var(--b-mua); text-shadow: 0 0 6px rgba(14, 203, 129, .6); } .so-hang .chieu.ban { color: var(--b-ban); text-shadow: 0 0 6px rgba(246, 70, 93, .6); }
/* cột # : mũi tên nhỏ phát sáng + số thứ tự (màu chiều lệnh như nhãn BUY #n / SELL #n trên biểu đồ) */
.so-hang .so-tt { display: flex; align-items: center; gap: 1px; font: 600 11px/1 var(--f-so); letter-spacing: -.03em; text-align: left; text-shadow: none; white-space: nowrap; overflow: hidden; }
.so-hang .so-tt i { font-style: normal; font-size: 11px; flex: 0 0 auto; }   /* mọi chữ của bàn ≥ 11 px */
.so-hang .so-tt.mua i { text-shadow: 0 0 6px rgba(14, 203, 129, .6); } .so-hang .so-tt.ban i { text-shadow: 0 0 6px rgba(246, 70, 93, .6); }
.so-dau .so-tt { padding-left: 2px; }
.so-hang .kk { font: 600 11px/18px var(--f-hud); font-stretch: 87.5%; letter-spacing: .05em; color: var(--b-chu2); white-space: nowrap; overflow: hidden;
  border: 1px solid rgba(70, 185, 255, .2); border-radius: 3px; padding: 0 5px; justify-self: start; max-width: 100%; }
.so-hang .kk.dung { color: var(--b-mua); border-color: rgba(14, 203, 129, .45); } .so-hang .kk.ngoai { color: var(--b-dung); border-color: rgba(248, 81, 73, .5); }
.so-hang .kk.mo { color: var(--b-chu3); border-style: dashed; }
.so-hang .kk.mo-l { color: #fff; border-color: color-mix(in srgb, var(--tk) 70%, transparent); box-shadow: 0 0 6px -2px var(--tk-q); }   /* lệnh thử đang mở */
span.tk-von { cursor: default; }
.tk-o3 .ngan { display: none; }   /* nhãn ngắn chỉ ở màn ≤ 1599 px (khối @media dưới) */   /* tab THỬ: vốn thử 100.000 của bộ máy — chữ, không phải nút đặt vốn */
.so-hang .n { font-size: 12px; color: var(--b-chu2); white-space: nowrap; }
.so-hang .lai { font-size: 12.5px; font-weight: 600; }
/* lãi / lỗ có màu (phiếu giám khảo: trước đây cùng xám) — lãi #22c55e, lỗ #f43f5e; R theo cùng màu nhưng nhạt hơn */
.so-hang .n.lai.len { color: #22c55e; } .so-hang .n.lai.xuong { color: #f43f5e; }
.so-hang .n.c-r.len { color: rgba(34, 197, 94, .8); } .so-hang .n.c-r.xuong { color: rgba(244, 63, 94, .8); }
.so-hang .dau-s { font-size: 11px; text-align: center; color: var(--tk-thu); }
.so-hang .dau-s.canh { color: var(--b-canh); }
.so-hang.tm { opacity: .75; }
.so-hang.tm:hover, .so-hang.tm.chon { opacity: 1; }
.so-bang { position: relative; }
.so-hang.kv { opacity: .45; }
.so-ngan { height: 28px; display: flex; align-items: center; gap: 8px; padding: 0 12px 0 16px; margin-top: 4px; color: var(--b-chu4);
  font: 600 11px/1 var(--f-hud); letter-spacing: .1em; white-space: nowrap; }
.so-ngan::after { content: ''; flex: 1 1 auto; border-top: 1px dashed rgba(106, 132, 163, .35); }
.so-trong { padding: 16px 16px 8px 20px; display: grid; gap: 8px; justify-items: start; }
.so-trong .mo-na { color: var(--b-chu2); }
.so-trong .phu { font: 12px/1.3 var(--f-so); color: var(--b-chu3); }
.so-chan { flex: 0 0 28px; height: 28px; display: flex; align-items: center; gap: 8px; padding: 0 12px 0 20px; border-top: 1px solid rgba(70, 185, 255, .14); background: rgba(4, 16, 34, .55); }
.so-chan .v { font: 600 13px/1 var(--f-so); margin-left: auto; white-space: nowrap; }
.so-chan .phu { font: 12px/1 var(--f-so); color: var(--b-chu3); white-space: nowrap; }
.so-loc .ngan, .th-cho .ngan { display: none; }
.th-cho { font-size: 11px; }
@media (max-width: 1599px), (max-height: 859px) {
  .so-loc .dai, .th-cho .dai { display: none; } .so-loc .ngan { display: inline; }
  .th-giu .ma { display: none; } .th-giu { grid-template-columns: auto 1fr auto; }
  .so-dau, .so-hang { grid-template-columns: 28px 52px 40px minmax(0, 1fr) 56px 12px; gap: 0 4px; padding: 0 8px 0 10px; }
  .tk-o3 .dai { display: none; } .tk-o3 .ngan { display: inline; }
  .so-chan .dai { display: none; }
  .so-dau .c-r, .so-hang .c-r { display: none; }
  .so-hang .kk { letter-spacing: 0; padding: 0 3px; }
  .so-loc { padding: 6px 8px 4px 16px; } .so-loc button { padding: 0 6px; }
  .so-hang .n, .so-hang .lai { font-size: 11.5px; }
}

/* ================================================================ BIỂU ĐỒ (giữa) */
.desk.b2a > #C { display: flex; flex-direction: column; gap: 0; padding: 0; background: transparent; border: 0; border-radius: 0; min-height: 0; min-width: 0; }
/* MỘT hàng MẢNH 28 px (người dùng 23/10/2026 ~12:45: nút ít dùng ẩn vào "⋯" để biểu đồ to hơn): khung · xem ▾ · LỚP ▾ · ⋯ · ✎ — chỗ dư dồn cho ô giá */
#C > .tools { position: relative; flex: 0 0 28px; height: 28px; min-height: 28px; flex-wrap: nowrap; gap: 2px; padding: 0 6px 0 8px; overflow: visible;
  background: linear-gradient(180deg, #0a1730, #060d1b); border: 1px solid rgba(70, 185, 255, .2); border-bottom-color: rgba(70, 185, 255, .1);
  clip-path: polygon(8px 0, 100% 0, 100% 100%, 0 100%, 0 8px); }
#C > .tools.mo-pop { clip-path: none; }
.b2-kim { color: var(--b-cyan2); font-size: 12px; margin: 0 4px 0 2px; text-shadow: 0 0 6px rgba(41, 182, 255, .8); }
.b2-gach { width: 1px; height: 16px; background: rgba(70, 185, 255, .2); margin: 0 4px; flex: none; }
#tfs { display: inline-flex; align-items: center; gap: 2px; }
#tfs .tfgroup { display: none; }
.tools .pill, .tools .btn, .tools .b2-tb { height: 22px; min-width: 32px; padding: 0 8px; border: 1px solid transparent; border-radius: 3px; background: transparent; color: var(--b-chu2);
  font: 600 12px/20px var(--f-hud) !important; font-stretch: 87.5%; letter-spacing: .06em; cursor: pointer; white-space: nowrap; transition: color .12s, border-color .12s, background .12s; }
.tools .pill:hover, .tools .btn:hover, .tools .b2-tb:hover { color: #fff; border-color: rgba(95, 211, 255, .35); }
.tools .pill[aria-pressed="true"], .tools .btn[aria-pressed="true"], .tools .b2-tb[aria-pressed="true"], .tools .b2-tb[aria-expanded="true"] {
  color: #fff; background: linear-gradient(180deg, rgba(41, 182, 255, .2), rgba(41, 182, 255, .06)); border-color: rgba(95, 211, 255, .5); box-shadow: inset 0 -2px 0 var(--b-cyan), 0 0 10px -4px rgba(41, 182, 255, .8); }
.tools .pill.nho { border-style: solid; }
#tfs > .pill { min-width: 34px; }
#b2Ve, #b2Them { font-size: 14px !important; min-width: 30px; padding: 0 6px; }
#b2Them { position: relative; letter-spacing: 0 !important; }
/* chấm nhỏ trên "⋯" khi ghi chú lệnh có nội dung (lệnh máy đang mở ở khung khác …) — chữ chỉ ở trong menu */
#b2Them.co-ghi::after { content: ''; position: absolute; top: 3px; right: 3px; width: 5px; height: 5px; border-radius: 50%; background: var(--b-canh); box-shadow: 0 0 4px var(--b-canh); }
/* ⋯ XEM · GHI CHÚ LỆNH: một cột, mỗi việc một dòng (ký hiệu + chữ); công tắc (Aa, chỉ biểu đồ) có cần gạt như bảng LỚP */
#popThem { left: auto; right: 0; width: 300px; padding: 10px 12px 12px; gap: 10px; }
#popThem > .pop-nhom { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 2px; }
#popThem > .pop-nhom + .pop-nhom { padding-top: 10px; border-top: 1px solid rgba(70, 185, 255, .12); }
#popThem .pop-nhom > b { flex: 0 0 auto; margin-bottom: 4px; }
#popThem .b2-ct { display: flex; align-items: center; gap: 10px; width: 100%; height: 28px; padding: 0 8px; border: 0; border-radius: 3px; background: transparent; color: var(--b-chu2);
  font: 500 12px/1.4 var(--f-ui) !important; letter-spacing: 0; text-align: left; opacity: 1; cursor: pointer; min-width: 0; box-shadow: none; }
#popThem .b2-ct:hover { background: rgba(41, 182, 255, .08); color: var(--b-chu); }
#popThem .b2-ct .ky { flex: 0 0 18px; text-align: center; font: 600 13px/1 var(--f-ui); color: #8fd6ff; }
#popThem .b2-ct[aria-pressed]::after { content: ''; margin-left: auto; width: 26px; height: 14px; border-radius: 7px; flex: none;
  background: rgba(95, 211, 255, .14) radial-gradient(circle at 7px 50%, #6a84a3 4px, transparent 4.5px); box-shadow: inset 0 0 0 1px rgba(95, 211, 255, .3); }
#popThem .b2-ct[aria-pressed="true"] { color: var(--b-chu); background: transparent; }
#popThem .b2-ct[aria-pressed="true"]::after { background: rgba(41, 182, 255, .35) radial-gradient(circle at 19px 50%, #e8f8ff 4px, transparent 4.5px); box-shadow: inset 0 0 0 1px var(--b-cyan2), 0 0 6px rgba(41, 182, 255, .4); }
#popThem #popThemGhi .gh { display: flex !important; flex-wrap: wrap; align-items: center; gap: 4px 6px; padding: 2px 8px; font: 12px/1.4 var(--f-ui); color: var(--b-chu2); white-space: normal; }
#popThem #popThemGhi .gh[hidden] { display: none !important; }
#popThem #popThemGhi .gh button { height: 22px; padding: 0 8px; border: 1px solid rgba(95, 211, 255, .35); border-radius: 3px; background: rgba(41, 182, 255, .06); color: #cfeeff; cursor: pointer; font: 600 11px/20px var(--f-hud); letter-spacing: .04em; }
#popThem #popThemGhi #cSrcNote { display: block; padding: 2px 8px; font: 11.5px/1.4 var(--f-so); color: var(--b-chu3); }
#popThem #popThemGhi #cSrcNote[hidden] { display: block !important; }   /* nguồn nến: luôn đọc được trong menu (ghi chú cũ ẩn ở hàng nút) */
#popThem #popThemGhi:not(:has(.gh:not([hidden]))) #cSrcNote:empty::before { content: 'không có ghi chú lệnh'; }
.b2-pw { position: relative; display: inline-flex; }
.b2-tb .mui { font-size: 11px; margin-left: 2px; opacity: .75; display: inline-block; transform: scale(.8); }
.b2-pop { position: absolute; top: 26px; left: 0; z-index: 40; min-width: 300px; padding: 12px 14px 14px; display: grid; gap: 12px;
  background: linear-gradient(180deg, rgba(8, 20, 40, .98), rgba(5, 10, 21, .98)); border: 1px solid rgba(95, 211, 255, .35);
  box-shadow: 0 14px 40px rgba(0, 0, 0, .65), 0 0 20px -8px rgba(41, 182, 255, .6); clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
.b2-pop.xem { min-width: 0; grid-template-columns: repeat(3, auto); gap: 4px; padding: 10px; }
.b2-pop.xem .ghi { grid-column: 1 / -1; font: 11px/1.3 var(--f-ui); color: var(--b-chu3); margin-bottom: 4px; white-space: nowrap; }
.pop-nhom { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.pop-nhom > b { flex: 0 0 100%; font: 600 11px/1 var(--f-hud); letter-spacing: .12em; color: #8fd6ff; margin-bottom: 2px; }
.pop-nhom .b2-ct, .pop-nhom .leg { height: 24px; padding: 0 9px; border: 1px solid rgba(70, 185, 255, .22); border-radius: 3px; background: transparent; color: var(--b-chu2);
  font: 600 11.5px/22px var(--f-hud) !important; letter-spacing: .05em; cursor: pointer; white-space: nowrap; }
.pop-nhom .b2-ct[aria-pressed="true"], .pop-nhom .leg[aria-pressed="true"] { color: #fff; border-color: rgba(95, 211, 255, .55); background: rgba(41, 182, 255, .14); }
.pop-nhom .b2-ct[aria-pressed="false"], .pop-nhom .leg[aria-pressed="false"] { opacity: .65; }
.pop-nhom .b2-ct small { color: inherit; opacity: .7; margin-left: 4px; font-family: var(--f-so); }
html[data-tk="thu"] .pop-nhom .chi-mt5, html[data-tk="mt5"] .pop-nhom .chi-thu { display: none; }
.pop-nguon { display: inline-flex; gap: 2px; margin-left: 4px; }
#popDuong #duongBar { display: flex; flex-wrap: wrap; gap: 4px; max-height: none; min-height: 0; font-size: 11px; }
#popDuong #duongBar .tde { display: none; }
#popDuong #duongBar .dg { height: 24px; border-radius: 3px; padding: 0 8px; border-color: rgba(70, 185, 255, .22); background: transparent; font: 600 11.5px/22px var(--f-hud); color: var(--b-chu2); }
#popDuong #duongBar .dg .n { font-family: var(--f-so); }
#C > #duongBar { display: none; }
/* LỚP ▾ (phiếu giám khảo: hàng ĐƯỜNG bị cắt, thiếu công tắc): bảng HAI CỘT 560 px — trái LỆNH / RSI / KHÁC, phải ĐƯỜNG; mỗi lớp một dòng có công tắc gạt + số đếm */
#popLop { width: 560px; max-height: 70vh; overflow: auto; grid-template-columns: 1fr 1fr; column-gap: 18px; row-gap: 10px; align-items: start; padding: 12px 14px 14px; }
#popLop > .pop-nhom { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 2px; }
#popLop > .pop-nhom:nth-child(1) { grid-column: 1; grid-row: 1; }
#popLop > #popDuong { grid-column: 2; grid-row: 1 / span 3; padding-left: 16px; border-left: 1px solid rgba(70, 185, 255, .12); }
#popLop > .pop-nhom:nth-child(3) { grid-column: 1; grid-row: 2; padding-top: 10px; border-top: 1px solid rgba(70, 185, 255, .12); }
#popLop > .pop-nhom:nth-child(4) { grid-column: 1; grid-row: 3; padding-top: 10px; border-top: 1px solid rgba(70, 185, 255, .12); }
#popLop .pop-nhom > b { flex: 0 0 auto; margin-bottom: 4px; }
#popLop .pop-nhom .b2-ct, #popLop .pop-nhom .leg, #popLop #popDuong #duongBar .dg {
  display: flex; align-items: center; gap: 8px; width: 100%; height: 28px; padding: 0 8px; border: 0; border-radius: 3px; background: transparent; color: var(--b-chu2);
  font: 500 12px/1.4 var(--f-ui) !important; letter-spacing: 0; text-align: left; opacity: 1; cursor: pointer; text-decoration: none; }
#popLop .pop-nhom .b2-ct:hover, #popLop .pop-nhom .leg:hover, #popLop #popDuong #duongBar .dg:hover { background: rgba(41, 182, 255, .08); color: var(--b-chu); }
#popLop .pop-nhom .b2-ct::after, #popLop .pop-nhom .leg::after, #popLop #popDuong #duongBar .dg::after { content: ''; margin-left: auto; width: 26px; height: 14px; border-radius: 7px; flex: none;
  background: rgba(95, 211, 255, .14) radial-gradient(circle at 7px 50%, #6a84a3 4px, transparent 4.5px); box-shadow: inset 0 0 0 1px rgba(95, 211, 255, .3); }
#popLop .pop-nhom .b2-ct[aria-pressed="true"]::after, #popLop .pop-nhom .leg[aria-pressed="true"]::after, #popLop #popDuong #duongBar .dg[aria-pressed="true"]::after {
  background: rgba(41, 182, 255, .35) radial-gradient(circle at 19px 50%, #e8f8ff 4px, transparent 4.5px); box-shadow: inset 0 0 0 1px var(--b-cyan2), 0 0 6px rgba(41, 182, 255, .4); }
#popLop .pop-nhom .b2-ct[aria-pressed], #popLop .pop-nhom .leg[aria-pressed], #popLop #popDuong #duongBar .dg[aria-pressed] { background: transparent; border: 0; box-shadow: none; }
#popLop .pop-nhom .b2-ct[aria-pressed="true"], #popLop .pop-nhom .leg[aria-pressed="true"], #popLop #popDuong #duongBar .dg[aria-pressed="true"] { color: var(--b-chu); }
#popLop .pop-nhom .b2-ct:hover, #popLop .pop-nhom .leg:hover, #popLop #popDuong #duongBar .dg:hover { background: rgba(41, 182, 255, .08); border: 0; }
#popLop .pop-nhom .b2-ct[aria-pressed="false"], #popLop .pop-nhom .leg[aria-pressed="false"] { opacity: 1; }
#popLop #popDuong #duongBar { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 2px; }
#popLop #popDuong #duongBar .dg .ten { flex: 1 1 auto; text-decoration: none; }
#popLop #popDuong #duongBar .dg .n { font: 500 11px/1 var(--f-so); color: var(--b-chu3); }
html[data-tk="thu"] #popLop .pop-nhom .chi-mt5 { display: flex; opacity: .4; pointer-events: none; }
html[data-tk="thu"] #popLop .pop-nhom .chi-mt5::before { content: 'chỉ tab MT5 · '; color: var(--b-chu3); }
html[data-tk="mt5"] #popLop .pop-nhom .chi-thu { display: flex; opacity: .4; pointer-events: none; }
#popLop .pop-nguon { display: grid; grid-template-columns: repeat(3, auto); gap: 4px; margin: 4px 0 0; }
#popLop .pop-nguon .pill { height: 26px; }
#lenhGhi { flex: 0 1 auto; margin-left: 4px; }
#lenhGhi .gh { display: none !important; }
#cChon { height: 22px; color: #fff; background: color-mix(in srgb, var(--tk) 18%, transparent); border: 1px solid var(--tk); border-radius: 3px; padding: 0 0 0 8px;
  font: 600 12px/22px var(--f-hud); letter-spacing: .06em; box-shadow: 0 0 10px -4px var(--tk-q); }
#cChon button { color: #fff; font-size: 12px; }
#b2Aa { font-family: var(--f-ui) !important; letter-spacing: 0; font-weight: 600; }
/* ô giá / RSI: khung HUD mảnh, góc sáng */
.desk.b2a .chart { position: relative; background: var(--panel); border: 1px solid rgba(70, 185, 255, .18); border-radius: 0; overflow: hidden; min-height: 0; }
.desk.b2a #priceBox { flex: 1 1 0; border-top-color: rgba(70, 185, 255, .1); }
.desk.b2a #priceBox::before, .desk.b2a #rsiBox::before { content: ''; position: absolute; z-index: 7; left: -1px; bottom: -1px; width: 22px; height: 22px; border-left: 2px solid var(--b-vien-sang);
  border-bottom: 2px solid var(--b-vien-sang); pointer-events: none; filter: drop-shadow(0 0 3px rgba(41, 182, 255, .7)); opacity: .7; }
.desk.b2a #rsiBox::before { bottom: auto; top: -1px; border-bottom: 0; border-top: 2px solid var(--b-vien-sang); }
.desk.b2a #priceBox .lbl, .desk.b2a #rsiBox .lbl, .desk.b2a #cRsiNote, .desk.b2a #cNc { display: none !important; }
html.b2-chu .desk.b2a #priceBox .lbl, html.b2-chu .desk.b2a #rsiBox .lbl { display: flex !important; left: 12px; top: 8px; }
/* Aa bật + thanh vẽ ✎ đang mở: nhãn góc trái dời ra khỏi thanh (như desk_ve.js — 42 px), không nằm dưới nút vẽ */
html.b2-chu .desk.b2a.ve-bat #priceBox .lbl, html.b2-chu .desk.b2a.ve-bat #rsiBox .lbl { left: 42px; }
html.b2-chu .desk.b2a #cRsiNote:not(:empty) { display: block !important; }
html.b2-chu .desk.b2a #cNc:not([hidden]) { display: inline-block !important; }
.desk.b2a .mt5Lbl { display: none; }
html.b2-chu .desk.b2a .mt5Lbl { display: block; }
html[data-tk="thu"] .desk.b2a #mt5Ls, html[data-tk="thu"] .desk.b2a #mt5Lay .mt5Gia:not(#mt5GiaBid):not(#mt5GiaAsk) { display: none; }
#keoGiaRsi { flex: 0 0 8px !important; margin: 0 !important; background: transparent; }
#keoGiaRsi::after { background: rgba(95, 211, 255, .35) !important; width: 48px !important; margin-left: -24px !important; top: 2px !important; height: 4px !important; }   /* ≥ 4 px: thấy được lúc nghỉ (phản biện 20/10) */
#keoGiaRsi:hover, #keoGiaRsi.keo { background: rgba(41, 182, 255, .12) !important; }
#keoGiaRsi::before { content: '' !important; }
/* chú giải rê chuột: góc trên trái ô giá, CHỈ khi rê */
.desk.b2a #hover { position: absolute; left: 10px; top: 8px; z-index: 6; min-height: 0; max-width: calc(100% - 120px); padding: 3px 8px; pointer-events: none;
  font: 11px/16px var(--f-so); color: var(--b-chu2); background: rgba(4, 10, 22, .86); border: 1px solid rgba(70, 185, 255, .2); white-space: nowrap; overflow: hidden; text-overflow: clip; }
.desk.b2a #hover:empty, .desk.b2a #priceBox:not(:hover) #hover, .desk.b2a.dang-sua #hover { display: none; }
.desk.b2a #hover .loss { color: var(--b-lo); } .desk.b2a #hover .warn { color: var(--b-canh); } .desk.b2a #hover b { color: var(--b-chu); font-weight: 600; }
#b2RsiHover { position: absolute; left: 10px; top: 6px; z-index: 6; font: 11px/16px var(--f-so); color: var(--b-chu2); pointer-events: none; padding: 1px 8px; background: rgba(4, 10, 22, .8); border: 1px solid rgba(70, 185, 255, .16); white-space: nowrap; }
#b2RsiHover:empty, .desk.b2a #rsiBox:not(:hover) #b2RsiHover { display: none; }
#b2RsiHover .v { color: #f0b90b; } #b2RsiHover .d { color: #ef4f57; } #b2RsiHover .w { color: #eef2f7; }
/* thanh vẽ: ẩn mặc định, ✎ bật */
.desk.b2a:not(.ve-bat) .ve-thanh { display: none !important; }
/* chấm nến đang chạy: TẮT (người dùng 23/10 ~12:50 — nến cuối chỉ xanh / đỏ như mọi nến); thẻ NẾN ĐANG CHẠY mở bằng bấm nến cuối hoặc "⋯ › nến đang chạy" */
.desk.b2a .b2-chay { display: none !important; }
/* ĐOẠN GIÁ LỆNH NGẮN: chữ chi tiết khi rê / bấm đoạn (desk.html #b2DoanTip) · thẻ giá trục phải kiểu TradingView (nền màu, chữ trắng) */
.b2-doan-tip { position: absolute; z-index: 9; max-width: 420px; padding: 3px 8px; pointer-events: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  font: 11.5px/16px var(--f-so); color: var(--b-chu); background: rgba(4, 10, 22, .94); border: 1px solid var(--mt5-entry); border-radius: 3px; box-shadow: 0 6px 16px rgba(0, 0, 0, .55); }
.b2-doan-tip[hidden] { display: none; }
.desk.b2a #mt5Lay .mt5Gia:is([data-kieu="vao"], [data-kieu="cho"], [data-kieu="sl"], [data-kieu="tp"]) { color: #fff; font-weight: 600; }
.b2-chay { position: absolute; z-index: 6; width: 14px; height: 14px; margin: -7px 0 0 -7px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.b2-chay::before { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: var(--b-canh); box-shadow: 0 0 8px var(--b-canh); animation: b2-nhip 1.1s ease-in-out infinite; }
.b2-chay::after { content: ''; position: absolute; inset: -2px; border-radius: 50%; border: 1px solid rgba(227, 179, 65, .5); animation: b2-song 1.8s ease-out infinite; }
@keyframes b2-song { from { transform: scale(.4); opacity: 1; } to { transform: scale(1.4); opacity: 0; } }
/* CHỖ ĐẶT lớp sửa lệnh thử tại chỗ (phần tử ở chart/desk.html): lớp phủ SVG #b2Phu + lớp tay nắm #b2Tay nằm đè ô giá, không bắt chuột, không chiếm chỗ;
   băng SỬA #bangSua ẩn tới khi sửa. Hình tay nắm / băng / viền "đang sửa" ở chart/desk_sua.css (nhánh sửa tại chỗ). */
.b2-phu { position: absolute; left: 0; top: 0; z-index: 8; pointer-events: none; overflow: visible; }
.b2-tay { position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 9; pointer-events: none; }
#bangSua[hidden] { display: none !important; }
.b2-the.rong { width: 420px; }
.b2-the.dock { box-shadow: 0 16px 40px rgba(0, 0, 0, .7), 0 0 0 1px var(--tk-thu), 0 0 18px -6px var(--tk-thu-q); }
/* tab MT5 THẬT (live): viền 2 px quanh toàn màn — dấu "tiền thật" không chỉ dựa vào màu lục (trùng màu lãi) */
html[data-tk="mt5"][data-mt5="live"] .desk.b2a { box-shadow: inset 0 0 0 2px var(--tk-that); }
/* tab THỬ: không lặp chip "● THỬ" ở góc phải (tab đang chọn đã nói) — tab MT5 vẫn hiện LIVE / MÔ PHỎNG / CHƯA NỐI */
html[data-tk="thu"] header#A.b2-bar .b2-tt { display: none; }
/* giá trên thanh trên: số luôn trắng, mỗi tick chỉ nháy NỀN */
.b2-gia .so.len, .b2-gia .so.xuong { color: var(--b-chu); border-radius: 2px; }
.b2-gia .so.len { animation: b2-nen-len .3s ease-out; } .b2-gia .so.xuong { animation: b2-nen-xuong .3s ease-out; }
@keyframes b2-nen-len { from { background: rgba(14, 203, 129, .38); } to { background: transparent; } }
@keyframes b2-nen-xuong { from { background: rgba(246, 70, 93, .38); } to { background: transparent; } }

/* ================================================================ TÍN HIỆU */
#oTH .than { flex: 1 1 auto; display: flex; flex-direction: column; gap: 8px; padding: 10px var(--pad) 12px 20px; min-height: 0; }
.th-tt { display: flex; align-items: center; gap: 10px; }
.th-tt .ic { width: 26px; height: 26px; flex: none; }
.th-tt .ic circle { fill: none; stroke: var(--b-chu3); stroke-width: 1.6; }
.th-tt .ic .lo { fill: var(--b-chu3); stroke: none; }
.th-tt b { font: 600 var(--c-chinh)/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .08em; color: #b9c9dc; white-space: nowrap; }
.th-tt.mua b { color: var(--b-mua); text-shadow: 0 0 12px rgba(14, 203, 129, .6); } .th-tt.ban b { color: var(--b-ban); text-shadow: 0 0 12px rgba(246, 70, 93, .6); }
.th-tt .gio { margin-left: auto; text-align: right; display: grid; gap: 4px; }
.th-tt .gio span { font: 12px/1 var(--f-so); color: var(--b-chu2); white-space: nowrap; }
.th-giu { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 10px; height: 40px; padding: 0 8px 0 12px; border: 1px solid rgba(70, 185, 255, .16);
  background: linear-gradient(90deg, rgba(14, 203, 129, .08), transparent 60%); cursor: pointer; }
.th-giu:hover { border-color: rgba(95, 211, 255, .4); }
.th-giu .k { font: 600 13px/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .06em; color: var(--b-chu); white-space: nowrap; }
.th-giu .k i { font-style: normal; color: var(--b-mua); margin-right: 4px; }
.th-giu .r { font: 600 14px/1 var(--f-so); white-space: nowrap; }
.th-giu .ma { font: 11px/1 var(--f-so); color: var(--b-chu3); white-space: nowrap; }
.th-dong { display: flex; align-items: center; gap: 8px; min-height: 24px; }
/* dấu tiếng Việt trên chữ hoa Bahnschrift không bị cắt (phiếu giám khảo: "CHƯA ĐU BANG CHƯNG"): dòng 16 px, đệm trên 2 px, chỉ cắt NGANG */
.th-dong .kh { flex: 0 1 auto; min-width: 0; font: 600 11.5px/16px var(--f-hud); padding-top: 2px; letter-spacing: .04em; color: var(--b-canh); cursor: pointer; white-space: nowrap; overflow-x: clip; overflow-y: visible; overflow-clip-margin: 3px; }
.th-dong .kh::before { content: '◆ '; }
.th-btn { height: 26px; padding: 0 12px; border: 1px solid rgba(95, 211, 255, .45); border-radius: 3px; background: rgba(41, 182, 255, .08); color: #cfeeff; cursor: pointer;
  font: 600 11.5px/24px var(--f-hud); letter-spacing: .1em; white-space: nowrap; }
.th-btn:hover { background: rgba(41, 182, 255, .18); }
.th-btn.chinh { border-color: var(--tk); color: #fff; background: color-mix(in srgb, var(--tk) 22%, transparent); }
.th-chan { font: 600 11px/18px var(--f-hud); letter-spacing: .06em; color: var(--b-chu3); border: 1px solid rgba(106, 132, 163, .35); border-radius: 3px; padding: 0 6px; cursor: pointer; white-space: nowrap; background: none; }
@media (max-width: 1599px), (max-height: 859px) {
  #oTH .than { padding: 8px 12px 8px 16px; gap: 6px; }
  .th-tt .ic { width: 20px; height: 20px; }
  .th-giu { height: 34px; }
  .th-dong.kh-dong { display: none; }
}

/* ================================================================ ĐƯỜNG VỐN */
.von-than { flex: 1 1 auto; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 6px; padding: 10px var(--pad) 12px 20px; min-height: 0; }
/* số đường vốn: .von-tien / #vonTien (không .von-so / #vonSo — trùng ô nhập của hộp "Vốn của tôi" và số vốn của desk_von.js) */
.von-tien { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; }
.von-tien .tk-so { font-size: var(--c-so); }
.von-tien .pc { font: 600 var(--c-phu)/1 var(--f-so); }
.von-tien .dv { font: 600 12px/1 var(--f-hud); letter-spacing: .08em; color: var(--b-chu3); }
.von-tien .na { font: 600 13px/1.3 var(--f-hud); letter-spacing: .08em; color: var(--b-chu3); white-space: normal; }
/* MỘT ô, một trục (người dùng 23/10 ~08:25: đường vốn THỬ liền từ 05/2020, vạch "lên luật" chỉ là nhãn) — viền màu tab, nét liền 2 px, chấm cuối sáng (điểm live).
   Tên .von-khung / #vonKhung (không .von-o / #vonO — trùng ô "Vốn của tôi" của desk_von.js trong #B1) */
.von-khung { position: relative; min-width: 0; min-height: 0; border: 1px solid color-mix(in srgb, var(--tk) 55%, transparent); box-shadow: inset 0 0 14px -8px var(--tk-q);
  background: linear-gradient(180deg, rgba(4, 14, 30, .7), rgba(3, 8, 18, .45)); }
.von-khung canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.von-td { position: absolute; left: 6px; top: 3px; z-index: 1; font: 600 11px/1.4 var(--f-hud); letter-spacing: .08em; color: color-mix(in srgb, var(--tk) 75%, #fff); white-space: nowrap; pointer-events: none; }
.von-td { display: inline-flex; align-items: center; gap: 6px; }
.von-td .ngan { display: none; }
/* chip TRONG MẪU (tab THỬ): số thử gần như toàn bộ là trong mẫu — đủ câu khi rê (title); chip bắt chuột dù tiêu đề không bắt */
.von-td .mau-chip { pointer-events: auto; cursor: help; height: 16px; padding: 0 5px; font-size: 11px;   /* ≥ 11 px như mọi chữ của bàn (test_ban_hai_tab 2.*.co) */ color: #ffd27a; border: 1px solid rgba(227, 179, 65, .5); background: rgba(227, 179, 65, .08); }
@media (max-width: 1599px), (max-height: 859px) { .von-td .dai { display: none; } .von-td .ngan { display: inline; } }
.von-chip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.von-chip > button.moi { display: none; }
.von-chip > button { display: flex; flex-direction: column; gap: 5px; padding: 6px 8px; border: 1px solid rgba(70, 185, 255, .14); background: rgba(3, 10, 22, .55); text-align: left; cursor: pointer; min-width: 0; }
.von-chip > button.tm { border-style: dashed; }
.von-chip .v { font: 600 13px/1 var(--f-so); color: var(--b-chu); white-space: nowrap; }
@media (max-width: 1599px), (max-height: 859px) {
  .von-than { padding: 8px 10px 8px 14px; gap: 5px; }
  .von-chip > button { padding: 3px 5px; gap: 2px; }
  .von-chip { gap: 4px; }
  .von-tien .tk-so { font-size: 20px; }
}

/* ================================================================ NHẬT KÝ */
.nk { flex: 1 1 auto; min-height: 0; overflow: hidden; padding: 4px 0 6px; }
.nk-hang { display: grid; grid-template-columns: 50px 84px minmax(0, 1fr); gap: 8px; align-items: center; height: 28px; padding: 0 12px 0 20px; cursor: default; }
.nk-hang + .nk-hang { border-top: 1px solid rgba(70, 185, 255, .05); }
.nk-hang .src { justify-self: start; font: 600 11px/16px var(--f-hud); font-stretch: 87.5%; letter-spacing: .06em; padding: 0 5px; border-radius: 2px; color: #8fd6ff; background: rgba(41, 182, 255, .1); white-space: nowrap; }
.nk-hang .src.trap { color: var(--b-trap); background: rgba(255, 154, 31, .1); } .nk-hang .src.chan { color: var(--b-chu3); background: rgba(106, 132, 163, .12); }
.nk-hang .src.luat { color: #c4a8ff; background: rgba(169, 139, 255, .12); } .nk-hang .src.so { color: var(--b-mua); background: rgba(14, 203, 129, .1); }
.nk-hang .src.ban { color: var(--b-chu3); background: transparent; border: 1px solid rgba(106, 132, 163, .3); }
.nk-hang .t { font: 11.5px/1 var(--f-so); color: var(--b-chu3); white-space: nowrap; }
.nk-hang .x { font: 12px/1.2 var(--f-ui); color: var(--b-chu2); white-space: nowrap; overflow: hidden; }
@media (max-width: 1599px), (max-height: 859px) {
  .nk-hang { height: 26px; padding: 0 8px 0 16px; grid-template-columns: 46px 40px minmax(0, 1fr); gap: 6px; }
}

/* ================================================================ THẺ NHỎ (đặc tả 3.3) */
.b2-the { position: fixed; z-index: 70; width: 296px; padding: 0 0 10px; color: var(--b-chu); font: var(--c-the)/1.35 var(--f-ui);
  background: linear-gradient(180deg, rgba(10, 22, 44, .98), rgba(5, 10, 21, .98)); border: 1px solid rgba(95, 211, 255, .4);
  box-shadow: 0 16px 40px rgba(0, 0, 0, .7), 0 0 18px -6px rgba(41, 182, 255, .6);
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); animation: b2-hien .14s ease-out; }
.b2-the.tien { border-color: color-mix(in srgb, var(--tk) 70%, transparent); box-shadow: 0 16px 40px rgba(0, 0, 0, .7), 0 0 18px -6px var(--tk-q); }
.b2-the.sua { --tk: var(--tk-thu); --tk-q: var(--tk-thu-q); border-color: var(--tk-thu); width: 300px; }
@keyframes b2-hien { from { opacity: 0; transform: translateY(4px); } }
.b2-the .the-dau { display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 8px 0 14px; border-bottom: 1px solid rgba(70, 185, 255, .14); background: rgba(4, 16, 34, .6); }
.b2-the .the-dau b { font: 600 13px/1 var(--f-hud); font-stretch: 87.5%; letter-spacing: .08em; color: #fff; white-space: nowrap; }
.b2-the .the-dau b.mua { color: var(--b-mua); } .b2-the .the-dau b.ban { color: var(--b-ban); }
.b2-the .the-dau .x { margin-left: auto; width: 22px; height: 22px; border: 0; background: none; color: var(--b-chu3); cursor: pointer; font-size: 14px; }
.b2-the .the-dau .x:hover { color: #fff; }
.b2-the .ma { padding: 6px 14px 0; font: 11px/1 var(--f-so); color: var(--b-chu3); }
.b2-the .kv { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 5px 10px; padding: 8px 14px 0; font-size: 12.5px; }
.b2-the .kv > span:nth-child(odd) { font: 600 11px/18px var(--f-hud); letter-spacing: .08em; color: var(--b-chu3); text-transform: uppercase; }
.b2-the .kv > span:nth-child(even) { font: 12.5px/18px var(--f-so); color: var(--b-chu); }
.b2-the .kv .ld { display: block; font: 12px/18px var(--f-ui); color: var(--b-chu2); white-space: nowrap; overflow: hidden; }
.b2-the .kv .xuong.ld { color: var(--b-lo); font-family: var(--f-so); }
.b2-the .kv .ld.hai { white-space: normal; max-height: 36px; font-family: var(--f-ui) !important; font-size: 12px !important; line-height: 18px !important; }
.b2-the .nut { display: flex; gap: 6px; padding: 10px 14px 0; flex-wrap: wrap; }
.b2-the .nut button { height: 26px; padding: 0 10px; border: 1px solid rgba(95, 211, 255, .4); border-radius: 3px; background: rgba(41, 182, 255, .08); color: #cfeeff; cursor: pointer;
  font: 600 11.5px/24px var(--f-hud); letter-spacing: .08em; white-space: nowrap; }
.b2-the .nut button.chinh { border-color: var(--tk-thu); background: rgba(169, 139, 255, .2); color: #fff; box-shadow: 0 0 10px -3px var(--tk-thu); }
.b2-the .nut button[aria-pressed="true"] { border-color: var(--tk-thu); background: rgba(169, 139, 255, .3); color: #fff; }
.b2-the .nut button.dung[aria-pressed="true"] { border-color: var(--b-mua); background: rgba(14, 203, 129, .2); }
.b2-the .nut button.bo[aria-pressed="true"] { border-color: var(--b-dung); background: rgba(248, 81, 73, .2); }
.b2-the textarea { margin: 8px 14px 0; width: calc(100% - 28px); min-height: 34px; resize: vertical; background: rgba(2, 6, 14, .8); color: var(--b-chu); border: 1px solid rgba(169, 139, 255, .35);
  border-radius: 3px; padding: 6px 8px; font: 12.5px/1.35 var(--f-ui); }
.b2-the .khac { margin: 8px 14px 0; padding: 6px 8px; font: 12px/1.4 var(--f-so); color: #e6dcff; background: rgba(169, 139, 255, .08); border-left: 2px solid var(--tk-thu); }
.b2-the .khac:empty { display: none; }
.b2-the .ghi { padding: 8px 14px 0; font: 11.5px/1.35 var(--f-ui); color: var(--b-chu3); }
.b2-the .dong { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 5px 14px 0; font-size: 12.5px; }
.b2-the .dong i { width: 8px; height: 8px; border-radius: 50%; align-self: start; margin-top: 5px; }
.b2-the .dong { align-items: start; }
.b2-the .dong .tx { font: 12.5px/1.35 var(--f-ui); color: var(--b-chu); }
.b2-the .dong .v { padding-top: 2px; }
.b2-the .dong .v { font: 12px/1 var(--f-so); color: var(--b-chu2); white-space: nowrap; }
.b2-tip { position: fixed; z-index: 71; padding: 4px 8px; font: 12px/1.3 var(--f-ui); color: var(--b-chu); background: rgba(5, 12, 26, .96); border: 1px solid rgba(95, 211, 255, .35); pointer-events: none; white-space: nowrap; }
.b2-toast { position: fixed; right: 24px; bottom: calc(var(--sim-h, 288px) + 32px); z-index: 80; padding: 10px 16px; font: 600 13px/1 var(--f-hud); letter-spacing: .1em; color: #fff;
  background: linear-gradient(90deg, #2a1d63, #1c1540); border: 1px solid var(--tk-thu); box-shadow: 0 0 20px -4px var(--tk-thu); animation: b2-hien .2s ease-out; }
.b2-toast small { display: block; margin-top: 6px; font: 12px/1.2 var(--f-ui); letter-spacing: 0; color: #cfc2ff; }


/* ================================================================ ⚙ + băng (cảnh báo giữ màu MT5 thật ở mọi tab) */
#popCai { position: fixed; top: 52px; right: 120px; z-index: 60; width: 300px; display: grid; gap: 4px; padding: 10px; }
#popCai button.muc { display: flex; align-items: center; gap: 10px; height: 32px; padding: 0 10px; border: 1px solid transparent; background: transparent; color: var(--b-chu2); cursor: pointer; text-align: left;
  font: 600 12px/1 var(--f-hud); letter-spacing: .08em; }
#popCai button.muc:hover { border-color: rgba(95, 211, 255, .35); color: #fff; }
#popCai .gioi { padding: 8px 10px 2px; font: 11px/1.45 var(--f-ui); color: var(--b-chu3); border-top: 1px solid rgba(70, 185, 255, .12); margin-top: 4px; }
.desk.b2a #bands .band { border-radius: 0; font: 600 13px/1.2 var(--f-hud); letter-spacing: .08em; padding: 7px 14px; }
.desk.b2a #bands .band.sim { display: none; }   /* MÔ PHỎNG = màu sọc + chữ của tab MT5 (đặc tả 2.0), không còn băng */

/* ================================================================ nút nhỏ trên đầu ô + lớp nguồn */
/* nút nhỏ trên đầu ô: ⌗ LOT · ⋯ chi tiết · ▤ bảng MT5 · ⋯ tín hiệu · ⇥ từ ngày lên luật · ≡ nhật ký đủ (chữ ít — một ký hiệu, nghĩa ở title) */
.o > .hud .o-nut { flex: none; width: 22px; height: 20px; display: inline-grid; place-items: center; padding: 0; border: 1px solid rgba(95, 211, 255, .28); border-radius: 3px;
  background: rgba(41, 182, 255, .06); color: #a9d8f5; cursor: pointer; font: 600 12px/1 var(--f-ui); }
.o > .hud .o-nut:hover { color: #fff; border-color: var(--b-cyan2); background: rgba(41, 182, 255, .16); }
.o.tien > .hud .o-nut { border-color: color-mix(in srgb, var(--tk) 45%, transparent); color: color-mix(in srgb, var(--tk) 60%, #e8f4ff); }
html[data-tk="thu"] .o > .hud .o-nut.chi-mt5 { display: none; }
/* chip đặc TIỀN THẬT (tab MT5 + máy chủ báo live — DOI-CHIEU dòng 100 / M10) */
.b2-that { height: 22px; display: inline-flex; align-items: center; padding: 0 9px; border-radius: 3px; background: var(--tk-that); color: #04140c;
  font: 700 11px/1 var(--f-hud); letter-spacing: .12em; white-space: nowrap; box-shadow: 0 0 12px -2px var(--tk-that-q); }
.b2-that[hidden] { display: none; }
/* ô TÀI KHOẢN: dòng cảnh báo ⚠ của bộ canh / vốn (tab MT5 — dòng 22) */
#oTK.co-canh .than { grid-template-rows: auto minmax(0, 1fr) auto; }
.tk-canh { display: flex; align-items: center; gap: 6px; min-width: 0; height: 22px; padding: 0 8px; border: 1px solid rgba(227, 179, 65, .55); background: rgba(227, 179, 65, .1);
  color: var(--b-canh); cursor: pointer; text-align: left; font: 600 11px/16px var(--f-hud); letter-spacing: .04em; }
/* dấu tiếng Việt trên chữ hoa Bahnschrift không bị cắt (như .th-dong .kh): dòng 16 px, đệm trên 2 px, chỉ cắt NGANG */
.tk-canh span { flex: 1 1 auto; min-width: 0; white-space: nowrap; padding-top: 2px; overflow-x: clip; overflow-y: visible; overflow-clip-margin: 3px; }
.tk-canh b { font: 600 11px/1 var(--f-so); }
.tk-canh.dung { border-color: rgba(248, 81, 73, .7); background: rgba(248, 81, 73, .14); color: #ffb3ae; }
/* ô SỔ: cảnh báo lịch sử MT5 (S7) · chân bấm được */
.so-canh { margin: 4px 10px 2px 14px; padding: 4px 8px; border-left: 2px solid var(--b-dung); background: rgba(248, 81, 73, .1); color: #ffb3ae; font: 600 11px/1.35 var(--f-hud);
  letter-spacing: .04em; white-space: normal; }
.so-chan { cursor: pointer; } .so-chan:hover { background: rgba(41, 182, 255, .08); }
/* ô TÍN HIỆU: dòng trạng thái bấm được · KẾ HOẠCH / HỌC (tab THỬ) */
.th-tt { cursor: pointer; } .th-tt:hover b { text-decoration: underline dotted rgba(157, 182, 210, .5); text-underline-offset: 4px; }
.th-btn b { font: 600 11px/1 var(--f-so); margin-left: 4px; }
.th-btn.hoc { border-color: rgba(169, 139, 255, .5); background: rgba(169, 139, 255, .08); color: #e2d8ff; }
.th-dong .th-btn + .th-btn { margin-left: 0; }
.th-btn .ngan { display: none; }
@media (max-width: 1599px), (max-height: 859px) {
  .th-btn .dai { display: none; } .th-btn .ngan { display: inline; }
  .th-dong .th-btn { padding: 0 8px; font-size: 11px; }
}
/* thẻ HỌC gọn: tối đa 5 hàng, cuộn trong 260 px; ⓘ giữ ba đoạn giải thích; chip "luật cũ" nhỏ */
.b2-the .hoc-ds { max-height: 260px; overflow-y: auto; padding-bottom: 2px; }
.b2-the .the-i { flex: none; width: 18px; height: 18px; display: inline-grid; place-items: center; border-radius: 50%; color: #8fd6ff; font: 600 12px/1 var(--f-ui); cursor: help; }
.b2-the .the-i:hover, .b2-the .the-i:focus-visible { background: rgba(41, 182, 255, .16); outline: none; }
.b2-chip.nho { height: 15px; padding: 0 4px; font-size: 11px; vertical-align: 1px; }
.b2-the .ghi.ngan { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* băng cảnh báo MT5 THẬT ở tab THỬ (toàn cục) */
.desk.b2a #bands .band.mt5 { display: flex; align-items: center; gap: 12px; background: rgba(227, 179, 65, .12); color: #ffe3a1; border: 1px solid rgba(227, 179, 65, .6); }
.desk.b2a #bands .band.mt5.dung { background: rgba(248, 81, 73, .16); color: #ffd0cc; border-color: #f85149; }
.band.mt5 .b-that { flex: none; padding: 2px 7px; border-radius: 3px; background: var(--tk-that); color: #04140c; font: 700 11px/1.2 var(--f-hud); letter-spacing: .1em; }
.band.mt5 .b-chu { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; }
.band.mt5 .b-nut { flex: none; height: 24px; padding: 0 10px; border: 1px solid var(--tk-that); border-radius: 3px; background: rgba(34, 214, 140, .12); color: #c9ffe6; cursor: pointer;
  font: 600 11.5px/22px var(--f-hud); letter-spacing: .08em; }
/* mũi tên deal MT5 bấm được → thẻ DEAL */
.desk.b2a #mt5Ls .muiTen { cursor: pointer; }

/* thẻ LOT (phiếu giám khảo 23/10/2026: lưới hai cột hẹp làm "% vốn" / "USD" xuống dòng mồ côi, dòng kỹ thuật dài): rộng 500, cột nhãn 170 px, giá trị xuống dòng
   có cân (text-wrap: pretty); dòng "vốn: … hằng: …" thu một dòng ⓘ, đủ chữ khi rê */
.b2-the.lot { width: min(500px, calc(100vw - 32px)); }
.b2-the.lot .muon #lOut { grid-template-columns: 170px minmax(0, 1fr); gap: 4px 12px; }
.b2-the.lot .muon #lOut > span { white-space: normal; text-wrap: pretty; }
.b2-the.lot .muon #lOut .big { white-space: nowrap; }
.b2-the.lot .muon #lNguon { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font: 11px/1.4 var(--f-ui); color: var(--b-chu3); cursor: help; }
.b2-the.lot .muon #lNguon::before { content: 'ⓘ '; color: #8fd6ff; }
/* bảng MT5: cao theo số dòng (phiếu giám khảo: một dòng dữ liệu mà thẻ cao 625 px) */
.b2-the[data-loai="bangmt5"] .muon #TB .tbPanes { height: auto !important; min-height: 160px; max-height: min(60vh, calc(var(--the-cao, 100vh) - 110px)); overflow: auto; }
.b2-the[data-loai="bangmt5"] .muon #TB .tbPanes > * { position: static !important; }
/* tab Đường vốn trong bảng MT5: ô #von vẽ theo chiều cao khung (flex-basis 0) — bảng cao theo dòng thì cho ô vốn chiều cao riêng, không xẹp 0 px (test_desk_ng F3t) */
.b2-the[data-loai="bangmt5"] .muon #TB #F1 #von { flex: 0 0 auto; height: 240px; }
/* thẻ rộng: rong 420 · rong2 560 · rất rộng (bảng MT5) tới 1100 */
.b2-the.rong2 { width: min(560px, calc(100vw - 32px)); }
.b2-the.rat-rong { width: min(1100px, calc(100vw - 32px)); }
/* thẻ MƯỢN khối cũ: cuộn trong thẻ, đầu thẻ đứng yên; khối cũ giữ chữ / bảng của nó, bỏ khung ô cũ */
/* nền ĐẶC (thẻ lớn đè lên Neural Graph — 2 % trong suốt của thẻ nhỏ để lộ sợi neon sáng) */
.b2-the.muon-the { background: linear-gradient(180deg, #0a162c, #05090f); max-height: calc(100vh - 72px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(70, 185, 255, .3) transparent; }
.b2-the.muon-the .the-dau { position: sticky; top: 0; z-index: 2; background: linear-gradient(180deg, #0a1730, #071224); }
.b2-the .muon { padding: 8px 14px 0; font: 12px/1.4 var(--f-ui); color: var(--b-chu); }
.b2-the .muon > .pn { background: transparent; border: 0; border-radius: 0; padding: 0; max-height: none; overflow: visible; }
.b2-the .muon .pn > h2 { font-size: 0; margin: 0 0 4px; min-height: 0; }
.b2-the .muon .pn > h2 .tag { font: 11px/1.3 var(--f-so); color: var(--b-chu3); }
.b2-the .muon .kv { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 12px; padding: 0; font-size: 12px; }
.b2-the .muon .kv > span:nth-child(odd) { font: 11.5px/1.5 var(--f-ui); letter-spacing: 0; color: var(--b-chu3); text-transform: none; }
.b2-the .muon .kv > span:nth-child(even) { font: 12px/1.5 var(--f-so); color: var(--b-chu); }
.b2-the .muon table { font-size: 11.5px; } .b2-the .muon th { color: var(--b-chu3); }
.b2-the .muon .card { background: rgba(4, 14, 30, .6); border-color: rgba(70, 185, 255, .2); }
.b2-the .muon .btn { height: 24px; padding: 0 10px; border: 1px solid rgba(95, 211, 255, .4); border-radius: 3px; background: rgba(41, 182, 255, .08); color: #cfeeff; cursor: pointer; font: 600 11.5px/22px var(--f-hud); letter-spacing: .06em; }
.b2-the .muon .btn.primary { border-color: var(--tk); background: color-mix(in srgb, var(--tk) 22%, transparent); color: #fff; }
.b2-the .muon input, .b2-the .muon select { height: 24px; background: rgba(2, 6, 14, .8); color: var(--b-chu); border: 1px solid rgba(70, 185, 255, .3); border-radius: 3px; padding: 0 6px; font: 12px var(--f-so); }
.b2-the .muon #g { max-height: 62vh; overflow-y: auto; }
.b2-the .muon .feed div { white-space: normal; padding: 2px 0; border-bottom: 1px solid rgba(70, 185, 255, .05); }
.b2-the .muon #TB { height: auto; max-height: none; display: flex; flex-direction: column; }
.b2-the .muon #TB .tbPanes { flex: none; height: min(56vh, 520px, calc(var(--the-cao, 100vh) - 110px)); }   /* --the-cao: chiều cao thẻ được phép (desk_the.js — không che dải Simulator) */   /* các pane cũ đặt tuyệt đối (inset 0) — vỏ phải có chiều cao */
.b2-the .muon #TB .tbBar { position: static; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; padding: 6px 0; }
.b2-the .muon #trapStrip { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: auto !important; max-height: none !important; gap: 6px; cursor: default; }
.b2-the .muon #trapStrip .cell { white-space: normal !important; padding: 6px 8px !important; }
.b2-the .muon #trapStrip .cell > *, .b2-the .muon #trapStrip .cell b > span { display: revert !important; }
.b2-the .muon #trapStrip .cell b::after { content: none !important; }
.b2-the.chi-gd .muon #d > :not(#gdBox) { display: none !important; }
.b2-the.chi-gd .muon #D > h2 { display: none; }
.b2-the .kv.rong { grid-template-columns: 84px minmax(0, 1fr); }
.b2-the .kv small { font: 11px/1 var(--f-ui); color: var(--b-chu3); }
/* KẾ HOẠCH AI (tab THỬ) */
.b2-the .kh-ds { display: grid; gap: 8px; padding: 8px 14px 0; max-height: calc(100vh - 200px); overflow-y: auto; }
.b2-the .kh { border: 1px solid rgba(169, 139, 255, .35); background: rgba(169, 139, 255, .06); padding: 6px 0 8px; }
.b2-the .kh .kv { padding: 6px 10px 0; }
.b2-the .kh-dau { display: flex; align-items: center; gap: 8px; padding: 0 10px; }
.b2-the .kh-dau b { font: 600 13px/1.2 var(--f-hud); letter-spacing: .06em; } .b2-the .kh-dau b.mua { color: var(--b-mua); } .b2-the .kh-dau b.ban { color: var(--b-ban); }
.b2-the .kh-dau span { margin-left: auto; font: 11px/1 var(--f-so); color: var(--b-chu3); }
.b2-the .kh-loi { margin: 8px 10px 0; padding: 6px 8px; border-left: 2px solid var(--tk-thu); background: rgba(169, 139, 255, .08); font: 12px/1.45 var(--f-ui); color: #e6dcff; display: grid; gap: 3px; }
.b2-the > .kh-loi { margin: 8px 14px 0; }
.b2-the .kh-nguon { padding: 4px 10px 0; font: 11px/1.3 var(--f-ui); color: var(--b-chu3); }
.b2-the .kh-trong { display: grid; gap: 6px; padding: 10px 0 4px; }
.b2-the .kh-trong b { font: 600 13px/1 var(--f-hud); letter-spacing: .1em; color: var(--tk-thu); }
.b2-the .kh-trong span { font: 12px/1.4 var(--f-ui); color: var(--b-chu2); }
/* ⋯ TÍN HIỆU · danh sách bấm được */
.b2-the .muc-ds { display: grid; gap: 4px; padding: 8px 14px 0; }
.b2-the .muc-ds button { height: 30px; padding: 0 10px; border: 1px solid rgba(95, 211, 255, .25); background: rgba(41, 182, 255, .05); color: var(--b-chu2); cursor: pointer; text-align: left;
  font: 600 12px/1 var(--f-hud); letter-spacing: .08em; }
.b2-the .muc-ds button:hover { color: #fff; border-color: var(--b-cyan2); }
.b2-the .dong.bam { cursor: pointer; } .b2-the .dong.bam:hover .tx { color: #fff; text-decoration: underline dotted; }
/* ⚙: trạng thái báo tin / âm */
#popCai button.muc .tt { margin-left: auto; font: 600 11px/1 var(--f-so); font-style: normal; letter-spacing: 0; }
#popCai button.muc .tt.ok { color: var(--b-mua); } #popCai button.muc .tt.loi { color: var(--b-dung); } #popCai button.muc .tt.na { color: var(--b-chu3); }
.b2-the .am-vo { padding: 8px 14px 0; font: 12px/1.4 var(--f-ui); }

@media (prefers-reduced-motion: reduce) { .desk.b2a *, .b2-the, header#A.b2-bar::after { animation: none !important; transition: none !important; } }
