/* Doanh số v3 · khung Material 3 (bảng tông sinh từ xanh BHX #00873E, tonal spot) · 08/10/2026 */
@font-face{font-family:Geist;font-style:normal;font-weight:400 700;font-display:swap;src:url(/lib/fonts/geist-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist;font-style:normal;font-weight:400 700;font-display:swap;src:url(/lib/fonts/geist-viet.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/lib/fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/lib/fonts/inter-viet.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}

:root{
 --f-chu:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 --f-so:Geist,Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 --e:cubic-bezier(.2,.8,.2,1);
 --nav:80px;
 color-scheme:light;
 --p:#34693f;--on-p:#fff;--pc:#b6f1bc;--on-pc:#1a512a;--sc:#d3e8d2;--on-sc:#394b3b;
 --err:#ba1a1a;--ec:#ffdad6;--on-ec:#93000a;
 --luu:#7a5900;--lc:#ffdea8;--on-lc:#5c4200;
 --sf:#f7fbf2;--c0:#fff;--c1:#f1f5ed;--c2:#ebefe7;--c3:#e5eae1;--c4:#dfe4dc;
 --on-sf:#181d18;--on-sv:#414941;--ol:#727970;--olv:#c1c9be;
 --cot:#c9d7c6;--cot-hi:#34693f;--bong:0 1px 2px rgb(0 0 0/.06),0 2px 6px rgb(0 0 0/.06);
 --man-che:rgb(0 0 0/.32);
}
[data-theme=dark]{
 color-scheme:dark;
 --p:#9ad4a1;--on-p:#003916;--pc:#1a512a;--on-pc:#b6f1bc;--sc:#394b3b;--on-sc:#d3e8d2;
 --err:#ffb4ab;--ec:#93000a;--on-ec:#ffdad6;
 --luu:#f3bf48;--lc:#5c4300;--on-lc:#ffdea8;
 --sf:#101510;--c0:#0b0f0b;--c1:#181d18;--c2:#1c211c;--c3:#262b26;--c4:#313631;
 --on-sf:#dfe4dc;--on-sv:#c1c9be;--ol:#8b9389;--olv:#414941;
 --cot:#3a463a;--cot-hi:#9ad4a1;--bong:none;--man-che:rgb(0 0 0/.6);
}
/* ══ NỀN (10/10, bản thử kiểu Apple) — một bảng token cho chữ · khoảng · bo góc · chữ 3 bậc · vạch kẻ. Tiền tố --n- ══ */
:root{
 /* thang chữ: cỡ / dòng (dòng là bội số của 4) */
 --n-fs12:12px;--n-lh12:16px; --n-fs13:13px;--n-lh13:18px; --n-fs14:14px;--n-lh14:20px; --n-fs15:15px;--n-lh15:20px;
 --n-fs16:16px;--n-lh16:24px; --n-fs22:22px;--n-lh22:28px; --n-fs26:26px;--n-lh26:32px; --n-fs28:28px;--n-lh28:36px; --n-fs45:45px;--n-lh45:52px;
 /* độ đậm: 400 thường · 500 nhấn nhẹ · 600 tiêu đề/số (700 chỉ còn ở tab đang chọn + dòng Tổng) */
 --n-w4:400;--n-w5:500;--n-w6:600;
 /* giãn chữ: chữ thân 0 · chữ ≥ 15 px hơi khít · chữ nhỏ 12 px hơi thưa */
 --n-ls-than:0;--n-ls-lon:-.01em;--n-ls-nho:.01em;
 /* khoảng: thang 4 */
 --n-k1:4px;--n-k2:8px;--n-k3:12px;--n-k4:16px;--n-k5:20px;--n-k6:24px;--n-k8:32px;--n-k12:48px;
 /* bo góc 5 bậc: nhãn 6 · nút/chip 10 · bảng/hộp trong 14 · thẻ 20 · viên thuốc */
 --n-r1:6px;--n-r2:10px;--n-r3:14px;--n-r4:20px;--n-rv:999px;
 /* chữ 3 bậc + 1 vạch kẻ + 1 nền phụ (theo màu khung nên tự đúng ở nền tối) */
 --n-chu1:var(--on-sf);--n-chu2:var(--on-sv);--n-chu3:var(--ol);
 --n-ke:color-mix(in srgb,var(--on-sf) 8%,transparent);--n-nen2:var(--c1);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--sf);color:var(--on-sf);font:var(--n-w4) var(--n-fs14)/var(--n-lh14) var(--f-chu);letter-spacing:var(--n-ls-than);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overflow:hidden}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:inherit}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
input{font:inherit;color:inherit}
svg.i{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
svg.i.s20{width:20px;height:20px}svg.i.s18{width:18px;height:18px}svg.i.s16{width:16px;height:16px}
/* 5 cấp chữ: 12 · 14 · 16 · 28 · 45 */
.t1{font-size:var(--n-fs12);line-height:var(--n-lh12);font-weight:var(--n-w5);letter-spacing:var(--n-ls-nho)}
.t2{font-size:var(--n-fs14);line-height:var(--n-lh14)}
.t3{font-size:var(--n-fs16);line-height:var(--n-lh16);font-weight:var(--n-w5);letter-spacing:var(--n-ls-lon)}
.t4{font-size:var(--n-fs28);line-height:var(--n-lh28);font-weight:var(--n-w6);letter-spacing:var(--n-ls-lon)}
.t5{font-size:var(--n-fs45);line-height:var(--n-lh45);font-weight:var(--n-w6);letter-spacing:-.02em}
.so{font-family:var(--f-so);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.mo{color:var(--on-sv)}.len{color:var(--p)}.xuong{color:var(--err)}.luu{color:var(--luu)}
.w6{font-weight:600}.w5{font-weight:500}
.an{display:none!important}
.chi-mt{display:none}

/* ── khung ── */
.vp{position:fixed;left:0;right:0;top:0;bottom:calc(var(--nav) + env(safe-area-inset-bottom));overflow:hidden}
.track{display:flex;width:500%;height:100%;transition:transform 280ms var(--e);will-change:transform}
.pane{width:20%;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.noi{padding:0 16px}
.bar{position:sticky;top:0;z-index:10;background:var(--sf);padding:env(safe-area-inset-top) 0 0;transition:box-shadow 160ms}
.bar.cuon{box-shadow:0 1px 0 var(--olv)}
.bar-h{display:flex;align-items:center;gap:4px;min-height:64px;padding:8px 8px 8px 16px}
.bar-h h1{margin:0;flex:1;min-width:0;font-size:28px;line-height:36px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-ky{padding:0 16px 8px;margin-top:-8px;color:var(--on-sv)}
.nut-pham{display:inline-flex;align-items:center;gap:4px;max-width:58%;min-height:44px;padding:0 8px 0 12px;border-radius:var(--n-r2);background:var(--c3);color:var(--on-sf);font-weight:var(--n-w5)}
.nut-pham span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nut-tron{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--on-sv);flex:none}
.nut-tron:active,.dong:active,.chip:active{background-image:linear-gradient(rgb(0 0 0/.06),rgb(0 0 0/.06))}
.kpi-dinh{display:flex;gap:16px;padding:0 16px;height:0;overflow:hidden;opacity:0;transition:height 240ms var(--e),opacity 160ms}
.bar.kpi .kpi-dinh{height:48px;opacity:1}
.kpi-dinh>div{display:flex;flex-direction:column;justify-content:center;min-width:0}
.kpi-dinh b{font:600 16px/20px var(--f-so);font-variant-numeric:tabular-nums}
.kpi-dinh span{font-size:12px;line-height:16px;color:var(--on-sv);white-space:nowrap}

/* ── thanh dưới (M3 navigation bar) ── */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--nav) + env(safe-area-inset-bottom));padding:12px 0 env(safe-area-inset-bottom);background:var(--c2);display:grid;grid-template-columns:repeat(5,1fr)}
.nav .muc{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--on-sv);font-size:12px;line-height:16px;font-weight:500;min-height:56px}
.nav .ind{display:grid;place-items:center;width:64px;height:32px;border-radius:16px;transition:background-color 200ms var(--e)}
.nav .muc.on{color:var(--on-sf)}
.nav .muc.on .ind{background:var(--sc);color:var(--on-sc)}
.nav .muc.on svg{stroke-width:2.1}
.nav .cham{position:absolute;top:-4px;left:calc(50% + 6px);min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--err);color:var(--sf);font:600 12px/20px var(--f-so);text-align:center}
.nav .logo,.nav .duoi{display:none}

/* ── khối ── */
.noi-bat{margin-top:8px}
.hero{border-radius:var(--n-r4);background:var(--pc);color:var(--on-pc);padding:20px 20px 16px}
.hero .so-lon{display:flex;align-items:baseline;gap:6px;margin-top:4px}
.hero .dv{font-size:16px;line-height:24px;font-weight:500}
.vien-pill{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 12px;border-radius:16px;font:500 14px/20px var(--f-so);font-variant-numeric:tabular-nums}
.vien-pill.xuong{background:var(--err);color:var(--sf)}
.vien-pill.len{background:var(--p);color:var(--on-p)}
.vien-pill.ngang{background:var(--sc);color:var(--on-sc)}
[data-theme=dark] .vien-pill.xuong{background:var(--ec);color:var(--on-ec)}
.hang-pill{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:8px}
.thuoc{margin-top:16px}
.thuoc .ray{position:relative;height:8px;border-radius:4px;background:color-mix(in srgb,var(--on-pc) 16%,transparent)}
.thuoc .ray i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--p)}
.thuoc .ray i.thap{background:var(--luu)}
.thuoc .moc{position:absolute;top:-4px;bottom:-4px;width:2px;border-radius:1px;background:var(--on-pc)}
.thuoc .chu{display:flex;justify-content:space-between;gap:8px;margin-top:8px}
.luoi2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.o{border-radius:var(--n-r4);background:var(--c1);padding:16px;min-width:0}
[data-theme=dark] .o{background:var(--c2)}
.o .nhan{color:var(--on-sv);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.o .gt{margin-top:8px;display:flex;align-items:baseline;gap:4px}
.o .gt .dv{font-size:14px;font-weight:500;color:var(--on-sv)}
.o .bd{margin-top:4px}
.o .ss{color:var(--on-sv)}
.tieu{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:24px 4px 8px;min-height:44px}
.tieu h2{margin:0;font-size:var(--n-fs16);line-height:var(--n-lh16);font-weight:var(--n-w6);letter-spacing:var(--n-ls-lon)}
.tieu .phu{color:var(--on-sv)}
.tieu .lk{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;color:var(--p);font-weight:var(--n-w5);border-radius:var(--n-r2)}

/* danh sách phân đoạn M3 Expressive: khe 2px, đầu cuối bo lớn */
.seg>*{background:var(--c0);border-radius:4px}
[data-theme=dark] .seg>*{background:var(--c2)}
.seg>*+*{margin-top:2px}
.seg>:first-child{border-top-left-radius:var(--n-r4);border-top-right-radius:var(--n-r4)}
.seg>:last-child{border-bottom-left-radius:var(--n-r4);border-bottom-right-radius:var(--n-r4)}
.dong{display:flex;align-items:center;gap:var(--n-k3);width:100%;min-height:64px;padding:10px var(--n-k4);text-align:left}
.dong .giua{flex:1;min-width:0}
.dong .d1{font-size:var(--n-fs16);line-height:var(--n-lh16);font-weight:var(--n-w5);letter-spacing:var(--n-ls-lon);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dong .d2{font-size:14px;line-height:20px;color:var(--on-sv);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dong .phai{flex:none;text-align:right}
.dong .phai .n{font:600 16px/24px var(--f-so);font-variant-numeric:tabular-nums}
.dong .mui{color:var(--on-sv)}
.ico{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--n-r2);flex:none}
.ico.giam{background:var(--ec);color:var(--on-ec)}.ico.luu{background:var(--lc);color:var(--on-lc)}.ico.tt{background:var(--pc);color:var(--on-pc)}.ico.tr{background:var(--c3);color:var(--on-sv)}
.nhan-h{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:var(--n-r1);font:var(--n-w5) var(--n-fs12)/var(--n-lh12) var(--f-so);font-variant-numeric:tabular-nums;margin-top:2px}
.nhan-h.vt{background:var(--p);color:var(--on-p)}.nhan-h.ht{background:var(--pc);color:var(--on-pc)}.nhan-h.cd{background:var(--lc);color:var(--on-lc)}.nhan-h.li{background:var(--ec);color:var(--on-ec)}
.nhan-h.moi{background:var(--c3);color:var(--on-sv);font-family:var(--f-chu)}
.the-moi{display:inline-block;margin-left:6px;padding:0 6px;border-radius:6px;background:var(--c3);color:var(--on-sv);font-size:12px;line-height:20px;font-weight:500;vertical-align:2px}

/* Nổi bật: hai thanh */
.noi-bat{border-radius:var(--n-r4);background:var(--c1);padding:16px}
[data-theme=dark] .noi-bat{background:var(--c2)}
.noi-bat .hang{display:grid;grid-template-columns:88px 1fr auto;align-items:center;gap:12px;margin-top:12px}
.noi-bat .thanh{height:24px;border-radius:12px;background:var(--cot)}
.noi-bat .thanh.hi{background:var(--p)}

/* chip lọc + điều khiển phân đoạn */
.hang-chip{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:8px 16px;scrollbar-width:none}
.hang-chip::-webkit-scrollbar{display:none}
.chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--n-k3);border-radius:var(--n-r2);border:1px solid var(--olv);color:var(--on-sv);font-weight:var(--n-w5);white-space:nowrap}
.chip .d{font-family:var(--f-so);font-variant-numeric:tabular-nums}
.chip.on{background:var(--sc);color:var(--on-sc);border-color:transparent}
.chip .ck{display:none}.chip.on .ck{display:block}
.phan-doan{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ol);border-radius:var(--n-rv);overflow:hidden;margin-top:8px}
.phan-doan button{min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px;font-weight:500}
.phan-doan button+button{border-left:1px solid var(--ol)}
.phan-doan button.on{background:var(--sc);color:var(--on-sc)}
.o-tim{display:flex;align-items:center;gap:12px;height:56px;padding:0 16px;border-radius:28px;background:var(--c3);color:var(--on-sv);margin-top:12px}
.o-tim input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;font-size:16px;color:var(--on-sf)}
.o-tim input::placeholder{color:var(--on-sv)}

/* biểu đồ SVG ít mực */
.bd-k{border-radius:var(--n-r4);background:var(--c1);padding:16px 12px 8px}
[data-theme=dark] .bd-k{background:var(--c2)}
.bd-chu{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--on-sv);margin:0 4px 8px}
.bd-chu i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.bc{display:block;overflow:visible}
.bc .c{fill:var(--cot)}.bc .c.hi{fill:color-mix(in srgb,var(--p) 52%,var(--c1))}.bc .c.cao{fill:var(--p)}.bc .c.thap{fill:var(--luu)}.bc .c.thieu{opacity:.4}
.bc .ref{stroke:var(--on-sf);stroke-width:1.25;stroke-dasharray:3 4;opacity:.7}
.bc text{fill:var(--on-sv);font:500 12px var(--f-so);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--c1);stroke-width:4px;stroke-linejoin:round}
[data-theme=dark] .bc text{stroke:var(--c2)}
.bc text.dam{fill:var(--on-sf);font-weight:600}

/* nhiệt đồ số: cột tên đứng yên */
.nhiet{overflow-x:auto;margin:0 -16px;padding:0 16px;scrollbar-width:thin}
.nhiet table{border-collapse:separate;border-spacing:0}
.nhiet th,.nhiet td{height:44px;min-width:44px;text-align:center;font:500 12px/16px var(--f-so);font-variant-numeric:tabular-nums;padding:0 2px}
.nhiet thead th{color:var(--on-sv);background:var(--sf);position:sticky;top:0}
.nhiet thead th small{display:block;font:400 12px/14px var(--f-chu);opacity:.85}
.nhiet .ten{position:sticky;left:0;z-index:2;background:var(--sf);text-align:left;font:500 14px/20px var(--f-chu);min-width:120px;max-width:120px;padding:0 8px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:6px 0 8px -8px rgb(0 0 0/.4)}
.nhiet thead .ten{z-index:3}
.nhiet td.o9{border-radius:var(--n-r1);border:2px solid var(--sf)}
.nhiet tr.tong td{border-top:1px solid var(--olv);color:var(--on-sf);font-weight:600}
.nhiet td.tb{color:var(--on-sv);font-weight:600}
.nhiet tr[data-shop]{cursor:pointer}
.chu-giai{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--on-sv);margin:8px 0}
.chu-giai .thang{display:flex;gap:2px}.chu-giai .thang i{width:20px;height:12px;border-radius:3px}

/* ngành */
.ng-k{padding:16px}
.ng-k .tren{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.ng-k .ray{height:8px;border-radius:4px;background:var(--c3);margin-top:8px;overflow:hidden}
.ng-k .ray i{display:block;height:100%;border-radius:4px;background:var(--p)}
.ng-nhom{padding:12px 16px}
.ng-nhom .tren{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.ng-nhom .ten{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ng-nhom .ray{height:4px;border-radius:2px;background:var(--c3);margin-top:8px;overflow:hidden}
.ng-nhom .ray i{display:block;height:100%;background:var(--ol);border-radius:2px}

/* việc */
.the-viec{display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 16px}
.the-viec .so-v{font:600 28px/36px var(--f-so);font-variant-numeric:tabular-nums;min-width:48px;text-align:right}
.nut-phu{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:var(--n-rv);border:1px solid var(--ol);color:var(--p);font-weight:var(--n-w5)}
.nut-chinh{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;border-radius:28px;background:var(--p);color:var(--on-p);font-size:16px;font-weight:600;margin-top:24px}
.lua-chon{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:56px;padding:8px 16px;text-align:left}
.lua-chon .vong{width:20px;height:20px;border-radius:50%;border:2px solid var(--on-sv);flex:none}
.lua-chon.on .vong{border:6px solid var(--p)}
.cong-tac{width:52px;height:32px;border-radius:16px;background:var(--c4);border:2px solid var(--ol);position:relative;flex:none;transition:background 200ms}
.cong-tac::after{content:"";position:absolute;left:6px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--ol);transition:all 200ms var(--e)}
.cong-tac.on{background:var(--p);border-color:var(--p)}
.cong-tac.on::after{left:22px;top:2px;width:24px;height:24px;background:var(--on-p)}
.dang-xuat{justify-content:center;color:var(--err);font-weight:600}

/* tấm trượt */
.man-che{position:fixed;inset:0;z-index:40;background:var(--man-che);opacity:0;pointer-events:none;transition:opacity 250ms var(--e)}
.man-che.dang-mo{opacity:1;pointer-events:auto}
.tam{position:fixed;left:0;right:0;top:0;height:100dvh;z-index:41;background:var(--c1);border-radius:28px 28px 0 0;transform:translateY(110%);display:none;flex-direction:column;box-shadow:0 -2px 8px rgb(0 0 0/.08)}
[data-theme=dark] .tam{background:var(--c2)}
.tam.dang-mo{display:flex}
.tay{display:flex;align-items:center;justify-content:center;height:36px;flex:none;touch-action:none;cursor:grab}
.tay i{display:block;width:32px;height:4px;border-radius:2px;background:var(--ol);opacity:.6}
.tam-cuon{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:0 16px calc(48vh + env(safe-area-inset-bottom))}
.tam h3{margin:0;font-size:28px;line-height:36px;font-weight:600;letter-spacing:-.01em}
.tam .dau{display:flex;align-items:flex-start;gap:8px}
.tam .nhom-nho{margin:24px 4px 8px;color:var(--on-sv)}
.ct-so{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}

/* biểu đồ cuộn ngang + bảng ngày */
.bd-cuon{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;margin:0 -4px;padding:0 4px}
.bang-ngay{margin-top:8px}
.dong-ng{display:grid;grid-template-columns:28px 1.2fr .8fr 1fr .9fr .9fr;gap:4px;align-items:center;min-height:36px;padding:0 8px;border-top:1px solid var(--n-ke);text-align:right}
.dong-ng>span:first-child{text-align:left}
.dong-ng.dau{color:var(--on-sv);border-top:0}
.tren-nb{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
/* màn shop */
.man-shop{position:fixed;left:0;right:0;top:0;bottom:calc(var(--nav) + env(safe-area-inset-bottom));z-index:25;background:var(--sf);display:none}
.man-shop.dang-mo{display:block}
.man-cuon{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.man-shop .bar-h h1{font-size:22px;line-height:28px}
.luoi4{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.khoi{margin-top:12px;border-radius:var(--n-r4);background:var(--c0);overflow:hidden}
[data-theme=dark] .khoi{background:var(--c2)}
.khoi-dau{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 16px}
.khoi-dau .giua{flex:1;min-width:0;text-align:left}
.khoi-dau .tom{white-space:nowrap}
.xoay{transition:transform 200ms var(--e);color:var(--on-sv)}
.khoi.mo-ra>.khoi-dau .xoay,.nhanh.mo-ra>.dong .xoay{transform:rotate(180deg)}
.khoi-than{padding:0 8px 12px}
.khoi-than:empty,.nhanh-than:empty{display:none}
.khoi .seg>*,.khoi .o,.khoi .bd-k{background:var(--c1)}
[data-theme=dark] .khoi .seg>*,[data-theme=dark] .khoi .o,[data-theme=dark] .khoi .bd-k{background:var(--c3)}
.khoi .seg .seg>*{background:transparent}
.cap2>.dong{padding-left:28px}.cap3>.dong{padding-left:40px}
.sp-k{padding:4px 16px 12px 40px}
.sp-d{display:flex;gap:12px;align-items:baseline;justify-content:space-between;min-height:28px}
.sp-d .ten{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* khung xương */
.sk{background:var(--c3);border-radius:var(--n-r3);animation:nhay 1.2s ease-in-out infinite}
@keyframes nhay{50%{opacity:.5}}
.dang-tai .noi-dung{display:none}
.skel{display:none}
.dang-tai .skel{display:block}
.chan{padding:32px 0 24px;text-align:center;color:var(--on-sv)}
.loi{margin:48px 16px;text-align:center}
.vao{animation:vao 240ms var(--e) both}
@keyframes vao{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* bảng máy tính (Tabulator) theo token */
.tabulator{background:transparent;border:0;font:14px var(--f-chu);color:var(--on-sf)}
.tabulator .tabulator-header{background:transparent;border-bottom:1px solid var(--olv);color:var(--on-sv)}
.tabulator .tabulator-header .tabulator-col{background:transparent;border-right:0}
.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:10px 12px}
.tabulator .tabulator-header .tabulator-col .tabulator-col-title{font-size:12px;font-weight:500;white-space:normal}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover{background:var(--c3)}
.tabulator .tabulator-tableholder .tabulator-table{background:transparent;color:var(--on-sf)}
.tabulator-row,.tabulator-row.tabulator-row-even{background:transparent;border-bottom:1px solid var(--n-ke)}
.tabulator-row.tabulator-selectable:hover,.tabulator-row:hover{background:var(--c2);cursor:pointer}
.tabulator-row .tabulator-cell{border-right:0;padding:10px 12px}
.tabulator .tabulator-footer,.tabulator .tabulator-calcs-holder,.tabulator-row.tabulator-calcs{background:transparent!important;border-top:1px solid var(--olv)!important;color:var(--on-sf);font-weight:600}
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter .tabulator-arrow{border-bottom-color:var(--on-sv)}
.bb{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.bb .ray{width:48px;height:6px;border-radius:3px;background:var(--c3);position:relative;overflow:hidden}
.bb .ray i{position:absolute;left:0;top:0;bottom:0;border-radius:3px}

/* ── máy tính ≥ 1024: thanh bên + lưới 12 cột ── */
@media (min-width:1024px){
 .chi-mt{display:block}.chi-dt{display:none!important}
 .vp{left:256px;bottom:0}
 .man-shop{left:256px;bottom:0}
 .man-shop .noi{max-width:960px}
 .luoi4{grid-template-columns:repeat(4,minmax(0,1fr))}
 .nav{top:0;right:auto;width:256px;height:auto;padding:16px 12px;display:flex;flex-direction:column;gap:4px;background:var(--c1);border-right:1px solid var(--c3)}
 [data-theme=dark] .nav{background:var(--c1)}
 .nav .logo{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 16px;margin-bottom:8px;font-size:16px;font-weight:600}
 .nav .logo i{width:32px;height:32px;border-radius:10px;background:var(--p)}
 .nav .muc{flex-direction:row;gap:12px;min-height:56px;padding:0 16px;border-radius:28px;font-size:14px;line-height:20px}
 .nav .ind{width:auto;height:auto;background:none!important}
 .nav .muc.on{background:var(--sc);color:var(--on-sc)}
 .nav .muc:not(.on):hover{background:var(--c3)}
 .nav .cham{position:static;margin-left:auto}
 .nav .duoi{display:block;margin-top:auto;padding:0 16px;color:var(--on-sv)}
 .noi{padding:0 32px;max-width:1360px}
 .bar-h{padding:16px 24px 8px 32px;min-height:72px}
 .bar-ky{padding:0 32px 12px}
 .kpi-dinh{display:none}
 .l12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:start}
 .s12{grid-column:span 12}.s8{grid-column:span 8}.s7{grid-column:span 7}.s6{grid-column:span 6}.s5{grid-column:span 5}.s4{grid-column:span 4}.s3{grid-column:span 3}
 .l12 .tieu{margin-top:8px}
 .o.kpi{min-height:148px}
 .the-mt{border-radius:var(--n-r4);background:var(--c1);padding:16px 20px}
 [data-theme=dark] .the-mt{background:var(--c2)}
 .the-mt .tieu{margin:0 0 8px}
 .tam{left:auto;right:16px;top:16px;height:calc(100dvh - 32px);width:460px;border-radius:28px;transform:translateX(120%)!important;transition:transform 280ms var(--e)}
 .tam.dang-mo.len-man{transform:none!important}
 .tay{display:none}
 .tam-cuon{padding:24px 24px 32px}
 .nhiet{margin:0;padding:0}
 .nhiet .ten{min-width:168px;max-width:168px;background:var(--c1)}
 .nhiet thead th{background:var(--c1)}
 .nhiet td.o9{border-color:var(--c1)}
 [data-theme=dark] .nhiet .ten,[data-theme=dark] .nhiet thead th{background:var(--c2)}
 [data-theme=dark] .nhiet td.o9{border-color:var(--c2)}
}
@media (prefers-reduced-motion:reduce){.track,.tam,.man-che,.kpi-dinh,.vao{transition:none!important;animation:none!important}.sk{animation:none}}
/* lượt 3 (08/10): chọn tháng · màn chi tiết ngành */
.chon-thang{padding-top:4px}
.khoi .chon-thang{margin:0 -8px;padding:4px 8px 8px}
.the-mt .chon-thang{margin:0;padding:0 0 8px}
.cho-thang{padding:16px 4px}
.dong-ng.c5{grid-template-columns:28px 1.2fr .8fr 1fr 1.1fr}
.dong-ng.c4{grid-template-columns:28px 1.2fr .8fr 1fr}
.ng-lk{display:block}
.ng-lk .tren .mui{margin-left:2px;color:var(--on-sv);flex:none}
.ng-shop .hang-so{flex:none;min-width:24px;text-align:right}
.ng-shop .phai .t1{margin-top:2px}
.seg>.ng-shop.giam-sau{background:color-mix(in srgb,var(--err) 9%,var(--c0))}
[data-theme=dark] .seg>.ng-shop.giam-sau{background:color-mix(in srgb,var(--err) 16%,var(--c2))}
.ray-nhom{height:4px;border-radius:2px;background:var(--c3);margin-top:6px;overflow:hidden}
.ray-nhom i{display:block;height:100%;background:var(--ol);border-radius:2px}
/* lượt 4 (08/10): bảng nhóm hàng · bảng Từng ngày vừa một màn ở máy tính */
.the-nhom{border-radius:var(--n-r4);background:var(--c0);overflow:hidden}
[data-theme=dark] .the-nhom{background:var(--c2)}
.bn{display:grid;grid-template-columns:44px minmax(0,1fr) 52px 54px 50px;gap:6px;align-items:baseline;width:100%;padding:var(--n-k3);min-height:44px;text-align:right;font:var(--n-w5) var(--n-fs13)/var(--n-lh13) var(--f-so);font-variant-numeric:tabular-nums}
.bn>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bn .c-ten{text-align:left;font:500 13px/18px var(--f-chu)}
.bn .c-tt{text-align:left;color:var(--on-sv)}
.bn .c-tien{display:none}
.bn-dau{min-height:48px;color:var(--on-sv);font:500 12px/14px var(--f-chu);align-items:end;padding:10px 12px 6px}
.bn-dau>span:first-child{white-space:normal;text-align:left}
.bn-dau small{display:block;font-size:12px;opacity:.85}
.bn-tong{border-top:1px solid var(--n-ke);font-weight:600}
.bn-tong .c-ten{font-weight:600}
.bn-moi{color:var(--on-sv);min-height:36px;padding-top:4px;padding-bottom:12px;font-size:var(--n-fs12)}
.bn-moi .c-ten{font-size:var(--n-fs12)}
.bn-nh{border-top:1px solid var(--n-ke)}
.bn-dong{cursor:pointer}
.bn-nh.mo-ra>.bn-dong{background:color-mix(in srgb,var(--p) 8%,transparent)}
.bn-them{border-top:1px solid var(--n-ke)}
.khoi .bn-bang{background:var(--c1);border-radius:var(--n-r3);overflow:hidden;margin:4px 0 8px}
[data-theme=dark] .khoi .bn-bang{background:var(--c3)}
.khoi .bn{padding-left:8px;padding-right:8px;gap:4px}
@media (min-width:600px){
 .bn{grid-template-columns:52px minmax(0,1fr) 64px 64px 56px 60px;gap:8px}
 .bn .c-tien{display:block}
}
@media (min-width:1100px){
 .the-mt .nhiet{overflow-x:visible}
 .the-mt .nhiet table{table-layout:fixed;width:100%;border-spacing:0}
 .the-mt .nhiet th,.the-mt .nhiet td{min-width:0;height:34px;padding:0;font-size:12px;line-height:14px;overflow:hidden}
 .the-mt .nhiet thead th small{font-size:12px;line-height:13px}
 .the-mt .nhiet th.ten,.the-mt .nhiet td.ten{width:150px;min-width:150px;max-width:150px;font-size:13px;line-height:16px}
 .the-mt .nhiet th.c-tb,.the-mt .nhiet td.tb{width:40px}
 .the-mt .nhiet td.o9{border-radius:3px;border-width:1px}
 .the-mt .nhiet tr.tong td{letter-spacing:-.04em}
}
@media (min-width:1100px) and (max-width:1439px){
 .the-mt .nhiet th.ten,.the-mt .nhiet td.ten{width:120px;min-width:120px;max-width:120px}
 .the-mt .nhiet td{letter-spacing:-.06em}
}
/* lượt 5 (08/10, QA): B3 dòng Tổng bảng máy tính theo nền trang · B4 tiêu đề không cắt, nút khu co trước · B12 tên dài xuống dòng · nút Trang quản lý */
.tabulator .tabulator-footer .tabulator-calcs-holder,.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row,.tabulator .tabulator-tableholder .tabulator-table .tabulator-row.tabulator-calcs{background:transparent!important;color:var(--on-sf)}
.tabulator .tabulator-footer{color:var(--on-sf)}
.bar-h h1{flex:none;overflow:visible;text-overflow:clip}
.bar-h .nut-pham{flex:0 1 auto;min-width:0;max-width:none;margin-left:auto}
.bar-h .nut-pham+.nut-tron,.bar-h .nut-pham+.nut-ql{flex:none}
.man-shop .bar-h h1{flex:1;min-width:0;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nut-ql{flex:none;text-decoration:none}
.nut-ql .chu-ql{display:none}
.bar-ky.co-lk{display:flex;align-items:center;justify-content:space-between;gap:8px}
.bar-ky.co-lk>span{min-width:0}
.lk-ql{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 4px 0 12px;color:var(--p);font-weight:500;font-size:14px}
.hero-phu{margin-top:12px;color:var(--on-pc);opacity:.9}
.dong .d1{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ng-lk .tren .ten{white-space:normal;overflow:visible;text-overflow:clip}
.ng-lk .ng-so{white-space:nowrap;display:inline-flex;align-items:center;flex:none}
.bn>span.c-ten{white-space:normal;overflow:visible;text-overflow:clip}
.sp-d .ten{white-space:normal;overflow:visible;text-overflow:clip}
@media (min-width:1024px){
 .nut-ql{width:auto;border-radius:var(--n-r2);padding:0 var(--n-k3);gap:6px;display:inline-flex;align-items:center}
 .nut-ql .chu-ql{display:inline;font-weight:500;font-size:14px}
}
[data-canchuy] .dong .d2,[data-thi-dua] .dong .d2{white-space:normal;overflow:visible;text-overflow:clip}
/* lượt 6 (08/10): cột hôm qua · tích điểm · nút Xuất */
.nut-cum{display:inline-flex;align-items:center;gap:4px}
.nut-xuat{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--n-k3);border-radius:var(--n-r2);border:1px solid var(--olv);color:var(--on-sf);font-weight:var(--n-w5)}
.the-mt .tieu .nut-xuat{min-height:36px}
.dong .d3{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:13px;line-height:20px;color:var(--on-sv);margin-top:2px}
.o-hq{display:inline-block;padding:0 6px;border-radius:6px;font-weight:600;color:var(--on-sf)}
.tabulator .bb .ray{width:36px}
.tabulator-row .tabulator-cell{padding-left:8px;padding-right:8px}
.tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding-left:8px;padding-right:8px}
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder .tabulator-col-title,.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{white-space:normal;overflow:visible;text-overflow:clip;line-height:16px}
/* lượt 6 (08/10): logo · ảnh đại diện · menu tài khoản */
.nav .logo img{width:36px;height:36px;border-radius:10px;object-fit:cover;flex:none}
.nut-tk{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:22px}
.av-tk{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--p);color:var(--on-p);font:600 15px/1 var(--f-chu);overflow:hidden}
.av-tk img,.av-tk svg{width:36px;height:36px;border-radius:50%;object-fit:cover;display:block}
.av-tk.co-anh{background:transparent}
.menu-tk{position:fixed;z-index:60;min-width:220px;background:var(--c0);border-radius:var(--n-r3);box-shadow:0 8px 28px rgb(0 0 0/.18);padding:var(--n-k1);border:1px solid var(--c3)}
[data-theme=dark] .menu-tk{background:var(--c2)}
.menu-tk .mt-ten{padding:10px 12px 8px;border-bottom:1px solid var(--c3);margin-bottom:4px}
.menu-tk a,.menu-tk button{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 12px;border-radius:10px;color:var(--on-sf);font-size:15px;text-align:left}
.menu-tk a:hover,.menu-tk button:hover{background:var(--c2)}
.menu-tk [data-dang-xuat]{color:var(--err)}
.chip-chuoi{display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;font-weight:600;font-size:var(--n-fs12);line-height:var(--n-lh14);background:var(--c3)}
.chip-chuoi.xuong{background:color-mix(in srgb,var(--err) 14%,transparent)}
.chip-chuoi.len{background:color-mix(in srgb,var(--p) 16%,transparent)}
.tabulator .tabulator-frozen{background:var(--c1)}
[data-theme=dark] .tabulator .tabulator-frozen{background:var(--c2)}
.tabulator .tabulator-row .tabulator-frozen.tabulator-frozen-left{border-right:1px solid var(--c3)}
/* lượt 6 (08/10): máy tính — danh sách dài thành bảng gọn (anh Nhựt: "bản desktop kéo dài không được") */
.v3-bk{display:none}
@media (min-width:1024px){
 .s4{grid-column:span 4}.s8{grid-column:span 8}.s12{grid-column:span 12}
 .v3-bk{display:block;background:var(--c0);border-radius:var(--n-r3);overflow:hidden}
 [data-theme=dark] .v3-bk{background:var(--c2)}
 .v3-bk-d{display:grid;grid-template-columns:28px minmax(0,1.3fr) minmax(80px,1fr) 64px 64px 84px 20px;gap:var(--n-k2);align-items:center;width:100%;min-height:36px;padding:0 var(--n-k3);border-top:1px solid var(--n-ke);text-align:right;font-size:var(--n-fs14);line-height:var(--n-lh14);cursor:pointer}
 .v3-bk-d:hover{background:var(--c1)}
 .v3-bk-dau{border-top:0;color:var(--on-sv);cursor:default;min-height:32px;font-size:12px}
 .v3-bk-dau:hover{background:none}
 .v3-bk-d>span:nth-child(2){text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
 .v3-bk-d>span:first-child{text-align:left}
 .v3-bk-ray{position:relative;height:8px;border-radius:4px;background:var(--c3)}
 .v3-bk-ray i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--p)}
 .v3-bk-ray i.cd{background:var(--luu)}.v3-bk-ray i.li{background:var(--err)}
 .v3-bk-ray b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--on-sf);opacity:.55}
 .v3-bk-d .mui{width:18px;height:18px}
 .ds-gon>.dong{min-height:44px;padding:var(--n-k2) var(--n-k4);gap:var(--n-k3)}
 .ds-gon>.dong .giua{display:flex;align-items:baseline;gap:12px;min-width:0}
 .ds-gon>.dong .d1{font-size:var(--n-fs14);line-height:var(--n-lh14);flex:0 1 auto;-webkit-line-clamp:1}
 .ds-gon>.dong .d2{font-size:13px;flex:1 1 auto;min-width:0}
 .ds-gon>.dong .phai{display:flex;align-items:baseline;gap:12px}
 .ds-gon>.dong .phai .n{font-size:var(--n-fs14)}
 .ds-gon>.dong .ico{width:28px;height:28px}
 .ng-lk{display:grid;grid-template-columns:minmax(0,1fr) 160px auto;align-items:center;gap:16px;min-height:38px;padding:6px 16px}
 .ng-lk .tren{display:contents}
 .ng-lk .ray{margin-top:0;order:2}
 .ng-lk .tren .ten{order:1}
 .ng-lk .tren .ng-so{order:3}
}
@media (min-width:1024px){
 .l12.hn-mt{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
 .hn-mt>.hn-cot{display:flex;flex-direction:column;gap:16px;min-width:0}
 .hn-mt .hn-cot>section{grid-column:auto}
 .hn-mt .hn-kpi .luoi2{grid-template-columns:repeat(4,minmax(0,1fr))}
 .hn-mt .hn-kpi .o{padding:var(--n-k3) var(--n-k4)}
 .hn-mt .hn-khu .tieu,.hn-mt .hn-ccy .tieu{margin-top:0}
}
/* ══ lượt 8 (08/10) ══ */
/* tab / mục đang chọn sáng lên (luật anh Nhựt): pill xanh nhạt --pc + chữ đậm màu chính + icon đậm; không chọn = chữ xám */
.nav .muc{color:var(--on-sv)}
.nav .muc.on{color:var(--on-pc);font-weight:700}
.nav .muc.on .ind{background:var(--pc);color:var(--on-pc)}
.nav .muc.on svg{stroke-width:2.4}
.chip.on,.phan-doan button.on{background:var(--pc);color:var(--on-pc);font-weight:700}
.chip.on svg{stroke-width:2.6}
.phan-doan button{color:var(--on-sv)}
.lua-chon.on{background:var(--pc)!important;color:var(--on-pc)}
.lua-chon.on .t3{font-weight:700}
.tabulator .tabulator-header .tabulator-col[aria-sort=ascending] .tabulator-col-title,.tabulator .tabulator-header .tabulator-col[aria-sort=descending] .tabulator-col-title{color:var(--p);font-weight:var(--n-w6)}
@media (min-width:1024px){
 .nav .muc.on{background:var(--pc);color:var(--on-pc)}
}
/* nút Xuất ở đầu khối / hàng tháng */
.hang-xuat{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hang-xuat .hang-chip{flex:1 1 auto;min-width:0}
.hang-xuat .nut-xuat{flex:none;margin-left:auto}
.hx-phai{justify-content:flex-end;margin-top:8px}
.bar-ky.co-lk .nut-xuat{min-height:36px;padding:0 12px}
.man-shop .bar-ky.co-lk .nut-cum{gap:8px}
/* thanh tỉ trọng tô màu theo so tháng trước + vạch mốc tháng trước */
.rt{position:relative;display:block;height:6px;border-radius:3px;background:var(--c3);margin-top:6px;overflow:visible}
.rt i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--ol)}
.rt i.mt4{background:#2f6b4f}.rt i.mt3{background:#8fc59a}.rt i.mt2{background:#eec9c2}.rt i.mt1{background:#e09a8f}.rt i.mt0{background:#c0392b}
[data-theme=dark] .rt i.mt4{background:#7fc28e}[data-theme=dark] .rt i.mt3{background:#4f8a5d}[data-theme=dark] .rt i.mt2{background:#7a5752}[data-theme=dark] .rt i.mt1{background:#a5594e}[data-theme=dark] .rt i.mt0{background:#e0695a}
.rt b{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:1px;background:var(--on-sf);opacity:.45}
.ng-k .rt{margin-top:10px}
.bn .c-tt .rt{margin-top:4px;height:4px}
.ng-lk .ray{display:none}
/* viên màu % base trên bảng Shop */
.vien-pb{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}
.vien-pb.xanh{background:#2f6b4f}.vien-pb.vang{background:#c9961a}.vien-pb.do{background:#c0392b}
[data-theme=dark] .vien-pb.xanh{background:#7fc28e}[data-theme=dark] .vien-pb.do{background:#e0695a}
.ten-1{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
@media (min-width:1024px){
 /* thanh lọc Shop 1 hàng: tìm 320×40 · chip cao 36 · số shop · Xuất */
 .thanh-loc{display:flex;align-items:center;gap:8px;margin-top:4px}
 .thanh-loc .o-tim{flex:none;width:320px;height:40px;margin-top:0;border-radius:20px;padding:0 14px;gap:8px}
 .thanh-loc .o-tim input{font-size:14px}
 .thanh-loc .o-tim svg{width:18px;height:18px}
 .thanh-loc .hang-chip{flex:1 1 auto;min-width:0;margin:0;padding:0;gap:4px;flex-wrap:nowrap}
 .thanh-loc .chip{min-height:36px;padding:0 10px;font-size:13px;gap:4px}
 .thanh-loc .chip .ck{display:none!important}
 .thanh-loc .dem-shop{flex:none;color:var(--on-sv);white-space:nowrap}
 .thanh-loc .nut-xuat{flex:none;min-height:36px}
 .noi{padding:0 24px}
 .the-mt.the-bang{padding:8px 12px}
 .bar-h{padding:12px 24px 4px 24px;min-height:60px}
 .bar-h h1{font-size:26px;line-height:32px}
 /* mật độ bảng tính */
 .tabulator{font-size:13px}
 .tabulator .tabulator-header .tabulator-col .tabulator-col-content{padding:0 14px 0 6px;height:32px;display:flex;align-items:center}
 .tabulator .tabulator-header .tabulator-col.tabulator-frozen .tabulator-col-content{padding-left:6px}
 .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder{flex:1;min-width:0}
 .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder .tabulator-col-title,.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{white-space:nowrap!important;overflow:hidden;text-overflow:clip;font-size:12px;line-height:16px;padding-right:0!important}
 .tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title{padding-right:0!important}
 .tabulator .tabulator-header .tabulator-col .tabulator-col-sorter{position:absolute;right:1px;opacity:0;transition:opacity .15s}
 .tabulator .tabulator-header .tabulator-col:hover .tabulator-col-sorter,.tabulator .tabulator-header .tabulator-col[aria-sort=ascending] .tabulator-col-sorter,.tabulator .tabulator-header .tabulator-col[aria-sort=descending] .tabulator-col-sorter{opacity:1}
 .tabulator-row{min-height:38px}
 .tabulator-row .tabulator-cell{padding:0 6px;height:38px;line-height:38px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-cell{height:34px;line-height:34px}
 .tabulator-row .tabulator-cell .o-hq{padding:2px 6px;line-height:20px}
 /* bảng nhóm hàng + bảng khu: cùng mật độ */
 .bn{min-height:34px;padding-top:7px;padding-bottom:7px;font-size:13px}
 .bn-dau{min-height:32px;padding-top:6px;padding-bottom:6px}
 .v3-bk-d{min-height:36px}
 .tieu{margin:16px 4px 6px;min-height:36px}
 .tieu h2{font-size:var(--n-fs15);line-height:var(--n-lh15)}
}
@media (min-width:1024px){
 .ng-lk{grid-template-columns:minmax(0,1fr) 180px auto}
 .ng-lk .rt{order:2;margin-top:0}
 .ng-lk .tren .ten{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .tabulator-row .tabulator-cell .o-hq{padding:2px 5px}
}
@media (min-width:1024px){
 .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder{position:static}
 .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-sorter{right:2px}
 .thanh-loc .hang-chip{overflow-x:auto;scrollbar-width:none}
 .thanh-loc .hang-chip::-webkit-scrollbar{display:none}
}
@media (min-width:1024px) and (max-width:1439px){ .thanh-loc .dem-shop{display:none} }
.nn-thanh{height:6px;border-radius:3px;background:var(--c3);margin-top:6px;overflow:hidden}
.nn-thanh i{display:block;height:100%;border-radius:3px;background:var(--p);opacity:.75}

/* ── Ngành hàng dạng bảng (09/10 — anh Nhựt: "xem ngành hàng dạng bảng như doanh số, có so sánh tháng, có xuất ảnh"). Tiền tố v3- để không đụng 3 trang dùng chung v3.css ── */
.v3-nh-dau{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin:8px 0 4px}
.v3-nh-dau .v3-nh-seg{display:inline-grid;grid-template-columns:1fr 1fr;width:188px;margin-top:0;flex:none}
.v3-nh-dau .hang-chip{margin:0;padding:0;flex:0 1 auto}
.v3-nh-dau .nut-xuat{margin-left:auto}
.v3-nh-than{margin-top:8px}
.v3-nh-cuon{overflow-x:auto;border-radius:var(--n-r3);background:var(--c0);-webkit-overflow-scrolling:touch}
[data-theme=dark] .v3-nh-cuon{background:var(--c2)}
.v3-nh-b{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;font:500 13px/18px var(--f-so);font-variant-numeric:tabular-nums}
.v3-nh-b th,.v3-nh-b td{height:40px;padding:0 10px;text-align:right;white-space:nowrap;border-top:1px solid var(--n-ke)}
.v3-nh-b thead th{height:36px;border-top:0;font:var(--n-w5) var(--n-fs12)/var(--n-lh12) var(--f-chu);color:var(--on-sv);background:var(--c0)}
[data-theme=dark] .v3-nh-b thead th{background:var(--c2)}
.v3-nh-b .ten{text-align:left;position:sticky;left:0;z-index:1;min-width:168px;background:var(--c0);font:500 13px/18px var(--f-chu)}
[data-theme=dark] .v3-nh-b .ten{background:var(--c2)}
.v3-nh-b tr.nganh .ten span{display:block;padding-left:12px;overflow:hidden;text-overflow:ellipsis;max-width:300px}
.v3-nh-b tr.nhom td{font-weight:var(--n-w6);background:var(--c1);border-top:1px solid var(--olv)}
[data-theme=dark] .v3-nh-b tr.nhom td{background:var(--c3)}
.v3-nh-b tr.nhom .ten{font-family:var(--f-chu)}
.v3-nh-b tr.v3-lk{cursor:pointer}
.v3-nh-b tr.v3-lk:hover td{background:var(--c1)}
.v3-nh-b tr.v3-lk:hover .ten{background:var(--c1)}
[data-theme=dark] .v3-nh-b tr.v3-lk:hover td,[data-theme=dark] .v3-nh-b tr.v3-lk:hover .ten{background:var(--c3)}
.v3-nh-b tr.chua td{color:var(--on-sv)}
.v3-nh-b tr.tong td{font-weight:700;border-top:2px solid var(--olv)}
.v3-nh-b td.w6{font-weight:var(--n-w6)}
.v3-nh-b td.mo{color:var(--on-sv)}
.v3-nh-b td.v3-tg{border-radius:0}
.v3-nh-b{--tg4:color-mix(in srgb,var(--p) 20%,transparent);--tg3:color-mix(in srgb,var(--p) 11%,transparent);--tg2:color-mix(in srgb,var(--err) 8%,transparent);--tg1:color-mix(in srgb,var(--err) 17%,transparent);--tg0:color-mix(in srgb,var(--err) 30%,transparent)}
.v3-nh-b td.v3-tg4{background-image:linear-gradient(var(--tg4),var(--tg4))}
.v3-nh-b td.v3-tg3{background-image:linear-gradient(var(--tg3),var(--tg3))}
.v3-nh-b td.v3-tg2{background-image:linear-gradient(var(--tg2),var(--tg2))}
.v3-nh-b td.v3-tg1{background-image:linear-gradient(var(--tg1),var(--tg1))}
.v3-nh-b td.v3-tg0{background-image:linear-gradient(var(--tg0),var(--tg0))}
.v3-nh-b td.xuong.v3-tg1,.v3-nh-b td.xuong.v3-tg0{color:var(--on-ec)}
[data-theme=dark] .v3-nh-b td.xuong.v3-tg1,[data-theme=dark] .v3-nh-b td.xuong.v3-tg0{color:var(--err)}
.v3-nh-chu{margin:10px 4px 0}
@media (min-width:1024px){
 .v3-nh-b{min-width:0}
 .v3-nh-b th,.v3-nh-b td{height:32px}
 .v3-nh-b thead th{height:34px}
 .v3-nh-dau .nut-xuat{min-height:36px}
 .v3-nh-dau .chip{min-height:36px;padding:0 12px}
 .v3-nh-dau .v3-nh-seg button{min-height:36px}
 .v3-nh-dau .v3-nh-seg{border-radius:18px}
 .v3-nh-dau .chip .ck{display:none!important}
}
@media (max-width:1023px){
 .v3-nh-b .ten{min-width:128px;max-width:128px;white-space:normal;line-height:16px;padding:0 8px}
 .v3-nh-b tr.nganh .ten span{padding-left:6px;max-width:none;overflow:visible}
 .v3-nh-b tbody td{height:44px}
 .v3-nh-dau .nut-xuat{min-height:40px}
 .v3-nh-b td.ten,.v3-nh-b th.ten{box-shadow:1px 0 0 var(--c3)}
}

/* ── 09/10 · thanh điều hướng thu gọn / ẩn + bảng scale theo bề rộng (anh Nhựt). Mọi lớp tiền tố v3- ; chỉ ăn khi app v3 đặt html.v3-gon ── */
:root{--v3-navw:0px;--v3-tf:13px}
.nav .v3-nav-nut{display:none}
.v3-nav-nho{display:none}
.v3-bn-lk{margin-left:4px;vertical-align:-3px;color:var(--on-sv)}
.v3-sp-dau{margin:8px 0 8px}
.v3-sp-dau .o-tim.v3-sp-tim{width:100%;max-width:420px;margin-top:0}
.v3-sp-b .v3-sp-ma2{display:none}
.v3-sp-b td.ten span{display:block;max-width:none;white-space:normal;padding-left:0}
.v3-sp-b td.ten{min-width:150px}
@media (min-width:1024px){
 :root{--v3-navw:256px;--v3-tf:clamp(13px,calc((100vw - var(--v3-navw)) / 95),15.5px)}
 html.v3-gon{--v3-navw:68px}
 .vp,.man-shop{transition:left 200ms var(--e)}
 .nav{transition:width 200ms var(--e)}
 .nav .v3-nav-nut{display:grid;position:absolute;top:24px;right:12px;width:40px;height:40px}
 .nav .v3-nav-nut:hover{background:var(--c3)}
 html.v3-gon .vp,html.v3-gon .man-shop{left:68px}
 html.v3-gon .nav{width:68px;padding:16px 8px;align-items:center}
 html.v3-gon .nav .logo{padding:0;justify-content:center;margin-bottom:4px;min-height:48px}
 html.v3-gon .nav .v3-nav-chu,html.v3-gon .nav .v3-nav-ten,html.v3-gon .nav .duoi{display:none}
 html.v3-gon .nav .v3-nav-nut{position:static;margin:0 auto 8px}
 html.v3-gon .nav .muc{width:52px;min-height:52px;padding:0;justify-content:center;border-radius:16px;position:relative}
 html.v3-gon .nav .cham{position:absolute;top:2px;right:0;margin:0;min-width:18px;height:18px;font-size:11px;line-height:18px;padding:0 4px}
 html.v3-gon .noi{max-width:none}
 html.v3-gon .man-shop .noi{max-width:none}
 .tabulator,.v3-nh-b,.bn,.nhiet th,.nhiet td{font-size:var(--v3-tf)}
 .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder .tabulator-col-title,.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title{font-size:calc(var(--v3-tf) - 1px)}
 .tabulator-row{min-height:calc(var(--v3-tf) * 2.9)}
 .tabulator-row .tabulator-cell{height:calc(var(--v3-tf) * 2.9);line-height:calc(var(--v3-tf) * 2.9)}
 .v3-nh-b th,.v3-nh-b td{height:max(28px,calc(var(--v3-tf) * 2.1))}
 .v3-nh-b thead th{font-size:calc(var(--v3-tf) - 1px)}
 .v3-nh-b .ten{font-size:var(--v3-tf)}
 .the-mt .nhiet th,.the-mt .nhiet td{font-size:calc(var(--v3-tf) - 1px);height:calc(var(--v3-tf) * 2.7)}
 .the-mt .nhiet th.ten,.the-mt .nhiet td.ten{font-size:var(--v3-tf)}
 .bn .c-ten{font-size:var(--v3-tf)}
}
@media (max-width:1023px){
 .nav{transition:transform 240ms var(--e)}
 .v3-nav-nho{display:grid;place-items:center;position:fixed;right:0;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 10px);z-index:31;width:28px;height:44px;padding:0;border-radius:14px 0 0 14px;background:var(--c2);color:var(--on-sv);border:1px solid var(--olv);border-right:0;box-shadow:var(--bong);transition:bottom 240ms var(--e)}
 html.v3-gon .nav{transform:translateY(110%);visibility:hidden;pointer-events:none;transition:transform 240ms var(--e),visibility 0s linear 240ms}
 html.v3-gon .vp,html.v3-gon .man-shop{bottom:0}
 html.v3-gon .v3-nav-nho{bottom:calc(env(safe-area-inset-bottom) + 12px)}
 html.v3-gon .noi{padding:0 8px}
 html.v3-gon .v3-nh-cuon{margin:0 -8px;border-radius:0}
 .v3-nh-b td:last-child,.v3-nh-b th:last-child{padding-right:36px}
 .nhiet td.tb,.nhiet th.c-tb{padding-right:30px}
 .v3-sp-b .v3-sp-ma{display:none}
 .v3-sp-b .v3-sp-ma2{display:block;font-size:12px;line-height:14px;margin-top:2px}
 .v3-sp-b td.ten{min-width:140px;max-width:140px}
}
@media (min-width:1500px){html.v3-app .noi{max-width:none}}   /* màn rộng: nội dung giãn hết phần còn lại, không để khoảng trống chết bên phải */
.v3-sp-b th.v3-sp-ma,.v3-sp-b td.v3-sp-ma{text-align:left}
@media (prefers-reduced-motion:reduce){.vp,.man-shop,.nav,.v3-nav-nho{transition:none!important}}

/* ── Theo khu (09/10): RSM so sánh khu, tách shop cũ / shop mới ── */
.v3-nh-dau .v3-nh-seg.v3-seg3{grid-template-columns:repeat(3,1fr);width:290px}
.v3-khu-dau{margin:4px 0 6px}
.v3-khu-dau .v3-khu-chip{margin:0;padding:2px 0 6px;gap:6px}
.v3-khu-dau .chip{min-height:34px;padding:0 12px;font-size:13px}
.v3-khu-dau .chip .ck{display:none!important}
.v3-khu-b th.v3-th-sx{cursor:pointer;white-space:nowrap}
.v3-khu-b th.v3-th-sx.on{color:var(--p);font-weight:var(--n-w6)}
.v3-khu-b .v3-sx{font-size:10px}
.v3-khu-b th.v3-g1,.v3-khu-b th.v3-g2{text-align:center;font-weight:var(--n-w6);color:var(--on-sf);border-bottom:1px solid var(--olv)}
.v3-khu-b th.v3-g1{background:color-mix(in srgb,var(--p) 9%,transparent)}
.v3-khu-b th.v3-g2{background:color-mix(in srgb,var(--luu) 11%,transparent)}
.v3-khu-b .v3-gb{border-left:1px solid var(--olv)}
.v3-khu-b thead th{height:30px}
.v3-khu-b tr.nganh td.ten span{display:block;padding-left:0;max-width:none}
.v3-khu-b td.ten{min-width:110px}
@media (min-width:1024px){.v3-khu-b{min-width:0}.v3-khu-b td.ten{min-width:120px}}
@media (max-width:1023px){.v3-khu-b{min-width:980px}.v3-nh-dau .v3-nh-seg.v3-seg3{width:100%;order:-1}}
.v3-khu-b th,.v3-khu-b td{padding:0 6px}
.v3-khu-b thead th{white-space:normal;line-height:14px}
.v3-khu-b td.ten,.v3-khu-b th.ten{min-width:104px}

/* ── Quay lại miền (09/10): nút ← cạnh nút nhà + nhãn "Miền … · Theo khu" ── */
.v3-ve-nut{color:var(--p)}
.bar-ky .v3-ve-mien{display:inline-flex;align-items:center;gap:4px;min-height:28px;margin:0 10px 0 0;padding:0 12px 0 8px;border-radius:14px;background:var(--sc);color:var(--on-sc);font:500 13px/18px var(--f-chu);vertical-align:middle;max-width:100%}
.bar-ky .v3-ve-mien svg{flex:none}
@media (max-width:1023px){.bar-ky .v3-ve-mien{min-height:32px}}
.v3-nh-b tr.v3-lk td.ten span::after{content:" ›";color:var(--on-sv);font-weight:var(--n-w6);padding-left:4px}

/* ── Doanh thu theo tỉnh (09/10): bảng như "% base theo khu", cột Shop cũ · mới ── */
@media (min-width:1024px){
 .v3-bk-t .v3-bk-d{grid-template-columns:minmax(98px,1.3fr) 64px minmax(40px,.55fr) 54px 56px 80px 16px;gap:8px}
 .v3-bk-t .v3-bk-d>span:first-child{text-align:left;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .v3-bk-t .v3-bk-d>span:nth-child(2){text-align:right;font-weight:400;overflow:visible;text-overflow:clip}
 .v3-bk-t .v3-bk-tong{border-top:2px solid var(--olv);background:var(--c1);cursor:default}
 .v3-bk-t .v3-bk-tong:hover{background:var(--c1)}
 [data-theme=dark] .v3-bk-t .v3-bk-tong,[data-theme=dark] .v3-bk-t .v3-bk-tong:hover{background:var(--c3)}
 .hn-mt .hn-tinh .tieu{margin-top:0}
}

/* ── 10/10 · ĐẦU BẢNG DÍNH KHI CUỘN (anh Nhựt: "khi cuộn bị mất tiêu đề"). Chỉ trang v3 (html.v3-app) — 6 trang khác dùng chung tệp này không bị ảnh hưởng.
   Phần tử cuộn là .pane; thanh .bar dính top:0 cao 84 px (máy tính) · 80 px (điện thoại) · 128 px khi hiện dải số (Hôm nay điện thoại).
   Bảng cuộn ngang (Ngành, Từng ngày điện thoại) không dính theo .pane được → cho bảng tự cuộn trong khung cao vừa một màn, đầu bảng dính top:0, cột tên dính trái. ── */
html.v3-app{--v3-dinh:80px}
html.v3-app .pane:has(.bar.kpi){--v3-dinh:128px}
@media (min-width:1024px){html.v3-app,html.v3-app .pane:has(.bar.kpi){--v3-dinh:84px}}
/* Shop · bảng chính (Tabulator) */
html.v3-app .tabulator{overflow:hidden;overflow:clip;isolation:isolate}
html.v3-app .tabulator .tabulator-header{position:sticky;top:var(--v3-dinh);z-index:20;background:var(--c1)}
html.v3-app[data-theme=dark] .tabulator .tabulator-header{background:var(--c2)}
/* Hôm nay · % base theo khu, theo tỉnh */
html.v3-app .v3-bk{overflow:hidden;overflow:clip;isolation:isolate}
html.v3-app .v3-bk-dau{position:sticky;top:var(--v3-dinh);z-index:3;background:var(--c0)}
html.v3-app[data-theme=dark] .v3-bk-dau{background:var(--c2)}
/* Từng ngày (nhiệt đồ): máy tính dính theo trang; điện thoại tự cuộn trong khung */
html.v3-app .nhiet{isolation:isolate}
html.v3-app .nhiet thead th{z-index:2}
html.v3-app .nhiet thead th.ten{z-index:4}
@media (min-width:1100px){html.v3-app .the-mt .nhiet thead th{top:var(--v3-dinh)}}
@media (max-width:1099px){
 html.v3-app .nhiet{overflow:auto;max-height:calc(100dvh - var(--nav) - env(safe-area-inset-bottom) - var(--v3-dinh) - 16px);overscroll-behavior:auto}
}
@media (min-width:1024px) and (max-width:1099px){html.v3-app .nhiet{max-height:calc(100dvh - var(--v3-dinh) - 24px)}}
/* Ngành hàng · bảng ngành / theo khu / nhóm / sản phẩm: bảng tự cuộn trong khung cao vừa một màn */
html.v3-app .v3-nh-cuon{overflow:auto;max-height:calc(100dvh - var(--nav) - env(safe-area-inset-bottom) - var(--v3-dinh) - 16px)}
@media (min-width:1024px){html.v3-app .v3-nh-cuon{max-height:calc(100dvh - var(--v3-dinh) - 24px)}}
html.v3-app .v3-nh-b thead th{position:sticky;top:0;z-index:2}
html.v3-app .v3-nh-b thead th.ten{left:0;z-index:4}
html.v3-app .v3-khu-b thead tr+tr th{top:var(--v3-g1h,30px)}
/* bảng ngày (Hôm nay / màn shop) */
html.v3-app .pane .dong-ng.dau{position:sticky;top:var(--v3-dinh);z-index:2;background:var(--c0)}
html.v3-app[data-theme=dark] .pane .dong-ng.dau{background:var(--c2)}
@media (max-width:1023px){
 html.v3-app .nhiet{padding-left:0}
 html.v3-app .nhiet .ten{padding-left:16px;min-width:136px;max-width:136px}
}

/* ── 10/10 · điện thoại hẹp ≤ 480 px (anh Nhựt: "giao diện điện thoại đang bị cắt chữ, không vừa màn hình"). Chỉ trang v3, chỉ các tab (.pane) — màn shop không đổi ── */
@media (max-width:480px){
 /* đầu trang: chip phạm vi xuống hàng phụ, cùng hàng với "Đến 09/10"; tiêu đề 22 px */
 html.v3-app .pane .bar-h{flex-wrap:wrap;row-gap:0;min-height:0;padding:4px 8px 0 16px}
 html.v3-app .pane .bar-h::after{content:"";flex-basis:100%;order:8}
 html.v3-app .pane .bar-h h1{font-size:22px;line-height:28px}
 html.v3-app .pane .bar-h .nut-tk{margin-left:auto}
 html.v3-app .pane .bar-h .nut-pham{order:9;flex:0 1 auto;margin:0 0 0 auto;min-width:112px;max-width:60%;min-height:32px;padding:0 6px 0 10px;border-radius:10px;font-size:13px;line-height:18px}
 html.v3-app .pane .bar-ky{display:flex;align-items:center;min-height:32px;margin-top:-32px;padding:0 62% 0 16px;pointer-events:none;white-space:nowrap}
 html.v3-app .pane .bar-ky>*{pointer-events:auto}
 html.v3-app .pane .bar-ky.co-lk{padding-right:62%}
 /* bảng Ngành: cột tên ≤ 44 % màn, 2 dòng; giữ Ngành · Dự kiến · ± · So tháng trước (ẩn Tỉ trọng, tháng trước cả tháng, 2 cột TB/ngày — xoay ngang/màn ≥ 481 px vẫn đủ) */
 html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b){min-width:0}
 html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b) th:nth-child(2),html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b) td:nth-child(2),html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b) th:nth-child(4),html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b) td:nth-child(4),html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b) th:nth-child(n+7),html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b) td:nth-child(n+7){display:none}
 html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b) th:nth-child(6),html.v3-app .v3-nh-b:not(.v3-khu-b):not(.v3-sp-b) td:nth-child(6){padding-right:32px}
 html.v3-app .v3-nh-b:not(.v3-khu-b) .ten{min-width:36vw;width:40vw;max-width:44vw}
 html.v3-app .v3-nh-b:not(.v3-khu-b) tr.nganh .ten span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
 html.v3-app .v3-nh-b:not(.v3-khu-b) th,html.v3-app .v3-nh-b:not(.v3-khu-b) td{padding-left:6px;padding-right:6px}
 html.v3-app .v3-nh-b:not(.v3-khu-b) thead th{white-space:normal;line-height:14px}
}
/* hàng chip lọc cuộn ngang: mờ mép phải cho biết còn chip */
@media (max-width:1023px){
 html.v3-app .pane .hang-chip{-webkit-mask-image:linear-gradient(90deg,black calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,black calc(100% - 40px),transparent)}
}
@media (max-width:480px){html.v3-app{--v3-dinh:84px}html.v3-app .pane:has(.bar.kpi){--v3-dinh:132px}}

/* ── 10/10 thử · Hôm nay QLTP/QL (anh Nhựt: "màn chính còn trống và rộng thưa… như Báo cáo BI"): % base theo shop + Ngành hàng tăng/giảm ── */
.v3-hn-nhan{margin:12px 4px 6px}
.v3-hn-nhom:first-child .v3-hn-nhan{margin-top:0}
.v3-hn-chu{margin:8px 4px 0}
.hn-nganh .dong .d2{white-space:normal}
@media (min-width:1024px){
 .hn-mt .hn-shop .tieu,.hn-mt .hn-nganh .tieu{margin-top:0}
 .hn-mt>.hn-rong{grid-column:1/-1;min-width:0}
 .hn-rong .v3-hn-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .hn-rong .v3-hn-nhom .v3-hn-nhan{margin-top:0}
 .v3-bk-s .v3-bk-d{grid-template-columns:minmax(0,1.7fr) minmax(56px,1fr) 60px 56px 72px 16px;gap:8px}
 .v3-bk-s .v3-bk-d>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
 .v3-bk-s .v3-bk-d>span:nth-child(2){font-weight:400;overflow:visible}
 .v3-bk-s .v3-bk-dau>span:nth-child(2){text-align:left}
}

/* ── NỀN (10/10 thử): số thẳng cột mọi bảng · đầu bảng 12/16 chữ phụ · thanh đầu trang mờ kính khi cuộn (kiểu apple.com) ── */
html.v3-app .tabulator,html.v3-app .v3-bk,html.v3-app .v3-nh-b,html.v3-app .bn,html.v3-app .dong-ng,html.v3-app .nhiet,html.v3-app .dong .phai{font-variant-numeric:tabular-nums}
html.v3-app b,html.v3-app strong{font-weight:var(--n-w6)}
html.v3-app .v3-bk-dau,html.v3-app .dong-ng.dau,html.v3-app .bn-dau{font-size:var(--n-fs12);line-height:var(--n-lh12);font-weight:var(--n-w5);color:var(--n-chu2)}
html.v3-app .pane .bar{background:color-mix(in srgb,var(--sf) 80%,transparent);-webkit-backdrop-filter:saturate(1.8) blur(20px);backdrop-filter:saturate(1.8) blur(20px)}
html.v3-app .pane .bar.cuon{box-shadow:0 1px 0 var(--n-ke)}
/* bảng "Doanh thu theo tỉnh": lưới cũ tối thiểu ~456 px trong cột 400 px → cột Dự kiến bị cắt (lỗi có sẵn) */
@media (min-width:1024px){html.v3-app .v3-bk-t .v3-bk-d{grid-template-columns:minmax(80px,1.3fr) 52px minmax(40px,.55fr) 52px 52px 72px 12px;gap:6px}html.v3-app .v3-bk-t .v3-bk-dau>span:nth-child(3){white-space:nowrap;text-align:left}html.v3-app .v3-bk-t .v3-bk-dau>span:nth-child(2){white-space:normal;line-height:14px}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){html.v3-app .pane .bar{background:var(--sf)}}

/* 10/10 03:55 anh Nhựt: "tên bị cắt" — cột Khu bảng Shop (70 px) cắt "Phương Chung", "Nhựt Trường"… → cho xuống 2 dòng 12 px, hàng 39 px vẫn đủ. */
html.v3-app .tabulator-cell[tabulator-field="khu"]{white-space:normal;line-height:14px;font-size:12px;display:inline-flex;align-items:center;vertical-align:middle}
html.v3-app .tabulator-cell[tabulator-field="khu"] .ten-1{white-space:normal;overflow:visible;text-overflow:clip;display:block;word-break:normal}

/* ══ 10/10 · MÀN BÁO CÁO KHAI TRƯƠNG (#kt/<mã> trong app v3 + trang link ký /kt-bao-cao) — mọi lớp mang tiền tố v3-kt- (luật #471/#472: v3.css dùng chung nhiều trang) ══ */
.v3-kt-cum{display:flex;align-items:center;gap:8px;flex:none;min-width:0}
.v3-kt-cum .nut-xuat{min-height:36px;padding:0 12px;white-space:nowrap}
.v3-kt-tam{text-align:center}
.v3-kt-ba{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.v3-kt-ba .o{padding:12px 14px}
.v3-kt-ba .o .nhan{white-space:normal}
.v3-kt-ba .o .gt{margin-top:4px}
.v3-kt-canh{margin-top:8px}
.v3-kt-canh .dong .d1{display:block;white-space:normal;-webkit-line-clamp:unset;overflow:visible}
.v3-kt-r{display:flex;gap:var(--n-k3);align-items:baseline;padding:var(--n-k3) var(--n-k4);min-height:44px}
.v3-kt-r .k{flex:0 0 96px;min-width:0;color:var(--on-sv)}
.v3-kt-r .v{flex:1;min-width:0;overflow-wrap:anywhere}
.v3-kt-r .v:only-child{flex-basis:100%}
.v3-kt-ch{display:block;margin-top:2px}
.v3-kt-d2{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.v3-kt-ng{margin:var(--n-k4) 4px var(--n-k2);color:var(--on-sv)}
.v3-kt-sau{opacity:.6}
.v3-kt-sau .khoi-dau{cursor:default}
.v3-kt-cl{padding:var(--n-k3) var(--n-k4) var(--n-k4)}
.v3-kt-ray{height:8px;border-radius:4px;background:var(--c3);overflow:hidden;margin-top:var(--n-k2)}
.v3-kt-ray i{display:block;height:100%;border-radius:4px;background:var(--p)}
.v3-kt-anh{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--n-k2);padding:var(--n-k1) 0 var(--n-k2)}
.v3-kt-o{position:relative;display:block;width:100%;aspect-ratio:1/1;border-radius:var(--n-r3);overflow:hidden;background:var(--c1);padding:0}
[data-theme=dark] .v3-kt-o{background:var(--c3)}
.v3-kt-o img{display:block;width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.v3-kt-o .nh{position:absolute;left:0;right:0;bottom:0;padding:16px 6px 5px;color:#fff;background:linear-gradient(transparent,rgb(0 0 0/.72));text-align:left}
.v3-kt-o .them{position:absolute;top:5px;right:5px;padding:1px 7px;border-radius:var(--n-rv);background:rgb(0 0 0/.6);color:#fff}
.v3-kt-o.trong{display:flex;align-items:center;justify-content:center;padding:6px;text-align:center;color:var(--on-sv)}
.v3-kt-lon{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;background:rgb(0 0 0/.92);color:#fff}
.v3-kt-lon img{max-width:100%;max-height:80vh;border-radius:var(--n-r2)}
.v3-kt-lon p{margin:0;text-align:center}
.v3-kt-lon .nut-tron{position:absolute;top:calc(8px + env(safe-area-inset-top));right:8px;background:rgb(255 255 255/.16);color:#fff}
@media (min-width:720px){.v3-kt-anh{grid-template-columns:repeat(6,minmax(0,1fr))}}
/* trang link ký (không có thanh bên): khung phủ cả màn, nội dung giữa trang */
.v3-kt-doc.man-shop{left:0;bottom:0;transition:none}
@media (min-width:1024px){.v3-kt-doc.man-shop{left:0}.v3-kt-doc .noi{margin:0 auto}.v3-kt-doc .bar>*{max-width:960px;margin-left:auto;margin-right:auto}}
/* 11/10 checklist tích trên web */
.v3-kt-cl2{display:block!important;white-space:normal!important;overflow:visible!important;-webkit-line-clamp:unset!important;overflow-wrap:anywhere}
.v3-kt-m{align-items:center}
.v3-kt-qua{background:color-mix(in srgb,var(--err) 10%,transparent)}
.v3-kt-tk{min-width:64px;min-height:44px;padding:0 14px;border-radius:var(--n-rv);border:1px solid var(--ol);color:var(--on-sv);font-weight:var(--n-w5);background:transparent}
.v3-kt-tk.on{background:var(--pc);color:var(--on-pc);border-color:transparent}
.v3-kt-tk:disabled{opacity:.5}
.v3-kt-loc{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.v3-kt-lc{min-height:44px;padding:0 14px;border-radius:var(--n-rv);border:1px solid var(--ol);color:var(--on-sv);background:transparent;font-weight:var(--n-w5)}
.v3-kt-lc.on{background:var(--p);color:var(--on-p);border-color:transparent}

/* 10/10 bảng tổng hợp tab Shop (điện thoại) — lớp v3-bt / v3-p3, tiền tố riêng (#471) */
.phan-doan.v3-p3{grid-template-columns:repeat(3,1fr)}
.v3-bt{overflow:auto;max-height:70vh;margin:8px -16px 0;padding:0;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.v3-bt table{border-collapse:separate;border-spacing:0;font:500 13px/18px var(--f-so);font-variant-numeric:tabular-nums;min-width:100%}
.v3-bt th,.v3-bt td{height:40px;padding:0 10px;white-space:nowrap;text-align:left;color:var(--on-sf);border-bottom:1px solid var(--olv)}
.v3-bt th.p,.v3-bt td.p{text-align:right}
.v3-bt thead th{position:sticky;top:0;z-index:2;background:var(--c3);color:var(--on-sv);font:600 13px/16px var(--f-chu);cursor:pointer}
.v3-bt th.on{color:var(--p)}
.v3-bt .ten{position:sticky;left:0;z-index:1;background:var(--sf);min-width:150px;max-width:150px;overflow:hidden;text-overflow:ellipsis;font:500 13px/18px var(--f-chu);box-shadow:6px 0 8px -8px rgb(0 0 0/.35)}
.v3-bt thead th.ten{z-index:3;background:var(--c3)}
.v3-bt td.l{color:var(--p)}.v3-bt td.x{color:var(--err)}.v3-bt td.v{color:#7a5d0c}
[data-theme=dark] .v3-bt td.v{color:#e6c35c}
.v3-bt tbody tr{cursor:pointer}
@media (min-width:1024px){.phan-doan.v3-p3{display:none}}
.v3-bt-tm{position:fixed;inset:0;z-index:9000;background:var(--sf);color:var(--on-sf);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}
.v3-bt-dau{display:flex;align-items:center;justify-content:space-between;gap:12px;height:52px;padding:0 8px 0 16px;flex:none;border-bottom:1px solid var(--olv);font:600 15px/20px var(--f-chu)}
.v3-bt-than{flex:1;min-height:0;display:flex}
.v3-bt-tm .v3-bt{flex:1;max-height:none;margin:0;overflow:auto}

/* 10/10 lượt 3: thanh lọc tab Shop gọn trên điện thoại (<1024): hàng 1 chuyển chế độ + kính lúp, hàng 2 chip + công cụ icon */
@media (max-width:1023px){
.v3-sh-r1{display:flex;align-items:center;gap:8px;margin-top:4px}
.v3-sh-r1 .phan-doan{flex:1;min-width:0;margin-top:0;border-radius:17px}
.v3-sh-r1 .phan-doan button{min-height:34px;font-size:14px;gap:4px;padding:0 4px}
.v3-sh-r1 .phan-doan .i{display:none}
.v3-sh-r1 .v3-sh-kl{width:34px;height:34px;border:1px solid var(--ol);flex:none}
.v3-sh-r1 .v3-sh-kl.on{background:var(--pc);color:var(--on-pc);border-color:transparent}
.o-tim.v3-tim-an{display:none}
.o-tim{height:40px;margin-top:6px;padding:0 14px;gap:8px}
.v3-sh-r2{display:flex;align-items:center;gap:6px;margin-top:6px}
.v3-sh-r2 .hang-chip{flex:1 1 auto;min-width:0;margin:0 -4px 0 0;padding:0;gap:6px}
.v3-sh-r2 .chip{min-height:32px;padding:0 12px;font-size:14px;gap:4px}
.v3-sh-r2 .chip .ck{display:none!important}
.v3-sh-cu{display:inline-flex;align-items:center;gap:4px;flex:none}
.v3-sh-cu .nut-xuat{min-height:32px;width:32px;padding:0;justify-content:center}
.v3-sh-cu .nut-xuat span{display:none}
.v3-sh-cu .nut-tron{width:32px;height:32px}
}

/* 10/10 lượt 4: dòng Tổng dính đáy bảng Shop */
.v3-bt tfoot td{position:sticky;bottom:0;z-index:2;background:var(--c4);font-weight:700;border-top:2px solid var(--ol);border-bottom:0}
.v3-bt tfoot td.ten{z-index:4;background:var(--c4);left:0}
.v3-bt tfoot td.l{color:var(--p)}.v3-bt tfoot td.x{color:var(--err)}
.v3-bt-gc{padding:4px 2px 0;font-size:12px;line-height:16px}
.v3-bt-tm .v3-bt-than{flex-direction:column}
.v3-bt-tm .v3-bt-gc{padding:4px 16px 8px;flex:none}

/* 10/10 lượt 7b: hàng 2 thanh đầu khi có chip "← Miền …" (quản trị đi từ miền xuống khu) — chip + "Đến dd/mm" xuống hàng riêng, KHÔNG chồng lên ô chọn khu */
@media (max-width:1023px){
  html.v3-app .pane .bar-ky:has(.v3-ve-mien){display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:0;min-height:0;padding:6px 16px 8px;white-space:normal;pointer-events:auto}
  html.v3-app .pane .bar-ky .v3-ve-mien{min-width:0;max-width:100%;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
/* 11/10 · chọn QL + form gửi báo cáo trên web (tiền tố v3-kt-) */
.v3-kt-nho{min-height:36px;padding:0 12px;margin-top:6px;white-space:nowrap;background:transparent}
.v3-kt-qlp{margin:0 0 var(--n-k2)}
.v3-kt-fm{padding:var(--n-k3) 0}
.v3-kt-fm .nut-phu{width:100%;justify-content:center}
.v3-kt-f .tieu{margin-top:var(--n-k4)}
.v3-kt-fg{padding:var(--n-k3) var(--n-k4);border-bottom:1px solid var(--olv)}
.v3-kt-fg:last-child{border-bottom:0}
.v3-kt-fh{display:flex;justify-content:space-between;gap:var(--n-k3);align-items:baseline;margin-bottom:var(--n-k2)}
.v3-kt-fn{position:relative;display:flex;width:100%;justify-content:center;cursor:pointer;margin-bottom:var(--n-k2)}
.v3-kt-fi{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}
.v3-kt-ft{display:block;width:100%;min-height:44px;padding:0 12px;border-radius:var(--n-r2);border:1px solid var(--olv);background:var(--c0);color:var(--on-sf);font-size:16px}
.v3-kt-fc{display:flex;flex-wrap:wrap;gap:var(--n-k2);margin-bottom:var(--n-k2)}
.v3-kt-chip{min-height:40px;padding:0 14px;border-radius:var(--n-rv);border:1px solid var(--olv);background:var(--c0);color:var(--on-sf)}
.v3-kt-chip[aria-pressed=true]{background:var(--p);border-color:var(--p);color:var(--on-p);font-weight:var(--n-w5)}
.v3-kt-fx{display:flex;flex-direction:column;gap:var(--n-k2);padding:var(--n-k4) 0}
.v3-kt-fx .nut-chinh{margin-top:0}
.v3-kt-fx .nut-phu{justify-content:center}
.v3-kt-tb{color:var(--on-sv);min-height:20px}
.v3-kt-fn2{display:flex;gap:var(--n-k2);margin-bottom:var(--n-k2)}
.v3-kt-fn2 .v3-kt-fn{flex:1 1 0;width:auto;margin-bottom:0;min-height:44px;align-items:center}
.v3-kt-ht{margin-top:4px}
.v3-kt-lk{display:inline;padding:0 4px;min-height:32px;color:var(--p);font-weight:var(--n-w5);text-decoration:underline;background:none}
/* 11/10 anh Nhựt: hàng chip khu trong bảng chọn shop — một dòng cuộn ngang, chip nhỏ */
.tam .v3-ns-khu{flex-wrap:nowrap!important;overflow-x:auto;margin:4px 0 8px;padding:0;gap:6px}
.tam .v3-ns-khu .chip{flex:none;min-height:32px;height:32px;padding:0 12px;font-size:14px}

/* 12/10 làm gọn Hôm nay: Cần chú ý = số to + nhãn; Ngành = tên + % */
.dong.cc{min-height:52px;gap:var(--n-k3)}
.cc-so{flex:none;min-width:44px;font:600 24px/28px var(--f-so);font-variant-numeric:tabular-nums;color:var(--on-sf)}
.cc-so small{font-size:14px;font-weight:500;color:var(--on-sv)}
.cc-so.xuong{color:var(--err)}.cc-so.luu{color:var(--luu)}.cc-so.tt{color:var(--p)}
.cc-nhan{flex:1;min-width:0;font-size:15px;line-height:20px;white-space:normal}
.dong.ng-g{min-height:48px;gap:var(--n-k3)}
.ng-ten{flex:1;min-width:0;font-size:15px;line-height:20px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ng-pct{flex:none;font:600 18px/24px var(--f-so);font-variant-numeric:tabular-nums}
.nav .muc-bi[hidden]{display:none}
@media (max-width:1023px){.nav .muc-bi{display:none!important}}
/* 12/10 anh Nhựt: số tiền luôn kèm đơn vị cạnh số — đơn vị thu nhỏ để không vỡ cột */
.dv-tien{font-size:.78em;font-weight:400;margin-left:1px;opacity:.72;letter-spacing:0}
.v3-nh-b td .dv-tien,.bn .dv-tien{font-size:.76em}
/* 12/10 anh Nhựt "màn Việc không cân": trái = nhóm việc, phải = 3 danh sách xếp dọc */
.v3-viec-phai{display:flex;flex-direction:column;gap:0;min-width:0}
.v3-viec-phai>section{min-width:0}
/* 12/10 Việc: mỗi danh sách 3 dòng, "Xem thêm n" mở phần còn lại tại chỗ */
.v3-xem-them{width:100%;border:0;background:none;font:inherit;color:var(--p);cursor:pointer;text-align:left}
.v3-xem-them .d1{color:var(--p);font-weight:600}
.v3-them[hidden]{display:none}
/* 12/10 anh Nhựt: bảng shop toàn màn — nút xoay ngang (điện thoại); xoay thật qua toàn màn, không được thì xoay bằng CSS */
.v3-bt-nut{display:inline-flex;align-items:center;gap:4px}
@media (min-width:1024px){.v3-bt-xoay-nut{display:none}}
.v3-bt-tm.v3-bt-xoay{inset:auto;top:0;left:0;width:100vh;height:100vw;transform:rotate(90deg) translateY(-100vw);transform-origin:top left;padding-top:0}
.v3-bt-tm.v3-bt-xoay .v3-bt-dau{padding-left:max(16px,env(safe-area-inset-top))}
.v3-bt-tm:fullscreen{padding-top:0}
/* 12/10 nút Vừa màn: khi bật, bảng co theo zoom, ô Tổng dính đáy vẫn đúng */
.v3-bt-nut .nut-tron.on{background:var(--pc);color:var(--on-pc)}
.v3-bt-tm.v3-bt-vua .v3-bt{overflow-x:hidden}

/* ── 13/10 · Hôm nay "% base theo shop": tiêu đề khối + tiêu đề cột dính, sắp cột, chip nhóm ── */
html.v3-app{--bs-tieu:44px}
html.v3-app .hn-shop .bs-tieu{position:sticky;top:var(--v3-dinh);z-index:5;margin:0;height:var(--bs-tieu);min-height:var(--bs-tieu);padding:0 4px;background:var(--sf)}
html.v3-app .hn-shop .v3-bk-dau{top:calc(var(--v3-dinh) + var(--bs-tieu));z-index:4}
.bs-chips{display:inline-flex;gap:6px}
.bs-chip{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--olv);color:var(--on-sv);font-size:12px;font-weight:var(--n-w5);white-space:nowrap}
.bs-chip.on{background:var(--sc);color:var(--on-sc);border-color:transparent}
.bs-sap{cursor:pointer;user-select:none;white-space:nowrap}
.bs-sap:hover,.bs-sap.on{color:var(--on-sf)}
.bs-mt{font-style:normal;font-size:9px;margin-left:3px}
.v3-bk-s .v3-bk-dau>span:nth-child(2){overflow:visible}

/* ══ 13/10 ngày cúng âm lịch (mùng 1 · rằm) trên mọi biểu đồ/bảng có ngày — tiền tố v3al ══ */
.v3al{font-style:normal;font-size:10px;line-height:12px;font-weight:600;color:var(--luu);margin-left:2px;white-space:nowrap}
.v3al-chu{display:flex;align-items:center;gap:4px;color:var(--on-sv);padding:4px 4px 0}
.v3al-chu .v3al{margin:0;font-size:12px}
html.v3-app .dong-ng{grid-template-columns:44px 1.2fr .8fr 1fr .9fr .9fr}
html.v3-app .dong-ng.c5{grid-template-columns:44px 1.2fr .8fr 1fr 1.1fr}
html.v3-app .dong-ng.c4{grid-template-columns:44px 1.2fr .8fr 1fr}
.dong-ng>.v3al-d{white-space:nowrap}
.dong-ng.v3al-hang{background:color-mix(in srgb,var(--lc) 45%,transparent)}
.bc .al{fill:color-mix(in srgb,var(--lc) 60%,transparent);stroke:none}
.bc text.al{fill:var(--luu);font-size:10px;font-weight:600;stroke:none}
.nhiet thead th.v3al-th{background:color-mix(in srgb,var(--lc) 60%,var(--sf))}
.nhiet th small.v3al{display:block;margin:0;font:600 10px/12px var(--f-chu);color:var(--luu)}

/* ══ 13/10 màn shop máy tính — bảng điều hành một shop (đường thử ?shopmoi=1) — tiền tố v3sd ══ */
.man-shop .noi.v3sd{max-width:1480px}
.v3sd-tq{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:8px;margin-top:8px}
.v3sd-o{position:relative;background:var(--c0);border-radius:var(--n-r3);padding:12px 12px 8px;border:1px solid transparent;min-width:0;box-shadow:var(--bong)}
[data-theme=dark] .v3sd-o{background:var(--c2)}
.v3sd-o[data-sd-toi]{cursor:pointer}
.v3sd-o[data-sd-toi]:hover{border-color:var(--olv)}
.v3sd-o.v3sd-do{border-color:color-mix(in srgb,var(--err) 60%,transparent)}
.v3sd-o.v3sd-vang{border-color:color-mix(in srgb,var(--luu) 55%,transparent)}
.v3sd-o.v3sd-do::after,.v3sd-o.v3sd-vang::after{content:"";position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--err)}
.v3sd-o.v3sd-vang::after{background:var(--luu)}
.v3sd-on{color:var(--on-sv);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:14px}
.v3sd-og{display:flex;align-items:baseline;gap:3px;margin-top:4px;min-width:0}
.v3sd-og .so{font:600 24px/30px var(--f-so);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v3sd-og .dv{font-size:13px;color:var(--on-sv);font-weight:500}
.v3sd-op{color:var(--on-sv);margin-top:2px;min-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v3sd-sp{display:block;width:100%;height:28px;margin-top:6px;overflow:visible}
.v3sd-sp .l{fill:none;stroke:var(--p);stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.v3sd-sp .r{stroke:var(--ol);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.v3sd-sp .d{stroke:var(--p);stroke-width:6;stroke-linecap:round;vector-effect:non-scaling-stroke}
.v3sd-sp .a{stroke:var(--luu);stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.v3sd-luoi{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;margin-top:12px;align-items:start}
.v3sd-c3{grid-column:span 3}.v3sd-c4{grid-column:span 4}.v3sd-c5{grid-column:span 5}.v3sd-c6{grid-column:span 6}.v3sd-c7{grid-column:span 7}.v3sd-c8{grid-column:span 8}
.v3sd-p{background:var(--c0);border-radius:var(--n-r4);padding:16px;min-width:0;box-shadow:var(--bong)}
[data-theme=dark] .v3sd-p{background:var(--c2)}
.v3sd-ph{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;min-width:0}
.v3sd-ph h2{margin:0;font-size:var(--n-fs16);line-height:var(--n-lh16);font-weight:var(--n-w6)}
.v3sd-ph>span{color:var(--on-sv);text-align:right}
.v3sd-p .seg>*,.v3sd-p .bn-bang{background:var(--c1)}
[data-theme=dark] .v3sd-p .seg>*,[data-theme=dark] .v3sd-p .bn-bang{background:var(--c3)}
.v3sd-p .seg .seg>*{background:transparent}
.v3sd-p .bn-bang{border-radius:var(--n-r3);overflow:hidden}
.v3sd-p .bd-cuon{overflow-x:auto}
.v3sd-sang{animation:v3sd-sang 1.2s var(--e)}
@keyframes v3sd-sang{0%{box-shadow:0 0 0 3px var(--p)}100%{box-shadow:0 0 0 3px transparent}}
@media (prefers-reduced-motion:reduce){.v3sd-sang{animation:none}}
/* cảnh báo */
.v3sd-cbm{margin-top:8px;background:var(--c0);border-radius:var(--n-r4);padding:12px 8px 4px}
[data-theme=dark] .v3sd-cbm{background:var(--c2)}
.v3sd-cbm .v3sd-ph{padding:0 8px}
.v3sd-cb{display:grid;grid-template-columns:10px minmax(0,1fr) auto 18px;column-gap:10px;row-gap:2px;align-items:center;width:100%;padding:10px 8px;border-top:1px solid var(--n-ke);text-align:left;border-radius:var(--n-r2)}
.v3sd-ph+.v3sd-cb{border-top:0}
button.v3sd-cb:hover,a.v3sd-cb:hover{background:var(--c1)}
[data-theme=dark] button.v3sd-cb:hover,[data-theme=dark] a.v3sd-cb:hover{background:var(--c3)}
.v3sd-cham{width:10px;height:10px;border-radius:50%;background:var(--luu)}
.v3sd-cb-do .v3sd-cham{background:var(--err)}
.v3sd-cb-0 .v3sd-cham{background:var(--p)}
.v3sd-cbc{font-weight:600;min-width:0}
.v3sd-cbg{font-weight:600;text-align:right;white-space:nowrap}
.v3sd-cb-do .v3sd-cbg{color:var(--err)}
.v3sd-cbn{grid-column:2/4;color:var(--on-sv)}
.v3sd-cb .mui{grid-column:4;grid-row:1/span 2;color:var(--ol)}
/* biểu đồ doanh thu theo ngày */
.v3sd-bdk{overflow-x:auto;margin-top:4px}
.v3sd-bd{display:block}
.v3sd-bd text{fill:var(--on-sv);font:500 12px var(--f-so);font-variant-numeric:tabular-nums}
.v3sd-bd text.dam{fill:var(--on-sf);font-weight:600;paint-order:stroke;stroke:var(--c0);stroke-width:4px;stroke-linejoin:round}
[data-theme=dark] .v3sd-bd text.dam{stroke:var(--c2)}
.v3sd-bd .tr{stroke:var(--n-ke);stroke-width:1}
.v3sd-bd .c{fill:color-mix(in srgb,var(--p) 62%,var(--c0))}
.v3sd-bd .c.cao{fill:var(--p)}
.v3sd-bd .c.thap{fill:var(--err)}
.v3sd-bd .al{fill:color-mix(in srgb,var(--lc) 60%,transparent)}
.v3sd-bd text.al{fill:var(--luu);font-size:10px;font-weight:600}
.v3sd-bd .t9{fill:none;stroke:var(--on-sv);stroke-width:1.5;stroke-dasharray:5 4}
.v3sd-bd .t9d{stroke:var(--on-sv);stroke-width:4;stroke-linecap:round}
.v3sd-bd .base{stroke:var(--luu);stroke-width:1.5}
.v3sd-bd text.base-t{fill:var(--luu);font-weight:600}
.v3sd-chu{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--on-sv)}
.v3sd-chu>span{display:inline-flex;align-items:center;gap:6px}
.v3sd-chu i:not(.v3al){display:inline-block;width:12px;height:10px;border-radius:2px}
.v3sd-chu .k-c{background:color-mix(in srgb,var(--p) 62%,var(--c0))}
.v3sd-chu .k-thap{background:var(--err)}
.v3sd-chu .k-t9{height:0!important;border-top:2px dashed var(--on-sv);border-radius:0!important;width:16px!important}
.v3sd-chu .k-b{height:0!important;border-top:2px solid var(--luu);border-radius:0!important;width:16px!important}
.v3sd-chu .v3al{margin:0;font-size:12px}
/* sản phẩm kéo giảm · huỷ theo nhóm */
.v3sd-spd{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;padding:8px 4px;border-top:1px solid var(--n-ke);align-items:baseline}
.v3sd-spd:first-child{border-top:0}
.v3sd-hn{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(40px,1fr) auto;gap:10px;align-items:center;padding:6px 4px}
.v3sd-hn>span:first-child{min-width:0}
.v3sd-hr{height:8px;border-radius:4px;background:var(--c2);overflow:hidden}
[data-theme=dark] .v3sd-hr{background:var(--c4)}
.v3sd-hr i{display:block;height:100%;border-radius:4px;background:var(--luu)}
@media (max-width:1279px){
 .v3sd-c3,.v3sd-c4,.v3sd-c5,.v3sd-c7,.v3sd-c8{grid-column:span 12}
 .v3sd-cbp{order:-1}
}
[data-theme=dark] .v3sd-bd rect.al,[data-theme=dark] .bc rect.al{fill:color-mix(in srgb,var(--lc) 40%,transparent)}
/* ══ 13/10 Hôm nay: chip nhóm shop (Cũ/Mới/Tất cả) ở hàng tiêu đề trên 4 ô số — áp cho cả trang ══ */
.hn-nhom-t{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}
.hn-nhom-t h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.hn-nhom-t .bs-chips{flex:none;overflow-x:auto;max-width:100%;scrollbar-width:none}
.v3-bk-1d{white-space:nowrap}
/* ══ 13/10 bảng theo khu / theo tỉnh sắp được: tiêu đề khối + tiêu đề cột dính như "% base theo shop" · dòng cùng kỳ · số tiền ở 4 ô ══ */
html.v3-app .hn-khu .bs-tieu,html.v3-app .hn-tinh .bs-tieu{position:sticky;top:var(--v3-dinh);z-index:5;margin:0;height:var(--bs-tieu);min-height:var(--bs-tieu);padding:0 4px;background:var(--sf)}
html.v3-app .hn-khu .v3-bk-dau,html.v3-app .hn-tinh .v3-bk-dau{top:calc(var(--v3-dinh) + var(--bs-tieu));z-index:4}
.v3-ck{margin-top:6px;color:var(--on-sv)}
.v3-ck b{font-weight:600}
.v3-bk-dau .bs-sap:has(.v3-ck-n){white-space:normal;line-height:13px}
.v3-ck-n{display:block;font-size:10px;line-height:12px;font-weight:400;opacity:.85;white-space:normal}
.v3-ck-o{display:block;font-size:11px;line-height:13px;font-weight:500;opacity:.9}
.o .bd .v3-o-phu{display:block;margin-top:2px;font-size:var(--n-fs12);line-height:var(--n-lh12);font-weight:var(--n-w4);color:var(--on-sv)}
.o .bd .v3-o-phu b{font-weight:600}
/* ══ 13/10 mobi-tk · điện thoại ≤ 480 px: đầu trang 1 hàng (tiêu đề co, không đẩy chuông xuống), nút Xuất thành biểu tượng, chữ ≥ 12 px, tiêu đề khối 1 dòng + dòng phụ ══ */
.v3-tap-c{font-style:normal}
@media (max-width:480px){
 html.v3-app .bar-h h1{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 html.v3-app .bar-h .bhx-nha button.bhx-on{min-width:0;padding:0 7px;gap:4px;height:28px;margin-left:2px}
 html.v3-app .man-shop .bar-h{flex-wrap:nowrap}
 html.v3-app .man-shop .bar-h h1{display:block;font-size:19px;line-height:26px;white-space:nowrap;-webkit-line-clamp:unset}
 html.v3-app .man-shop .bar-h .bhx-nha [data-bhx-nha],html.v3-app .man-shop .bar-h .bhx-nha .bhx-on{display:none}
 /* nút Xuất: chỉ biểu tượng */
 html.v3-app .nut-xuat{min-width:40px;padding:0;justify-content:center}
 html.v3-app .nut-xuat>span{display:none}
 html.v3-app .hang-xuat.hx-phai{min-height:0}
 /* Ngành hàng: chip T10/T9 không làm mờ mép (chỉ 2 chip, mờ làm cụt T9); chọn shop + Xuất chung hàng */
 html.v3-app .pane .hang-chip.chon-thang{-webkit-mask-image:none;mask-image:none;flex:none}
 html.v3-app .v3-nh-dau .v3-ns-chon{flex:1 1 0;min-width:0}
 /* tiêu đề khối: nhóm shop xuống dòng phụ nhỏ */
 html.v3-app .tieu h2 .v3-tap{display:block;font-size:12px;line-height:16px;font-weight:400;color:var(--on-sv);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 html.v3-app .tieu h2 .v3-tap-c{display:none}
 html.v3-app .bs-tieu .nut-cum .phu{white-space:nowrap}
 /* chữ ≥ 12 px: đơn vị tiền, nhãn thanh điều hướng */
 html.v3-app .dv-tien{font-size:12px}
 html.v3-app .nav .v3-nav-ten{font-size:12px;letter-spacing:-.01em;white-space:nowrap}
 html.v3-app .nav .v3-nav-dai{display:none} /* điện thoại: nhãn "Ngành" (6 nút × 66 px, 12 px không vừa "Ngành hàng") */
 /* bảng Ngành: dấu › ghim mép phải ô tên, không rớt một mình xuống dòng 2 */
 html.v3-app .v3-nh-b tr.v3-lk td.ten{position:relative}
 html.v3-app .v3-nh-b tr.v3-lk td.ten span{padding-right:12px}
 html.v3-app .v3-nh-b tr.v3-lk td.ten span::after{position:absolute;right:2px;top:50%;transform:translateY(-50%);padding-left:0}
 /* nút thu thanh điều hướng: hẹp hơn để không che số cột phải */
 html.v3-app .v3-nav-nho{width:22px;height:40px;opacity:.88}
}

/* 13/10 chip Tất cả · Cũ · Mới của tab Ngành hàng (dùng chung trạng thái với tab Hôm nay); mobile: cuộn ngang, không xuống dòng */
.v3-nh-dau .v3-ng-chips{flex:0 1 auto;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.v3-nh-dau .v3-ng-chips::-webkit-scrollbar{display:none}
.v3-nh-dau .v3-ng-chips .bs-chip{flex:none;min-height:32px}
@media (max-width:1023px){.v3-nh-dau .v3-ng-chips{order:-1;flex:1 1 100%}}
/* 13/10 lối tắt BI / Cấp quyền / Nhân sự dưới thẻ Dự kiến (điện thoại) */
.v3-tat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.v3-tat-o{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:14px;background:var(--c0);color:var(--p);text-decoration:none;font-size:12.5px;font-weight:600;text-align:center;min-width:0}
.v3-tat-o span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
[data-theme=dark] .v3-tat-o{background:var(--c2)}
@media (min-width:1024px){.v3-tat{display:none}}

/* 13/10 panel chi tiết ô Hôm nay (tiền tố v3kp-) — điện thoại toàn màn, máy tính trượt từ phải */
[data-hn-kp]{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
[data-hn-kp]:hover{transform:translateY(-1px);box-shadow:0 2px 10px rgb(0 0 0/.12)}
[data-hn-kp]:active{transform:none;box-shadow:none}
[data-hn-kp]:focus-visible{outline:2px solid var(--p);outline-offset:2px}
.v3kp{position:fixed;inset:0;z-index:9100}
.v3kp-nen{position:absolute;inset:0;background:rgb(0 0 0/.0);transition:background .2s}
.v3kp.mo .v3kp-nen{background:rgb(0 0 0/.32)}
.v3kp-hop{position:absolute;inset:0;background:var(--sf);color:var(--on-sf);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);transition:transform .22s ease;transform:translateY(24px);opacity:0}
.v3kp.mo .v3kp-hop{transform:none;opacity:1}
.v3kp-dau{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:6px 8px 6px 16px;flex:none;border-bottom:1px solid var(--olv)}
.v3kp-tt{min-width:0;display:flex;flex-direction:column}
.v3kp-tieu{font:600 16px/22px var(--f-chu)}
.v3kp-phu{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3kp-cuon{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}
.v3kp-cuon table{border-collapse:separate;border-spacing:0;font:500 13px/18px var(--f-so);font-variant-numeric:tabular-nums;min-width:100%}
.v3kp-cuon th,.v3kp-cuon td{height:40px;padding:0 10px;white-space:nowrap;text-align:right;border-bottom:1px solid var(--olv)}
.v3kp-cuon th.ten,.v3kp-cuon td.ten{text-align:left;position:sticky;left:0;z-index:1;background:var(--sf);min-width:140px;max-width:170px;overflow:hidden;text-overflow:ellipsis;font-family:var(--f-chu)}
.v3kp-cuon thead th{position:sticky;top:0;z-index:2;background:var(--c3);color:var(--on-sv);font:600 13px/16px var(--f-chu);cursor:pointer}
.v3kp-cuon thead th.ten{z-index:3}
.v3kp-cuon th.on{color:var(--p)}
.v3kp-cuon tbody tr[data-kp-shop]{cursor:pointer}
.v3kp-cuon tbody tr[data-kp-shop]:hover td{background-image:linear-gradient(rgb(0 0 0/.04),rgb(0 0 0/.04))}
.v3kp-cuon tfoot td{position:sticky;bottom:0;z-index:2;background:var(--c4);font-weight:700;border-top:2px solid var(--ol);border-bottom:0}
.v3kp-cuon tfoot td.ten{z-index:4}
.v3kp-cuon .len{color:var(--p)}.v3kp-cuon .xuong{color:var(--err)}
.v3kp-gc{padding:6px 16px 12px}
@media (min-width:1024px){
  .v3kp-hop{inset:0 0 0 auto;width:min(760px,62vw);transform:translateX(40px);box-shadow:-8px 0 24px rgb(0 0 0/.18)}
  .v3kp.mo .v3kp-hop{transform:none}
}
@media (prefers-reduced-motion:reduce){.v3kp-hop,.v3kp-nen,[data-hn-kp]{transition:none}}
/* 15/10 anh Nhựt "số đậm hơn": ô số (canh phải) trong bảng siêu thị/ngành đậm 600, màu chữ chính */
html.v3-app .tabulator-row .tabulator-cell[style*="text-align: right"]{font-weight:600;color:var(--on-sf)}
html.v3-app .tabulator-row .tabulator-cell[style*="text-align: right"] .so{font-weight:700}
.v3-bt td.p,.v3-nh-b td{font-weight:600}

/* 15/10 anh Nhựt: 4 hạng base trên Hôm nay — liệt (<80) · chưa đạt (80–99) · đạt (100–120) · vượt trội (>120) */
:root{--vt:#0d7a5f}[data-theme=dark]{--vt:#5fd3b0}
.v3-bk-ray i.ht{background:var(--p)}.v3-bk-ray i.vt{background:var(--vt)}
.bs-tieu .bs-hang{flex:none;max-width:74%;overflow-x:auto;scrollbar-width:none;gap:4px}
.bs-chip .ch{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--on-sv)}
.bs-chip.h-li .ch{background:var(--err)}.bs-chip.h-cd .ch{background:var(--luu)}.bs-chip.h-ht .ch{background:var(--p)}.bs-chip.h-vt .ch{background:var(--vt)}
.bs-chip.on .ch{background:currentColor}
.bs-chip.h-li.on{background:var(--err);color:#fff;border-color:transparent}.bs-chip.h-cd.on{background:var(--luu);color:#fff;border-color:transparent}
.bs-chip.h-ht.on{background:var(--p);color:var(--on-p);border-color:transparent}.bs-chip.h-vt.on{background:var(--vt);color:#fff;border-color:transparent}

/* 15/10 màn chi tiết Tuần này so tuần trước (moManTuan) */
.noi-bat[data-hn-tuan]{cursor:pointer}
.v3-tuan-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.v3-tuan-kpi>div{background:var(--sc);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.v3-tuan-kpi b{font-size:18px;font-weight:700}.v3-tuan-kpi span{font-size:12px;color:var(--on-sv)}
.v3-tuan{margin-top:4px}
.v3-tuan-d{display:grid;grid-template-columns:1.5fr 1fr 1fr .8fr;gap:6px;align-items:center;min-height:36px;padding:0 8px;border-top:1px solid var(--n-ke);text-align:right;color:inherit;text-decoration:none}
.v3-tuan-d>span:first-child{text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v3-tuan-d.dau{border-top:0;color:var(--on-sv)}.v3-tuan-d.thieu{opacity:.6}
a.v3-tuan-d:hover{background:var(--sc)}
