/* ================================================================
   Agent Desk — CẦU NỐI sang bộ nhận diện

   File này KHÔNG định nghĩa màu. Mọi giá trị lấy từ /css/thuong-hieu.css.
   Ở đây chỉ ánh xạ tên biến cũ (--bg, --ai, --bl...) sang token thương hiệu,
   để 200 dòng CSS thành phần bên dưới không phải sửa.

   Chủ đề: ứng dụng mặc định NỀN SÁNG. Nhân viên trực chat ngồi nhìn 8 tiếng,
   nền tối bão hoà cả ngày gây mỏi mắt. Trang công khai mới dùng tông tối.
   thuong-hieu.css tự đổi token theo [data-th], nên chỉ cần một khối ánh xạ.
   ================================================================ */

:root{
  --bg:var(--nen);
  --p1:var(--be-mat);
  --p2:var(--be-mat);
  --p3:var(--be-mat-2);
  --p4:var(--be-mat-2);
  --ln:var(--vien);
  --ln2:var(--vien-2);
  --t0:var(--chu);
  --t1:var(--chu-2);
  --t2:var(--chu-3);

  /* --ai TRUOC DAY ganh hai vai: mau nhan chinh VA mau cua AI.
     Bo nhan dien tach ra — nhan chinh la CAM, AI la AQUA.
     Ten bien giu nguyen de khong phai sua thanh phan, nhung nghia doi:
     --ai gio la NHAN CHINH. Thu cua AI dung --y-ai-* ben duoi. */
  --ai:var(--orange);
  --ai2:var(--cam-hover);
  --aid:var(--cam-mo);
  --aib:rgba(255,106,0,.30);
  --aitx:var(--orange);

  /* Tin do NGUOI gui */
  --bl:var(--iris);
  --bl2:var(--cam-hover);

  --gr:var(--aqua);
  --grd:var(--aqua-mo);
  --grtx:var(--aqua-chu);

  --am:var(--ember);
  --amd:var(--ember-mo);
  --amtx:var(--ember-chu);

  --rd:var(--do);
  --rdd:var(--do-mo);
  --rdtx:var(--do);

  --sh:var(--bong);
  --shl:var(--bong-lon);
  --rc:var(--r-lon);

  /* Mau bong bong khai trong thuong-hieu.css theo tung chu de (--bb-*).
     File nay KHONG dat mau — day la cau noi, khong phai nguon. */
}

/* ---------------- nen ---------------- */
*{box-sizing:border-box;margin:0;padding:0}
/* Inter, tu host (public/css/font.css) — mot ho font cho ca he thong, xem
   phan Font trong thuong-hieu.css.

   `line-height:1.6` la SO DO DUOC tu chinh file Inter, khong phai uoc luong:
   tieng Viet xep hai dau tren mot nguyen am (ệ ữ ằ ộ), Inter can 1.35 de dau
   khong cham net dong tren, 1.6 la muc de chiu. Ban truoc de 1.5 — dat, nhung
   sat muc san. Bang du lieu thi 1.5 (khai rieng o duoi). */
body{font-family:var(--font-than);background:var(--bg);color:var(--t0);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow:hidden;
  transition:background .18s,color .18s}
svg{display:block;flex-shrink:0}

/* Bang du lieu: 1.5 chu khong 1.6 — dong thua ra thi bang dai them nua man hinh.
   Chu so xep thang cot: Inter co san figure tabular, khong phai doi sang mono. */
table{line-height:1.5;font-variant-numeric:tabular-nums}

/* MA DINH DANH (SKU, ma don, MST, so dien thoai) — JetBrains Mono, `slashed-zero`
   de 0 khong doc nham thanh O. Doc nham mot ky tu o cho nay la mat tien. */
.mono{font-family:var(--font-ma);font-size:14px;
  font-variant-numeric:tabular-nums slashed-zero}

button{font:inherit;font-size:var(--cc-3);font-weight:500;cursor:pointer;border:1px solid var(--ln);
  background:var(--p1);color:var(--t0);border-radius:var(--bk-2);padding:0 var(--kc-3);height:32px;
  line-height:1;display:inline-flex;align-items:center;gap:var(--kc-2);transition:.11s}
button.sm{height:28px;padding:0 10px;font-size:12px;border-radius:6px}
button:focus-visible{outline:2px solid var(--nhan-nut);outline-offset:2px}
button:disabled{opacity:.45;cursor:default}
button:hover:not(:disabled){background:var(--p3);border-color:var(--ln2)}
/* Nut chinh mau THAN. Cam chuyen sang vai dau nhan dien AI — xem --nhan-nut
   trong thuong-hieu.css. */
button.pri{background:var(--nhan-nut);border-color:var(--nhan-nut);color:var(--nhan-nut-chu);
  font-weight:600;box-shadow:none}
button.pri:hover:not(:disabled){background:var(--nhan-nut-hover);border-color:var(--nhan-nut-hover)}
button.gr{background:var(--aqua);border-color:var(--aqua);color:var(--tren-cam);font-weight:600}
button.fb{background:#1877F2;border-color:#1877F2;color:#fff;font-weight:600}
button.fb:hover:not(:disabled){background:#1465D8;border-color:#1465D8}
button.gh{border-color:transparent;background:transparent;color:var(--t1);padding:5px 8px}
/* `.gh` cung duoc dung tren the <a> (56 cho, vi du so dien thoai `tel:` o man
   Khieu nai). Luat tren chi nham `button.gh` nen the <a> roi ve MAU LIEN KET
   MAC DINH cua trinh duyet — #0000EE, xanh duong tuoi giua mot ung dung xanh
   la, va o tong toi thi 1,87:1. Do that 27/08/2026. */
a.gh{color:var(--t1);text-decoration:none}
a.gh:hover{text-decoration:underline}
button.gh:hover{background:var(--p3)}
button.sm{font-size:14px;padding:4px 9px}
button:disabled{opacity:.4;cursor:not-allowed}
:focus-visible{outline:2px solid var(--ai);outline-offset:1px}

/* CHECKBOX VA RADIO PHAI RA NGOAI luat nay. Truoc 14/08/2026 chung cung dinh
   `width:100%;height:32px;padding:0 10px;border` — tuc mot o tich bi keo dai
   bang ca o luoi (do duoc: 219px), day nhan ra xa han va nhin nhu bo cuc vo.
   Loi co tu truoc, anh huong MOI o tich trong app; chi lo ra khi mot khoi co
   nhieu o tich xep luoi (man Cach tinh luong). */
input:not([type=checkbox]):not([type=radio]),textarea,select{
  font:inherit;font-size:14px;width:100%;border:1px solid var(--ln);border-radius:8px;
  padding:0 10px;height:32px;background:var(--p1);color:var(--t0);resize:none;line-height:1.5}
input[type=checkbox],input[type=radio]{
  width:16px;height:16px;flex:none;margin:0;accent-color:var(--qt-g700);cursor:pointer}
textarea{height:auto;padding:8px 10px;line-height:1.55}
input:focus,textarea:focus,select:focus{border-color:var(--nhan-nut);outline:none;
  box-shadow:0 0 0 3px var(--cam-mo)}
input::placeholder,textarea::placeholder{color:var(--t2)}
kbd{font-family:var(--font-so);font-size:12px;background:var(--p3);
  border:1px solid var(--ln2);border-bottom-width:2px;border-radius:4px;padding:1px 4px;color:var(--t1)}

/* ---------------- khung ----------------
   Hang 1: thanh ngang (muc chinh). Hang 2: thanh doc muc con + noi dung.
   Ba kieu bo cuc, tuy muc chinh dang mo:
     .app-inbox  loc · danh sach · chat · cot phai
     .app-sub    muc con · noi dung
     .app-1      chi noi dung (muc chinh khong co muc con) */
.app{display:grid;grid-template-rows:60px minmax(0,1fr);height:100vh;height:100dvh}
.app > .tn{grid-column:1/-1}
.app-inbox{grid-template-columns:52px 320px minmax(0,1fr) 330px}
.app-sub{grid-template-columns:214px minmax(0,1fr)}
.app-1{grid-template-columns:minmax(0,1fr)}

/* Man hep dan thi bo cot phai truoc — bo loc va danh sach dung ca ngay, giu den cuoi */
@media(max-width:1620px){.app-inbox{grid-template-columns:52px 300px minmax(0,1fr) 292px}}
@media(max-width:1380px){.app-inbox{grid-template-columns:52px 286px minmax(0,1fr)}
  .app .pn{display:none}}

/* ---- thanh ngang: MUC CHINH ----
   Muc chinh len ngang de co cho hien CHU. Ban truoc de tat ca theo doc, thu lai
   con 54px thi chi con icon — nho, kho bam, va phai ro chuot tung cai moi doan
   duoc no la gi. Thanh doc gio chi con muc con, xem .rp ben duoi. */
.tn{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;
  padding:0 14px;background:var(--p1);border-bottom:1px solid var(--ln);min-width:0}
.tn-lg{display:flex;align-items:center}
.tn-lg img{width:26px;height:26px}
.tn-nav{display:flex;gap:3px;justify-content:center;min-width:0;overflow-x:auto;
  scrollbar-width:none}
.tn-nav::-webkit-scrollbar{display:none}
.tn-m{border:0;background:transparent;color:var(--t1);font-size:16px;font-weight:600;
  padding:10px 16px;border-radius:8px;white-space:nowrap;gap:8px;letter-spacing:-.005em;
  position:relative}
.tn-m:hover{background:var(--p3);color:var(--t0)}
.tn-m.on{background:var(--cam-mo);color:var(--orange)}
.tn-m svg{width:17px;height:17px;opacity:.9}
.tn-l{min-width:0}
.tn-bg{font-family:var(--font-so);font-size:12px;font-weight:700;
  background:var(--p3);color:var(--t1);border-radius:8px;padding:1px 6px;min-width:19px;
  text-align:center}
.tn-m.on .tn-bg{background:var(--orange);color:var(--tren-cam)}
/* "Can ban xu ly" co so > 0 la viec dang cho nguoi — phai doi mat ngay */
.tn-m.hot .tn-bg{background:var(--rd);color:#fff}
.tn-phai{display:flex;align-items:center;gap:4px;min-width:0}
.tn-tron{border:0;background:transparent;padding:6px;border-radius:8px;color:var(--t2)}
.tn-tron:hover{background:var(--p3);color:var(--t0)}
.tn-toi{border:0;background:transparent;gap:8px;padding:4px 8px 4px 4px;border-radius:16px;
  max-width:190px}
.tn-toi:hover{background:var(--p3)}
.tn-av{width:26px;height:26px;border-radius:50%;background:var(--p3);color:var(--t1);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.tn-ten{font-size:14px;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- thanh doc: MUC CON cua muc chinh dang mo ----
   Trong Hoi thoai, muc con chinh la bo loc hop thu, nen cho do de .rl lam —
   khong dung hai thanh doc canh nhau. */
.rp{background:var(--p1);border-right:1px solid var(--ln);overflow-y:auto;padding:10px 8px}
.rp-dau{font-size:12px;font-weight:700;color:var(--t2);padding:4px 9px 8px}
.rp-n{display:flex;width:100%;align-items:center;gap:7px;border:0;background:transparent;
  padding:10px 11px;border-radius:8px;font-size:16px;color:var(--t1);text-align:left;
  justify-content:flex-start;line-height:1.3}
.rp-n:hover{background:var(--p3);color:var(--t0)}
.rp-n.on{background:var(--cam-mo);color:var(--orange);font-weight:600}
.rp-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-mini{font-style:normal;font-size:12px;font-weight:600;flex-shrink:0;
  border-radius:4px;padding:1px 5px;background:var(--p3);color:var(--t2)}
.rp-mini.do{background:var(--rdd);color:var(--rdtx)}
.rp-mini.vang{background:var(--amd);color:var(--amtx)}

.rail{background:var(--p1);border-right:1px solid var(--ln);display:flex;flex-direction:column;
  align-items:center;padding:11px 0;gap:3px}
.rail .lg{width:30px;height:30px;display:block;margin-bottom:10px}
.ri{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  color:var(--t2);cursor:pointer;position:relative;border:0;background:transparent;padding:0}
.ri:hover{background:var(--p3);color:var(--t1)}
.ri.on{background:var(--aid);color:var(--ai)}
.ri .bg{position:absolute;top:3px;right:3px;min-width:15px;height:15px;border-radius:8px;background:var(--rd);
  color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 3px}
.rail .sp{flex:1}
.me{width:28px;height:28px;border-radius:50%;background:var(--p3);display:flex;align-items:center;
  justify-content:center;font-size:12px;font-weight:600;color:var(--t1)}

.list{background:var(--p1);border-right:1px solid var(--ln);display:flex;flex-direction:column;min-width:0}
.lh{padding:9px 11px;border-bottom:1px solid var(--ln)}
.srch{position:relative;margin-bottom:8px}
.srch svg{position:absolute;left:9px;top:8px;color:var(--t2)}
.srch input{padding-left:29px;background:var(--p3);border-color:transparent;font-size:14px}
.pgs{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px}
.pgc{display:flex;align-items:center;gap:5px;font-size:14px;padding:3px 8px;border-radius:16px;
  background:var(--p2);border:1px solid var(--ln);color:var(--t1);cursor:pointer;white-space:nowrap}
.pgc.on{background:var(--aid);border-color:var(--aib);color:var(--aitx);font-weight:500}
.pgc i{width:14px;height:14px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-style:normal}
.fl{display:flex;gap:2px;padding:6px 8px;border-bottom:1px solid var(--ln);overflow-x:auto}
.fl button{border:0;background:transparent;padding:4px 8px;font-size:14px;color:var(--t2);border-radius:8px;white-space:nowrap}
.fl button.on{background:var(--p3);color:var(--t0);font-weight:500}
.fl .n{font-size:12px;opacity:.7;margin-left:3px}
.cvs{flex:1;overflow-y:auto}

/* ---- khung chat ----
   Nen am (khong trang) de bong bong TRANG cua khach noi len duoc — dung cach
   Pancake va Messenger lam. Nen trang thi bong bong khach chim vao nen. */
.ch{display:flex;flex-direction:column;min-width:0;background:var(--thr-nen)}
.chh{min-height:52px;background:var(--p1);border-bottom:1px solid var(--ln);display:flex;
  align-items:center;gap:10px;padding:6px 13px;flex-shrink:0}
.chh-i{flex:1;min-width:0}
.chh-r1{display:flex;align-items:center;gap:9px;min-width:0}
.chh .nm{font-weight:700;font-size:16px;line-height:1.2;flex-shrink:0}
.chh-nho{display:inline-flex;align-items:center;gap:3px;font-size:14px;color:var(--t2);
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chh-r2{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--t2);margin-top:2px}
.chh-xem{display:inline-flex;align-items:center;gap:4px;color:var(--iris)}
.chh-xem.chua{color:var(--t2)}
.chh-cham{opacity:.5}

/* Doc that tu agent_runs/funnel_state, khong tinh gi o client — xem AiInsight
   trong app.js. An han khi khong co du lieu, khong hien dong trong. */
.ains{display:flex;align-items:center;gap:14px;padding:7px 13px;background:var(--aid);
  border-bottom:1px solid var(--ln);flex-shrink:0;font-size:12px;color:var(--aitx);
  overflow-x:auto}
.ains svg{flex-shrink:0;opacity:.85}
.ains span{white-space:nowrap}
.ains b{font-weight:600;margin-right:3px}
.ains-chan{color:var(--rdtx)}

.thr{flex:1;overflow-y:auto;padding:12px 16px 16px}

.pn{background:var(--p1);border-left:1px solid var(--ln);display:flex;flex-direction:column;min-width:0}
.pt{display:flex;border-bottom:1px solid var(--ln);flex-shrink:0}
.pt button{flex:1;border:0;border-radius:0;padding:9px 0;font-size:14px;color:var(--t2);background:transparent;
  border-bottom:2px solid transparent;justify-content:center}
.pt button.on{color:var(--t0);font-weight:500;border-bottom-color:var(--ai)}
.pb{flex:1;overflow-y:auto;padding:12px}
.pf{border-top:1px solid var(--ln);padding:10px 12px;flex-shrink:0}
.pf button{width:100%;justify-content:center}

/* ---------------- manh ghep dung chung ---------------- */
.sect{font-size:var(--cc-1);font-weight:600;color:var(--t2);
  margin:var(--kc-6) 0 var(--kc-3);padding-bottom:var(--kc-2);border-bottom:1px solid var(--ln)}
.sect:first-child{margin-top:0}
/* Cham tron dan dau: trang thai doc duoc o khoang cach mot sai tay, va nguoi
   mu mau van dung duoc. Mau mot minh khong bao gio du. */
.lb{font-size:12px;padding:2px 9px 2px 7px;border-radius:99px;font-weight:600;white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;line-height:1.5;border:1px solid transparent}
.lb::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}
.l-ai{background:var(--aid);color:var(--aitx)}
.l-rd{background:var(--rdd);color:var(--rdtx)}
.l-am{background:var(--amd);color:var(--amtx)}
.l-gr{background:var(--grd);color:var(--grtx)}
.l-n{background:var(--p3);color:var(--t2)}
.ln{display:flex;gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid var(--ln)}
.ln .nm{flex:1;min-width:0;font-size:14px}
.ln .nm small{display:block;color:var(--t2);font-size:12px}
.ln .pr{font-size:14px;font-weight:500;width:72px;text-align:right}
.kv{display:flex;justify-content:space-between;font-size:14px;padding:3px 0}
.kv span:first-child{color:var(--t2)}

/* Gio hang tam trong tab "Tao don" — chi de nguoi truc thay dang chon gi
   truoc khi bam; con so THAT lay tu response taoDonNhap(), khong tu day. */
.gio{border:1px solid var(--ln);border-radius:8px;padding:4px 10px;margin-top:4px}
.gio-d{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--ln);font-size:14px}
.gio-d:last-of-type{border-bottom:none}
.gio-ten{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gio-sl{display:flex;align-items:center;gap:5px;flex-shrink:0}
.gio-sl button{width:24px;height:24px;padding:0;justify-content:center}
.gio-tong{display:flex;justify-content:space-between;font-weight:600;font-size:14px;
  padding:8px 0 2px;margin-top:2px;border-top:1px solid var(--ln2)}
.warn{display:flex;gap:7px;background:var(--amd);color:var(--amtx);border-left:3px solid var(--am);
  border-radius:8px;padding:8px 10px;font-size:14px;line-height:1.45;margin:8px 0}
.blkd{display:flex;gap:9px;background:var(--rdd);border-left:3px solid var(--rd);border-radius:8px;
  padding:9px 11px;font-size:14px;color:var(--rdtx);margin-bottom:6px}
.blkd b{display:block;font-weight:600;margin-bottom:1px}
.trong{padding:28px 14px;color:var(--t2);font-size:14px;text-align:center;line-height:1.6}
.spin{width:30px;height:30px;border-radius:50%;border:2.5px solid var(--p3);border-top-color:var(--ai);
  animation:sp .7s linear infinite;margin:0 auto 12px}
@keyframes sp{to{transform:rotate(360deg)}}

.tst{position:fixed;bottom:18px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--t0);
  color:var(--bg);padding:9px 17px;border-radius:8px;font-size:14px;opacity:0;transition:.16s;
  pointer-events:none;z-index:70;box-shadow:var(--shl)}
.tst.on{opacity:1;transform:translateX(-50%)}

/* ---------------- man hinh khai bao org (chua co dang nhap that) ---------------- */
.setup{height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.setup .box{width:100%;max-width:400px;background:var(--p1);border:1px solid var(--ln);
  border-radius:12px;padding:24px;box-shadow:var(--shl)}
.setup :is(h1,h2){font-size:18px;font-weight:600;margin-bottom:6px;letter-spacing:-.015em}
.setup p{font-size:14px;color:var(--t1);margin-bottom:16px;line-height:1.5}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------------- modal ket noi trang ---------------- */
.veil{position:fixed;inset:0;background:rgba(16,20,32,.55);backdrop-filter:blur(3px);z-index:50;
  display:flex;align-items:center;justify-content:center;padding:24px}
.mod{width:100%;max-width:520px;background:var(--p1);border:1px solid var(--ln2);border-radius:12px;
  overflow:hidden;box-shadow:var(--shl);max-height:86vh;display:flex;flex-direction:column}
.mod-h{display:flex;align-items:center;gap:10px;padding:14px 17px;border-bottom:1px solid var(--ln)}
.mod-h b{font-size:16px;font-weight:600}
.mod-h .sp{flex:1}
.mod-b{padding:18px;overflow-y:auto}
.mod-f{padding:13px 17px;border-top:1px solid var(--ln);display:flex;gap:8px;align-items:center}
.mod-f .sp{flex:1}
.pgm{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid var(--ln);border-radius:12px;
  margin-bottom:6px;cursor:pointer;text-align:left;width:100%;background:var(--p1)}
.pgm:hover:not(:disabled){border-color:var(--ln2);background:var(--p2)}
.pgm.on{border-color:var(--ai);background:var(--aid)}
.pgm:disabled{opacity:.45;cursor:not-allowed}
.pgm .i{flex:1;min-width:0}
.pgm .i b{display:block;font-size:16px;font-weight:600}
.pgm .i small{font-size:14px;color:var(--t2)}
.ckb{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--ln2);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:14px}
.pgm.on .ckb{background:var(--orange);border-color:var(--orange);color:var(--tren-cam)}

/* ---------------- hop thu: hang hoi thoai ----------------
   Ba tang trong mot hang: ten + gio · trich dan mot dong · hang nhan.
   Cao ~64px nen mot man 900px vua 13-14 hang, dung nhu Pancake. */
.l-dau{display:flex;align-items:center;gap:9px;padding:8px 13px;border-bottom:1px solid var(--ln);
  background:var(--p3)}
.l-dau b{font-size:14px;font-weight:700;flex:1;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.l-dau>span{font-size:12px;color:var(--t2);font-family:var(--font-so)}

/* ---------------- o chon nhan de loc (buoc 5 NHAN.md) ----------------
   Luoi ben trong xep GIONG HET bang nhan duoi khung chat: nhan vien tim nhan
   bang vi tri va mau, hai cho xep khac nhau la moi lan loc phai doc lai 24 o. */
.cn{position:relative;display:flex;align-items:center;gap:2px}
.cn-nut{display:flex;align-items:center;gap:4px;height:20px;padding:0 7px;cursor:pointer;
  border:1px dashed var(--vien-2);border-radius:4px;background:transparent;color:var(--t2);
  font-size:12px;font-weight:600;font-family:inherit;white-space:nowrap}
.cn-nut:hover{color:var(--t1);border-color:var(--t2)}
.cn-nut.on{border-style:solid;border-color:transparent;background:var(--c);color:#14121A}
.cn-cham{width:6px;height:6px;border-radius:50%;background:#14121A;flex-shrink:0}
.cn-bo{width:18px;height:18px;padding:0;cursor:pointer;border:0;border-radius:4px;
  background:transparent;color:var(--t2);font-size:14px;line-height:1;font-family:inherit}
.cn-bo:hover{background:var(--p1);color:var(--t1)}

.cn-bang{position:absolute;top:calc(100% + 5px);left:0;z-index:40;width:520px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:8px;
  background:var(--p3);border:1px solid var(--vien-2);border-radius:8px;
  box-shadow:0 10px 30px rgba(0,0,0,.4)}
.cn-nhom{min-width:0;display:flex;flex-direction:column;gap:1px}
.cn-ten{font-size:12px;font-weight:700;color:var(--t2);
  padding:0 0 2px}
.cn-o{display:flex;align-items:center;gap:5px;height:19px;padding:0 5px;cursor:pointer;
  border:0;border-radius:4px;background:var(--c);color:#14121A;
  font-size:12px;font-weight:700;font-family:inherit;text-align:left;opacity:.9}
.cn-o i{width:5px;height:5px;border-radius:50%;background:#14121A;flex-shrink:0;opacity:0}
.cn-o span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cn-o b{font-family:var(--font-so);font-size:12px;opacity:.72}
/* Nhan chua gan cho hoi thoai nao van hien MAU, chi mo di — giu duoc cach tim
   theo mau, va cho biet luon la bam vao se ra danh sach rong. */
.cn-o.rong{opacity:.34}
.cn-o:hover{opacity:1;box-shadow:inset 0 0 0 1.5px #14121A}
.cn-o.on{opacity:1;box-shadow:inset 0 0 0 2px #14121A}
.cn-o.on i{opacity:1}

/* ---------------- anh dai dien khach ----------------
   Anh chong LEN chu cai dau, khong thay the no. URL cua Meta het han sau vai
   ngay va phan lon khach khong bao gio co anh, nen chu cai dau moi la lop nen
   thuong truc; tai duoc anh thi no phu len. */
.cv .av img,.chh-av img,.cum-av img{position:absolute;inset:0;width:100%;height:100%;
  border-radius:50%;object-fit:cover}

.cv{display:flex;gap:11px;padding:10px 13px;cursor:pointer;border-left:2px solid transparent;
  position:relative;border-bottom:1px solid var(--ln)}
.cv:hover{background:var(--p2)}
.cv.on{background:var(--cam-mo);border-left-color:var(--orange)}
.cv .av{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;
  justify-content:center;font-size:14px;font-weight:700;background:var(--p3);color:var(--t1);
  position:relative}
/* Huy hieu kenh o goc avatar — mot man co ca Messenger lan Instagram */
.av-kenh{position:absolute;right:-1px;bottom:-1px;width:14px;height:14px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;border:1.5px solid var(--p1)}
.av-kenh.fb{background:#1877F2}.av-kenh.ig{background:#C13584}
.cv .in{flex:1;min-width:0}
.cv .r1{display:flex;align-items:center;gap:5px}
.cv .nm{font-weight:500;font-size:14px;flex:1;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.cv .tm{font-size:12px;color:var(--t2);flex-shrink:0;font-family:var(--font-so)}
.cv-sdt{color:var(--aqua);flex-shrink:0;display:flex}
.cv .sn{font-size:14px;color:var(--t2);overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;margin-top:1px}
.sn-ra{color:var(--t2);font-weight:400;margin-right:2px}
.cv.un .nm{font-weight:700}
.cv.un .sn{color:var(--t0)}
/* Chua doc: mot vach cam manh ben trai, khong dung nen dam — nen dam va hang
   dang chon trong giong nhau la nhan vien bam nham suot. */
.cv.un::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--orange)}
.cv.on::after{display:none}

.win{display:flex;align-items:center;gap:5px;font-size:14px;color:var(--t1);background:var(--p2);
  border:1px solid var(--ln);padding:3px 9px;border-radius:16px;white-space:nowrap}
.win.out{color:var(--rdtx);background:var(--rdd);border-color:transparent}

.drf{padding:8px 12px 10px}
.dh{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--t2);margin-bottom:6px}
.dh b{color:var(--aqua);font-weight:600;display:inline-flex;align-items:center;gap:4px}
.dh .sp{flex:1}
.db{background:var(--aid);border:1px solid var(--aib);border-radius:12px;padding:8px 12px;margin-bottom:5px;
  font-size:16px;white-space:pre-wrap;color:var(--aitx);line-height:1.45;position:relative}
.da{display:flex;gap:6px;align-items:center;margin-top:7px}

/* ---------------- man khong phai hop thu (Trang, Cai dat) ---------------- */
.man{background:var(--bg);overflow-y:auto;display:flex;flex-direction:column}
/* KHONG dat flex+gap o day: moi khoi con ben trong van giu margin-bottom rieng
   (27 cho), nen gap se CONG THEM vao margin — khoang cach doi len va moi khoi
   mot kieu. Mot nguon khoang cach duy nhat: margin cua tung khoi. */
.man-in{flex:1;max-width:800px;width:100%;margin:0 auto;
  padding:var(--kc-8) var(--kc-6) var(--kc-12)}
.man-in h1{font-family:var(--font-tieu-de);font-size:var(--cc-7);font-weight:650;
  letter-spacing:-.015em;margin:0 0 var(--kc-2);line-height:1.25}
.man-d{color:var(--t1);font-size:var(--cc-3);line-height:1.6;margin:0 0 var(--kc-4);max-width:70ch}
.man-nut{display:flex;gap:9px;margin-top:20px;flex-wrap:wrap}

/* ================================================================
   "Chuan SaaS quoc te" — khung dung CHUNG cho Tong quan VA Hoi thoai
   (chat.gauux.com sau nay). Port pixel-doi-pixel tu gauux.com.html /
   chat.gauux.com.html — file HTML that chu shop gui, khong phai doan tu
   anh chup. Mau qua bien --qt-* (thuong-hieu.css), khong hex thang.
   Rieng voi phan con lai cua app: KHONG theo [data-th], ban dac ta khong
   co ban toi. Xem ManTongQuan (va sau nay man Hoi thoai moi) trong app.js.
   ================================================================ */
/* Mau chu than va line-height lay tu /giaodien: #334155 / 1.6 (app truoc do
   la #0F172A / 1.5). Do la khac biet nam tren MOI chu cua MOI man — chu app
   dam va toi hon han ban thiet ke. Tieu de van dung --qt-ink. */
.qt{font-family:var(--qt-font);color:var(--qt-than);font-size:14px;line-height:1.6}
.qt h1,.qt h2,.qt h3,.qt h4,.qt b,.qt strong{color:var(--qt-ink)}
/* BAC tieu de la NGU NGHIA, CO CHU la kieu dang — hai truc khac nhau, nhung
   trinh duyet tron chung lam mot: doi h3 thanh h2 cho dung bac thi chu to len
   1,5 lan tu con so mac dinh cua trinh duyet. Nen khoa co chu mac dinh cua hai
   bac ve cung mot muc, roi khoi nao muon khac thi dat bang LOP cua no
   (.set-card h2, .card-h h2, .man-in h2.man-h...). Thieu luat nay thi moi lan
   sua bac tieu de cho dung chuan tiep can lai la mot lan bo cuc doi theo — va
   nguoi sua se lui lai. Do that 28/08/2026: hai tieu de vua nang bac nhay tu
   16px len 21px ma khong ai co y do. */
.qt h2, .qt h3{font-size:var(--cc-5);font-weight:700}
/* Reset toan bo button ve trang trong roi tu dinh nghia lai tung lop — thua ke
   button{height:32px;padding:...;border:1px solid...} cua he thong cu se lam
   vo moi kich thuoc/khoang cach da port dung tu ban dac ta. */
.qt button{font-family:inherit;font-size:inherit;height:auto;padding:0;margin:0;
  border:0;border-radius:0;background:transparent;color:inherit;line-height:inherit;
  display:flex;align-items:center;gap:0;cursor:pointer}
.qt button:disabled{opacity:1;cursor:default}

/* KHOI PHUC NUT CHO CAC MAN DUNG BO STYLE CU (.man / .man-in).
   Luat `.qt button` ngay tren co y lam phang moi nut cua khung ERP. Nhung tu
   09/08/2026 cac man Dao tao AI bi boc trong KhungChat — tuc nam TRONG `.qt` —
   trong khi chung van viet theo bo style cu (.pri, .ttb-b, .gh...). Ket qua:
   "Thêm thông tin" / "Thêm bảng giá" / "Tắt Sửa Xoá" hien ra thanh CHU TRAN
   dinh nhau, khong con la nut. Khong test nao bat duoc — chi thay khi chup man.
   `.man` chi co o cac man cu; khung ERP dung .set-page/.hs-shell nen khong dinh. */
.qt .man button{font-size:var(--cc-3);font-weight:500;border:1px solid var(--ln);
  background:var(--p1);color:var(--t0);border-radius:var(--bk-2);
  padding:var(--kc-2) var(--kc-3);min-height:32px;line-height:1.25;
  display:inline-flex;align-items:center;gap:var(--kc-2)}
.qt .man button:disabled{opacity:.45;cursor:not-allowed}
.qt .man button:hover:not(:disabled){background:var(--p3);border-color:var(--ln2)}
.qt .man button.pri{background:var(--nhan-nut);border-color:var(--nhan-nut);
  color:var(--nhan-nut-chu);font-weight:600}
.qt .man button.pri:hover:not(:disabled){background:var(--nhan-nut-hover);
  border-color:var(--nhan-nut-hover)}
.qt .man button.gr{background:var(--aqua);border-color:var(--aqua);
  color:var(--tren-cam);font-weight:600}
.qt .man button.gh{border-color:transparent;background:transparent;color:var(--t1);
  padding:5px 8px;height:auto}
.qt .man button.gh:hover:not(:disabled){background:var(--p3);border-color:transparent}
.qt .man button.sm{min-height:28px;padding:5px 10px;font-size:12px;border-radius:6px}
/* Nut chi la chu (link) trong man cu — khong duoc an khung nut vao. */
.qt .man button.lk,
.qt .man button.nho,
.qt .man .ct-nut button{border:0;background:transparent;height:auto;padding:0}
.qt input{font-family:inherit;font-size:inherit}
/* MA DINH DANH (`.ma` cua ban thiet ke): JetBrains Mono 11px mau chu mo. Truoc
   day chi dat font-family, nen co chu roi ve 14px cua luat `.mono` toan cuc. */
.qt .mono{font-family:var(--qt-mono);font-size:12px;color:var(--qt-ink3)}
.qt svg.ic{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.qt svg.ic.sm{width:14px;height:14px}
.qt svg.ic.xs{width:12px;height:12px}

.qt.shell{display:flex;height:100vh;height:100dvh;overflow:hidden;background:var(--qt-paper)}
.qt .sidebar{width:236px;background:var(--qt-white);border-right:1px solid var(--qt-line);
  display:flex;flex-direction:column;flex-shrink:0}
.qt .sb-top{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 14px}
.qt .brand{display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer}
/* Mark chinh thuc: gau muc tren o xanh bo goc — anh PNG tu bo nhan dien
   (design/bo-nhan-dien.html), khong ve lai bang CSS */
.qt .brand .mark{width:32px;height:32px;border-radius:22%;display:block;flex-shrink:0}
.qt .brand .tx b{display:block;font-size:14px;font-weight:800;line-height:1.15;letter-spacing:-.2px}
.qt .brand .tx span{display:block;font-size:10px;color:var(--qt-ink3);font-weight:500}
.qt .sb-nav{flex:1;overflow-y:auto;padding:2px 10px}
.qt .sb-item{display:flex;align-items:center;gap:11px;width:100%;height:auto;padding:8px 10px;
  border-radius:8px;color:var(--qt-ink2);font-weight:500;font-size:14px;margin-bottom:1px;
  text-align:left;justify-content:flex-start;background:transparent;border:0}
.qt .sb-item:hover:not(:disabled){background:var(--qt-paper);color:var(--qt-ink)}
.qt .sb-item.active{background:var(--qt-g100);color:var(--qt-g800-chu);font-weight:600}
.qt .sb-item .chev{margin-left:auto;color:var(--qt-ink3)}
.qt .sb-item .badge2{margin-left:auto;font-size:10px;font-weight:700;background:var(--qt-g600);
  color:#fff;padding:1.5px 6px;border-radius:5px;letter-spacing:.03em}
.qt .sb-item .cnt{margin-left:auto;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;
  color:var(--qt-ink3);background:var(--qt-paper);border:1px solid var(--qt-line);min-width:19px;
  height:19px;border-radius:10px;display:grid;place-items:center;padding:0 5px}
.qt .sb-item.active .cnt{background:var(--qt-g600);border-color:var(--qt-g600);color:#fff}
/* modul "sap co": mo, khoa, khong bam duoc — tu khai la chua xong, khong bia ly do */
.qt .sb-item.soon{opacity:.5;cursor:default}
/* accordion submenu — mo TAI CHO, khong dieu huong (muc 4.3-4.4 GAUUX-UI-SPEC):
   chevron CHI hien o muc co submenu that; bam chevron chi mo/dong, bam label
   moi di. Chep tu design/ui-kit/gauux.com.html, mau doi sang token --qt-*. */
.qt .sb-group{margin-bottom:1px}
.qt .sb-item-row{display:flex;align-items:stretch;border-radius:8px}
.qt .sb-item-row:hover{background:var(--qt-paper)}
.qt .sb-item-row .sb-item{flex:1;border-radius:8px;margin-bottom:0}
.qt .sb-item-row:hover .sb-item:not(:disabled){background:transparent}
.qt .sb-chev-btn{width:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  border-radius:8px;color:var(--qt-ink3);cursor:pointer}
.qt .sb-chev-btn:hover{color:var(--qt-ink)}
.qt .sb-chev-btn span{display:flex;transition:transform .18s cubic-bezier(.4,0,.2,1)}
.qt .sb-chev-btn.open span{transform:rotate(90deg)}
.qt .sb-sub{max-height:0;overflow:hidden;transition:max-height .22s cubic-bezier(.4,0,.2,1)}
.qt .sb-sub.open{max-height:260px}
.qt .sb-subitem{display:flex;align-items:center;gap:9px;width:100%;height:auto;
  padding:6px 10px 6px 38px;border-radius:7px;font-size:12px;color:var(--qt-ink3);
  font-weight:500;text-align:left;cursor:pointer}
.qt .sb-subitem:hover{background:var(--qt-paper);color:var(--qt-ink2)}
.qt .sb-subitem.on{background:var(--qt-g100);color:var(--qt-g800-chu);font-weight:600}
/* Nut loc tren dau danh sach hoi thoai — trong .qt bi mat khoang cach giua
   nhan va so dem ("Tất cả hội thoại26"), ep lai inline-flex + gap o day */
.qt .lt-nut{display:inline-flex;width:auto;gap:6px;align-items:center}
.qt .lt-nut b{font-weight:700}

/* Anh dai dien THAT cua khach (Meta tra ve): phai ghim vao dung hinh tron,
   khong co khoi nay la anh render kich thuoc goc va de thanh vet dai len
   khung chat — xay ra dung nhu vay khi khach co avatar (09/08/2026). */
.qt .hc-av,.qt .av2,.qt .cust-av{position:relative;overflow:hidden}
.qt .hc-av img,.qt .av2 img,.qt .cust-av img{position:absolute;inset:0;
  width:100%;height:100%;border-radius:50%;object-fit:cover}
/* huy hieu nen tang phai NOI tren anh — nam ngoai vong tron cat */
.qt .hc-av{overflow:visible}
.qt .hc-av img{border-radius:50%}
/* Menu con DAI (Dao tao AI: 15 muc + 4 tieu de nhom) — tran cua .sb-sub goc
   la 260px, du cho 4-5 muc; thieu lop nay la nhom dai bi cat cut o muc thu 7 */
.qt .sb-sub-dai.open{max-height:720px}
.qt .sb-sub-nhom{font-size:10px;font-weight:800;
  color:var(--qt-ink3);padding:10px 10px 4px 38px}
.qt .sb-subitem::before{content:'';width:4px;height:4px;border-radius:50%;
  background:currentColor;flex-shrink:0;opacity:.5}
/* The gauux AI o chan sidebar — MOT HANG, cao ~64px.
   Doi thu do dac hieu o day la `.qt button` (0,1,1) chu KHONG phai `.qt .man
   button`: the nay nam ngoai moi khung `.man`. Nen `.qt .sidebar .sb-ai`
   (0,3,0) thang thoai mai. Da mac bay nay bon lan, lan nao cung phai do
   computed style trong trinh duyet moi thay. */
.qt .sidebar .sb-ai{display:flex;align-items:center;gap:10px;width:calc(100% - 24px);
  margin:8px 12px 12px;padding:10px 12px;border:0;border-radius:var(--qt-rlg);
  background:linear-gradient(160deg,var(--qt-g900),var(--qt-g700));color:#fff;
  text-align:left;cursor:pointer;position:relative;overflow:hidden;height:auto}
.qt .sidebar .sb-ai::before{content:'';position:absolute;top:-30px;right:-30px;width:90px;height:90px;
  border-radius:50%;background:rgba(255,255,255,.08)}
.qt .sidebar .sb-ai .ic-wrap{width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.15);
  display:grid;place-items:center;flex-shrink:0;position:relative}
.qt .sidebar .sb-ai .tx{position:relative;min-width:0;flex:1}
/* `color:#fff` cua .sb-ai bi mot luat khac de mat tren the <b>. Do that
   27/08/2026: chu "gauux AI" ra #0F172A tren nen gradient #105434 — 1,98:1,
   gan nhu khong doc duoc. Khai lai ngay tai day. */
.qt .sidebar .sb-ai b{font-size:14px;display:block;font-weight:700;line-height:1.5;color:#fff}
.qt .sidebar .sb-ai small{display:block;font-size:12px;line-height:1.5;color:var(--qt-g100-tx);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Con so la SO THAT (hoi thoai dang cho) — dat ben phai de doc duoc ma khong
   phai doc het cau. */
.qt .sidebar .sb-ai .sb-ai-so{position:relative;flex-shrink:0;min-width:22px;padding:2px 7px;
  /* Vien thuoc nay co nen TRANG CO DINH o ca hai tong (no nam tren mang
     gradient toi), nen chu tren no phai la xanh DAM o ca hai — nguoc chieu
     voi phan con lai. `--qt-g800-chu` la ban danh cho NEN TOI: o tong toi no
     thanh #8BDDB4 va dat len trang chi con 1,6:1. */
  border-radius:999px;background:#fff;color:var(--qt-g800);font-size:12px;font-weight:700;
  line-height:1.5;text-align:center;font-variant-numeric:tabular-nums}

.qt .topbar{height:60px;background:var(--qt-white);border-bottom:1px solid var(--qt-line);
  display:flex;align-items:center;padding:0 20px;gap:16px;flex-shrink:0}
/* Chua noi voi tim kiem that — hien de dung layout, tat tuong tac de khong
   gia vo la mot o tim dung duoc. */
.qt .tb-search{flex:1;max-width:420px;display:flex;align-items:center;gap:9px;
  background:var(--qt-paper);border:1px solid var(--qt-line);border-radius:9px;padding:8px 12px;
  color:var(--qt-ink3)}
.qt .tb-search input{border:0;background:transparent;outline:none;flex:1;color:var(--qt-ink);
  width:auto;height:auto;padding:0;border-radius:0}
.qt .kbd{font-family:var(--qt-mono);font-size:10px;background:var(--qt-white);
  border:1px solid var(--qt-line);border-radius:5px;padding:1px 6px;color:var(--qt-ink3)}
.qt .tb-right{display:flex;align-items:center;gap:14px;margin-left:auto}
.qt .tb-icon{position:relative;width:34px;height:34px;border-radius:9px;display:grid;
  place-items:center;color:var(--qt-ink2);border:0;background:transparent}
.qt .tb-icon:hover{background:var(--qt-paper)}
.qt .tb-icon .dot{position:absolute;top:5px;right:5px;background:var(--qt-red);color:#fff;
  font-size:10px;font-weight:700;min-width:15px;height:15px;border-radius:8px;display:grid;
  place-items:center;padding:0 3px;border:2px solid #fff}
.qt .tb-user{display:flex;align-items:center;gap:9px;padding:5px 6px 5px 5px;border-radius:10px;
  border:0;background:transparent}
.qt .tb-user:hover{background:var(--qt-paper)}
.qt .qt-avatar{width:32px;height:32px;border-radius:999px;background:var(--qt-g700);color:#fff;
  font-weight:700;font-size:13px;display:grid;place-items:center;flex-shrink:0}
.qt .tb-user .nm{font-size:14px;font-weight:700;line-height:1.2;text-align:left}
.qt .tb-user .rl{font-size:12px;color:var(--qt-ink3)}

.qt .page{flex:1;overflow-y:auto;display:flex}
.qt .page-in{padding:24px 26px;flex:1;min-width:0}

.qt .dash-head{display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:20px;gap:16px;flex-wrap:wrap}
.qt .dash-head :is(h1,h2){font-size:20px;font-weight:800;letter-spacing:-.4px}
.qt .dash-head .sub{color:var(--qt-ink3);font-size:14px;margin-top:4px}

.qt .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.qt .kpi{background:var(--qt-white);border:1px solid var(--qt-line);border-radius:var(--qt-rlg);
  padding:18px 20px;box-shadow:var(--qt-sh)}
.qt .kpi .lb{font-size:12px;color:var(--qt-ink3);font-weight:500}
/* TIEN VA SO DEM DUNG INTER, KHONG DUNG MONO. Bo nhan dien noi ro: mono
   danh cho MA DINH DANH; cot tien bang mono rong hon 11% o cung co chu ma
   khong duoc them gi — Inter da co chu so xep thang cot (tabular-nums). */
.qt .kpi .vv{font-size:24px;font-weight:700;letter-spacing:-.02em;margin:9px 0 6px;
  font-family:var(--qt-font);font-variant-numeric:tabular-nums}
.qt .kpi .dl{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--qt-ink3)}
/* Mau so cua mot o KPI dang "N/M" — nho va mo hon tu so, de mat doc con so
   CUA MINH truoc roi moi doc cai tran. Khai thanh lop chu khong go noi dong:
   ratchet `style=` dang ep moi khuon moi ve style.css, va bon o nay dung
   chung dung mot kieu. */
/* Dai KPI nam THANG trong khung `.man` (cac man Dao tao AI) — o do khong co
   `.man-khoi` lo le, nen dai tu chua khoang cach duoi. */
.qt .man .kpi-dai{margin-bottom:var(--kc-4)}
/* O KPI mang con so DANG CHAN viec — to do de mat bat duoc ngay. Chi dung cho
   thu that su phai xu ly (ho so chua noi tai khoan, hop dong sap het han),
   khong dung lam nhan manh chung: to do moi o thi khong o nao noi bat. */
.qt .kpi .vv.vv-do{color:var(--qt-red-chu)}
.qt .kpi .vv-tran{font-size:14px;color:var(--qt-ink3);font-weight:500}
/* O KPI chua CHU (moc thoi gian) chu khong chua so: cung o do nhung chu dai
   hon nen phai nho lai, khong thi no tran ra khoi the. */
.qt .kpi .vv.vv-chu{font-size:18px}

.qt .grid2{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;margin-bottom:16px}
.qt .card{background:var(--qt-white);border:1px solid var(--qt-line);border-radius:var(--qt-rlg);
  box-shadow:var(--qt-sh)}
.qt .card-h{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 4px}
.qt .card-h h3{font-size:14px;font-weight:700}
.qt .card-h a,.qt .card-h span.a{font-size:12px;color:var(--qt-g700-chu);font-weight:600}

.qt .shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:16px 20px 20px}
.qt .sc-item{display:flex;flex-direction:column;align-items:center;gap:9px;padding:12px 4px;
  border-radius:11px;border:0;background:transparent;width:100%}
.qt .sc-item:hover{background:var(--qt-paper)}
.qt .sc-ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center}
.qt .sc-item span{font-size:12px;font-weight:600;color:var(--qt-ink2);text-align:center}

.qt .auto-row{display:flex;align-items:center;gap:14px;padding:13px 20px;
  border-bottom:1px solid var(--qt-line2)}
.qt .auto-row:last-child{border-bottom:none}
.qt .auto-ic{width:38px;height:38px;border-radius:10px;background:var(--qt-g100);
  color:var(--qt-g700-chu);display:grid;place-items:center;flex-shrink:0}
.qt .auto-row .tt{font-size:14px;font-weight:700}
.qt .auto-row .ds{font-size:12px;color:var(--qt-ink3);margin-top:1px}
.qt .run-badge{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;
  font-weight:700;color:var(--qt-g700-chu);background:var(--qt-g100);padding:4px 11px;
  border-radius:999px;flex-shrink:0;white-space:nowrap}
.qt .run-badge .dt{width:6px;height:6px;border-radius:50%;background:var(--qt-g600);
  animation:qtblink 1.6s infinite}
.qt .run-badge.off{color:var(--qt-ink3);background:var(--qt-paper)}
.qt .run-badge.off .dt{background:var(--qt-ink3);animation:none}
@keyframes qtblink{50%{opacity:.3}}

.qt .integ{display:flex;align-items:center;gap:12px;padding:18px 20px;flex-wrap:wrap}
.qt .integ-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--qt-line);
  border-radius:9px;padding:8px 14px;font-weight:600;font-size:14px;color:var(--qt-ink2)}
.qt .integ-dot{width:18px;height:18px;border-radius:5px;display:grid;place-items:center;flex-shrink:0}

.qt .right-rail{width:290px;flex-shrink:0;border-left:1px solid var(--qt-line);
  background:var(--qt-paper);overflow-y:auto;padding:20px 16px}
.qt .rr-card{background:var(--qt-white);border:1px solid var(--qt-line);border-radius:var(--qt-rlg);
  margin-bottom:16px;box-shadow:var(--qt-sh)}
.qt .rr-h{display:flex;align-items:center;justify-content:space-between;padding:15px 16px 2px}
.qt .rr-h h4{font-size:14px;font-weight:700}
.qt .notif{display:flex;gap:10px;padding:10px 16px}
.qt .notif .di{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;
  flex-shrink:0;background:var(--qt-g100);color:var(--qt-g700-chu)}
.qt .notif .tx{font-size:12px;color:var(--qt-ink2);line-height:1.4}
.qt .notif time{display:block;font-size:10px;color:var(--qt-ink3);margin-top:2px}
.qt .rr-empty{padding:16px;font-size:12px;color:var(--qt-ink3);line-height:1.5}

.qt .qt-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 26px;
  border-top:1px solid var(--qt-line);font-size:12px;color:var(--qt-ink3);flex-shrink:0}

.qt .btn{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14px;
  height:34px;padding:0 16px;border-radius:9px;transition:.15s;border:0}
.qt .btn-g{background:var(--qt-g700);color:#fff}
.qt .btn-g:hover{background:var(--qt-g800)}
/* `.qt .man button` (0,2,1) o dong ~460 THANG `.qt .btn` (0,2,0): mot
   `<button class="btn btn-g">` dat trong khung `.man` mat sach nen xanh, bo
   goc va dem, roi tut co chu xuong 13px. Khai lai o (0,3,0) de thang no.
   Dung `height` chu khong `min-height`: khoi dien thoai cuoi tep dat
   `min-height:44px` cho `.qt .man button`, va min-height van thang height. */
.qt .man .btn{height:34px;padding:0 16px;border:0;border-radius:9px;
  font-size:14px;font-weight:700;line-height:1.2}
.qt .man .btn-g{background:var(--qt-g700);color:#fff}
.qt .man .btn-g:hover:not(:disabled){background:var(--qt-g800);border-color:var(--qt-g800)}

/* ================================================================
   Man Hoi thoai (AI Chatbot) — port tu chat.gauux.com.html.
   Xem ManHoiThoai trong app.js. Dung chung .qt/.shell/.sidebar/.topbar/
   .sb-item/.tb-* voi man Tong quan o tren. */
.qt .itool{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;
  color:var(--qt-ink3);border:1px solid var(--qt-line);background:transparent}
.qt .itool:hover{background:var(--qt-paper)}

/* Topbar cao dung 60px — cell phai tu can giua va CAT bang ellipsis, khong
   duoc xuong dong: xuong dong la tran khoi 60px va bi che mat nua duoi
   (loi chu shop bao 09/08/2026). */
.qt .ht-topstrip{display:flex;flex:1;height:100%;overflow:hidden}
.qt .strip-cell{flex:1;padding:0 16px;border-right:1px solid var(--qt-line2);min-width:0;
  display:flex;flex-direction:column;justify-content:center}
.qt .strip-cell:last-child{border-right:none}
.qt .strip-cell .lb{font-size:12px;color:var(--qt-ink3);font-weight:600;display:flex;
  align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qt .strip-cell .lb svg{flex-shrink:0}
.qt .strip-cell .vv{font-size:16px;font-weight:800;margin-top:3px;display:flex;align-items:center;
  gap:8px;font-family:var(--qt-font);font-variant-numeric:tabular-nums;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* O Doanh thu mang mau ho phach nhu ban chot */
.qt .strip-cell.vang .lb,.qt .strip-cell.vang .vv{color:var(--qt-amber-chu)}
.qt .strip-cell .vv small{font-size:12px;font-weight:700;color:var(--qt-g700-chu);background:var(--qt-g100);
  padding:1px 6px;border-radius:5px;font-family:var(--qt-font)}
.qt .strip-status{display:flex;flex-direction:column;justify-content:center;gap:5px}
.qt .strip-status .on{display:flex;align-items:center;gap:7px;font-weight:700;font-size:14px;color:var(--qt-g700-chu)}
.qt .strip-status .on .dt{width:7px;height:7px;border-radius:50%;background:var(--qt-g600);animation:qtblink 1.6s infinite}
.qt .strip-status .off{color:var(--qt-ink3)}
.qt .strip-status .off .dt{background:var(--qt-ink3);animation:none}
.qt .strip-status .sm{font-size:12px;color:var(--qt-ink3)}

.qt .ht-body{display:flex;flex:1;overflow:hidden}
/* 340px theo ban ve, khong phai 308. Do that 29/08/2026: o 308px thi hang
   tieu de can 292px cho 275px co, nen tieu de vo lam hai dong va nut cuoi bi
   cat. 340 la con so ban ve ve, va no vua du cho bon chip loc. */
.qt .ht-list{width:340px;border-right:1px solid var(--qt-line);background:var(--qt-white);
  display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}
.qt .ht-list-h{padding:14px 16px 0}
.qt .ht-list-h .row1{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.qt .ht-list-h h2{font-size:16px;font-weight:800}
.qt .ht-list-h .tools{display:flex;gap:4px}
/* HANG CHIP LOC trong cot danh sach — khuon HangChip dung chung, nhung o day
   no nam trong mot cot HEP nen phai duoc XUONG DONG thay vi cuon ngang: cuon
   ngang trong mot cot 340px la giau mat chip cuoi ma khong ai biet de keo.
   Bo padding ngang cua `.hang-chip` vi `.ht-list-h` da co san. */
.qt .ht-chip .hang-chip{flex-wrap:wrap;padding:0;margin:0 0 10px;overflow:visible}
.qt .ht-chip .gian{display:none}
.qt .ht-list-h .srch2{margin:10px 0}
.qt .pgs2{display:flex;gap:4px;overflow-x:auto;padding-bottom:10px}
.qt .pgpill{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:4px 10px;
  border-radius:999px;background:var(--qt-paper);border:1px solid var(--qt-line);color:var(--qt-ink2);
  white-space:nowrap;height:auto}
.qt .pgpill.on{background:var(--qt-g100);border-color:var(--qt-g100-vien);color:var(--qt-g800-chu)}
.qt .pgpill i{width:14px;height:14px;border-radius:4px;display:grid;place-items:center;flex-shrink:0}
.qt .ht-scroll{flex:1;overflow-y:auto}
.qt .hc{display:flex;gap:10px;padding:11px 16px;border-bottom:1px solid var(--qt-line2);
  cursor:pointer;position:relative;width:100%;text-align:left}
.qt .hc:hover{background:var(--qt-paper)}
.qt .hc.sel{background:var(--qt-g50)}
.qt .hc.sel::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--qt-g600)}
.qt .hc-m{flex:1;min-width:0}
.qt .hc-t{display:flex;justify-content:space-between;gap:8px}
.qt .hc-t b{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qt .hc-t time{font-size:12px;color:var(--qt-ink3);flex-shrink:0}
.qt .hc .pv{font-size:12px;color:var(--qt-ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  margin-top:2px;display:flex;align-items:center;gap:6px}
.qt .hc .unread-dot{width:9px;height:9px;border-radius:50%;background:var(--qt-g600);flex-shrink:0;
  align-self:center}
/* Avatar tron mau tim co dinh (khong dung bang mau ngau nhien nhu ban dac ta,
   don gian hoa cho dot nay) — dung chung cho danh sach, dau khung chat, panel */
.qt .hc-av{width:38px;height:38px;border-radius:50%;flex-shrink:0;position:relative;
  color:#fff;font-weight:700;font-size:12px;display:grid;place-items:center;background:var(--qt-violet)}
/* border-top:none + padding:0 de trung hoa lop .pf CO (theme cu, khong scope,
   dong ~231) — thieu hai dong do la huy hieu nen tang phinh meo tren moi avatar */
.qt .hc-av .pf{position:absolute;bottom:-2px;right:-2px;width:15px;height:15px;border-radius:50%;
  border:2px solid var(--qt-white);border-top:2px solid var(--qt-white);padding:0;
  display:grid;place-items:center;color:#fff;background:#1877F2}
.qt .av2{width:36px;height:36px;border-radius:50%;background:var(--qt-violet);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:12px;flex-shrink:0}

.qt .ht-chat{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--qt-paper);min-width:0}
.qt .hch-head{padding:12px 20px;background:var(--qt-white);border-bottom:1px solid var(--qt-line);
  display:flex;align-items:center;gap:12px}
.qt .hch-head b{font-size:14px;font-weight:700}
.qt .vip{font-size:10px;font-weight:700;background:var(--qt-amber-bg);color:var(--qt-amber-chu);padding:1px 7px;
  border-radius:999px;margin-left:5px}
.qt .hch-head .meta2{font-size:12px;color:var(--qt-ink3);display:flex;align-items:center;gap:8px;margin-top:1px}
.qt .tagpill{background:var(--qt-paper);border:1px solid var(--qt-line);font-size:12px;font-weight:600;
  padding:1px 8px;border-radius:999px;color:var(--qt-ink2)}
.qt .hch-head .acts{margin-left:auto;display:flex;gap:4px}

.qt .hch-scroll{flex:1;overflow-y:auto;padding:20px 24px}
.qt .hmsg-row{display:flex;gap:9px;margin-bottom:14px;max-width:72%}
.qt .hmsg-row.out{margin-left:auto;flex-direction:row-reverse}
.qt .hmsg-row .aiav{width:26px;height:26px;border-radius:8px;background:var(--qt-g700);color:#fff;
  display:grid;place-items:center;flex-shrink:0;margin-top:2px}
.qt .hmsg-row .aiav.nguoi{background:var(--qt-violet)}
.qt .hmsg-col{display:flex;flex-direction:column;gap:3px;min-width:0}
.qt .hmsg-row.out .hmsg-col{align-items:flex-end}
.qt .hname{font-size:12px;font-weight:700;color:var(--qt-g700-chu);margin-bottom:1px}
.qt .hname.nguoi{color:var(--qt-violet-chu)}
.qt .hbub{background:var(--qt-white);border:1px solid var(--qt-line);border-radius:4px 12px 12px 12px;
  padding:10px 13px;font-size:14px;line-height:1.55;white-space:pre-wrap}
.qt .hmsg-row.out .hbub{background:var(--qt-g50);border-color:var(--qt-g100-vien);border-radius:12px 4px 12px 12px}
.qt .htime{font-size:10px;color:var(--qt-ink3);display:flex;align-items:center;gap:4px}
.qt .htime .rd2{color:var(--qt-g600-chu)}
.qt .ngay2{text-align:center;font-size:12px;color:var(--qt-ink3);font-weight:600;margin:6px 0 14px}

.qt .quick-acts{display:flex;gap:7px;flex-wrap:wrap;padding:0 24px 12px}
.qt .qa{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 12px;
  border-radius:999px;border:1px solid;background:transparent}
.qt .qa-g{background:var(--qt-g100);color:var(--qt-g800-chu);border-color:var(--qt-g100-vien)}
.qt .qa-w{background:var(--qt-white);color:var(--qt-ink2);border-color:var(--qt-line)}
.qt .qa:disabled{opacity:.4;cursor:default}

.qt .hch-input{background:var(--qt-white);border-top:1px solid var(--qt-line);padding:12px 24px}
.qt .hinp-row{display:flex;align-items:center;gap:8px;border:1px solid var(--qt-line);border-radius:10px;
  padding:6px 8px 6px 14px}
.qt .hinp-row input{flex:1;border:0;outline:none;background:transparent;width:auto;height:auto;padding:0}
.qt .hinp-row .send{width:32px;height:32px;background:var(--qt-g700);color:#fff;border-radius:8px;
  display:grid;place-items:center;flex-shrink:0}
.qt .hinp-row .send:disabled{opacity:.5}
.qt .hinp-foot{display:flex;justify-content:space-between;font-size:12px;color:var(--qt-ink3);
  margin-top:6px;padding:0 4px}

.qt .insight{background:var(--qt-white);border-top:1px solid var(--qt-line);padding:14px 24px}
.qt .insight-h{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;
  font-weight:700;color:var(--qt-g700-chu);margin-bottom:12px}
.qt .insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:900px;margin:0 auto}
.qt .ins-item{display:flex;gap:10px}
.qt .ins-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}
/* display/width/padding/border/background o day de TRUNG HOA lop .tt CO
   (theme cu, khong scope, ~dong 1013: flex + width:100% + vien + nen) —
   thieu la tieu de insight thanh mot cai pill full-width va gia tri bi day
   xuong dong (chu shop bao 09/08/2026). */
.qt .ins-item .tt{display:block;width:auto;padding:0;border:none;background:none;
  cursor:default;font-size:12px;color:var(--qt-ink3);font-weight:600}
.qt .ins-item .dd{font-size:14px;font-weight:700;margin-top:1px}

.qt .ht-detail{width:300px;border-left:1px solid var(--qt-line);background:var(--qt-white);
  overflow-y:auto;flex-shrink:0}
.qt .det-tabs{display:flex;border-bottom:1px solid var(--qt-line)}
.qt .det-tabs button{flex:1;padding:12px 0;font-size:12px;font-weight:700;color:var(--qt-ink3);
  border-bottom:2px solid transparent;justify-content:center}
.qt .det-tabs button.on{color:var(--qt-g700-chu);border-color:var(--qt-g700)}
.qt .det-pad{padding:18px 16px}
.qt .cust-card{text-align:center;padding-bottom:16px;border-bottom:1px solid var(--qt-line2);margin-bottom:16px}
.qt .cust-av{width:58px;height:58px;border-radius:50%;background:var(--qt-violet);color:#fff;display:grid;
  place-items:center;font-weight:700;font-size:18px;margin:0 auto 10px}
.qt .cust-card b{font-size:14px;font-weight:800}
.qt .info-row{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--qt-ink2);padding:6px 0}
/* TEN LOP LA `stat3` NHUNG SO COT KHONG CON KHOA O BA. Tu 29/08/2026 mot so
   dai co bon o (bao cao khach hang) — de `1fr 1fr 1fr` thi o thu tu roi xuong
   hang rieng, chiem ca chieu ngang va trong nhu mot khoi khac.
   Giu ten lop vi 10 cho dang goi; doi ten la 10 co hoi quen mot cho. */
.qt .stat3{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;text-align:center;
  margin:12px 0;padding:12px 0;border-top:1px solid var(--qt-line2);border-bottom:1px solid var(--qt-line2)}
.qt .stat3 .v{font-size:16px;font-weight:800;color:var(--qt-ink)}
.qt .stat3 .l{font-size:10px;color:var(--qt-ink3);margin-top:2px}
.qt .info-row svg{color:var(--qt-ink3)}
.qt .sec-lb{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;
  margin:16px 0 10px}
.qt .sec-lb a,.qt .sec-lb span.a{font-size:12px;color:var(--qt-g700-chu);font-weight:600}
.qt .cart-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--qt-line2)}
.qt .cart-thumb{width:36px;height:36px;border-radius:8px;background:var(--qt-g100);flex-shrink:0}
.qt .cart-item .nm{font-size:12px;font-weight:600}
.qt .cart-item .pr{font-size:12px;color:var(--qt-ink3);margin-top:1px}
.qt .qty{display:flex;align-items:center;gap:7px;margin-left:auto}
.qt .qty button{width:20px;height:20px;border:1px solid var(--qt-line);border-radius:5px;
  display:grid;place-items:center;font-size:12px;justify-content:center}
.qt .qty b{font-size:12px;min-width:12px;text-align:center}
.qt .sumrow{display:flex;justify-content:space-between;font-size:12px;color:var(--qt-ink2);padding:5px 0}
.qt .sumrow.total{font-weight:800;font-size:14px;color:var(--qt-ink);border-top:1px solid var(--qt-line);
  margin-top:6px;padding-top:10px}
.qt .sumrow.total .n{color:var(--qt-g700-chu)}
.qt .btnfull{width:100%;background:var(--qt-g700);color:#fff;font-weight:700;padding:11px 0;
  border-radius:9px;margin-top:12px;font-size:14px;justify-content:center}
.qt .btnfull:disabled{opacity:.5}
.qt .channels{display:flex;align-items:center;gap:8px;margin-top:12px}
.qt .ch-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#fff}
.qt .rr-empty2{font-size:12px;color:var(--qt-ink3);line-height:1.6;padding:8px 0}

/* ================================================================
   Man Cai dat — khung kit cai-dat.html: thanh muc trai + pane phai */
.qt .set-card{background:var(--qt-white);border:1px solid var(--qt-line);border-radius:var(--qt-rlg);
  box-shadow:var(--qt-sh);padding:20px 22px;margin-bottom:14px}
.qt .set-card h3{font-size:16px;font-weight:700;letter-spacing:-.2px;margin-bottom:4px}
.qt .set-card .mo{font-size:14px;color:var(--qt-ink3);margin-bottom:14px;line-height:1.55}
/* `display:inline` la BAT BUOC. `.qt button{display:flex}` (0,1,1) reset moi nut
   trong khung ERP, ma `.qt .lk` (0,2,0) truoc day KHONG khai display nen luat kia
   thang — moi link nam giua mot doan van bi day xuong dong rieng, va cau chu vo
   lam doi. Loi CO SAN, do bang trinh duyet 17/08/2026: ngay man Tong quan (man
   mo nhieu nhat) da co 3 link hong. Khong test nao bat duoc, chi thay khi chup man.
   Da kiem: khong `.lk` nao chua icon, nen inline khong lam vo cai gi. */
.qt .lk{color:var(--qt-g700-chu);font-weight:600;cursor:pointer;font-size:inherit;display:inline}
.qt .lk:hover{text-decoration:underline}
.qt .btn-nhat{border:1px solid var(--qt-line);background:var(--qt-white);color:var(--qt-ink2);
  padding:0 14px;font-weight:600}
.qt .btn-nhat:hover{border-color:var(--qt-ink3)}
.qt .man .btn-nhat{border:1px solid var(--qt-line);background:var(--qt-white);
  color:var(--qt-ink2);padding:0 14px;font-weight:600}
.qt .kenh-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--qt-line2)}
.qt .kenh-row img{width:38px;height:38px;border-radius:10px;flex-shrink:0}
.qt .kenh-row .ka{width:38px;height:38px;border-radius:10px;flex-shrink:0;
  background:var(--qt-g100);color:var(--qt-g800-chu);display:grid;place-items:center;font-weight:700}
.qt .kenh-row .ki{flex:1;min-width:0}
.qt .kenh-row .ki b{display:block;font-size:14px}
.qt .kenh-row .ki small{font-family:var(--qt-mono);font-size:12px;color:var(--qt-ink3)}
.qt .chip-tt{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;flex-shrink:0}
.qt .chip-tt.bat{background:var(--qt-g100);color:var(--qt-g700-chu)}
.qt .chip-tt.tat{background:var(--qt-paper);color:var(--qt-ink3)}
.qt .chip-tt.hong{background:var(--qt-red-bg);color:var(--qt-red-chu)}
/* Sap het KHAC het: mot cai la con ban duoc nhung phai nhap, cai kia la da
   dung ban. Hai mau khac nhau, khong gop lam mot sac do. */
.qt .chip-tt.cho{background:var(--qt-amber-bg);color:var(--qt-amber-chu)}
.qt .set-form{display:flex;gap:8px;flex-wrap:wrap}
.qt .set-form input,.qt .set-form select{height:36px;padding:0 11px;border:1px solid var(--qt-line);
  border-radius:8px;font:inherit;font-size:14px;color:var(--qt-ink);background:var(--qt-white)}
.qt .set-form input{flex:1;min-width:200px}
/* MOT quang tieu diem cho ca ung dung. Truoc 28/08/2026 cho nay dung
   `--qt-g100` con luat chung dung `--cam-mo` — hai quang khac nhau cho cung mot
   trang thai, ma o nhap dang `outline:none` nen quang la tin hieu DUY NHAT. */
.qt .set-form input:focus,.qt .set-form textarea:focus,.qt .set-form select:focus{
  outline:none;border-color:var(--nhan-nut);box-shadow:0 0 0 3px var(--cam-mo)}
.qt .nv-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--qt-line2);font-size:14px}
.qt .nv-row .av2{flex-shrink:0}
.qt .nv-row .nv-t{flex:1;min-width:0}
.qt .nv-row .nv-t b{display:block;font-size:14px}
.qt .nv-row .nv-t small{color:var(--qt-ink3);font-size:12px}
.qt .link-mot-lan{background:var(--qt-amber-bg);border-left:3px solid var(--qt-amber);
  border-radius:10px;padding:13px 14px;margin-top:12px;font-size:14px}
.qt .link-mot-lan b{display:block;margin-bottom:4px}
.qt .link-mot-lan p{color:var(--qt-ink2);font-size:12px;margin-bottom:9px}
.qt .link-mot-lan .lo{display:flex;gap:8px}
.qt .link-mot-lan input{flex:1;height:34px;padding:0 10px;border:1px solid var(--qt-line);
  border-radius:7px;font-family:var(--qt-mono);font-size:12px;background:var(--qt-white)}
.qt .chua-ds{margin:0;padding-left:20px}
.qt .chua-ds li{font-size:14px;color:var(--qt-ink2);line-height:1.6;margin-bottom:6px}

/* Xem truoc 4 tang re-chat (PaneReChat) — moi tang mot khoi, moi bubble mot
   dong bo goc nhu ben hop thu, nhung day chi la XEM: mau that nam trong code */
.qt .rc-tang{border-top:1px solid var(--qt-line2);padding:12px 0 4px}
.qt .rc-dau{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.qt .rc-dau b{font-size:14px}
.qt .rc-dau .mo{font-size:12px;color:var(--qt-ink3)}
.qt .rc-bb{background:var(--qt-g50);border:1px solid var(--qt-line2);border-radius:10px;
  padding:8px 12px;margin:0 0 6px;font-size:14px;line-height:1.55;max-width:520px;
  white-space:pre-wrap;color:var(--qt-ink)}
/* `--qt-ink3` la mau chu phu tren NEN TRANG. O day no nam tren `--qt-g50` —
   mot lop xanh nhat — nen chi con 4,42:1, truot AA dung 0,08. Cung ho loi da
   ghi o `--muted-2` cua kit.css ("chu phu tren NEN CO MAU khong con du du") va
   o `.dt-nho` sua 28/08. Dam len mot bac; dong nay la chu thich anh trong ban
   xem truoc re-chat, tuc thu chu shop doc de biet AI se gui gi cho khach. */
.qt .rc-bb i{color:var(--qt-ink2);font-style:normal}

/* bang ton kho POS (Cai dat › Kho hang) — so that doc thang tu Pancake */
.qt .pos-bang{width:100%;border-collapse:collapse;font-size:14px}
.qt .pos-bang th{text-align:left;padding:8px 10px;font-size:12px;font-weight:600;
  color:var(--qt-ink3);
  border-bottom:1px solid var(--qt-line)}
.qt .pos-bang td{padding:9px 10px;border-bottom:1px solid var(--qt-line);color:var(--qt-ink)}
.qt .pos-bang tr:last-child td{border-bottom:none}
.qt .pos-bang td:nth-child(3),.qt .pos-bang td:nth-child(4),
.qt .pos-bang th:nth-child(3),.qt .pos-bang th:nth-child(4){text-align:right}
.qt .mono-nho{font-family:var(--qt-mono);font-size:12px;color:var(--qt-ink3);
  font-variant-numeric:tabular-nums slashed-zero}
.qt .het{color:var(--qt-red-chu);font-weight:600}
/* `.qt .hstable td` (0,2,1) THANG `.qt .het` (0,2,0) — o so 0 hien mau chu
   thuong chu khong do. Bay do dac hieu lan thu sau; phai neo ca `td`. */
.qt .hstable td.het{color:var(--qt-red-chu);font-weight:600}

.qt .cuon-ngang{overflow-x:auto}
.qt .dc-ngan-r{max-width:340px}
.qt .dc-ngan{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--qt-ink2);font-size:12px}

/* ==== khung man danh sach hs-* — port tu design/ui-kit/don-hang.html =======
   Dung chung cho Don hang, Khach hang: rail "danh sach da luu" ben trai,
   obj-tabs, toolbar, bang sticky header, footer phan trang. Mau chi lay tu
   token --qt-*, khong hex — test giao-dien khoa. */
/* MOT KHUON DIEU HUONG TRONG MO-DUN cho MOI man, ca desktop lan dien thoai:
   TAB NGANG tren dau (17/08/2026, chu shop: "quang cao 1 kieu, don hang 1
   kieu" — truoc do chi ho Marketing duoc doi sang tab ngang, cac ho khac van
   rail doc 220px, tuc HAI he dieu huong trong mot app). Dien thoai da dung
   khuon nay tu 16/08; desktop theo cung khuon — mot pattern, hoc mot lan.
   Loi kem theo: bang rong them 220px o moi man co rail. */
.qt .hs-shell{display:flex;flex-direction:column;flex:1;overflow:hidden}
/* HANG TAB NGANG GACH DUOI (`.tabs`/`.tab` cua ban thiet ke, 27/08/2026).
   Truoc do day la mot day CHIP bo tron — sai hinh thuc so voi ban thiet ke o
   ca 62 man, va no lam cap dieu huong nay trong giong bo LOC hon la dieu huong.
   Gio hai cap (`.hs-views` mo-dun va `.obj-tabs` trong man) dung chung mot
   ngon ngu: gach duoi 2px mau thuong hieu. */
.qt .hs-views{width:100%;display:flex;flex-direction:row;align-items:stretch;gap:20px;
  background:var(--qt-white);border-bottom:1px solid var(--qt-line);
  flex-shrink:0;overflow-x:auto;overflow-y:hidden;padding:0 20px;
  scrollbar-width:none}
.qt .hs-views::-webkit-scrollbar{display:none}
/* Cung ly do voi `.sb-khu`: neutral-400 tren nen trang la 2,56:1, truot AA. */
.qt .hs-views .rail-nhan{font-size:12px;font-weight:700;color:var(--qt-ink3);
  padding:13px 0 10px;margin:0;white-space:nowrap;flex-shrink:0;display:flex;align-items:center}
.qt .hs-view-item{display:flex;align-items:center;gap:8px;width:auto;flex-shrink:0;
  white-space:nowrap;padding:13px 0 10px;border-radius:0;border:0;
  border-bottom:2px solid transparent;background:transparent;
  font-size:13px;font-weight:600;color:var(--qt-ink3)}
.qt .hs-view-item:hover{color:var(--qt-ink)}
.qt .hs-view-item.on{background:transparent;color:var(--qt-ink);font-weight:700;
  border-bottom-color:var(--qt-g700)}
/* So dem ben trong chip DANG CHON nam tren nen xanh nhat — --qt-ink3 chi con
   4,07:1 o do. --qt-ink2 dat 6,49:1. */
.qt .hs-view-item.on .n{color:var(--qt-ink2)}
.qt .hs-view-item .n{margin-left:auto;font-size:12px;color:var(--qt-ink3)}
.qt .hs-view-item:disabled{cursor:default;opacity:.55}
.qt .hs-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--qt-white)}
.qt .obj-tabs{display:flex;align-items:center;gap:20px;background:var(--qt-white);
  border-bottom:1px solid var(--qt-line);padding:0 20px}
.qt .obj-tab{display:flex;align-items:center;gap:7px;padding:13px 0 10px;font-size:13px;
  font-weight:600;color:var(--qt-ink3);border:none;background:none;font-family:inherit;
  border-bottom:2px solid transparent;cursor:pointer}
.qt .obj-tab.on{color:var(--qt-ink);font-weight:700;border-bottom-color:var(--qt-g700)}
.qt .obj-tab .n2{font-size:12px;color:var(--qt-ink3);font-weight:500}
/* TIEU DE MAN trong dai .obj-tabs — KHONG phai mot tab.
   Do that 29/08/2026: 11/12 khoi .obj-tabs trong app chua dung MOT nut, luon
   mang lop "on", khong gan onClick nao. Do la TIEU DE cua man duoc to cho
   giong mot tab bam duoc — mot nut bam vao khong xay ra gi, dung ho lop lua
   nguoi doc man hinh (no doc ra "nut, Van don"), va lam bo doi chieu ban ve
   dem nham no thanh hang chip loc.
   Nay no la <h2>: dai mau giu nguyen, chi bo cai ve ngoai bam duoc.
   Co dai/mau lay tu .obj-tab de hai kieu nam canh nhau khong lech. */
.qt h2.obj-tieu{display:flex;align-items:center;gap:7px;padding:13px 0 10px;
  font-size:13px;font-weight:700;color:var(--qt-ink);margin:0;line-height:1.2;
  border-bottom:2px solid var(--qt-g700)}
.qt h2.obj-tieu .n2{font-size:12px;color:var(--qt-ink3);font-weight:500}
.qt .hs-toolbar{display:flex;align-items:center;gap:8px;padding:12px 20px;
  background:var(--qt-white);border-bottom:1px solid var(--qt-line);flex-wrap:wrap}
.qt .hs-toolbar .search{display:flex;align-items:center;gap:7px;flex:1;max-width:280px;
  height:34px;padding:0 10px;border:1px solid var(--qt-line);border-radius:8px;
  background:var(--qt-white);color:var(--qt-ink3)}
.qt .hs-toolbar .search input{border:none;outline:none;flex:1;font-size:14px;
  background:transparent;font-family:inherit;color:var(--qt-ink)}
.qt .hbtn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;
  border:1px solid var(--qt-line);background:var(--qt-white);font-size:12px;font-weight:600;
  color:var(--qt-ink2);cursor:pointer;font-family:inherit}
.qt .hbtn:hover{border-color:var(--qt-ink3)}
.qt .hbtn:disabled{opacity:.6;cursor:default}
.qt .hbtn-primary{background:var(--qt-g700);color:var(--qt-tren-xanh);border-color:var(--qt-g700)}
.qt .hbtn-primary:hover{background:var(--qt-g800)}
.qt .hs-body{flex:1;overflow:auto;background:var(--qt-white)}
.qt .hstable{width:100%;border-collapse:collapse;font-size:12px}
.qt .hstable th{position:sticky;top:0;background:var(--qt-paper);border-bottom:1px solid var(--qt-line);
  border-right:1px solid var(--qt-line2);padding:9px 12px;text-align:left;font-weight:600;
  color:var(--qt-ink2);white-space:nowrap;z-index:2}
.qt .hstable td{border-bottom:1px solid var(--qt-line2);border-right:1px solid var(--qt-line2);
  padding:10px 12px;white-space:nowrap;color:var(--qt-ink2)}
.qt .hstable tbody tr:hover{background:var(--qt-g50)}
.qt .hs-name{display:inline-flex;align-items:center;gap:9px;font-weight:600;color:var(--qt-g700-chu);
  cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;padding:0}
.qt .hs-name:hover{text-decoration:underline}
/* Huy hieu trang thai: MOT ho duy nhat, bo tron vien thuoc. Truoc do app co ba
   ho khac nhau (bo 5px / 999px / khong bo) cho cung mot loai nhan. */
.qt .stage-pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;
  padding:2px 8px;border-radius:999px}
.qt .stage-lead{background:var(--qt-blue-bg);color:var(--qt-blue-chu)}
.qt .stage-sql{background:var(--qt-amber-bg);color:var(--qt-amber-chu)}
.qt .stage-cust{background:var(--qt-g100);color:var(--qt-g700-chu)}
.qt .stage-churn{background:var(--qt-red-bg);color:var(--qt-red-chu)}
.qt .stage-gray{background:var(--qt-paper);color:var(--qt-ink3)}
.qt .chn-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;
  color:var(--qt-ink2)}
.qt .chn-dot{width:7px;height:7px;border-radius:2px;flex-shrink:0}
.qt .hs-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;
  border-top:1px solid var(--qt-line);background:var(--qt-white);font-size:12px;color:var(--qt-ink3)}
.qt .hs-footer .lo{display:flex;gap:8px;align-items:center}

/* ==== CAU NOI KIT cho man cu nam trong .set-page =========================
   Dao tao AI / Khieu nai van la component cu day logic — khong viet lai;
   lop nay keo cac lop DUNG CHUNG cua chung (man, man-in, sect, h1, blkd)
   ve ngon ngu kit de moi trang con cung mot kieu. Nut/o nhap da xanh theo
   token --nhan-nut trong thuong-hieu.css. */
.qt .set-page .man{background:transparent;overflow:visible}
.qt .set-page .man-in{max-width:920px;margin:0;padding:0;font-family:var(--qt-font)}
.qt .set-page .man-in h1{font-family:var(--qt-font);font-size:20px;font-weight:800;
  letter-spacing:-.3px;color:var(--qt-ink)}
.qt .set-page .man-d{color:var(--qt-ink3);font-size:14px}
.qt .set-page .man-rong{max-width:none;padding:0}
.qt .set-page .sect{font-family:var(--qt-font);color:var(--qt-ink3);
  border-bottom:1px solid var(--qt-line)}
.qt .set-page .blkd{background:var(--qt-red-bg);border-left-color:var(--qt-red-chu);
  color:var(--qt-ink)}

/* cai dat — set-page theo design/ui-kit/cai-dat.html (rail dung hs-views) */
.qt .set-page{flex:1;overflow-y:auto;padding:24px 28px;background:var(--qt-paper)}
.qt .set-page > :is(h1,h2){font-size:20px;font-weight:800;letter-spacing:-.3px}
.qt .set-page > .sub{color:var(--qt-ink3);font-size:14px;margin:4px 0 18px}

/* bao cao — thu vien bao cao (report-grid) theo kit bao-cao.html */
.qt .report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.qt .report-card{background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:var(--qt-rlg);padding:20px;box-shadow:var(--qt-sh);text-align:left}
.qt .report-card.mo-duoc{cursor:pointer;transition:box-shadow .18s,transform .18s}
.qt .report-card.mo-duoc:hover{transform:translateY(-2px);box-shadow:var(--qt-sh-lg)}
.qt .report-card.chua{opacity:.6}
.qt .rc-ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;margin-bottom:14px}
.qt .report-card b{font-size:14px;font-weight:700;display:block;margin-bottom:5px}
.qt .report-card span{font-size:12px;color:var(--qt-ink3);line-height:1.5;display:block;margin-bottom:12px}
.qt .report-card .di{font-size:12px;font-weight:700;color:var(--qt-g700-chu)}

/* okr — bo cuc the muc tieu theo kit okr-kpi.html. The "vi-du" la BAN MAU
   bo cuc de nguoi dung hinh dung, mo + gan nhan ro, khong mang so nao. */
.qt .okr-quarter{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.qt .okr-quarter button{padding:7px 14px;border-radius:8px;font-size:12px;font-weight:600;
  color:var(--qt-ink2);border:1px solid var(--qt-line);background:var(--qt-white)}
.qt .okr-quarter button.on{background:var(--qt-ink);color:var(--qt-white);border-color:var(--qt-ink)}
.qt .okr-quarter button:disabled{cursor:default;opacity:.7}
.qt .okr-card{background:var(--qt-white);border:1px solid var(--qt-line);border-radius:14px;
  padding:20px 22px;margin-bottom:14px;box-shadow:var(--qt-sh);max-width:980px}
.qt .okr-card.vi-du{border-style:dashed;opacity:.75}
.qt .okr-top{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.qt .okr-ring{width:40px;height:40px;flex-shrink:0}
.qt .okr-title{flex:1;min-width:0}
.qt .okr-title b{font-size:14px;font-weight:700;display:block}
.qt .okr-title span{font-size:12px;color:var(--qt-ink3)}
.qt .okr-pct{font-size:18px;font-weight:800;color:var(--qt-ink3)}
.qt .kr-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--qt-line2)}
.qt .kr-row .kr-txt{flex:1;font-size:14px;color:var(--qt-ink2)}
.qt .kr-row .kr-bar{width:120px;height:6px;background:var(--qt-paper);border-radius:3px;
  overflow:hidden;flex-shrink:0}
.qt .kr-row .kr-bar i{display:block;height:100%;background:var(--qt-g600)}
.qt .kr-row .kr-val{font-size:12px;font-weight:600;color:var(--qt-ink2);width:70px;
  text-align:right;flex-shrink:0}
.qt .nhan-vi-du{display:inline-block;font-size:10px;font-weight:800;color:var(--qt-ink3);border:1px dashed var(--qt-line);
  border-radius:5px;padding:2px 8px;margin-bottom:10px}

/* bao cao — bc-page + bieu do cot thuan CSS theo kit */
.qt .bc-page{padding:24px 28px;overflow-y:auto;flex:1;background:var(--qt-paper)}
.qt .bc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;
  gap:16px;flex-wrap:wrap}
.qt .bc-head :is(h1,h2){font-size:20px;font-weight:800;letter-spacing:-.4px}
.qt .bc-head .sub{color:var(--qt-ink3);font-size:14px;margin-top:4px}
/* 11/08/2026: bo align-items:flex-end tren .bc-bars — no lam .bc-col khong
   stretch nua, .bc-bar height:100% cua auto = 0, va MOI bieu do cot (doanh
   thu, khach, AI) deu chi con mot mau xanh ti hon duoi day. Cot phai cao het
   180px roi .fl do day tu day len theo %. */
.qt .bc-bars{display:flex;gap:10px;height:180px;padding:6px 4px 0}
.qt .bc-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;height:100%}
.qt .bc-bar{width:100%;max-width:34px;flex:1;min-height:0;background:var(--qt-g100);
  border-radius:6px 6px 0 0;display:flex;align-items:flex-end;overflow:hidden}
/* .fl trung ten voi thanh bo loc CU (khong scope, dong ~191): padding va
   border-bottom cua no ro vao day — trung hoa het, chi giu mau cot */
.qt .bc-bar .fl{width:100%;background:var(--qt-g600);display:block;padding:0;border-bottom:0;overflow:visible}
.qt .bc-col span{font-size:10px;color:var(--qt-ink3);font-variant-numeric:tabular-nums}
.qt .csub{color:var(--qt-ink3);font-size:12px;margin:2px 0 12px}

/* empty-state dung chung (muc 7 GAUUX-UI-SPEC) — man module chua noi backend
   dung cai nay, khong bay so mau gia lam that */
.qt .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:56px 24px}
.qt .empty-state .es-ic{width:52px;height:52px;border-radius:14px;background:var(--qt-paper);
  border:1px solid var(--qt-line);color:var(--qt-ink3);display:grid;place-items:center;
  margin-bottom:16px}
.qt .empty-state b{font-size:14px;font-weight:700;color:var(--qt-ink)}
.qt .empty-state span{font-size:12px;color:var(--qt-ink3);margin-top:5px;max-width:320px;
  line-height:1.5}

/* Man rong: cot phai luon canh khung chat, khong can nut mo lan nut dong.
   BA LUAT NAY PHAI DUNG TRUOC media query duoi day. Cung do dac hieu thi luat
   viet SAU thang — dat chung o cuoi file la nut mo khong bao gio hien, va o
   1366px lai khong co duong nao vao cot phai, tuc y nguyen loi dang chua.
   Do bang trinh duyet moi thay: `display=none, rong=0`. Cung bai hoc `.hch-lui`
   da ghi trong CLAUDE.md — va em vua mac lai dung o day. */
.qt .hch-phai{display:none}
.qt .det-dong{display:none}
.qt .ht-nen{display:none}

/* MAN HEP (901-1400px): cot phai khong bi XOA, no thanh mot tam truot ra.
   Truoc 25/08/2026 cho nay la `display:none` va khong co duong nao khac — tuc
   laptop 1366px hoac cua so khong full man la khong tao don duoc, khong gan
   nhan duoc, va khong co gi bao la co thu do ton tai. Do la thu chan dung, chu
   khong phai chuyen chat hep. */
@media(max-width:1400px){
  .qt .ht-detail{position:absolute;top:0;right:0;bottom:0;z-index:40;
    width:340px;max-width:calc(100vw - 40px);box-shadow:-8px 0 24px rgba(0,0,0,.12);
    transform:translateX(100%);transition:transform .18s ease}
  .qt .ht-detail[data-mo="1"]{transform:translateX(0)}
  .qt .ht-body{position:relative}
  .qt .ht-nen{position:absolute;inset:0;z-index:39;background:rgba(15,23,42,.25)}
  .qt .hch-phai{display:grid}
  .qt .det-dong{display:grid}
  .qt .ht-nen{display:block}
  /* Nut tro ly noi nam fixed goc phai duoi, dung cho tam truot vua mo ra —
     no de len phan cuoi cot phai (nut "Tao don hang" chinh la o do). Cung ho
     loi "nut Gui bi nut tro ly de len" da ghi trong CLAUDE.md. An di khi tam
     dang mo; dong lai la hien tro lai, va tro ly van vao duoc tu menu. */
  .qt .ht-body:has(.ht-detail[data-mo="1"]) ~ * .tl-nut,
  body:has(.ht-detail[data-mo="1"]) .tl-nut{display:none}
}

@media(max-width:1024px){.qt .grid2{grid-template-columns:1fr}.qt .grid4{grid-template-columns:repeat(2,1fr)}}
/* 900px LA NGUONG DIEN THOAI CUA CA HE — mot so duy nhat, dung cho ca style.css
   lan kit.css. Doi o day thi phai doi ban mau (public/giaodien.html +
   design/gauux-ai-team.html) roi chay lai `node scripts/xuat-kit-giaodien.js`.

   Vi sao phai noi ra: day la NUA VO cua cong tac (an sidebar, hien thanh tab
   duoi). NUA NOI DUNG — luoi gap lai mot cot, boc cuon ngang cho bang, vung bam
   44px — nam trong kit.css, sinh ra tu ban mau. Toi 28/08/2026 nua do cat o
   820px, nen 821-900px la mot khe khong ai thiet ke cho no: vo da la dien thoai
   ma noi dung van la may tinh. iPad Air / Pro 11" doc = 834px, roi dung giua khe.
   Ly do chon 900 chu khong phai 820: xem khoi NGUONG CHUNG o dau kit.css. */
@media(max-width:900px){.qt .sidebar{display:none}.qt .right-rail{display:none}}
@media(max-width:640px){.qt .grid4{grid-template-columns:1fr}}

.trang-the{display:flex;align-items:center;gap:11px;padding:12px;
  border:1px solid var(--ln);border-radius:12px;margin-bottom:8px;background:var(--p1)}
.trang-the.tat{opacity:.55}
.trang-i{width:30px;height:30px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center}
.trang-the .nm{flex:1;min-width:0;font-size:16px;font-weight:500}
.trang-the .nm small{display:block;color:var(--t2);font-size:14px;font-weight:400}

.moi-hang{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.moi-hang input{flex:1;min-width:180px}
.moi-hang select{width:auto;min-width:110px}

.link-moi{background:var(--aid);border:1px solid var(--aib);border-radius:12px;
  padding:14px;margin-bottom:16px}
.link-moi b{display:block;font-size:16px;margin-bottom:4px;color:var(--t0)}
.link-moi p{font-size:14px;color:var(--t1);margin-bottom:10px;line-height:1.5}
.link-o{display:flex;gap:7px}
.link-o input{flex:1;font-size:14px}

.av-nv{width:30px;height:30px;border-radius:50%;flex-shrink:0;background:var(--p3);
  color:var(--t1);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-so);font-weight:700;font-size:14px}

/* ---------------- man chon trang: buoc huong dan ---------------- */
.man-hep{max-width:520px}

.chon-tat{margin-bottom:12px;font-size:14px;border-style:dashed}

.tt-ds{display:flex;flex-direction:column;gap:8px}

/* The trang: anh 44px, ten, trang thai, o tich. Bam ca the chu khong chi o tich —
   vung bam lon thi it truot tay hon, nhat la tren dien thoai. */
.tt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:11px 13px;border:1px solid var(--ln);border-radius:12px;background:var(--p1);
  cursor:pointer;transition:.12s}
.tt:hover:not(:disabled){border-color:var(--ln2);background:var(--p2)}
.tt.on{border-color:var(--orange);background:var(--cam-mo);box-shadow:0 0 0 1px var(--orange)}
.tt:disabled{cursor:default}
.tt.xong{opacity:.6}
.tt.tinh{cursor:default}
.tt.tat{opacity:.5}

.tt-a{width:44px;height:44px;border-radius:12px;flex-shrink:0;object-fit:cover;display:block;
  background:var(--p3)}
.tt-a-trong{display:flex;align-items:center;justify-content:center;
  font-family:var(--font-tieu-de);font-weight:700;font-size:18px;color:var(--t2)}

.tt-i{flex:1;min-width:0}
.tt-i b{display:block;font-size:16px;font-weight:600;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tt-i small{display:block;font-size:14px;color:var(--t2);margin-top:2px}

.tt-ck{width:22px;height:22px;border-radius:8px;flex-shrink:0;border:1.5px solid var(--ln2);
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;
  color:transparent;transition:.12s}
.tt.on .tt-ck{background:var(--orange);border-color:var(--orange);color:var(--tren-cam)}
.tt-ck.xong{background:var(--aqua);border-color:var(--aqua);color:var(--tren-cam)}

/* Thanh hanh dong dinh day — nut chinh luon trong tam mat, khong phai cuon tim */
.man-day{position:sticky;bottom:0;background:var(--p1);border-top:1px solid var(--ln);
  flex-shrink:0;box-shadow:0 -8px 24px -12px rgba(0,0,0,.25)}
.man-day-in{max-width:520px;margin:0 auto;padding:13px 28px;
  display:flex;align-items:center;gap:9px}
.man-day-t{flex:1;font-size:14px;color:var(--t1)}

.nut-lk{display:inline-flex;align-items:center;padding:8px 16px;border-radius:var(--r);
  background:var(--orange);color:var(--tren-cam);font-weight:600;font-size:14px;
  text-decoration:none}

/* ---------------- khung chat ---------------- */
.chh-av{width:38px;height:38px;border-radius:50%;flex-shrink:0;background:var(--p3);color:var(--t1);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-so);font-weight:700;font-size:14px;position:relative}

.win.low{color:var(--amtx);background:var(--amd);border-color:transparent}

/* Nhan ngay: duong ke mo co chu o giua */
.ngay{text-align:center;font-size:14px;color:var(--t2);margin:14px 0 10px;position:relative}
.ngay::before{content:none}
.ngay span{background:var(--p1);border:1px solid var(--ln);border-radius:16px;
  padding:2px 12px;position:relative;font-size:12px}

/* Cum tin: nhieu bong bong lien tiep cua cung nguoi, chi mot moc gio o cuoi.
   Bo goc 6px chu khong 16px — bo goc lon nhin nhu ung dung nhan tin ca nhan;
   day la cong cu lam viec, va bo goc nho cho phep bong bong xep sat nhau hon. */
.cum{display:flex;gap:8px;margin-bottom:9px;align-items:flex-end}
.cum.k{justify-content:flex-start}
.cum.s{justify-content:flex-end}
.cum-av{width:32px;height:32px;border-radius:50%;flex-shrink:0;background:var(--p1);color:var(--t1);
  display:flex;align-items:center;justify-content:center;border:1px solid var(--ln);
  font-family:var(--font-so);font-weight:700;font-size:12px;margin-bottom:2px;position:relative}
.cum-bb{max-width:62%;display:flex;flex-direction:column;gap:2px;min-width:0}
.cum.s .cum-bb{align-items:flex-end}

.bb{padding:7px 11px;border-radius:8px;font-size:16px;line-height:1.42;white-space:pre-wrap;
  word-break:break-word;width:fit-content;max-width:100%}
/* Khach gui: trang tren nen am */
.k .bb{background:var(--bb-khach);color:var(--bb-khach-chu);border:1px solid var(--bb-khach-vien)}
/* AI gui: nen ngoc NHAT — chiem phan lon man hinh nen phai diu */
.s .bb{background:var(--bb-ai);color:var(--bb-ai-chu);border:1px solid var(--bb-ai-vien)}
/* NGUOI gui: nen tim DAM. Hiem, va la luc dang can chu y nhat. */
.s .bb.bynguoi{background:var(--bb-nguoi);color:var(--bb-nguoi-chu);border-color:var(--bb-nguoi-vien)}

.cum-ct{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--t2);padding:1px 2px 0}
.do-ai{font-family:var(--font-so);font-size:12px;color:var(--aqua);font-weight:700}
.do-nguoi{font-family:var(--font-so);font-size:12px;color:var(--iris);font-weight:700}
.tt-gui{font-family:var(--font-so);letter-spacing:-.06em}
.tt-gui.xau{color:var(--rd);font-weight:700}
.bb-loi{font-size:14px;color:var(--rdtx);background:var(--rdd);border-radius:4px;
  padding:3px 8px;margin-top:2px}

/* Man hinh trong: noi ro lam gi tiep, khong de mot dong chu cut lun */
.ch-trong{max-width:300px;margin:60px auto;text-align:center;color:var(--t2);font-size:14px;line-height:1.6}
.ch-trong-i{width:44px;height:44px;margin:0 auto 12px;color:var(--t2);opacity:.5}
.ch-trong-i svg{width:44px;height:44px}
.ch-trong b{display:block;color:var(--t1);font-size:16px;font-weight:600;margin-bottom:5px}
.ch-trong p{margin:0}


/* ---------------- nhan ----------------
   Mat do lay tu anh Pancake dang chay that: nhan cao 16px, chu 10px, bo goc 3px,
   cach nhau 3px. Thua hon thi danh sach chi vua 8-9 dong thay vi 14. */

.chip{display:inline-flex;align-items:center;gap:3px;height:17px;padding:0 6px;
  border-radius:4px;font-size:12px;font-weight:700;letter-spacing:.01em;
  white-space:nowrap;background:var(--c);color:#14121A;line-height:1}
.chip.nho{height:16px;font-size:12px;padding:0 5px}
.chip.bam{cursor:pointer}
/* AI de xuat: vien dut, cho nguoi xac nhan.
   MAU NHAN CUA SHOP KHONG DUOC LAM MAU CHU. `--c` den tu bang `tags` — shop
   dat mau gi cung duoc, va phan lon la mau tuoi. Do that 27/08/2026: nhan
   SERUM mau #E8D44D lam chu tren nen trang chi dat 1,5:1, gan nhu vo hinh;
   VE GIA 1,49 · TRI RUNG 1,63 · KICH MOC 2,25 · KH MOI 2,36. Ca nam truot AA.
   Dau hieu phan biet "AI de xuat" la VIEN DUT chu khong phai mau chu (xem
   ChipNhan trong app.js), nen doi chu sang muc khong mat gi. Mau cua nhan van
   con — o vien va o cham tron dau chip. */
.chip.cho{background:transparent;color:var(--t1);border:1px dashed var(--c);font-weight:600}
.chip.cho::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--c);flex:none}
.chip-x{cursor:pointer;opacity:.55;font-weight:700}
.chip-x:hover{opacity:1}

.chip-hang{display:flex;gap:3px;margin-top:4px;flex-wrap:nowrap;overflow:hidden}
.chip-du{font-size:12px;color:var(--t2);align-self:center;flex-shrink:0;font-weight:600}

/* Cham bao AI da soan san — thay cho nhan "N goi y" chiem cho */
.cham-ai{width:6px;height:6px;border-radius:50%;background:var(--aqua);flex-shrink:0}

/* Trich dan cat dung mot dong, khong xuong dong */
.cv .sn{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- Bang nhan duoi khung chat ----
   Dung theo design/pancake-hopthu.png. Hai dieu quan trong:

   1. O nhan LUC NAO CUNG mang mau cua no. Nhan vien tim nhan bang mau va vi tri,
      khong doc chu — lam xam het thi moi lan gan phai doc ca 24 o.
   2. Bang LUON HIEN, khong giau vao menu. Giau di la cham han.

   Sau nhom xep ngang, moi nhom mot luoi 2x2. */
/* MOT COT trong cot phai (rong 268-340px), khong phai luoi 6 nhom ngang.
   Bang nay ve cho mot dai NGANG ~1100px duoi khung chat; nhoi 6 nhom x 2 cot
   vao 268px thi moi o con ~22-44px va chu 12px dam bi cat con vai ky tu —
   'TUONG TAC 1L' hien ra thanh 'TUO…'. Do bang trinh duyet, khong doan.
   Neu sau nay dua bang tro lai duoi khung chat thi khoi luoi 6 cot van con o
   duoi, chi can doi bo boc. */
.bn{display:flex;flex-direction:column;gap:0;
  border-top:1px solid var(--ln);flex-shrink:0;background:var(--p1)}
.bn-nhom{min-width:0;display:flex;flex-direction:column}
.bn-ten{font-size:12px;font-weight:700;color:#14121A;text-align:center;padding:4px 2px;background:var(--c);
  filter:saturate(.75);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bn-o{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding:1px 0 0;flex:1}

/* Cap "o nhan + nut bo". Nut x chi hien voi nhan AI dang cho duyet. */
.bn-cap{position:relative;display:flex;min-width:0}

.bn-n{position:relative;flex:1;min-width:0;min-height:32px;height:auto;
  padding:6px 4px 6px 9px;border:0;border-radius:0;
  font-size:12px;font-weight:700;line-height:1;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;cursor:pointer;justify-content:center;gap:0;
  background:var(--c);color:#14121A;opacity:.62;transition:.1s}
.bn-n span{overflow:hidden;text-overflow:ellipsis}
.bn-n:hover:not(:disabled){opacity:1;box-shadow:inset 0 0 0 1.5px #14121A}
/* Da gan: to day + cham o mep trai, dung dau hieu Pancake dung */
.bn-n.co{opacity:1}
.bn-cham{position:absolute;left:3px;top:50%;transform:translateY(-50%);
  width:5px;height:5px;border-radius:50%;background:#14121A}
/* AI de xuat: cham RONG va o ke dut — nhin la biet may doan hay nguoi gan */
.bn-n.cho{opacity:.85;box-shadow:inset 0 0 0 1px #14121A}
.bn-n.cho .bn-cham{background:transparent;border:1.5px solid #14121A;width:6px;height:6px}

@media(max-width:1500px){.bn{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---- o soan tin ---- */
.cmp{background:var(--p1);border-top:1px solid var(--ln);flex-shrink:0}
.inp{display:flex;gap:8px;align-items:center;padding:9px 12px}
.inp input{border:0;background:transparent;padding:4px 0;font-size:16px}
.inp input:focus{border:0;outline:none}
.inp:focus-within{outline:2px solid var(--nhan-nut);outline-offset:1px}
/* Anh dai dien Trang o dau o soan — nhan vien luon biet dang tra loi TU trang nao,
   quan trong khi mot nguoi truc nhieu trang cung luc. */
.inp-tr{width:24px;height:24px;border-radius:8px;flex-shrink:0;background:var(--p3);
  color:var(--t1);display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700}
.inp button.pri{padding:7px 11px;flex-shrink:0}
.qr{display:flex;gap:5px;padding:8px 12px 0;overflow-x:auto}
.qr button{font-size:14px;padding:3px 10px;border-radius:16px;color:var(--t1);
  white-space:nowrap;background:var(--p3);border-color:transparent}

/* Man chua dung: liet ke viec that con vuong, khong phai "dang phat trien" */
.chua-ds{list-style:none;margin:0 0 4px}
.chua-ds li{position:relative;padding:7px 0 7px 20px;font-size:14px;color:var(--t1);
  line-height:1.55;border-bottom:1px solid var(--ln)}
.chua-ds li::before{content:'';position:absolute;left:5px;top:14px;width:5px;height:5px;
  border-radius:50%;background:var(--orange)}

/* ---------------- đào tạo ----------------
   Ba bước phải nhìn ra ngay đang ở đâu: xong / đang làm / chưa tới. */
.dt-buoc{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 4px}
.dt-b{border:1px solid var(--ln);border-radius:12px;padding:10px 12px;background:var(--p1)}
.dt-b b{display:block;font-size:14px;font-weight:600;margin:5px 0 2px}
.dt-b small{display:block;font-size:14px;color:var(--t2);line-height:1.45}
.dt-so{width:20px;height:20px;border-radius:50%;background:var(--p3);color:var(--t2);
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.dt-b.xong{border-color:var(--aqua)}
.dt-b.xong .dt-so{background:var(--aqua);color:var(--tren-cam)}
.dt-b.dang{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange)}
.dt-b.dang .dt-so{background:var(--orange);color:var(--tren-cam)}

.dt-the{border:1px solid var(--ln);border-radius:12px;padding:13px;background:var(--p1)}
.dt-the-r1{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.dt-the-r1 b{font-size:16px;font-weight:600}
.dt-sp{flex:1}
.dt-nho{font-size:14px;color:var(--t2)}
/* Nhan "AI" trong khung ERP: `--aitx` la token cua ho CHAT, va o tong toi no cho
   ra 4,49:1 tren chinh nen 16% cua no — truot AA dung 0,01. Do that 28/08/2026 tren
   ba man Dao tao AI. Dung ban `-chu` cua ho --qt-*, tuc dung bien the sinh ra chinh
   vi viec nay: MOT MAU KHONG LAM DUOC CA HAI VAI nen va chu. */
.qt .l-ai{color:var(--qt-g700-chu)}
/* Trong khung ERP thi lay mau chu cua HO --qt-*, khong lay --t2 (ho cua san pham
   chat). Tron hai ho token la mot mau chu mo cua ho nay nam tren nen cua ho kia:
   do that 28/08/2026 o tong TOI, man Nhan ho tro ra 4,39:1 — truot chuan AA dung
   0,11. Cung ho loi voi `.qt .trth-loi .chu-mo`. */
.qt .dt-nho{color:var(--qt-ink2)}

.dt-kq{display:flex;align-items:center;gap:12px;border-radius:12px;padding:11px 13px;
  border:1px solid var(--ln);background:var(--p1)}
.dt-kq.qua{border-color:var(--aqua);background:var(--aqua-mo)}
.dt-kq.hong{border-color:var(--do);background:var(--do-mo)}
.dt-kq-so{flex:1;display:flex;align-items:baseline;gap:9px}
.dt-kq-so b{font-family:var(--font-so);font-size:20px;font-weight:700}
.dt-kq-so span{font-size:14px;color:var(--t1)}

.dt-ds{display:flex;flex-direction:column;gap:7px;margin-top:9px}
.dt-hong{border-left:3px solid var(--do);background:var(--p1);border-radius:0 8px 8px 0;padding:9px 12px}
.dt-hong b{display:block;font-size:14px;font-weight:600;margin-bottom:4px}
.dt-loi{font-size:14px;color:var(--t2);font-family:var(--font-so);line-height:1.6;
  word-break:break-word}

.dt-trang{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--ln);
  border-radius:12px;background:var(--p1)}
.dt-trang-i{flex:1;min-width:0}
.dt-trang-i b{display:block;font-size:16px;font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.dt-trang-i small{display:block;font-size:14px;color:var(--t2);margin-top:2px}
.dt-trang .ckb{cursor:pointer;background:transparent;padding:0}
.dt-trang .ckb.on{background:var(--orange);border-color:var(--orange);color:var(--tren-cam)}

/* Nút áp và LÝ DO vì sao đang mờ, nằm cạnh nhau. Nút mờ không nói lý do thì
   người dùng bấm mãi rồi tưởng hỏng. */
.dt-ap{display:flex;align-items:center;gap:12px;margin-top:16px;padding:13px;
  border:1px solid var(--ln);border-radius:12px;background:var(--p3);flex-wrap:wrap}
.dt-vi-sao{flex:1;min-width:200px;font-size:14px;color:var(--t1);line-height:1.5}

/* ---- danh sach kich ban trong man Dao tao ----
   Chu shop doc khoi nay de tin duoc con bot, nen no phai hien NGUYEN VAN cau
   tra loi, chia dung bubble, va chi ro cho nao chen anh. Tom tat lai la mat
   tac dung: khong ai duyet duoc thu minh khong doc duoc. */
.kb-ds{display:flex;flex-direction:column;gap:7px}
.kb{border:1px solid var(--ln);border-radius:12px;background:var(--p1);overflow:hidden}
.kb.mo{border-color:var(--ln2)}
.kb-dau{display:flex;width:100%;align-items:center;gap:8px;border:0;background:transparent;
  padding:10px 12px 6px;text-align:left;justify-content:flex-start}
.kb-dau:hover{background:transparent}
.kb-mui{display:flex;color:var(--t2);flex-shrink:0}
.kb-mui svg{width:13px;height:13px;transform:rotate(90deg);transition:transform .13s}
.kb.mo .kb-mui svg{transform:rotate(270deg)}
.kb-ten{flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.kb-tool{font-style:normal;font-size:12px;font-weight:600;flex-shrink:0;border-radius:4px;
  padding:1px 6px;background:var(--grd);color:var(--grtx);font-family:var(--font-so)}
.kb-ut{font-family:var(--font-so);font-size:12px;color:var(--t2);flex-shrink:0}

.kb-tk{display:flex;flex-wrap:wrap;gap:3px;padding:0 12px 10px 33px}
.kb-t{font-size:12px;color:var(--t1);background:var(--p3);border-radius:4px;padding:1px 6px;
  white-space:nowrap}
.kb-t.du{color:var(--t2)}

.kb-than{padding:2px 12px 12px 33px;border-top:1px solid var(--ln);margin-top:2px}
.kb-hoi{margin:9px 0;font-size:14px;color:var(--t2)}
.kb-tl{margin:9px 0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
/* Ve dung hinh bong bong AI, de doc la hinh dung duoc khach se thay gi */
.kb-bb{max-width:min(100%,520px);background:var(--bb-ai);color:var(--bb-ai-chu);
  border:1px solid var(--bb-ai-vien);border-radius:8px;padding:7px 10px;font-size:14px;
  line-height:1.45;white-space:pre-wrap}
.kb-anh{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-so);font-size:14px;
  color:var(--t1);background:var(--p3);border:1px dashed var(--ln2);border-radius:8px;padding:5px 9px}
.kb-anh svg{width:13px;height:13px;color:var(--t2)}
.kb-gc{font-size:14px;color:var(--t2);margin-top:3px;padding-left:2px;border-left:2px solid var(--ln2)}

/* ---- man "Thong tin cua ban" ---- */
.ttb-form{display:flex;flex-direction:column;gap:8px;border:1px solid var(--ln);
  border-radius:12px;padding:18px 20px;background:var(--p1);max-width:900px}
.ttb-ds{display:flex;flex-direction:column;gap:8px}
.ttb-m{border:1px solid var(--ln);border-radius:12px;padding:13px 16px;background:var(--p1)}
/* Muc dang tat van hien, chi mo di — xoa han thi shop mat cai da viet cong phu */
.ttb-m.tat{opacity:.5}
.ttb-m-dau{display:flex;align-items:center;gap:7px;margin-bottom:5px;cursor:pointer}
.ttb-m-dau b{font-size:16px}
.ttb-m-mo{font-size:14px;color:var(--t1);line-height:1.5;white-space:pre-wrap}

/* ---- nut "Loc theo" (hoc tu Pancake) ----
   Bo loc la mot NUT canh o tim, khong phai mot cot rieng. Cot rieng an 158px be
   ngang ma khung chat moi la thu nhan vien nhin ca ngay. */
.lt{position:relative;flex:1;min-width:0}
.lt-nut{display:flex;width:100%;align-items:center;gap:7px;height:30px;padding:0 10px;
  border:1px solid var(--ln2);border-radius:8px;background:var(--p1);color:var(--t0);
  font-size:14px;font-weight:600}
.lt-nut:hover{background:var(--p3)}
.lt-nut.on{border-color:var(--orange);color:var(--orange);background:var(--cam-mo)}
.lt-nut svg{width:14px;height:14px;flex-shrink:0}
.lt-nut span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;text-align:left}
.lt-nut b{font-family:var(--font-so);font-size:12px;flex-shrink:0}
.lt-bang{position:absolute;top:calc(100% + 5px);left:0;z-index:40;min-width:260px;
  padding:6px;background:var(--p3);border:1px solid var(--vien-2);border-radius:8px;
  box-shadow:0 10px 30px rgba(0,0,0,.4);max-height:70vh;overflow-y:auto}
.lt-nhom + .lt-nhom{margin-top:5px;padding-top:6px;border-top:1px solid var(--ln)}
.lt-ten{font-size:12px;font-weight:700;color:var(--t2);padding:3px 9px 5px}
.lt-m{display:flex;width:100%;align-items:center;gap:8px;border:0;background:transparent;
  padding:8px 9px;border-radius:8px;font-size:14px;color:var(--t1);text-align:left;
  justify-content:flex-start}
.lt-m:hover{background:var(--p1);color:var(--t0)}
.lt-m.on{background:var(--cam-mo);color:var(--orange);font-weight:600}
.lt-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lt-s{font-family:var(--font-so);font-size:12px;font-weight:700;flex-shrink:0;
  background:var(--p3);color:var(--t1);border-radius:8px;padding:1px 7px;min-width:22px;text-align:center}
.lt-m.on .lt-s{background:var(--orange);color:var(--tren-cam)}
.lt-s.khong{opacity:.4;font-weight:500}

/* ---- nut them thong tin ---- */
.ttb-nut{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:6px}
.ttb-b{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:12px;
  border:1px dashed var(--ln2);background:var(--p1);color:var(--t0);font-size:14px;font-weight:600}
.ttb-b:hover{border-style:solid;border-color:var(--orange);color:var(--orange);background:var(--cam-mo)}
.ttb-form-dau{font-size:12px;font-weight:700;color:var(--t2);margin-bottom:2px}
.ttb-form label{font-size:14px;font-weight:600;color:var(--t1);margin-top:4px}
.ttb-form label em{font-style:normal;font-weight:400;color:var(--t2)}
.ttb-xem{max-width:220px;max-height:150px;border-radius:8px;border:1px solid var(--ln);
  object-fit:cover;margin-top:6px}

/* ---- thanh loc doc dang icon (hoc tu Pancake) ----
   Mot cot MANH: 52px vua du o bam 38px cong le. Rong hon la an mat be ngang cua
   khung chat, ma khung chat moi la thu nhan vien nhin ca ngay. */
.rl{background:var(--p1);border-right:1px solid var(--ln);display:flex;flex-direction:column;
  align-items:center;gap:2px;padding:8px 0;overflow-y:auto}
.rl-i{position:relative;width:38px;height:38px;padding:0;justify-content:center;
  border:0;border-radius:12px;background:transparent;color:var(--t2);flex-shrink:0}
.rl-i:hover{background:var(--p3);color:var(--t0)}
.rl-i.on{background:var(--cam-mo);color:var(--orange)}
.rl-i svg{width:19px;height:19px}
.rl-bg{position:absolute;top:1px;right:0;min-width:16px;height:15px;padding:0 3px;
  border-radius:8px;background:var(--orange);color:var(--tren-cam);border:2px solid var(--p1);
  font-family:var(--font-so);font-size:12px;font-weight:700;font-style:normal;
  display:flex;align-items:center;justify-content:center;line-height:1}

/* ---- luong chat 8 buoc ---- */
.lg{display:flex;flex-direction:column;gap:0}
.lg-b{display:flex;gap:13px;position:relative;padding-bottom:14px}
/* Duong noi giua cac buoc — de nhin ra day la mot CHUOI, khong phai danh sach */
.lg-b:not(:last-child)::before{content:"";position:absolute;left:15px;top:34px;bottom:0;
  width:2px;background:var(--ln2)}
.lg-b.thieu::before{background:repeating-linear-gradient(var(--ln2) 0 4px,transparent 4px 8px)}
.lg-so{width:32px;height:32px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-family:var(--font-so);font-size:14px;font-weight:700;
  background:var(--orange);color:var(--tren-cam);z-index:1}
.lg-b.thieu .lg-so{background:var(--p3);color:var(--t2);border:2px dashed var(--ln2)}
.lg-noi{flex:1;min-width:0;padding-top:4px}
.lg-ten{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;margin-bottom:7px}
.lg-thieu{font-size:14px;color:var(--t2);line-height:1.5;padding:9px 12px;
  border:1px dashed var(--ln2);border-radius:8px}

/* ---- man rong hon cho danh sach dai ---- */
/* Man danh sach dai thi KHONG bo trong cot hep giua man hinh. 860px tren man
   PC rong la mot dai chu nhat nho lot thom giua hai khoang trong — nhin vua
   nhi nhi vua phi cho. Tran het be ngang, chi chua le. */
.man-rong{max-width:none;padding:34px 40px 80px}
.man-rong h1{font-size:28px}
.man-rong .man-d{font-size:16px;max-width:760px}
.sect-p{font-weight:400;color:var(--t2);font-size:12px;margin-left:8px}
/* Muc gap lai: 35 muc ma muc nao cung xo het thi trang dai le the va khong
   nhin ra cai gi o dau. Gap lai thi ca danh sach vua mot man. */
.ttb-mui{display:flex;color:var(--t2);flex-shrink:0}
.ttb-mui svg{width:13px;height:13px;transform:rotate(90deg);transition:transform .13s}
.ttb-m.xoe .ttb-mui svg{transform:rotate(270deg)}
.ttb-m-tt{font-size:14px;color:var(--t2);overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;padding-left:20px}
.ttb-m.xoe .ttb-m-mo{padding-left:20px;margin-top:4px}
.ttb-do{font-family:var(--font-so);font-size:12px;color:var(--t2);flex-shrink:0}
.ttb-lam{display:flex;gap:2px;flex-shrink:0}

/* ---- man Chat thu ----
   Dung LAI .thr/.cum/.bb cua khung chat that, khong ve bong bong rieng: nguoi
   dao tao phai thay dung thu khach se thay. Ve rieng thi hai noi lech nhau va
   duyet o day khong con nghia gi. */
.ct-khung{border:1px solid var(--ln);border-radius:12px;background:var(--p1);
  max-width:860px;overflow:hidden}
.ct-dau{display:flex;align-items:center;gap:9px;padding:10px 14px;border-bottom:1px solid var(--ln)}
.ct-av{width:30px;height:30px;border-radius:50%;background:var(--p3);color:var(--t1);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.ct-thr{min-height:300px;max-height:52vh;padding:16px}
.ct-luot{display:flex;flex-direction:column;gap:3px}
.ct-llm{background:var(--amd) !important;color:var(--amtx) !important;
  border-color:transparent !important}
.ct-vet{display:flex;flex-wrap:wrap;gap:5px;align-items:center;font-size:12px;
  color:var(--t2);padding:2px 0 6px 38px}
.ct-vet em{font-style:normal;font-family:var(--font-so);background:var(--p3);color:var(--t1);
  border-radius:4px;padding:1px 6px}
.ct-vet em.tool{background:var(--grd);color:var(--grtx)}
.ct-vet em.cho{background:var(--amd);color:var(--amtx)}
.ct-vet em.xau{background:var(--rdd);color:var(--rdtx)}
.ct-go{display:flex;gap:8px;padding:11px 13px;border-top:1px solid var(--ln);background:var(--p1)}

/* Cham diem khi dong mot cuoc thu */
.ct-cham{padding:14px;border-top:1px solid var(--ln);display:flex;flex-direction:column;gap:8px}
.ct-cham-d{font-size:14px;font-weight:600}
.ct-sao{display:inline-flex;gap:2px;flex-shrink:0}
.ct-s{border:0;background:transparent;padding:0 2px;font-size:20px;line-height:1;
  color:var(--ln2);cursor:pointer}
.ct-s.on{color:var(--orange)}
.ct-s:disabled{cursor:default;font-size:14px}

.ct-ls{display:flex;flex-direction:column;gap:0;border:1px solid var(--ln);
  border-radius:var(--bk-3);overflow:hidden;background:var(--p1)}
.ct-ls-m{display:flex;align-items:center;gap:var(--kc-3);flex-wrap:wrap;
  border:0;border-bottom:1px solid var(--ln);border-radius:0;
  padding:var(--kc-3) var(--kc-4);background:var(--p1)}
.ct-ls-m:last-child{border-bottom:0}
.ct-ls-m:hover{background:var(--p3)}
.ct-ls-m b{font-size:14px}
.ct-ls-nx{flex-basis:100%;font-size:14px;color:var(--t2);line-height:1.5}

/* Ba cham "dang go" — cho thay AI dang soan, dung nhu Messenger that */
.ct-go3{display:inline-flex;gap:4px;align-items:center;padding:11px 13px !important}
.ct-go3 i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.45;
  animation:ctgo 1.1s infinite}
.ct-go3 i:nth-child(2){animation-delay:.18s}
.ct-go3 i:nth-child(3){animation-delay:.36s}
@keyframes ctgo{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:.9;transform:translateY(-3px)}}

/* AI xac nhan da nhan danh gia va neu phuong an — nam NGAY DUOI danh gia do,
   khong o mot man khac: gop y ma khong thay ai tra loi thi lan sau khong ai go. */
.ct-ph{flex-basis:100%;display:flex;gap:9px;align-items:flex-start;margin-top:4px;
  padding:10px 12px;border-radius:8px;background:var(--grd);font-size:14px;
  line-height:1.55;white-space:pre-wrap;color:var(--t0)}
.ct-ph.can_nguoi{background:var(--amd)}
.ct-ph-ai{flex-shrink:0;font-family:var(--font-so);font-size:12px;font-weight:700;
  background:var(--p1);color:var(--t1);border-radius:4px;padding:2px 6px}
.ct-ph-nut{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap}

/* ---- man "Cai dat AI" ----

   Cong tac AI de RIENG tung trang nen no la mot HANG, khong phai mot o trong
   luoi: hang doc theo chieu ngang, mat luot tu ten trang sang trang thai sang
   cong tac — dung thu tu cau hoi "trang nao / dang the nao / bam vao dau". */
.cd-hang{display:flex;align-items:center;gap:11px;padding:11px 13px;
  border:1px solid var(--ln);border-radius:12px;background:var(--p1)}
.cd-i{flex:1;min-width:0}
.cd-i b{display:block;font-size:16px;font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.cd-i small{display:block;font-size:14px;color:var(--t2);margin-top:2px}

/* Cong tac gat. To hon nut thuong (44px) vi day la thu tat ca kenh ban. */
.cd-cong{width:44px;height:25px;border-radius:12px;padding:0;flex-shrink:0;
  background:var(--p3);border:1px solid var(--ln2);position:relative;transition:.15s}
.cd-cong i{position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;
  background:var(--t2);transition:.15s}
.cd-cong.on{background:var(--aqua);border-color:var(--aqua)}
.cd-cong.on i{left:21px;background:var(--tren-cam)}

.cd-y{font-size:14px;color:var(--t2);line-height:1.55;margin:7px 0 0}

.cd-chon{display:flex;flex-direction:column;gap:7px}
.cd-o{display:flex;align-items:flex-start;gap:11px;width:100%;text-align:left;
  padding:11px 13px;border:1px solid var(--ln);border-radius:12px;background:var(--p1)}
.cd-o:hover:not(:disabled){border-color:var(--ln2);background:var(--p2)}
.cd-o.on{border-color:var(--orange);background:var(--cam-mo);box-shadow:0 0 0 1px var(--orange)}
.cd-o:disabled{cursor:default;opacity:.6}
.cd-ck{width:20px;height:20px;border-radius:50%;flex-shrink:0;margin-top:1px;
  border:1.5px solid var(--ln2);display:flex;align-items:center;justify-content:center;
  font-size:12px}
.cd-o.on .cd-ck{background:var(--orange);border-color:var(--orange);color:var(--tren-cam)}
.cd-o-i{flex:1;min-width:0}
.cd-o-i b{display:block;font-size:16px;font-weight:600}
.cd-o-i small{display:block;font-size:14px;color:var(--t2);margin-top:2px;line-height:1.45}

.cd-the{border:1px solid var(--ln);border-radius:12px;padding:13px;background:var(--p1)}
.cd-bat{display:flex;align-items:center;gap:9px;font-size:16px;cursor:pointer}
.cd-bat input{width:17px;height:17px;flex-shrink:0;accent-color:var(--orange)}
.cd-gio{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px}
.cd-gio select{width:auto;font-family:var(--font-so)}
/* Tat gio truc thi hai o van hien, chi mo di — an han thi bat lai xong khong
   biet no dang dat may gio, phai bat len moi thay. */
.cd-gio.mo{opacity:.45}

.cd-luoi{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px}
.cd-so{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--t1)}
.cd-so span{flex:1;min-width:0;line-height:1.35}
.cd-so input{width:88px;flex-shrink:0;font-family:var(--font-so);text-align:right}

/* ---- man "Lich su" ----

   Cap TRUOC -> SAU la ly do man nay ton tai, nen no phai doc duoc bang mat
   thuong: gia tri cu lam mo va gach ngang, gia tri moi ro va dam. */
.ls-loc{display:flex;gap:var(--kc-2);flex-wrap:wrap;align-items:center;margin-bottom:var(--kc-4)}
/* MOT KIEU CHIP CHO CA UNG DUNG, khong hai.
   Truoc 29/08/2026 app co HAI chip loc gan giong nhau ma khong bang nhau:
   `.ls-chip` (cao 28px, lay token ho CHAT: --ln/--p1/--t1) va `.fchip` (cao
   32px, ho ERP: --qt-line/--qt-white/--qt-ink2). Ca hai deu nam trong khung
   `.qt` sau khi cac man Dao tao AI bi boc trong KhungChat — tuc hai kieu chip
   dung canh nhau tren cung mot man hinh, lech 4px chieu cao va lech ca sac
   nen. Cung ho loi voi `.dt-nho` da sua 28/08.
   Nay `.ls-chip` dung DUNG khai bao cua `.fchip`. Giu ten lop vi 11 cho dang
   goi; doi ten la 11 co hoi quen mot cho. */
.ls-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--qt-line);
  background:var(--qt-white);color:var(--qt-ink2);border-radius:999px;padding:0 13px;
  font-size:12px;font-weight:600;height:32px}
.ls-chip.on{border-color:var(--qt-ink);background:var(--qt-ink);color:var(--qt-white);font-weight:700}

/* HANG NGAY trong bang Nhat ky — mot dong tran ca bang lam vach ngan, thay cho
   `.ls-ngay` cua ban danh sach the cu. Nen mo hon hang thuong de mat nhan ra no
   la vach ngan chu khong phai mot dong du lieu. */
/* Bang Ho so doanh nghiep: hang bam duoc de bung ra noi dung day. Muc TAT thi
   mo di — no van nam do de bat lai, nhung AI khong doc no, va mat phai thay
   duoc dieu do ngay. */
.qt .ttb-bang .ttb-h{cursor:pointer}
.qt .ttb-bang .ttb-h:hover{background:var(--qt-paper)}
.qt .ttb-bang .ttb-h.tat{opacity:.55}
.qt .ttb-bang .ttb-mui{display:inline-flex;width:14px;height:14px;margin-right:6px;
  vertical-align:-2px;color:var(--qt-ink3)}
.qt .ttb-bang .ttb-mo td{background:var(--qt-paper);padding:12px 14px}
.qt .ttb-bang .ttb-m-mo{white-space:pre-wrap;font-size:13px;line-height:1.6;
  max-height:340px;overflow:auto}
.qt .ls-bang .ls-ngay-h td{background:var(--qt-paper);font-weight:700;font-size:12px;
  color:var(--qt-ink3);padding:6px 10px}
.qt .ls-bang .ls-doi{display:flex;flex-direction:column;gap:2px}
.ls-ds{display:flex;flex-direction:column;gap:7px}
.ls-ngay{display:flex;align-items:center;gap:10px;margin:12px 0 3px}
.ls-ngay::after{content:'';flex:1;height:1px;background:var(--ln)}
.ls-ngay span{font-size:12px;font-weight:600;color:var(--t2);
  }

.ls-m{border:1px solid var(--ln);border-radius:12px;padding:10px 13px;background:var(--p1)}
.ls-dau{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ls-dau b{font-size:14px;font-weight:600}

.ls-doi{display:flex;flex-direction:column;gap:3px;margin-top:8px;
  border-top:1px solid var(--ln);padding-top:8px}
.ls-k{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;font-size:14px;line-height:1.5}
.ls-ten{color:var(--t2);min-width:150px}
.ls-tr{color:var(--t2);text-decoration:line-through}
.ls-mui{color:var(--t2);font-size:12px}
.ls-sau{font-weight:600;color:var(--t0)}

.ls-trong{padding:26px 14px;color:var(--t2);font-size:14px;text-align:center;line-height:1.65;
  border:1px dashed var(--ln2);border-radius:12px}

/* ---- man "Thu thap thong tin" ---- */
.tx-m{border:1px solid var(--ln);border-radius:12px;padding:12px 14px;background:var(--p1)}
.tx-dau{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:6px}
/* Cum khach go ra: de font so cho no khac han chu cua giao dien — day la
   NGUYEN VAN loi khach, khong phai chu he thong viet. */
.tx-cum{font-family:var(--font-so);font-size:16px;font-weight:600;
  background:var(--p3);border-radius:8px;padding:2px 8px}
.tx-mo{font-size:14px;color:var(--t1);line-height:1.55}

.tx-so{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:9px}
.tx-o{border:1px solid var(--ln);border-radius:8px;padding:10px 12px;background:var(--p2)}
.tx-o b{display:block;font-family:var(--font-so);font-size:20px;font-weight:700;line-height:1.1}
.tx-o span{display:block;font-size:14px;color:var(--t2);margin-top:3px}

.tx-nhan{display:flex;gap:6px;flex-wrap:wrap}
.tx-y{display:inline-flex;align-items:center;gap:6px;font-size:14px;
  border:1px solid var(--ln2);border-radius:99px;padding:3px 10px}
.tx-y i{font-family:var(--font-so);font-style:normal;font-weight:700;color:var(--t2)}

/* ---- nhận xét trên từng câu AI (Chat thử) ----
   Nút để MỜ và nhỏ: nó nằm dưới mọi câu AI, mà phần lớn câu thì không ai nhận
   xét gì. Vẽ đậm là nó át cả nội dung cuộc chat. */
.nx-mo{align-self:flex-end;background:none;border:none;cursor:pointer;padding:1px 2px;
  font-size:12px;color:var(--t2);opacity:.65}
.nx-mo:hover{opacity:1;color:var(--t1);text-decoration:underline}
/* Doc lai buoi cu: khong phai nut, chi la mot dong noi ro vi sao khong sua duoc */
.nx-tat{cursor:default;opacity:.5;font-style:italic}
.nx-tat:hover{text-decoration:none;opacity:.5}
.nx-form{align-self:stretch;border:1px solid var(--ln);border-radius:8px;
  background:var(--p2);padding:8px;margin-top:3px;display:flex;flex-direction:column;gap:7px}
.nx-form textarea{width:100%;resize:vertical;font:inherit;font-size:14px;padding:6px 8px;
  border:1px solid var(--ln);border-radius:4px;background:var(--p1);color:var(--t1)}
.nx-nut{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nx-loi{font-size:12px;color:var(--rdtx)}
.nx-da{align-self:stretch;border-radius:8px;padding:7px 9px;margin-top:3px;font-size:14px;
  display:flex;flex-direction:column;gap:5px;border:1px solid transparent}
.nx-da.tot{background:var(--grd);color:var(--grtx);border-color:var(--grd)}
.nx-da.xau{background:var(--rdd);color:var(--rdtx);border-color:var(--rdd)}
.nx-da b{font-size:14px}
.nx-chu{opacity:.85;font-style:italic}
/* Điều hệ thống hiểu được từ nhận xét — phần này mới là lý do người ta ghi tiếp */
.nx-ph{background:var(--p1);color:var(--t1);border-radius:4px;padding:5px 7px;line-height:1.45}
/* Nhận xét đã dùng để chạy lại. Dòng ghi chú cũ bị xoá theo tin cũ (CASCADE),
   nên đây là dấu vết duy nhất còn lại của việc vừa huấn luyện. */
.nx-lai{align-self:stretch;font-size:12px;color:var(--t2);line-height:1.45;
  border-left:2px solid var(--ln);padding:2px 0 2px 7px;margin-top:3px}
/* Câu hệ thống đọc hiểu được từ nhận xét. Vẽ rõ hơn dòng trích nhận xét —
   đây mới là thứ trả lời câu hỏi "nó có hiểu ý mình không". */
.nx-lai-h{margin-top:3px;color:var(--t1);background:var(--p2);border-radius:4px;
  padding:5px 7px;line-height:1.45;font-size:12px}
/* Phần ảnh trong Chat thử: chỉ hiện tên thẻ, vì thư viện ảnh còn trống URL.
   Vẽ khác bubble chữ để không ai tưởng AI đang nhắn nguyên chữ "[ảnh: ...]". */
.bb-anh{font-family:var(--font-so);font-size:14px;opacity:.8;border-style:dashed !important}

/* ---- sửa bubble AI soạn trước khi gửi ----
   Nút Sửa nằm trong bubble và chỉ hiện rõ khi rê chuột: nhân viên gửi thẳng là
   việc thường ngày, sửa mới là ngoại lệ. Bày nút to ngang nút Gửi thì mỗi lần
   trả lời khách lại phải bỏ qua nó một lần. */
.db-chu{white-space:pre-wrap}
.db-sua-nut{position:absolute;top:5px;right:7px;background:var(--p1);border:1px solid var(--ln);
  border-radius:4px;font-size:12px;padding:1px 7px;cursor:pointer;color:var(--t2);opacity:0;
  transition:opacity .12s}
.db:hover .db-sua-nut,.db-sua-nut:focus{opacity:1}
.db-sua-nut:hover{color:var(--t1);border-color:var(--t2)}
.db-sua textarea{width:100%;resize:vertical;font:inherit;font-size:14px;line-height:1.42;
  padding:6px 8px;border:1px solid var(--ln);border-radius:8px;background:var(--p1);color:var(--t1)}
.db-nut{display:flex;align-items:center;gap:6px;margin-top:6px}
/* Bubble thêm tay vẽ viền đứt — nó KHÔNG phải thứ AI soạn ra, và người xem lại
   hộp thư sau này phải phân biệt được ngay. */
.db-them{border-style:dashed}
.db-dau{font-size:12px;color:var(--t2);font-family:var(--font-so)}
/* Cặp (câu AI viết, câu đúng) trong bảng "Đã dạy cho AI". Xếp trên dưới chứ
   không cạnh nhau: câu chat thường dài, hai cột hẹp thì phải đọc kiểu zíc zắc. */
.dd-cu{color:var(--t2);padding:2px 0}
.dd-moi{color:var(--t1);border-left:2px solid var(--aqua);padding:2px 0 2px 8px;margin-top:3px}
/* Ô sửa câu AI trong Chat thử. Rộng bằng cả cụm chứ không bó trong bề ngang
   bong bóng (62%) — đang gõ lại nguyên một câu trả lời, không phải sửa một chữ. */
.ct-sua{width:100%;max-width:100%;display:flex;flex-direction:column;gap:var(--kc-2);
  border:1px solid var(--ln);border-radius:var(--bk-3);padding:var(--kc-4);
  background:var(--p1);margin-bottom:var(--kc-3)}
.ct-sua textarea{width:100%;resize:vertical;font:inherit;font-size:14px;line-height:1.45;
  padding:8px 10px;border:1px solid var(--ln);border-radius:8px;background:var(--p1);color:var(--t1)}
.ct-sua-y{font-size:12px;color:var(--t2);line-height:1.5}
.ct-sua-y code{font-family:var(--font-so);background:var(--p3);border-radius:4px;padding:0 4px}

/* ---- chọn / tải ảnh khi gõ câu đúng cho AI ---- */
.ca{border:1px solid var(--ln);border-radius:8px;background:var(--p2);padding:9px;
  display:flex;flex-direction:column;gap:8px}
.ca-d{font-size:12px;color:var(--t2);line-height:1.5}
.ca-d code{font-family:var(--font-so);background:var(--p3);border-radius:4px;padding:0 4px}
.ca-tai{font-size:12px;color:var(--t2);padding:6px}
.ca-ds{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:7px}
.ca-o{display:flex;flex-direction:column;gap:3px;min-width:0}
.ca-chen{display:flex;flex-direction:column;gap:2px;align-items:stretch;padding:5px;
  border:1px solid var(--ln);border-radius:8px;background:var(--p1);color:var(--t1);
  cursor:pointer;font:inherit;text-align:left;min-width:0}
.ca-chen:hover:not(:disabled){border-color:var(--aqua)}
.ca-chen:disabled{cursor:default;opacity:.65}
.ca-chen img{width:100%;height:56px;object-fit:cover;border-radius:4px;display:block}
.ca-ten{font-family:var(--font-so);font-size:12px;font-weight:700;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Số ảnh phải hiện, không bắt đoán: góp ý của chủ shop từng là
   "gửi 6 ảnh feedback nhé, không phải 1 ảnh". */
.ca-so{font-size:12px;color:var(--t2)}
/* KHONG dat ten `.trong` — lop toan cuc do them `padding:28px 14px`, ma `.ca-o`
   khong khai padding rieng nen KHONG de duoc: o anh chua co anh phinh to gap
   may lan cac o ben canh ngay trong o soan tin. Do trong trinh duyet 25/08. */
.ca-o.chua-anh .ca-chen{border-style:dashed}
.ca-tai-nut{font-size:12px;color:var(--t2);cursor:pointer;text-align:center;
  border:1px solid var(--ln);border-radius:4px;padding:2px}
.ca-tai-nut:hover{color:var(--t1);border-color:var(--t2)}

/* Khối cảnh báo VÀNG — nhắc chứ không phải lỗi. `.blkd` là đỏ, dùng cho lỗi thật;
   "3/9 thẻ chưa có ảnh" không phải lỗi, nó là việc còn phải làm. */
.blkc{display:flex;gap:9px;background:var(--amd);border-left:3px solid var(--am);
  border-radius:8px;padding:9px 12px;margin:10px 0;font-size:14px;color:var(--amtx);line-height:1.5}
.blkc svg{width:17px;height:17px;flex-shrink:0;margin-top:1px}

/* ---- màn Thư viện ảnh ---- */
.tv{display:flex;flex-direction:column;gap:11px;margin-top:12px}
.tv-the{border:1px solid var(--ln);border-radius:12px;background:var(--p1);padding:10px 12px}
/* KHONG dat ten `.trong`: do la lop TOAN CUC cua khoi rong, va no keo theo
   `text-align:center` — the album rong bi can giua trong khi ca app can trai.
   Do trong trinh duyet 25/08/2026: mau va co chu thi `.tv-trong` da tu khai
   roi, nen thu duy nhat lop toan cuc them vao la cai can giua khong ai muon.
   Vien dut la thu tac gia that su can, va no khai ngay o day. */
.tv-the.chua-anh{border-style:dashed}
.tv-dau{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
/* Tên thẻ là thứ gõ vào câu trả lời — phải đọc và chép được, không phải nhãn trang trí */
.tv-ten{font-family:var(--font-so);font-size:14px;font-weight:700;color:var(--aqua);
  background:var(--p3);border-radius:4px;padding:2px 8px;user-select:all}
/* O mo ta "dung o": AI doc dong nay de chon anh, nen no dung ngang hang voi
   ten the chu khong phai mot ghi chu nhet cuoi the. */
.tv-dungo{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap;margin-top:8px}
.tv-dungo label{display:flex;flex-direction:column;gap:3px;flex:1 1 320px;min-width:0}
.tv-dungo input{width:100%}
.tv-anh{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.tv-o{position:relative;width:92px;height:92px;border-radius:8px;overflow:hidden;border:1px solid var(--ln)}
.tv-o img{width:100%;height:100%;object-fit:cover;display:block}
/* Số thứ tự: khách nhận ảnh theo đúng thứ tự này, nên phải nhìn thấy */
.tv-stt{position:absolute;left:4px;top:4px;background:rgba(0,0,0,.62);color:#fff;
  font-family:var(--font-so);font-size:12px;border-radius:4px;padding:0 5px}
.tv-xoa{position:absolute;right:3px;top:3px;width:19px;height:19px;border-radius:50%;
  border:none;background:rgba(0,0,0,.62);color:#fff;cursor:pointer;font-size:14px;line-height:1;
  display:flex;align-items:center;justify-content:center;padding:0}
.tv-xoa:hover{background:var(--rd)}
.tv-trong{margin-top:7px;font-size:14px;color:var(--t2)}
.tv-moi{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.tv-moi input{flex:1;min-width:220px;font:inherit;font-family:var(--font-so);font-size:14px;
  padding:7px 10px;border:1px solid var(--ln);border-radius:8px;background:var(--p1);color:var(--t1)}
label.pri{cursor:pointer;display:inline-flex;align-items:center}
label.pri.tat{opacity:.45;cursor:not-allowed}

/* Tiêu đề nhóm trong thanh dọc mục con. Ba nhóm của Đào tạo AI xếp theo mức
   hậu quả khi sai: sự thật → cách nói → kiểm tra. */
.rp-nhom{
  padding:14px 12px 5px; font-size:12px; font-weight:700; opacity:.55;
}
.rp-nhom:first-child{padding-top:6px}

/* Ô "AI đang thấy gì": khối prompt theo mục nguồn */
.pr-th{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}
.pr-th b{font-variant-numeric:tabular-nums}
.pr-khoi{border:1px solid var(--vien);border-radius:var(--r);margin:8px 0;overflow:hidden}
.pr-khoi>summary{
  padding:9px 12px;cursor:pointer;display:flex;gap:10px;align-items:center;
  font-weight:600;font-size:14px;
}
.pr-khoi>summary::-webkit-details-marker{display:none}
.pr-khoi pre{
  margin:0;padding:10px 12px;white-space:pre-wrap;word-break:break-word;
  font-size:12px;line-height:1.5;max-height:340px;overflow:auto;
}
.pr-trong{opacity:.5;font-style:italic}

/* Form khai kiến thức shop: nhãn trên, ô nhập dưới, xuống một cột khi hẹp. */
.tt-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:10px 0 14px}
.tt-form label{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600}
.tt-form label:has(textarea){grid-column:1 / -1}
.tt-form input,.tt-form textarea{
  font:inherit;font-weight:400;padding:8px 10px;border-radius:8px;
  border:1px solid var(--vien);background:var(--be-mat);color:inherit;
  width:100%;box-sizing:border-box;
}
.tt-form textarea{resize:vertical;min-height:64px}
@media (max-width:720px){.tt-form{grid-template-columns:1fr}}

/* Form ho so nhan su (man ns-hs): nhu .tt-form nhung 3 cot vi man qt rong. */
.ns-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin:10px 0 4px}
.ns-o{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600}
.ns-o input,.ns-o select{
  font:inherit;font-weight:400;padding:8px 10px;border-radius:8px;
  border:1px solid var(--vien);background:var(--be-mat);color:inherit;
  width:100%;box-sizing:border-box;
}
@media (max-width:1100px){.ns-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.ns-form{grid-template-columns:1fr}}

/* So do to chuc (man ns-so-do): cay phong ban, moi cap thut vao mot bac.
   Duong noi ve bang border chu khong ve SVG — cay nong (2-3 cap) va so
   phong it, khong dang keo mot bo ve do thi vao. */
.sd-cay{padding:4px 0}
.sd-nut{margin-left:0}
.sd-nut .sd-nut{margin-left:26px;padding-left:16px;border-left:1px solid var(--vien)}
.sd-the{
  display:flex;gap:10px;align-items:flex-start;padding:10px 12px;margin:6px 0;
  border:1px solid var(--vien);border-radius:10px;background:var(--be-mat);
  cursor:pointer;transition:border-color .12s;
}
.sd-the:hover{border-color:var(--y-chinh)}
.sd-the.on{border-color:var(--y-chinh);box-shadow:0 0 0 2px color-mix(in srgb,var(--y-chinh) 18%,transparent)}
.sd-the .sd-ten{font-weight:600}
.sd-the .sd-phu{font-size:12px;opacity:.7;margin-top:2px}
.sd-the .sd-so{margin-left:auto;font-variant-numeric:tabular-nums;font-size:12px;opacity:.7}
@media (max-width:720px){.sd-nut .sd-nut{margin-left:12px;padding-left:10px}}
.sd-o{
  font:inherit;padding:8px 10px;border-radius:8px;width:100%;box-sizing:border-box;
  border:1px solid var(--vien);background:var(--be-mat);color:inherit;
  resize:vertical;line-height:1.5;
}

/* Bang cong: mot cot mot ngay nen phai gon; ten nguoi ghim trai khi cuon. */
.cc-bang th, .cc-bang td{padding:6px 4px;text-align:center;font-size:12px}
.cc-bang .cc-ten{
  text-align:left;position:sticky;left:0;background:var(--nen);z-index:1;
  min-width:150px;padding-left:10px;
}
.cc-bang .cc-o{min-width:30px;cursor:pointer}
.cc-bang tbody .cc-o:hover{background:var(--qt-g100)}
.cc-bang .cc-cuoi{background:color-mix(in srgb,var(--vien) 30%,transparent)}
.cc-bang .cc-le{background:var(--qt-amber-bg)}
.cc-muon{color:var(--qt-amber-chu);font-weight:600}
.cc-don{font-size:10px;font-weight:700;opacity:.75}
.cuon-ngang{overflow-x:auto}

/* Lich truc: mot tuan 7 cot nen o rong hon bang cong (chua duoc ten ca). */
.cc-bang .lc-o{min-width:74px;cursor:pointer;height:40px}
.cc-bang tbody .lc-o:hover{background:var(--qt-g100)}
.lc-nghi{font-size:12px;color:var(--qt-ink3)}

/* Hướng dẫn tại chỗ: ngăn kéo bên phải, không che hết màn để còn đối chiếu. */
.hd-nut{font-size:12px}
.hd-nen{position:fixed;inset:0;background:rgba(0,0,0,.34);z-index:60;display:flex;justify-content:flex-end}
.hd-ngan{
  width:min(460px,100%);height:100%;overflow:auto;background:var(--nen);
  border-left:1px solid var(--vien);box-shadow:-8px 0 28px rgba(0,0,0,.16);
  padding:16px 18px 32px;
}
.hd-dau{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.hd-buoc{margin:0;padding-left:20px;font-size:14px;line-height:1.65}
.hd-buoc li{margin:0 0 14px}
.hd-buoc li::marker{font-weight:700;color:var(--y-chinh)}
.hd-anh{
  display:block;width:100%;margin-top:8px;border:1px solid var(--vien);
  border-radius:8px;background:var(--be-mat);
}

/* Tiến độ thiết lập: danh sách việc, đếm từ dữ liệu thật. */
.td-ds{display:flex;flex-direction:column;gap:4px}
.td-muc{
  display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;
  border:1px solid var(--vien);background:var(--be-mat);color:inherit;
  font:inherit;font-size:14px;cursor:pointer;text-align:left;
}
.td-muc:hover{border-color:var(--y-chinh)}
.td-muc.xong{opacity:.55}
.td-o{
  width:20px;height:20px;flex:none;border-radius:6px;border:1px solid var(--vien);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;
}
.td-muc.xong .td-o{background:var(--qt-g100);color:var(--qt-g700-chu);border-color:transparent}

/* Tích chọn các khoản lương */
.kl-ds{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.kl-o{display:flex;gap:8px;align-items:center;font-size:14px;padding:6px 8px;border-radius:8px;
  line-height:1.35;cursor:pointer}
.kl-o input{flex:none;margin:0}
.kl-o>span:first-of-type{flex:1;min-width:0}
.kl-o:hover{background:var(--be-mat)}
.kl-o.khoa{opacity:.6}

/* Khung chat trợ lý cài đặt */
.tl-chat{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;padding:4px 0}
.tl-tin{max-width:88%;padding:9px 12px;border-radius:12px;font-size:14px;line-height:1.55;white-space:pre-wrap}
.tl-toi{align-self:flex-end;background:var(--qt-g100);color:var(--qt-g800-chu)}
.tl-ai{align-self:flex-start;background:var(--be-mat);border:1px solid var(--vien)}

/* Trợ lý nổi: nút logo góc phải dưới, luôn có mặt trên mọi màn. */
.tl-nut{
  position:fixed;right:20px;bottom:20px;z-index:70;
  width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;
  background:var(--y-chinh);box-shadow:0 6px 20px rgba(0,0,0,.22);
  display:flex;align-items:center;justify-content:center;padding:0;
  transition:transform .12s, box-shadow .12s;
}
.tl-nut:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.28)}
/* Bieu tuong ban TRANG dat thang tren nen tron xanh — khong nhet o vuong xanh
   vao trong hinh tron roi bo goc, cach do lam vien xanh chong len vien xanh. */
.tl-nut img{display:block}
.tl-noi{
  position:fixed;right:20px;bottom:88px;z-index:70;
  width:min(380px,calc(100vw - 40px));height:min(520px,calc(100vh - 140px));
  display:flex;flex-direction:column;background:var(--nen);
  border:1px solid var(--vien);border-radius:14px;
  box-shadow:0 16px 44px rgba(0,0,0,.24);overflow:hidden;
}
.tl-noi-dau{display:flex;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--vien)}
.tl-noi .tl-chat{max-height:none;padding:12px}
.tl-noi-nhap{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--vien)}
.tl-noi-nhap input{flex:1;min-width:0}
@media (max-width:520px){
  .tl-nut{right:14px;bottom:14px}
  .tl-noi{right:14px;left:14px;width:auto;bottom:80px}
}
.hq-thanh{height:8px;border-radius:4px;background:var(--y-chinh);opacity:.55;min-width:2px}

/* ---------------- canh bao quang cao (man mkt-canh-bao) ----------------
   Cham mau chi MUC, khong phai trang tri: do = dang dot tien ma chua thay
   gi, vang = van ban duoc nhung dat hon muc chu shop dat. Mau lay tu token,
   khong go hex — xem THUONG-HIEU.md. */
.qt .cb-cham{display:inline-block;width:9px;height:9px;border-radius:50%}
.qt .cb-do{background:var(--do)}
.qt .cb-vang{background:var(--y-chinh);opacity:.55}
/* Chu AI viet: giu xuong dong nguyen van, khong ep mot doan dai */
.qt .cb-ai{
  margin-top:12px;padding:14px 16px;border-radius:10px;
  background:var(--qt-nen2,var(--p2));border:1px solid var(--qt-line);
  font-size:14px;line-height:1.75;white-space:pre-wrap;
}
/* O khai nguong: hien RO muc dang dat va muc do bat bao nhieu quang cao —
   khong co con so nay thi dat nguong la go dai roi cho xem ngay mai co gi. */
.qt .cb-dat{display:block;font-size:12px;color:var(--qt-ink2);font-style:normal}
.qt .cb-soi{display:block;font-size:12px;font-style:normal;color:var(--qt-ink2);
  border-left:2px solid var(--y-chinh);padding-left:7px;margin-top:2px}
.qt .cb-soi-do{border-left-color:var(--do)}
/* Gio nam NGOAI ca truc cua shop — to nhat de nhin ra ngay, khong doi mau
   chu (mau chu doi la nguoi doc tuong day la loi). */
.qt tr.tg-ngoai td{background:var(--p2)}

/* Chuyen shop dang mo — chi hien khi nguoi dung thuoc tu hai shop tro len.
   Khong dung luat chung cua `select` (width:100%) vi no nam trong thanh tren
   canh nut tai khoan, khong phai trong mot form. */
.doi-shop{
  width:auto;max-width:190px;height:32px;padding:0 28px 0 10px;
  border:1px solid var(--qt-line);border-radius:8px;background:var(--qt-white);
  color:var(--qt-ink);font:inherit;font-size:14px;cursor:pointer;
}
.doi-shop:disabled{opacity:.6;cursor:progress}

/* ================================================================
   DIEN THOAI (<=900px) — thanh tab duoi, menu toan man, hop thu mot cot.

   Truoc 16/08/2026 giao dien khong dung duoc tren dien thoai: luat
   `@media(max-width:900px){.qt .sidebar{display:none}}` an menu di MA KHONG
   CO GI THAY THE, nen mo bang dien thoai la mac ket dung o man dang xem.
   Hop thu thi te hon — `.ht-body` van co ve 3 cot tren man 390px, cot phai bi
   ep con mot chu moi dong va phan thua bi `overflow:hidden` CAT CUT.

   Khuon thay the la khuon quen thuoc cua app di dong: 5 tab co dinh o duoi,
   muc cuoi mo menu day du. Ngon cai voi toi day duoi de hon goc tren nhieu.
   ================================================================ */

/* Thanh tab: mac dinh AN. Chi hien o man hep — de o day chu khong o media
   query rieng de doc mot cho la biet no chi danh cho dien thoai. */
/* ---- menu tai khoan (mo tu avatar o thanh tren) ----
   Truoc 16/08/2026 `.tb-user` la mot NUT CHET: nhin nhu bam duoc ma khong gan
   su kien nao, va khung ERP khong co duong dang xuat nao. */
.tk-boc{position:relative}
.tk-bang{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:238px;
  background:var(--qt-white);border:1px solid var(--qt-line);border-radius:10px;
  box-shadow:0 12px 34px rgba(0,0,0,.14);padding:6px;overflow:hidden}
.tk-bang .tk-dau{display:flex;align-items:center;gap:10px;padding:9px 10px 11px;
  border-bottom:1px solid var(--qt-line2);margin-bottom:5px}
.tk-bang .tk-dau b{display:block;font-size:14px;color:var(--qt-ink)}
.tk-bang .tk-dau span:not(.qt-avatar){display:block;font-size:12px;color:var(--qt-ink3);margin-top:2px}
.tk-bang .tk-nhom{padding:4px 10px 9px;border-bottom:1px solid var(--qt-line2);margin-bottom:5px}
.tk-bang .tk-nhan{font-size:12px;font-weight:700;
  color:var(--qt-ink3);margin-bottom:5px}
.tk-bang .tk-nhom .doi-shop{width:100%;max-width:none}
.tk-bang > button{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;
  border:0;background:transparent;border-radius:7px;font:inherit;font-size:14px;
  font-weight:600;color:var(--qt-ink2);text-align:left;cursor:pointer}
.tk-bang > button:hover{background:var(--qt-paper)}
.tk-bang > button svg{flex-shrink:0;color:var(--qt-ink3)}
.tk-bang .tk-thoat{color:var(--qt-red-chu)}
.tk-bang .tk-thoat svg{color:currentColor}

/* ---- chuong thong bao ----
   Cac nut o day deu viet `.qt .ten-lop`: `.qt button{padding:0;height:auto}` lam
   phang MOI nut trong khung ERP, va no co do uu tien cao hon mot lop tran. Do
   thuc: truoc khi nang, `.tb-xem-het` cao 20px va padding 0 — chu tran ra ngoai
   khung bang. Cung ho loi ".qt button lam phang nut man Dao tao AI".
   Truoc 16/08/2026 nut chuong CO SAN nhung khong gan su kien nao — mot nut
   chet, bam khong ra gi. Cung ho loi voi `.tb-user`. */
.tb-boc{position:relative}
.tb-cham{position:absolute;top:3px;right:2px;background:var(--qt-red);color:#fff;
  font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:9px;
  display:grid;place-items:center;padding:0 4px;border:2px solid var(--qt-white);
  font-variant-numeric:tabular-nums}
.tb-bang{position:absolute;top:calc(100% + 6px);right:0;z-index:50;width:340px;
  max-width:calc(100vw - 24px);background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:10px;box-shadow:0 12px 34px rgba(0,0,0,.14);overflow:hidden}
.tb-bang-dau{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 13px;border-bottom:1px solid var(--qt-line2)}
.tb-bang-dau b{font-size:14px;color:var(--qt-ink)}
.tb-trong{padding:26px 16px;text-align:center;color:var(--qt-ink3);font-size:12px;
  line-height:1.6}
.tb-ds{max-height:min(60vh,420px);overflow-y:auto}
.qt .tb-muc{display:flex;gap:10px;width:100%;padding:11px 13px;border:0;background:transparent;
  border-bottom:1px solid var(--qt-line2);font:inherit;text-align:left;cursor:pointer}
.qt .tb-muc:hover{background:var(--qt-paper)}
/* Chua doc: nen nhat + vien trai xanh. Phan biet bang HAI dau hieu chu khong
   chi bang mau — nguoi khong phan biet duoc mau van thay duoc vien. */
.qt .tb-muc.moi{background:var(--qt-g50);box-shadow:inset 3px 0 0 var(--qt-g600)}
.qt .tb-muc .tb-ic{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:grid;
  place-items:center;background:var(--qt-g100);color:var(--qt-g700-chu)}
.tb-noi{min-width:0;flex:1}
.tb-noi b{display:block;font-size:14px;font-weight:600;color:var(--qt-ink);line-height:1.4}
.tb-muc.moi b{font-weight:700}
.tb-than{display:block;font-size:12px;color:var(--qt-ink2);margin-top:2px}
.tb-luc{display:block;font-size:12px;color:var(--qt-ink3);margin-top:3px;
  font-variant-numeric:tabular-nums}
/* Hang CHUA DOC co nen xanh nhat (`--qt-g50`), nen chu mo tren do khong con
   dat 4,5:1 — do that 27/08/2026: 4,42:1. Nen dam len mot bac o DUNG hang do,
   khong dam len o moi noi: chu mo tren nen trang van dung. */
.qt .tb-muc.moi .tb-luc, .qt .man .tb-muc.moi .tb-luc{color:var(--qt-ink2)}
.qt .tb-xem-het{display:block;width:100%;padding:11px;border:0;border-top:1px solid var(--qt-line2);
  background:transparent;font:inherit;font-size:12px;font-weight:600;
  color:var(--qt-g700-chu);cursor:pointer}
.qt .tb-xem-het:hover{background:var(--qt-paper)}
/* KHOI PHUC HOP cho hang thong bao khi no nam trong khung `.man`.
   `.qt .man button{height:32px}` lam phang MOI nut trong khung do — hang thong
   bao cao 3 dong nen bi ep chong len nhau (thay tren anh chup 16/08/2026, cung
   ho loi voi ".qt button lam phang nut man Dao tao AI"). Phai du do uu tien:
   `.qt .man .tb-muc` co 3 lop, thang `.qt .man button` (2 lop + 1 the). */
.qt .man .tb-muc{height:auto;border:0;border-bottom:1px solid var(--qt-line2);
  border-radius:0;background:transparent;padding:11px 13px;display:flex;
  align-items:flex-start;gap:10px;font-size:inherit;font-weight:400}
.qt .man .tb-muc:hover{background:var(--qt-paper);border-color:var(--qt-line2)}
.qt .man .tb-muc.moi{background:var(--qt-g50);box-shadow:inset 3px 0 0 var(--qt-g600)}

/* Man Thong bao day du */
.tb-ngay{font-size:12px;font-weight:700;color:var(--qt-ink3);margin:18px 0 7px}
.qt .tb-muc:last-child{border-bottom:0}
.tb-ds-man{max-height:none;border:1px solid var(--qt-line);border-radius:10px;
  overflow:hidden;background:var(--qt-white)}

/* Hai khoi nay mang them lop `qt` de nhan reset nut va kich thuoc avatar cua
   he thong ERP — chung render o Goc(), ngoai moi boc `.qt` cua tung man. */
.tab-duoi{display:none}
.menu-day{display:none}
/* Nut quay lai chi thuoc ve dien thoai — tren may tinh danh sach van nam canh
   khung chat nen no vo nghia. PHAI khai TRUOC media query: dat sau thi cung
   specificity (.qt .hch-lui) va luat sau thang, nut khong bao gio hien. Da mac
   dung loi do 16/08/2026, chi thay khi chup man. */
.qt .hch-lui{display:none}

@media(max-width:900px){
  /* --- thanh tab duoi --- */
  .tab-duoi{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:var(--qt-white);border-top:1px solid var(--qt-line);
    /* Cao CO DINH. De no tu co gian thi nhan bi cat mat nua duoi — do thay
       tren anh chup 16/08/2026. `box-sizing` vi co ca padding safe-area. */
    height:calc(56px + env(safe-area-inset-bottom,0));box-sizing:border-box;
    /* safe-area: iPhone co thanh Home keo ngang duoi man, khong chua cho no
       thi tab cuoi bi thanh do de len va bam khong trung. */
    padding-bottom:env(safe-area-inset-bottom,0);
  }
  .tab-duoi .td-o{
    flex:1;min-width:0;height:56px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:3px;padding:0 2px;
    background:transparent;border:0;color:var(--qt-ink3);font:inherit;cursor:pointer;
  }
  .tab-duoi .td-o .td-t{font-size:10px;font-weight:600;line-height:1;
    max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tab-duoi .td-o.on{color:var(--qt-g700-chu)}
  .tab-duoi .td-o.on .td-t{font-weight:800}

  /* Chua cho cho thanh tab: thieu cai nay thi dong cuoi cua moi man nam duoi
     thanh tab va khong cuon toi duoc. */
  .qt.shell,.app{padding-bottom:calc(56px + env(safe-area-inset-bottom,0))}
  .qt.shell{height:100vh;height:100dvh;box-sizing:border-box}

  /* iOS TU PHONG TO khi focus input co font < 16px — nang len 16 CHI tren
     mobile (desktop giu 14). Chan zoom lam vo bo cuc moi lan go o tra loi khach. */
  input,textarea,select{font-size:16px}
  /* Popover loc rong co dinh 520px tran ngang o 390px — cap theo be rong man. */
  .qt .cn-bang{max-width:calc(100vw - 24px)}

  /* Nut tro ly noi phai nhuong cho thanh tab, khong thi no che mat mot tab. */
  .tl-nut,.tl-noi{bottom:calc(68px + env(safe-area-inset-bottom,0))!important}

  /* --- menu toan man --- */
  .menu-day{
    /* z-index THAP HON thanh tab (60): dang mo menu van bam thang sang tab
       khac duoc, khong phai dong menu truoc. Do la cach Facebook lam, va la
       ly do menu chua san padding-bottom bang chieu cao thanh tab. */
    display:flex;flex-direction:column;position:fixed;inset:0;z-index:55;
    background:var(--qt-white);
    padding-bottom:calc(56px + env(safe-area-inset-bottom,0));
  }
  .menu-day .md-dau{display:flex;align-items:center;justify-content:space-between;
    padding:14px 16px;border-bottom:1px solid var(--qt-line);flex-shrink:0}
  .menu-day .md-dau b{font-size:18px;font-weight:800}
  .menu-day .md-dong{width:36px;height:36px;display:grid;place-items:center;
    border:0;background:transparent;color:var(--qt-ink3);cursor:pointer}
  .menu-day .md-than{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
  /* Khoi tai khoan o dau menu — tren dien thoai thanh tren chi con avatar nen
     day la duong DUY NHAT toi doi shop va dang xuat. */
    .menu-day .md-tk-nguoi{display:flex;align-items:center;gap:12px;width:100%;
    padding:14px 16px;background:transparent;border:0;border-bottom:1px solid var(--qt-line2);
    font:inherit;text-align:left;cursor:pointer}
  .menu-day .md-tk-nguoi b{display:block;font-size:16px;font-weight:700;color:var(--qt-ink)}
  .menu-day .md-tk-nguoi span:not(.qt-avatar):not(.md-mt){display:block;font-size:12px;
    color:var(--qt-ink3);margin-top:2px}
  .menu-day .md-tk-nguoi > div{flex:1;min-width:0}
  .menu-day .md-tk-shop{display:flex;align-items:center;gap:10px;padding:10px 16px;
    border-bottom:1px solid var(--qt-line2)}
  .menu-day .md-tk-shop > span{font-size:12px;color:var(--qt-ink3);flex-shrink:0}
  .menu-day .md-tk-shop .doi-shop{flex:1;max-width:none}
  .menu-day .md-tk-thoat{display:flex;align-items:center;justify-content:center;gap:10px;
    margin:20px 12px 26px;width:calc(100% - 24px);padding:13px 16px;
    background:var(--qt-white);border:1px solid var(--qt-line);border-radius:12px;
    font:inherit;font-size:14px;font-weight:650;color:var(--qt-red-chu);
    cursor:pointer;min-height:48px}
  /* Luoi o hai cot — khuon menu cua app di dong. Mot danh sach doc 17 dong
     bat nguoi ta doc tung dong; luoi co icon thi mat nhan ra hinh dang truoc
     khi doc chu. */
  .menu-day .md-khu{padding:16px 12px 4px}
  .menu-day .md-khu h4{margin:0 0 10px;padding:0 4px;font-size:12px;font-weight:700;
    color:var(--qt-ink3)}
  .menu-day .md-luoi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .menu-day .md-o{position:relative;display:flex;flex-direction:column;align-items:flex-start;
    gap:8px;padding:13px 12px;min-height:86px;background:var(--qt-white);
    border:1px solid var(--qt-line);border-radius:12px;font:inherit;text-align:left;
    cursor:pointer;color:var(--qt-ink)}
  .menu-day .md-o.on{border-color:var(--qt-g700);background:var(--qt-g100)}
  .menu-day .md-o-ic{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;
    border-radius:9px;background:var(--qt-g100);color:var(--qt-g700-chu)}
  .menu-day .md-o.on .md-o-ic{background:var(--qt-g700);color:#fff}
  .menu-day .md-o-ten{font-size:14px;font-weight:650;line-height:1.3}
  .menu-day .md-o .md-moi{position:absolute;top:9px;right:9px;
    background:var(--qt-g100);color:var(--qt-g700-chu);padding:2px 6px;border-radius:5px;
    font-size:10px;font-weight:800;letter-spacing:.04em}
  .menu-day .md-o.on .md-moi{background:var(--qt-white)}

  /* --- hop thu mot cot --- */
  /* Thanh KPI ngang cua man Hoi thoai: 5 o canh nhau, o 390px thi chong chu
     len nhau va bi cat. An di chu khong co nen — so do xem o Tong quan. */
  .qt .ht-topstrip{display:none}
  .qt .ht-body{position:relative}
  .qt .ht-list{width:100%;border-right:0}
  .qt .ht-detail{display:none}
  /* Chua chon ai: chi danh sach. Chon roi: chi khung chat. */
  .qt .ht-body[data-chon="0"] .ht-chat{display:none}
  .qt .ht-body[data-chon="1"] .ht-list{display:none}
  /* ...TRU KHI cot do dang mang mot bao loi. Tren dien thoai, mo mot hoi
     thoai la an cot danh sach di; nhung khoi bao loi cua danh sach lai ve
     BEN TRONG cot do, nen loi tai lai danh sach thanh mot loi khong ai
     thay — nguoi dung chi thay danh sach dung yen va tuong app cham. Bo
     phan QA tim ra 28/08/2026. */
  .qt .ht-body[data-chon="1"] .ht-list:has(.trth-loi){display:flex}
  .qt .ht-body[data-chon="1"] .ht-chat{width:100%;flex:1}
  .qt .hch-lui{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;
    margin-right:2px;border:0;background:transparent;color:var(--qt-ink2);cursor:pointer;
    transform:rotate(180deg)}

  /* Dau khung chat: bo dong phu (ten trang, con bao lau, ai da xem). O 390px
     chung xuong dong thanh 4 dong va day tin nhan xuong mat mot phan ba man.
     Giu lai TEN KHACH va nut hanh dong — do la hai thu can khi dang tra loi. */
  .qt .hch-head .meta2{display:none}
  .qt .hch-head{padding:8px 10px;gap:8px}

  /* Dai "AI Insight": hai o canh nhau o 390px bi ep con MOT CHU moi dong.
     Xep doc lai. */
  .qt .insight-grid{grid-template-columns:1fr!important;display:grid;gap:8px}

  /* Nut tro ly noi DE len o soan tin — che mat cho go chu, tuc che dung thu
     nguoi ta mo man nay de lam. An di tren dien thoai: tro ly van vao duoc
     qua nhom "gauux AI" o menu, khong mat duong nao. */
  .tl-nut{display:none}

  /* Khung nhieu cot khac ve mot cot */
  .app-inbox,.app-sub{grid-template-columns:minmax(0,1fr)!important}
  .qt .grid2,.qt .grid4{grid-template-columns:1fr}

  /* --- man ERP: rail doc thanh HANG CHIP CUON NGANG ---
     Rail `.hs-views` rong 220px, tren man 390px no an hon MOT NUA man va bang
     du lieu chi con ~170px — chu trong bang xuong dong tung chu (do tren anh
     chup 16/08/2026). An han di thi mat bo loc (Chờ xác nhận, Đang giao...),
     nen chuyen no len tren thanh mot hang chip cuon ngang — dung khuon tab
     trang thai don ma app ban hang nao cung dung. */
  .qt .hs-shell{flex-direction:column}
  .qt .hs-views{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;
    align-items:center;gap:6px;
    border-right:0;border-bottom:1px solid var(--qt-line);
    padding:8px 12px;overflow-x:auto;overflow-y:hidden;flex-shrink:0;
    -webkit-overflow-scrolling:touch;scrollbar-width:none}
  .qt .hs-views::-webkit-scrollbar{display:none}
  /* Tieu de nhom ("DANH SÁCH", "KÊNH BÁN") vo nghia khi xep ngang */
  .qt .hs-views .rail-nhan{display:none}
  /* Dien thoai GIU HINH CHIP (khong doi sang tab gach duoi nhu may tinh):
     day la mot day cuon ngang, gach duoi cua muc dang chon troi ra ngoai man
     la khong con dau hieu nao cho biet dang o dau. */
  .qt .hs-view-item{width:auto;flex-shrink:0;white-space:nowrap;
    border:1px solid var(--qt-line);border-radius:999px;padding:6px 12px;
    border-bottom-width:1px}
  .qt .hs-view-item.on{background:var(--qt-g100);color:var(--qt-g800-chu);
    border-color:var(--qt-g600);border-bottom-color:var(--qt-g600)}
  .qt .hs-view-item .n{margin-left:6px}

  /* Bang du lieu: cho CUON NGANG, o khong xuong dong. Khong co cai nay thi
     moi o bi ep con mot chu moi dong va bang cao hang man hinh. */
  .qt .hs-body{overflow:auto;-webkit-overflow-scrolling:touch}
  .qt .hstable th,.qt .hstable td{white-space:nowrap}
  .qt .obj-tabs,.qt .hs-toolbar{padding-left:12px;padding-right:12px}

  /* --- VUNG BAM ---
     Quet tu dong 16/08/2026 tim ra mot loai loi duy nhat con lai: nut cao
     18-20px. Ngon tay khong bam trung o kich thuoc do — chuan cham la 44px
     (Apple HIG) / 48px (Material). Khong phong to CHU len, chi noi rong VUNG
     BAM bang padding: phong chu la vo bo cuc bang va doan van. */
  .qt .hs-name,.qt .lt-nut,.qt .cn-nut,.qt .gh.sm{min-height:44px}
  .qt .cn-nut{height:auto;padding:0 10px}
  /* `.lk` la lien ket NAM TRONG doan van — khong dat min-height (se lam dong
     chu gian ra), chi noi vung bam theo chieu doc bang padding am nhin. */
  .qt .lk{padding:7px 2px;margin:-7px 0}
  .qt .gh.sm{min-width:36px;justify-content:center}

  /* Goi y phim tat khong co nghia tren dien thoai — khong co phim Ctrl. */
  .qt .kbd,.qt .tb-kbd{display:none}

  /* --- thanh tren --- */
  /* TEN + VAI cua nguoi dung an di, giu lai avatar. Tren man 390px hai dong
     chu do day ca cum ra ngoai mep phai va bi cat (do thay tren anh chup):
     chu shop nhin thay "viên tạm / Chủ shop" treo lo lung ngoai vien. Avatar
     van du de biet dang dang nhap bang ai, va bam vao van ra menu do. */
  .qt .tb-user > div{display:none}
  .qt .tb-user{gap:0;padding:5px}
  .qt .topbar{padding-left:12px;padding-right:12px;gap:8px}
  .qt .tb-search{max-width:none}
  /* Vach ngan cua thanh KPI da an, khong de lai duong ke lac long. */
  .qt .ht-topstrip + *{border-left:0}

  /* Menu tha xuong bo loc phai nam TRONG man hinh. O 390px no neo theo mep
     trai cua nut nen tran ra ngoai va bi cat mat nua ben phai (do thay tren
     anh chup 16/08/2026). Neo ve mep phai va chan be ngang. */
  .qt .lt-bang{left:auto;right:0;max-width:calc(100vw - 24px);
    max-height:70vh;overflow-y:auto}
}

/* ---- Trang cua toi (ESS) ----
   Bo cuc theo trang ca nhan tren Facebook mobile: khoi dau, dai so, the xep
   doc full-width. Mau lay tu bien --qt-*, khong hex thang. */
.qt .toi-page{max-width:820px}
.qt .toi-dau{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.qt .toi-av{width:64px;height:64px;flex-shrink:0;border-radius:50%;
  background:var(--qt-g700);color:#fff;display:grid;place-items:center;
  font-size:20px;font-weight:800}
.qt .toi-ten{flex:1;min-width:0}
.qt .toi-ten :is(h1,h2){font-size:20px;font-weight:800;line-height:1.25}
.qt .toi-ten .sub{font-size:14px;color:var(--qt-ink3);margin-top:3px}
.qt .toi-so{margin-bottom:16px}
.qt .toi-the{margin-bottom:16px}
.qt .toi-ds{display:flex;flex-direction:column}
.qt .toi-hang{display:flex;align-items:center;gap:12px;padding:11px 0;
  border-top:1px solid var(--qt-line2)}
.qt .toi-hang:first-child{border-top:0}
.qt .toi-hang .th{flex:1;min-width:0}
.qt .toi-hang .th b{display:block;font-size:14px;font-weight:600;color:var(--qt-ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qt .toi-da{display:block;font-size:12px;color:var(--qt-ink3);margin-top:2px}
.qt .toi-cham{flex-shrink:0;font-size:12px;font-weight:600;white-space:nowrap}
.qt .toi-ho-so{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
.qt .toi-ho-so > div{min-width:0}
.qt .toi-ho-so span{display:block;font-size:12px;color:var(--qt-ink3)}
.qt .toi-ho-so b{display:block;font-size:14px;font-weight:600;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis}

@media(max-width:900px){
  .qt .toi-dau{flex-wrap:wrap;gap:12px}
  .qt .toi-dau .hbtn{width:100%;justify-content:center}
  .qt .toi-av{width:56px;height:56px;font-size:20px}
  .qt .toi-ten :is(h1,h2){font-size:20px}
  .qt .toi-ho-so{grid-template-columns:1fr}
  /* Nut trong dau the bi ep xuong hai dong ("Xem tat / ca") vi .card-h la
     space-between va nut co the co lai. Do tren anh chup 16/08/2026. */
  .qt .toi-the .card-h{gap:10px}
  .qt .toi-the .card-h .hbtn{flex-shrink:0;white-space:nowrap}
}

/* ================================================================
   BANG TIN NOI BO (man `bt`)

   Bo cuc theo dong tin quen thuoc: o soan tren cung, bai xep duoi, binh luan
   thut vao trong bai. Khong co "thich" — mot con so dem cai like khong tra loi
   duoc cau hoi nao cua nguoi dang van hanh mot shop.
   ================================================================ */
.bt-in{max-width:720px}
.bt-soan{display:flex;gap:12px;background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:var(--qt-rlg);padding:14px;margin-bottom:18px;box-shadow:var(--qt-sh)}
.bt-soan-duoi{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:9px}
.bt-ghim-o{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--qt-ink2)}
.bt-bai{background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:var(--qt-rlg);padding:14px;margin-bottom:14px;box-shadow:var(--qt-sh)}
/* Bai ghim: vien xanh + nen nhat. Hai dau hieu chu khong chi mot mau, de
   nguoi khong phan biet duoc mau van thay. */
.bt-bai.ghim{border-color:var(--qt-g600);background:var(--qt-g50)}
.bt-dau{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.bt-dau b{display:block;font-size:14px;color:var(--qt-ink)}
.bt-luc{display:block;font-size:12px;color:var(--qt-ink3);font-variant-numeric:tabular-nums}
.bt-nhan-ghim{font-size:12px;font-weight:700;color:var(--qt-g700-chu);background:var(--qt-g100);
  border-radius:var(--bk-tron);padding:3px 9px;flex-shrink:0}
/* `pre-wrap`: nguoi ta xuong dong trong o soan thi bai phai giu dung nhu vay. */
.bt-noi{font-size:14px;line-height:1.6;color:var(--qt-ink);white-space:pre-wrap;
  word-break:break-word}
.bt-sua{margin-bottom:9px}
.bt-hd{display:flex;gap:16px;margin-top:11px;padding-top:9px;
  border-top:1px solid var(--qt-line2)}
.bt-bl{margin-top:11px;padding-top:11px;border-top:1px solid var(--qt-line2);
  display:flex;flex-direction:column;gap:11px}
.bt-bl-m{display:flex;gap:9px;align-items:flex-start;font-size:14px;line-height:1.55}
.bt-bl-m b{font-size:12px;color:var(--qt-ink);margin-right:7px}
.bt-luc-ngang{display:inline;font-size:12px;
  color:var(--qt-ink3);font-variant-numeric:tabular-nums}
.bt-bl-go{display:flex;gap:8px;margin-top:11px}
.bt-bl-go input{flex:1}
.qt-avatar.sm{width:26px;height:26px;font-size:10px}
.lk-do{color:var(--qt-red-chu)}

/* ================================================================
   MSG — chat noi bo (man `msg`)

   Hai cot: danh sach hoi thoai ben trai, cuoc dang mo ben phai. KHONG dung lai
   lop cua man Hoi thoai (`.ht-*`): hai man giong nhau ve hinh nhung khac han
   ve du lieu va ve luat gui — tron lop la mot ngay sua man nay lam vo man kia.
   ================================================================ */
.msg-body{flex:1;display:flex;min-height:0;overflow:hidden}
.msg-ds{width:300px;flex-shrink:0;border-right:1px solid var(--qt-line);
  background:var(--qt-white);overflow-y:auto;padding:10px}
.msg-ds-dau{display:flex;align-items:center;justify-content:space-between;
  padding:4px 8px 10px}
.msg-ds-dau b{font-size:14px;color:var(--qt-ink)}
.qt .msg-o{display:flex;align-items:center;gap:10px;width:100%;padding:9px 8px;border:0;
  background:transparent;border-radius:9px;font:inherit;text-align:left;cursor:pointer}
.qt .msg-o:hover{background:var(--qt-paper)}
.qt .msg-o.on{background:var(--qt-g50);box-shadow:inset 3px 0 0 var(--qt-g600)}
.msg-o-noi{min-width:0;flex:1}
.msg-o-noi b{display:block;font-size:14px;color:var(--qt-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-o-cuoi{display:block;font-size:12px;color:var(--qt-ink3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-cham{flex-shrink:0;min-width:20px;height:20px;border-radius:10px;padding:0 6px;
  background:var(--qt-g600);color:#fff;font-size:12px;font-weight:700;
  display:grid;place-items:center;font-variant-numeric:tabular-nums}
.msg-cuoc{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--qt-paper)}
.msg-cuoc-dau{display:flex;align-items:center;gap:10px;padding:13px 18px;
  border-bottom:1px solid var(--qt-line);background:var(--qt-white)}
/* PHAI khai TRUOC media query bat no len: dat sau thi cung do uu tien va luat
   sau thang — nut khong bao gio hien, va nguoi dung ket trong mot hoi thoai.
   Da mac dung loi do voi `.hch-lui` cua hop thu. */
.qt .msg-lui{display:none}
.msg-cuoc-dau b{font-size:14px;color:var(--qt-ink)}
.msg-tv{font-size:12px;color:var(--qt-ink3)}
.msg-tin{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px}
/* Tin cua minh day sang phai. Mau bong bong lay tu token bong bong da co —
   KHONG dat ma mau moi o day (style.css la cau noi, khong phai nguon mau). */
.msg-d{max-width:min(70%,560px);align-self:flex-start}
.msg-d.toi{align-self:flex-end;text-align:right}
.msg-ten{display:block;font-size:12px;color:var(--qt-ink3);margin-bottom:3px}
.msg-bb{display:inline-block;padding:9px 13px;border-radius:14px;font-size:14px;
  line-height:1.55;white-space:pre-wrap;word-break:break-word;text-align:left;
  background:var(--bb-khach);color:var(--bb-khach-chu);border:1px solid var(--bb-khach-vien)}
.msg-bb-toi{background:var(--bb-nguoi);color:var(--bb-nguoi-chu);
  border-color:var(--bb-nguoi-vien)}
.msg-luc{display:block;font-size:12px;color:var(--qt-ink3);margin-top:3px;
  font-variant-numeric:tabular-nums}
/* Chua cho cho nut tro ly noi (fixed, goc phai duoi): thieu padding thi no de
   len dung nut Gui — thay tren anh chup 16/08/2026. Tren dien thoai nut tro ly
   da an nen tra lai padding thuong. */
.msg-go{display:flex;gap:9px;padding:12px 88px 12px 18px;
  border-top:1px solid var(--qt-line);background:var(--qt-white)}
.msg-go input{flex:1}
.msg-trong{padding:22px 12px;text-align:center;color:var(--qt-ink3);font-size:12px;
  line-height:1.6}
.msg-trong-lon{flex:1;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:9px;color:var(--qt-ink3);text-align:center;padding:24px}
.msg-trong-lon b{font-size:16px;color:var(--qt-ink2)}
.msg-trong-lon p{font-size:14px;max-width:380px;line-height:1.6}
/* hop "Hoi thoai moi" */
.msg-lop{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.38);
  display:grid;place-items:center;padding:20px}
.msg-hop{background:var(--qt-white);border-radius:var(--qt-rlg);padding:20px;
  width:min(440px,100%);max-height:80vh;overflow-y:auto;box-shadow:var(--qt-sh-lg)}
.msg-hop :is(h2,h3){font-size:16px;margin-bottom:12px}
.msg-nhan{font-size:12px;font-weight:700;color:var(--qt-ink3);margin:14px 0 7px}
.msg-nguoi{display:flex;flex-direction:column;gap:4px}
.msg-nguoi button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 9px;
  border:1px solid var(--qt-line);border-radius:8px;background:var(--qt-white);
  font:inherit;font-size:14px;text-align:left;cursor:pointer}
.msg-nguoi button:hover{background:var(--qt-paper)}
.msg-chon{display:flex;flex-direction:column;gap:6px;margin:8px 0 14px;
  max-height:180px;overflow-y:auto}
.msg-chon label{display:flex;align-items:center;gap:8px;font-size:14px}

@media(max-width:900px){
  /* Mot cot nhu hop thu: chua chon ai thi chi danh sach, chon roi thi chi cuoc.
     Lam bang CSS chu khong bang nhanh JS — may tinh khong doi hanh vi gi. */
  .msg-ds{width:100%;border-right:0}
  .msg-go{padding:12px 14px}
  /* Mui ten quay lai: xoay 180 do tu icon `gap` (mui ten phai). */
  .qt .msg-lui{display:grid;place-items:center;width:34px;height:34px;flex:none;
    margin-left:-8px;border:0;background:transparent;border-radius:8px;
    color:var(--qt-ink2);cursor:pointer;transform:rotate(180deg)}
  .qt .msg-lui:hover{background:var(--qt-paper)}
  .msg-cuoc{display:none}
  .msg-body[data-chon="1"] .msg-ds{display:none}
  .msg-body[data-chon="1"] .msg-ds:has(.trth-loi){display:flex}   /* xem ghi chu o .ht-list */
  .msg-body[data-chon="1"] .msg-cuoc{display:flex}
}

/* ================================================================
   TRANG CHU — feed ca nhan hoa (man `tong-quan`)

   Thay bon the KPI roi cao ~145px/so bang MOT dai mong roi noi dung that ngay
   duoi. Do that tren dien thoai: bon the cu chiem ~580px cuon chi de doc bon
   con so. Cung cach ban redesign ngan hang gop so du + ba nut vao mot khoi.
   ================================================================ */
/* Keo noi dung len sat dau trang. Cac man khac giu padding chung; rieng trang
   chu thi khoang trang o tren la thu nguoi dung phai cuon qua moi ngay. */
/* Keo noi dung len sat dau trang, nhung KHONG am: margin am lam tieu de
   chui len duoi thanh tren va bi cat — thay tren anh chup. */
/* Than trang chu chay HET be ngang, dung nhu /giaodien. Truoc do 760px trong
   mot khung 1600px — do that o 1280: the KPI dau ban mau 276px, app 246px.
   Chi noi rong TRANG CHU, khong dung toi `.man-in` vi lop do dung chung cho
   moi man va nhieu man da can tay theo be ngang 800px. */
/* Dem MOT lan thoi. `.page-in` da dem 32px nhu ban mau; `.man-in` dem them
   mot lop nua nen than trang bi thut vao hai lan, the KPI hep di 30px. */
.fd-in{max-width:none;padding:0 0 32px!important}
.fd-in h1{font-family:var(--qt-font);font-size:36px;font-weight:700;line-height:1.2;
  letter-spacing:-.02em}
.fd-dau{margin-bottom:16px}
.fd-dan{margin-top:6px;font-size:14px;color:var(--qt-ink2)}
.fd-dan b{color:var(--qt-ink);font-weight:700;font-variant-numeric:tabular-nums}

/* Dai so: cuon ngang tren dien thoai thay vi xuong dong thanh nhieu hang. */
.fd-dai{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;margin-bottom:20px}
/* `.qt .man .fd-o` (0,3,0) chu KHONG `.qt .fd-o` (0,2,0): man Trang chu nam
   trong `.man`, va `.qt .man button` (0,2,1) dat align-items:center + border
   + min-height de len moi nut trong do. Lan THU TU trong ngay 17/08/2026 dinh
   cung ho bay nay — do computed style moi thay, ca bon lan. */
.qt .man .fd-o{flex:none;min-width:118px;display:flex;flex-direction:column;align-items:flex-start;
  gap:2px;background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:var(--qt-r);padding:11px 13px;cursor:pointer;text-align:left;
  box-shadow:var(--qt-sh)}
.qt .man .fd-o:hover{border-color:var(--qt-g600);background:var(--qt-g50)}
.qt .man .fd-o b{font-size:20px;font-weight:800;color:var(--qt-ink);line-height:1.15;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.qt .man .fd-o span{font-size:12px;color:var(--qt-ink3);line-height:1.35;
  /* NHAN TREN, SO DUOI — khuon stat tile chuan (Stripe/Linear deu vay).
     Ban cu de so truoc nhan sau, va khi o nam trong rail phai con lat thanh
     HANG "so | nhan day phai" — doc ra nhu mot o bang tinh, dung cho "phen"
     nhat cua man mo nhieu nhat. Markup van la <b>so</b><span>nhan</span>;
     dao bang order de khong dung toi cac cho goi. */
  order:-1}

.fd-khoi{background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:var(--qt-rlg);margin-bottom:14px;overflow:hidden;box-shadow:var(--qt-sh)}
.fd-h{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 16px;border-bottom:1px solid var(--qt-line2)}
.fd-h :is(h2,h3){font-size:14px;font-weight:700;color:var(--qt-ink)}
.fd-rong{padding:16px;font-size:14px;color:var(--qt-ink3);line-height:1.6}
.fd-rong b{color:var(--qt-ink2)}

/* Hang: padding + min-height, KHONG chieu cao co dinh — xem chu thich mo hinh
   nut o `.qt .man button`. */
.qt .fd-hang{display:flex;align-items:center;gap:12px;width:100%;
  padding:11px 16px;min-height:44px;border:0;border-bottom:1px solid var(--qt-line2);
  border-radius:0;background:transparent;font:inherit;text-align:left;cursor:pointer}
.qt .fd-hang:hover{background:var(--qt-paper);border-color:var(--qt-line2)}
.fd-tinh{cursor:default}
.fd-khoi > :last-child{border-bottom:0}
.fd-noi{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.fd-noi b{font-size:14px;font-weight:600;color:var(--qt-ink);line-height:1.4;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fd-phu{font-size:12px;color:var(--qt-ink3);line-height:1.4}
.fd-nhan{flex:none;font-size:12px;font-weight:700;border-radius:var(--bk-tron);
  padding:3px 9px;white-space:nowrap}
.fd-do{background:var(--qt-red-bg);color:var(--qt-red-chu)}
.fd-cam{background:var(--qt-amber-bg);color:var(--qt-amber-chu)}
.fd-xanh{background:var(--qt-g100);color:var(--qt-g700-chu)}
.fd-mo{background:var(--qt-line2);color:var(--qt-ink3)}

.qt .fd-bai{display:flex;align-items:flex-start;gap:11px;width:100%;
  padding:13px 16px;min-height:44px;border:0;border-bottom:1px solid var(--qt-line2);
  border-radius:0;background:transparent;font:inherit;text-align:left;cursor:pointer}
.qt .fd-bai:hover{background:var(--qt-paper);border-color:var(--qt-line2)}
.qt .fd-bai.ghim{background:var(--qt-g50);box-shadow:inset 3px 0 0 var(--qt-g600)}
.fd-bai-noi{font-size:14px;color:var(--qt-ink2);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---- nhom "Nâng cao" trong sidebar (đóng sẵn) + Cài đặt ở chân ----
   19 mục cùng một cấp là quá nhiều để quét; nửa dưới gần như vô hình. Nhóm này
   KHÔNG ẩn tính năng nào — chỉ là không bắt người dùng đọc qua nó mỗi ngày. */
.qt .sb-nc{margin-top:6px;padding-top:6px;border-top:1px solid var(--qt-line2)}
.qt .sb-nc-nut{display:flex;align-items:center;gap:9px;width:100%;
  padding:8px 10px;min-height:34px;border:0;border-radius:8px;background:transparent;
  font:inherit;font-size:12px;font-weight:600;color:var(--qt-ink3);cursor:pointer}
.qt .sb-nc-nut:hover{background:var(--qt-paper);color:var(--qt-ink2)}
.qt .sb-nc-nut svg{transition:transform .18s;transform:rotate(90deg)}
.qt .sb-nc-nut.open svg{transform:rotate(-90deg)}
.sb-nc-so{margin-left:auto;font-size:12px;font-weight:700;color:var(--qt-ink3);
  background:var(--qt-line2);border-radius:var(--bk-tron);padding:1px 7px;
  font-variant-numeric:tabular-nums}
/* Khoang cach giua cac muc o day phai la GAP: `.sb-item` khong con
   margin-bottom (nav dung gap), nen de nguyen la cac muc dinh sat vao nhau. */
.sb-nc-ds{max-height:0;overflow:hidden;transition:max-height .22s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;gap:2px}
.sb-nc-ds.open{max-height:420px}
.qt .sb-chan{padding:6px 10px 4px;border-top:1px solid var(--qt-line2);flex-shrink:0;
  display:flex;flex-direction:column;gap:2px}

/* ---- Trang chu tren MAY TINH: hai cot ----
   O 1600px mot cot 760px de thua 302px ben phai — nhin nhu chua lam xong. Cot
   phai giu dai so va hoat dong gan day; cot trai la thu can xu ly. Duoi 1200px
   xep doc lai thanh mot cot, dai so len tren cung. */
.fd-cot{display:flex;flex-direction:column}
.fd-rail{order:-1}
@media(min-width:1200px){
  .fd-in{max-width:1200px}
  .fd-cot{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:0 22px;align-items:start}
  /* PHAI chi dinh cot ro rang: grid xep theo thu tu DOM, ma `.fd-rail` dung
     truoc trong DOM (de tren dien thoai dai so len dau) — khong chi dinh thi no
     roi vao cot 1 va hai cot bi dao. Thay dung nhu vay tren anh chup. */
  .fd-chinh{grid-column:1;grid-row:1}
  .fd-rail{grid-column:2;grid-row:1;order:0;position:sticky;top:0}
  /* Dai so o cot phai: xep DOC, moi o mot hang — cuon ngang trong mot cot hep
     la thao tac thua khi da co du cho. */
  .fd-rail .fd-dai{flex-direction:column;overflow:visible;gap:8px}
  /* Trong rail phai o van la COT nhan-tren-so-duoi nhu moi noi khac — mot
     khuon o hai ngu canh, khong phai hai khuon. */
  .fd-rail .fd-o{width:100%;min-width:0}
}

/* ---- chon mo-dun trong Thiet lap doanh nghiep ---- */
.md-luoi-cai{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.md-o-cai{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--qt-ink2);
  padding:8px 10px;border:1px solid var(--qt-line);border-radius:9px;
  background:var(--qt-white);cursor:pointer;min-height:40px}
.md-o-cai:hover{border-color:var(--qt-g600);background:var(--qt-g50)}
.md-o-cai svg{color:var(--qt-ink3);flex-shrink:0}

/* ===== Ba nhan vien so (man ai-ns) =====================================
   Tien to .ai- chua dung o dau khac — da kiem. Xem bai hoc `.ca-o` trung ten
   giua man Thu vien anh va man Lich truc: lop long trong sua duoc thuoc tinh
   no nhac toi, khong xoa duoc thuoc tinh no khong nhac toi. */
.ai-luoi{display:grid;gap:14px;padding:12px 20px;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.ai-the{margin:0}
/* Den trang thai: XAM la chua san sang, va the do luon kem mot cau noi thieu
   gi. Mot cai den khong noi duoc phai lam gi thi chi lam nguoi ta lo. */
.ai-cham{width:9px;height:9px;border-radius:50%;flex:none;background:var(--qt-ink3);opacity:.4}
.ai-cham.on{background:var(--qt-g700);opacity:1;box-shadow:0 0 0 3px rgba(20,108,67,.16)}
/* "Tu lam" vs "Chi khuyen" — day la khac biet quan trong nhat giua ba con AI,
   nen no la mot nhan doc duoc, khong phai mot chu thich cuoi the. */
.ai-vai{font-size:12px;font-weight:600;padding:3px 9px;border-radius:99px;
  background:var(--qt-paper);color:var(--qt-ink3);border:1px solid var(--qt-line)}
.ai-vai.lam{background:rgba(20,108,67,.1);color:var(--qt-g800-chu);border-color:transparent}
.ai-so{display:flex;gap:18px;margin-top:12px;padding-top:12px;border-top:1px solid var(--qt-line)}
.ai-so>div{display:flex;flex-direction:column}
.ai-so b{font-size:16px;font-variant-numeric:tabular-nums}
.ai-so span{font-size:12px;color:var(--qt-ink3)}
.ai-kn{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.ai-chan{margin-top:12px;font-size:12px}
.ai-chan summary{cursor:pointer;color:var(--qt-ink3);font-weight:600}
.ai-chan ul{margin:8px 0 0;padding-left:18px;color:var(--qt-ink3);line-height:1.6}
@media(max-width:900px){.ai-luoi{grid-template-columns:1fr;padding:12px}}

/* ---- O ghi chu cua nguoi chay tren tung quang cao (man Trinh QC) ----
 *
 * DO BANG TRINH DUYET, KHONG DOAN. Ban dau viet `.gc-o{...}` va moi khai bao
 * deu bi de sach — do computed style 17/08/2026 ra: border `none`, white-space
 * `nowrap`, height 18,75px, display `flex`, padding 0. Hai luat thang no:
 *   `.qt button`      (0,1,1) — reset phang moi nut trong khung ERP
 *   `.qt .hstable td` (0,2,1) — nowrap de bang cuon ngang duoc
 * Nen phai viet du do uu tien: `.qt .hstable .gc-o` = (0,3,0), thang ca hai.
 * Cung bai hoc `.qt .man .tb-muc` cua hang thong bao.
 *
 * `white-space:normal` la BAT BUOC, khong phai cho dep: thieu no thi ghi chu
 * bi cat giua tu ("...giữ thêm 3 ngày. Quảng") va nguoi doc tuong minh go
 * thieu chu. Do that bang anh chup.
 *
 * Tien to `gc-` da kiem la chua man nao dung — bai hoc `.ca-o` trung ten voi
 * Thu vien anh lam bang lich truc vo, va chi nhin anh chup moi thay.
 *
 * O CHUA CO ghi chu phai NHAT nhung van thay duoc: mo qua thi khong ai biet
 * la bam vao duoc, dam qua thi mot bang 300 dong day nhung dau "+" keu goi. */
.qt .hstable .gc-o{display:block;width:100%;text-align:left;background:none;
  border:1px dashed var(--qt-line);border-radius:6px;padding:4px 7px;margin-top:5px;
  max-width:290px;cursor:pointer;white-space:normal;
  font-size:12px;line-height:1.45;color:var(--qt-ink2);height:auto}
.qt .hstable .gc-o:hover{border-color:var(--qt-g600);background:var(--qt-g100)}
.qt .hstable .gc-trong{color:var(--qt-ink3)}
/* Ghi chu dai thi cat con 3 DONG (khong phai cat giua tu) — bang so khong
   duoc bien thanh bang chu. */
.qt .hstable .gc-co{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;white-space:normal}
.qt .hstable .gc-sua{max-width:290px;white-space:normal;margin-top:5px}
.qt .hstable .gc-sua textarea{width:100%;height:auto;font-size:12px;line-height:1.45;
  resize:vertical;white-space:normal}
.qt .hstable .gc-nut{display:flex;gap:6px;align-items:center;margin-top:5px;flex-wrap:wrap}
.qt .hstable .gc-goi{font-size:12px;color:var(--qt-ink3);white-space:normal}

/* Vung bam tren dien thoai: nut trong o ghi chu phai du 44px, cung luat da
   ap cho .lk/.hs-name/.lt-nut ngay 16/08/2026. */
@media(max-width:900px){
  /* Chuan cham 44px cho chip loc va cong tac gat — do that 17/08/2026:
     chip 28px, gat 22px, ngon tay khong bam trung. */
  .qt .fchip,.qt .ls-chip{min-height:44px;padding:10px 16px;font-size:14px}
  .qt .gat{width:50px;height:30px}
  .qt .gat i{width:26px;height:26px}
  .qt .gat.on i{transform:translateX(20px)}
  .qt .hstable .gc-o{min-height:44px;max-width:none}
  .qt .hstable .gc-sua{max-width:none}
}

/* ---- Phieu luong cua chinh minh + thac mac (Trang cua toi, man ns-kn-luong) ----
   Tien to `pl-` va `kn-` da kiem la chua man nao dung — bai hoc `.ca-o` trung
   ten voi Thu vien anh lam bang lich truc vo, chi nhin anh chup moi thay. */
.qt .pl-hang{border-top:1px solid var(--qt-line2);padding:11px 0}
.qt .pl-hang:first-of-type{border-top:0}
.qt .pl-dau{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.qt .pl-tien{font-weight:700;font-variant-numeric:tabular-nums}
.qt .pl-cham{margin-left:auto;font-size:12px;color:var(--qt-ink3);
  border:1px solid var(--qt-line);border-radius:99px;padding:2px 9px}
.qt .pl-ok{color:var(--qt-g700-chu);border-color:var(--qt-g600);background:var(--qt-g100)}
.qt .pl-cho{color:var(--qt-ink2);border-color:var(--qt-amber-chu);background:var(--qt-amber-bg)}
.qt .pl-so{display:grid;gap:5px 16px;margin-top:7px;
  grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}
.qt .pl-so div{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.qt .pl-so span{color:var(--qt-ink3)}
.qt .pl-so b{font-variant-numeric:tabular-nums}
.qt .pl-kn{margin-top:8px;padding:8px 10px;border-radius:8px;
  background:var(--qt-paper);font-size:12px;line-height:1.5}
.qt .pl-tl{margin-top:5px;color:var(--qt-g800-chu)}

.qt .kn-tt{font-size:12px;border:1px solid var(--qt-line);border-radius:99px;padding:2px 9px}
.qt .kn-moi{color:var(--qt-ink2);border-color:var(--qt-amber-chu);background:var(--qt-amber-bg)}
.qt .kn-dang_xu_ly{color:var(--qt-ink2)}
.qt .kn-xong{color:var(--qt-g700-chu);border-color:var(--qt-g600);background:var(--qt-g100)}
.qt .kn-tu_choi{color:var(--qt-red-chu);border-color:var(--qt-red-chu)}
.qt .kn-tl{margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--qt-paper);
  font-size:12px;line-height:1.5}

/* ---- Man chon shop (khi mot nguoi thuoc tu hai shop tro len) ----
   Tien to `cs-` da kiem la chua man nao dung.

   PHAI VIET `.qt .cs-o`, KHONG duoc `.cs-o`: khung `.setup qt` nam trong `.qt`,
   ma `.qt button` (0,1,1) reset phang moi nut — border:0, padding:0, height:auto,
   display:flex. Mot lop tran (0,1,0) thua no, va the "shop" hien ra thanh CHU
   TRAN giua man hinh. Da dinh bay nay BA LAN trong ngay 17/08/2026 (o ghi chu
   QC, link .lk trong doan van, va day). Chi thay khi chup man. */
.qt .cs-luoi{display:grid;gap:10px;margin-top:16px}
.qt .cs-o{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;
  text-align:left;background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:var(--qt-r);padding:13px 15px;cursor:pointer;position:relative;height:auto}
.qt .cs-o:hover:not(:disabled){border-color:var(--qt-g600);background:var(--qt-g100)}
.qt .cs-o:disabled{opacity:.55;cursor:default}
.qt .cs-dang{border-color:var(--qt-g600)}
.qt .cs-ten{font-weight:600;color:var(--qt-ink)}
.qt .cs-phu{font-size:12px;color:var(--qt-ink3)}
.qt .cs-nhan{position:absolute;right:14px;top:14px;font-size:12px;color:var(--qt-g700-chu);
  background:var(--qt-g100);border:1px solid var(--qt-g100-vien);border-radius:99px;padding:2px 9px}

/* Nut "Doi shop" trong menu Them tren dien thoai.
   `.qt .md-tk-doi` la (0,2,0), da thang `.qt button` (0,1,1) — khong can long
   them `.menu-day`. Long them cung chay, nhung `menu-day` la mot lop CAP TREN
   CUNG nen test "lop long trong khong trung ten man khac" bao do (dung luat cua
   no: no khong phan biet duoc to tien voi dich). Chon selector ngan hon. */
.qt .md-tk-doi{display:flex;align-items:center;gap:10px;width:100%;
  min-height:44px;padding:10px 14px;border:1px solid var(--qt-line);
  border-radius:var(--qt-r);background:var(--qt-white);color:var(--qt-ink);
  font-size:14px;margin-top:8px}

/* ================== HE THONG GIAO DIEN — KHAI MOT CHO ==================
 *
 * Chot 17/08/2026 (chu shop: "dang la va chap"). Do duoc truoc khi sua:
 *   - 1.015 cho `style="..."` noi dong, thuoc 305 KHUON KHAC NHAU
 *   - 52% gia tri gian cach va 57% co chu LECH khoi thang cua bo token
 *   - thang `--gx-space-*` / `--gx-radius-*` da khai trong thuong-hieu.css
 *     nhung app CHUA DUNG MOT LAN NAO
 *
 * "Nhin phen" khong phai cam tinh — no la 305 he thong con moi man tu nghi
 * mot kieu. Cach sua dung khong phai di chinh tung man: khai khuon MOT CHO
 * o day, roi ep cac cho va chap ve khuon bang may.
 *
 * LUAT: khuon moi chi duoc tieu thu token (--gx-*, --qt-*), khong go so tay
 * tru gia tri khong nam trong pham vi token (flex, overflow...). Co chu chi
 * lay tu thang cua bo nhan dien: 12 / 14 / 16 / 18 / 20 / 28 / 36.
 * test/he-thong-giao-dien.test.js khoa ca hai chieu va CHI CHO GIAM so cho
 * noi dong — them mot cho style= moi la test do.
 */

/* --- khung man: lap o moi man ERP, truoc day chep tay ~50 lan --- */
.qt .cot-man{flex:1;display:flex;flex-direction:column;overflow:hidden}
.qt .cuon-doc{overflow:auto}

/* Khoi noi dung trong long .man — truoc day `margin:12px 20px` chep 87 lan.
   Ep ve thang: 12px = space-3, 24px = space-6 (20px khong nam trong thang;
   24px cung khop grid.gutter cua bo nhan dien). */
.qt .man-khoi{margin:var(--gx-space-3) var(--gx-space-6)}

/* --- chu: chi hai bac phu, dung thang 12/14 --- */
.qt .chu-mo{font-size:12px;color:var(--qt-ink3)}
.qt .chu-nho{font-size:12px}
.qt .chu-dam{font-weight:600;color:var(--qt-ink)}

/* --- tien ich bo cuc dung nhieu --- */
.qt .gian{flex:1}
.qt .trai{text-align:left}
.qt .mot-dong{white-space:nowrap}
.qt .hang-nut{display:flex;gap:var(--gx-space-2);margin-top:var(--gx-space-3);
  flex-wrap:wrap;align-items:center}
.qt .cach-tren{margin-top:var(--gx-space-3)}
.qt .cach-duoi{margin-bottom:var(--gx-space-4)}
/* Dot hai (17/08/2026): cac khuon lap 4+ lan con lai. */
.qt .chu-mo-duoi{font-size:12px;color:var(--qt-ink3);margin:0 0 var(--gx-space-2)}
.qt .cach-trai{margin-left:var(--gx-space-2)}
/* --- Dot ba (02/09/2026): khuon lap con lai tren the KHONG co class. --- */
.qt .chu-14{font-size:14px}
.qt .co-gian{flex:1;min-width:0}
.qt .hang-8{display:flex;gap:var(--gx-space-2);align-items:center}

.qt .tran-cot{grid-column:1/-1}
.qt .canh-do{color:var(--qt-red-chu)}
.qt .khoi-trong{padding:var(--gx-space-8) var(--gx-space-6)}
.qt .man-khoi-duoi{margin:0 var(--gx-space-6) var(--gx-space-6);flex:none}
.qt .dai-the{display:flex;gap:var(--gx-space-4);margin:var(--gx-space-3) var(--gx-space-6);flex-wrap:wrap}

/* ---- Trinh QC: chip loc + gom theo chien dich + hang tong (17/08/2026,
   doi chieu ads.xanhtrue.vn).

   LAN NAM cua bay do dac hieu, va lan nay theo chieu NGUOC: ban dau viet
   `.qt .man .fchip` cho "chac an" — nhung man Trinh QC KHONG co khung `.man`
   (no la `.hs-shell > .hs-main`), selector khong khop gi ca va chip hien ra
   thanh chu tran xep doc. Bai hoc day du la: do dac hieu phai THANG doi thu
   THAT (o day la `.qt button`, 0,1,1 — vi khong co .man thi khong co
   `.qt .man button`), va selector phai KHOP DOM that. Chi chup man moi thay. */
.qt .fbo-loc{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.qt .fchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--qt-line);
  background:var(--qt-white);color:var(--qt-ink2);border-radius:999px;padding:0 13px;
  font-size:12px;font-weight:600;height:32px}
/* Chip DANG CHON to nen toi + chu nghich, dung ban thiet ke. Dung token chu
   khong go #0F172A: o che do toi `--qt-ink` la mau SANG va `--qt-white` la mau
   toi, nen cap nay tu dao lai va van doc duoc. */
.qt .fchip.on{border-color:var(--qt-ink);background:var(--qt-ink);color:var(--qt-white);font-weight:700}
/* SO DEM TRONG CHIP DANG CHON PHAI THEO MAU CUA CHIP, khong theo luat chung.

   Loi da co that, do bang trinh duyet 29/08/2026: `.qt b{color:var(--qt-ink)}`
   (luat chung cho moi chu dam trong khung ERP) ap ca vao <b> nam trong chip —
   ma chip DANG CHON lay dung mau do lam NEN. Ket qua: chu den tren nen den, so
   dem TANG HINH. Do duoc: mau chu rgb(15,23,42) tren nen rgb(15,23,42).

   Khong test nao bat duoc — DOM co day du chu, `innerText` doc ra "Chờ trả lời
   43", chi la khong ai nhin thay. Chi thay khi chup man roi phong to.

   Va no nam trong `HangChip` — khuon dung chung — nen no giau so dem o MOI man
   co chip mang so, khong phai mot man. Cung ho loi "mot mau khong lam duoc ca
   hai vai" da mac o che do toi. */
.qt .fchip.on b, .qt .ls-chip.on b{color:inherit}
.qt .fbo-tim{flex:0 1 260px;min-width:170px;height:30px;font-size:12px}
.qt .qc-cd{cursor:pointer;background:var(--qt-paper)}
.qt .qc-cd:hover{background:var(--qt-g50)}
.qt .qc-cd td{font-weight:500}
.qt .qc-mui{display:inline-block;width:16px;color:var(--qt-ink3)}
.qt .qc-con td:first-child{padding-left:30px}
.qt .qc-tong td{background:var(--qt-paper);font-weight:700;border-top:2px solid var(--qt-line)}
/* Lai CHAC CHAN (doanh thu-can-duoi >= chi): xanh. KHONG co mau do theo chieu
   nguoc lai — doanh thu thieu don chua ghep, to do la ket toi oan. */
.qt .qc-lai{color:var(--qt-g700-chu);font-weight:700}

/* ---- Buoc 5d: cong tac gat + bieu do + form tao camp (Trinh QC) ----
   `.qt .gat` (0,2,0) thang `.qt button` (0,1,1); man nay khong co `.man`
   (bai hoc lan nam cua bay do dac hieu). */
.qt .gat{width:38px;height:22px;border-radius:99px;background:var(--qt-line);
  border:0;padding:2px;display:inline-flex;align-items:center;cursor:pointer;
  transition:background .15s}
.qt .gat i{display:block;width:18px;height:18px;border-radius:50%;background:var(--qt-white);
  box-shadow:var(--qt-sh);transition:transform .15s}
.qt .gat.on{background:var(--qt-g600)}
.qt .gat.on i{transform:translateX(16px)}

.qt .bd-hang{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.qt .bd-o{background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:var(--qt-r);padding:12px 14px;box-shadow:var(--qt-sh)}
.qt .bd-ten{font-size:12px;color:var(--qt-ink3);font-weight:600;margin-bottom:6px;
  display:flex;gap:8px;align-items:baseline}
.qt .bd-gia{margin-left:auto;color:var(--qt-ink);font-weight:400}
.qt .bd-gia b{font-variant-numeric:tabular-nums}
.qt .bd-svg{width:100%;display:block}
.qt .bd-truc{stroke:var(--qt-line);stroke-width:1}
.qt .bd-nhan{display:flex;justify-content:space-between;font-size:10px;
  color:var(--qt-ink3);margin-top:3px;font-variant-numeric:tabular-nums}

.qt .tao-camp-luoi{display:grid;gap:10px 14px;margin:10px 0 4px;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.qt .tao-camp-luoi label{display:flex;flex-direction:column;gap:4px;
  font-size:12px;color:var(--qt-ink3)}

/* ---- Tu dong hoa (man Canh bao) ---- */
.qt .td-luoi{display:grid;gap:6px}
.qt .td-hang{display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  padding:7px 0;border-top:1px solid var(--qt-line2)}
.qt .td-ten{flex:1;min-width:220px;font-size:14px}
.qt .td-chon{display:flex;gap:4px}

/* Ho Marketing tung co ngoai le tab ngang rieng (`:has(.mkt-rail)`) — da bo
   17/08/2026 vi TAT CA rail gio cung mot khuon tab ngang o luat goc ben tren.
   Lop `.mkt-rail` con trong DOM nhung khong can luat rieng nao nua. */

/* ---- Dai KPI DAY voi sparkline (nhan ban activelife.nguyenhoangha.com) ----
   4 the nam ngang, moi the: nhan mo · so dam · sub · sparkline 14 ngay.
   Dac hon 4 the to tach roi + hai bieu do cot lon — khuon Stripe/Linear/
   activelife. Sparkline noi NHIP, con so noi TONG. */
.qt .kpi-dai{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.qt .kpi-o{background:var(--qt-white);border:1px solid var(--qt-line);
  border-radius:var(--qt-r);padding:12px 14px;box-shadow:var(--qt-sh);position:relative}
.qt .kpi-so{font-size:20px;font-weight:700;letter-spacing:-.02em;margin-top:3px;
  color:var(--qt-ink);font-variant-numeric:tabular-nums}
.qt .spk{display:block;margin-top:8px;width:100%;height:30px;overflow:visible}
.qt .spk-t{position:absolute;top:10px;right:12px;font-size:12px;color:var(--qt-ink3);
  font-variant-numeric:tabular-nums}

/* ---- Trinh QC: chon tai khoan + bo chon cot + to mau chuan ----
   MAU KHONG PHAI TIN HIEU DUY NHAT (luat dataviz): xanh↔do dinh mu mau do-luc
   (8% nam gioi, validator bao FAIL). Nen moi o co trang thai deo them MOT HINH
   DANG — ▲ tot / ▼ xau — nguoi mu mau doc hinh, nguoi thuong doc ca mau lan
   hinh. Muc giua khong to gi (trung tinh), chi danh dau ro tot va ro xau. */
.qt .fbo-tk{height:34px;font-size:14px;padding:0 10px;border:1px solid var(--qt-line);
  border-radius:var(--qt-r);background:var(--qt-white);color:var(--qt-ink);max-width:220px}
.qt .qc-tot{color:var(--qt-g700-chu);font-weight:600}
.qt .qc-tot::before{content:"▲ ";font-size:.75em;vertical-align:1px}
.qt .qc-xau{color:var(--qt-red-chu);font-weight:600}
.qt .qc-xau::before{content:"▼ ";font-size:.75em;vertical-align:1px}
.qt .qc-lai{color:var(--qt-g700-chu);font-weight:600}   /* giu lop cu cho cho khac */

/* Bo chon cot — menu tha xuong kieu Facebook Ads Manager */
.qt .cot-chon{position:relative}
.qt .cot-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;
  width:240px;max-height:60vh;overflow-y:auto;background:var(--qt-white);
  border:1px solid var(--qt-line);border-radius:var(--qt-r);box-shadow:var(--qt-sh-lg);padding:8px}
.qt .cot-menu-dau{display:flex;justify-content:space-between;align-items:center;
  font-size:12px;color:var(--qt-ink3);font-weight:600;padding:4px 6px 8px}
.qt .cot-nhom{font-size:12px;font-weight:700;color:var(--qt-ink2);padding:8px 6px 3px;
  border-top:1px solid var(--qt-line2);margin-top:4px}
.qt .cot-nhom:first-of-type{border-top:0;margin-top:0}
.qt .cot-muc{display:flex;align-items:center;gap:8px;padding:5px 6px;font-size:14px;
  cursor:pointer;border-radius:6px}
.qt .cot-muc:hover{background:var(--qt-g50)}

/* Cong tac gat NHO tren dong chien dich (truoc ten camp) */
.qt .gat-sm{width:32px;height:18px;margin-right:8px;vertical-align:middle;flex-shrink:0}
.qt .gat-sm i{width:14px;height:14px}
.qt .gat-sm.on i{transform:translateX(14px)}

/* ---- Nut nhan ban gon (thay window.prompt) ----
   `.qc-act` (0,2,0) thang `.qt button` (0,1,1). Bo dem [− N +] tai cho. */
.qt .qc-act{display:inline-flex;align-items:center;gap:4px;background:none;border:0;
  color:var(--qt-g700-chu);font-size:12px;font-weight:600;cursor:pointer;padding:4px 4px;
  margin-top:4px;height:auto}
.qt .qc-act:hover{text-decoration:underline}
.qt .nb-o{display:inline-flex;align-items:center;gap:5px;margin-top:5px}
.qt .nb-b{width:24px;height:24px;border:1px solid var(--qt-line);border-radius:6px;
  background:var(--qt-white);color:var(--qt-ink);font-size:14px;line-height:1;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;padding:0}
.qt .nb-b:disabled{opacity:.4;cursor:default}
.qt .nb-n{min-width:18px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}
.qt .nb-tao{padding:5px 12px;font-size:12px;height:auto}
.qt .cot-muc.cot-mo{opacity:.5;cursor:default}
.qt .cot-muc.cot-mo:hover{background:none}

/* ============ KHUON MOI — dai KPI theo ban thiet ke 21/08/2026 ============
   Port BO CUC tu ban /giaodien, nhung SO thi lay that tu /api/trang-chu.
   Ban thiet ke co o "Thoi gian tra lai cho ban — 6 gio 24 phut": gauux KHONG
   tinh duoc con so do, nen khong bung ra. Port khuon, khong port so bia.

   DO DAC HIEU: the KPI la <button> nam trong `.man`, nen doi thu that su la
   `.qt .man button` (0,2,1) — no dat display:inline-flex + min-height:32px +
   vien + nen. Viet `.qt .metric` (0,2,0) la THUA: nhan, so va chu thich nam
   canh nhau tren mot hang va the bi ep phang. Phai la `.qt .man .metric` (0,3,0).
   Day la lan thu SAU cai bay nay lam vo mot man — xem cac ghi chu ben duoi. */
.qt .man .summary{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:14px;margin-bottom:22px}
.qt .man .metric{display:block;min-height:118px;padding:18px;border:1px solid var(--qt-line);
  border-radius:16px;background:var(--qt-white);text-align:left;width:100%;
  font:inherit;line-height:1.5;cursor:default}
.qt .man button.metric{cursor:pointer}
.qt .man button.metric:hover{background:var(--qt-white);border-color:var(--qt-g600)}
.qt .man .metric.hero{background:var(--qt-hero);border-color:transparent}
.qt .man button.metric.hero:hover{background:var(--qt-hero);border-color:transparent}
.qt .man .metric-label{display:block;color:var(--qt-ink3);font-size:12px;line-height:1.5}
.qt .man .metric.hero .metric-label{color:var(--qt-g200)}
.qt .man .metric-value{display:block;margin-top:15px;color:var(--qt-ink);font-size:28px;
  font-weight:800;letter-spacing:-.8px;line-height:1.2;font-variant-numeric:tabular-nums}
/* The `hero` co nen TOI o CA HAI tong, nen chu tren no phai la mau sang co
   dinh — `--qt-white` o tong toi da thanh #1B1726 va chu bien mat (do duoc
   1,1:1). Cung benh "mot mau hai vai" voi --qt-g700 va --ember. */
.qt .man .metric.hero .metric-value{color:var(--qt-tren-hero)}
.qt .man .metric-note{display:block;margin-top:5px;color:var(--qt-ink3);font-size:12px;line-height:1.5}
.qt .man .metric.hero .metric-note{color:var(--qt-g200)}
@media(max-width:1200px){.qt .man .summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.qt .man .summary{grid-template-columns:1fr}}

/* Khoi "doanh nghiep dang mo" tren sidebar — khuon `.shop` cua ban thiet ke moi.
   Do dac hieu: nam trong `.qt` nhung NGOAI `.man`, nen doi thu la `.qt button`
   (0,1,1) — `.qt .sb-shop` (0,2,0) du thang. */
.qt .sb-shop{display:block;width:100%;margin:0 14px 12px;width:calc(100% - 28px);
  padding:10px 12px;border:1px solid var(--qt-line);border-radius:12px;
  background:var(--qt-white);text-align:left;cursor:pointer}
.qt .sb-shop:disabled{cursor:default}
.qt .sb-shop:hover:not(:disabled){border-color:var(--qt-g600)}
.qt .sb-shop small{display:block;color:var(--qt-ink3);font-size:12px;line-height:1.5;margin-bottom:2px}
.qt .sb-shop strong{display:flex;align-items:center;justify-content:space-between;gap:8px;
  color:var(--qt-ink);font-size:14px;font-weight:700;line-height:1.4}
/* Ten man dang mo tren thanh tren — thay o tim kiem da chet */
.qt .topbar .crumb{color:var(--qt-ink2);font-size:14px;line-height:1.5;font-weight:600}

/* Bang du lieu theo khuon `.data-table` cua ban thiet ke moi (21/08/2026).
   Hai thu that su khac, khong phai trang tri:
   1. `tabular-nums` — luat bo nhan dien noi tien va so dem phai canh cot.
      Bang cua app truoc do KHONG khai, nen cot Gia tri va SL so le nhau tung
      dong; mat phai do lai tung so thay vi liec mot cai.
   2. Vien ngan dong nhat mot kieu, lay tu token.
   Vien ngan dong lay tu token, khong go ma mau. */
/* CO CHU GIU 12px — da thu 14px theo ban thiet ke roi LUI. Do that tren man
   Don hang (9 cot): phong len 14px la cot "Ngay tao" bi day ra ngoai khung va
   hien "21/08 08:5" — cut giua chung. Bang cua ban thiet ke chi 4-6 cot nen
   14px vua; bang nghiep vu that thi khong. Cot bi cat doc ra la HONG, con chu
   nho hon mot nac thi van doc duoc. */
.qt .hstable{line-height:1.5}
/* Ke NGANG trong than bang la `--qt-line2` (#F1F5F9) chu khong phai
   `--qt-line` (#E2E8F0): duong ke dam bang vien ngoai lam bang doc ra thanh
   mot cai luoi, ban thiet ke cho no nhat hon mot bac. */
.qt .hstable td{font-variant-numeric:tabular-nums;border-top:1px solid var(--qt-line2)}
.qt .hstable th{font-size:12px;font-weight:700;color:var(--qt-ink3)}

/* ================= SIDEBAR THEO BAN THIET KE MOI (24/08/2026) =================
   Ba thu tao ra gan het cam giac khac nhau giua /app va /giaodien, do bang cach
   chup ca hai o 1280 roi dat canh nhau:
     1. sidebar phang mot day, khong co tieu de nhom
     2. muc dang mo khong co vien trai
     3. sidebar hep hon ban mau ~34px nen chu bi don
   Ten nhom lay tu KHU_MENU (khai mot cho, dung chung voi menu dien thoai). */
.qt .sidebar{width:264px}

/* Tieu de nhom. KHONG viet hoa toan bo: chu hoa co dau chong (Đ, Ề) cao 1.105em,
   vuot phan tren cua Inter 13,6% nen bi cat — luat da khoa trong
   test/thuong-hieu-chu.test.js. Dung chu thuong + mau mo + gian chu nhe. */
.qt .sidebar .sb-khu{padding:16px 12px 6px;color:var(--qt-ink3);font-size:12px;
  font-weight:700;letter-spacing:.02em;line-height:1.5}
.qt .sidebar .sb-khu:first-child{padding-top:6px}

/* Vien trai khi dang mo. Dung box-shadow inset chu khong border-left: border
   lam muc bi day sang phai 3px so voi cac muc khac, tuc ca danh sach rung khi
   doi man. shadow khong chiem cho nen khong xe hang. */
.qt .sidebar .sb-item.active{box-shadow:inset 3px 0 0 var(--qt-g600)}

/* Dau trang chu theo ban thiet ke moi: dong trang thai · tieu de lon · chip ngay */
.qt .man .fd-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:10px;
  color:var(--qt-ink3);font-size:14px;font-weight:600;line-height:1.5}
.qt .man .fd-eyebrow .cham{width:8px;height:8px;border-radius:50%;
  background:var(--qt-ink3);flex-shrink:0}
.qt .man .fd-eyebrow.on{color:var(--qt-g800-chu)}
.qt .man .fd-eyebrow.on .cham{background:var(--qt-g600)}
.qt .man .fd-dau{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.qt .man .fd-dau :is(h1,h2){font-size:36px;line-height:1.2;letter-spacing:-.8px}
/* Chip ngay: nen trang co vien, khong to mau — no la thong tin phu, to mau len
   la no tranh cho voi dai KPI ngay duoi. */
.qt .man .fd-ngay{flex-shrink:0;padding:8px 14px;border:1px solid var(--qt-line);
  border-radius:10px;background:var(--qt-white);color:var(--qt-ink2);
  font-size:14px;font-weight:600;line-height:1.5;font-variant-numeric:tabular-nums}
@media(max-width:640px){
  .qt .man .fd-dau{flex-direction:column}
  .qt .man .fd-dau :is(h1,h2){font-size:28px}
}

/* O tim man hinh tren thanh tren (24/08/2026).
   Doi thu do dac hieu: `.qt button` (0,1,1) va `.qt input` — nen moi luat o day
   deu di kem `.qt .topbar` de chac chan thang. Da mac bay nay nhieu lan, va lan
   nao cung phai do computed style trong trinh duyet moi thay. */
.qt .topbar .tb-tim{position:relative;margin-left:20px;flex:1;max-width:340px}
/* svg() cua icons.js tra ve mot <span> mang inline SVG, KHONG phai the <svg>.
   Viet `.tb-tim > svg` la selector khong khop gi va kinh lup roi len goc tren
   mep o — chi thay khi chup man. */
.qt .topbar .tb-tim > span:first-child{position:absolute;left:11px;top:50%;
  transform:translateY(-50%);display:flex;color:var(--qt-ink3);pointer-events:none}
.qt .topbar .tb-tim input{width:100%;height:36px;padding:0 12px 0 34px;
  border:1px solid var(--qt-line);border-radius:10px;background:var(--qt-paper);
  color:var(--qt-ink);font-size:14px;line-height:1.5}
.qt .topbar .tb-tim input:focus{background:var(--qt-white);border-color:var(--qt-g600);outline:none}
.qt .topbar .tb-tim-ds{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;
  padding:6px;border:1px solid var(--qt-line);border-radius:12px;background:var(--qt-white);
  box-shadow:0 12px 32px rgba(15,23,42,.12);max-height:320px;overflow-y:auto}
.qt .topbar .tb-tim-ds button{display:block;width:100%;height:auto;padding:9px 10px;border:0;
  border-radius:8px;background:transparent;color:var(--qt-ink);font-size:14px;line-height:1.5;
  font-weight:500;text-align:left;cursor:pointer}
.qt .topbar .tb-tim-ds button:hover{background:var(--qt-g100);color:var(--qt-g800-chu)}
.qt .topbar .tb-tim-rong{padding:10px;color:var(--qt-ink3);font-size:14px;line-height:1.5}
/* Dien thoai: thanh tren chi con ~390px, o tim chen vao la ten man bi day mat.
   Vao duoc bang menu Them nen khong mat duong nao. */
@media(max-width:900px){.qt .topbar .tb-tim{display:none}}

/* Khoi bieu do doanh thu tren Tong quan: full chieu ngang, dat TRUOC hai cot.
   Dat trong `.fd-rail` (cot phai hep ~340px) la bay do da mac mot lan voi dai
   KPI — bay cot deu bi don lai va tran ra ngoai. */
.qt .man .fd-bd{margin-bottom:16px}
.qt .man .fd-bd .bd-o{padding:4px 4px 0}

/* ===================== BE NGUYEN BO MAT CUA /giaodien =====================
   24/08/2026. Ba lan sua truoc chi la chinh dan ban cu; chu shop noi thang la
   muon GIONG HET ban mau. Nen khoi nay lay tung con so tu <style> cua
   public/giaodien.html (khoi ghi de o cuoi — do la dien mao may tinh cuoi cung)
   roi doi mau sang token app.

   Ban mau va app DUNG CHUNG bang mau (#146C43 = --qt-g700, #F8F9FF =
   --qt-paper, #E2E8F0 = --qt-line), nen khac nhau nam o KICH THUOC va BO CUC.
   Ba khac biet lon nhat, do bang cach chup ca hai o 1280 roi dat canh nhau:
     1. sidebar ban mau nen XAM (#F8F9FF) — app de TRANG
     2. muc dang mo co vien trai 3px + chu xanh + dam 700
     3. thanh tren cao 72px co lop mo kinh — app 60px phang

   ---- CAP NHAT 27/08/2026: BAN THIET KE CUA PHONG UX/UI LA CHUAN ----
   Quyet dinh 24/08 ("be nguyen bo mat cua /giaodien") da bi THAY THE. Nguon
   chuan bay gio la 83 ban ve `.thietke/*.dc.html`, rut thanh `.thietke/spec.json`.
   Cac con so trong khoi nay duoc chinh lai theo do — sidebar 236px (khong phai
   272), thanh tren 56px (khong phai 72), noi dung 20px (khong phai 32).

   Va 13px/11px NAY DA DUOC PHEP: chung la hai co pho bien nhat cua ban thiet ke
   (13px 360 lan, 11px 332 lan), da them vao CHO_PHEP cua
   test/he-thong-giao-dien.test.js. 15px thi VAN CHUA — chua ai duyet nac do. */

/* --- Khung --- */
.qt .sidebar{width:236px;padding:0;background:var(--qt-white);
  border-right:1px solid var(--qt-line)}
/* Dau sidebar = `.sbh` cua ban thiet ke: cao dung 56px va co VIEN DUOI, nen no
   thang hang voi thanh tren ben canh. Khong co vien thi hai khoi cao bang nhau
   ma khong co gi noi chung cung mot hang. */
.qt .sidebar .sb-top{height:56px;padding:0 16px;border-bottom:1px solid var(--qt-line);
  flex-shrink:0}
/* `.sbn`: khoang cach giua cac muc la GAP cua nav, khong phai margin cua tung
   muc — mot muc bi an di thi khoang trong cua no cung bien mat theo. */
.qt .sidebar .sb-nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px}

/* Khoi doanh nghiep: the TRANG tren nen xam (ban cu nguoc lai) */
.qt .sidebar .sb-shop{width:auto;margin:12px 10px 4px;padding:14px;
  border:1px solid var(--qt-line);border-radius:12px;background:var(--qt-white)}
.qt .sidebar .sb-shop small{font-size:12px;line-height:1.5;margin-bottom:4px}
.qt .sidebar .sb-shop strong{font-size:14px;line-height:1.5}

/* Tieu de nhom = .nav-label cua ban mau */
/* `.sbg` cua ban thiet ke: 11px/700 mau #94A3B8 (--gx-neutral-400). Day la
   nhan NHOM, khong phai muc bam duoc — no o tren cung mot muc voi tieu de cot
   cua bang (`.th` cung 11px).

   MAU THI KHONG LAY THEO BAN VE. #94A3B8 tren nen trang do duoc 2,56:1 — truot
   WCAG 2.2 AA (can 4,5). Do that 27/08/2026 ngay sau khi ap: 6/7 man bao loi,
   va no la mot dong chu nguoi ta phai doc de biet minh dang o nhom nao. Bo
   nhan dien khong duoc phep noi long chuan tiep can; nen giu HINH THUC cua ban
   ve (11px/700, chu nhat hon chu muc) va lay bac dam hon: neutral-500 dat
   4,76:1. Doi lai chu vi mo hon dung mot bac — doi duoc. */
.qt .sidebar .sb-khu{padding:9px 10px 3px;margin-top:0;color:var(--qt-ink3);
  font-size:12px;font-weight:700;letter-spacing:0;line-height:1.5}
.qt .sidebar .sb-khu:first-child{margin-top:0}

/* Muc menu = .nav button. min-height 44px la chuan cham, ban mau da co san. */
.qt .sidebar .sb-item{min-height:44px;padding:11px 13px;margin-bottom:6px;
  border-radius:8px;color:var(--qt-ink2);font-size:13px;font-weight:500;gap:10px}
.qt .sidebar .sb-item:hover{background:var(--qt-white)}
/* Vien trai la BORDER (khong phai shadow) dung nhu ban mau, va bu lai bang
   padding-left 10px de chu KHONG bi day sang phai — do la ly do ban truoc em
   dung shadow; ban mau da giai bai toan do bang cach tru padding. */
/* `.sbi.on` cua ban thiet ke KHONG co vien trai: nen xanh nhat + chu xanh dam
   la du de nhan ra, va bo vien di thi moi muc trong danh sach cung mot le trai
   — them vien vao la ca cot chu rung mot chut moi lan doi man. */
.qt .sidebar .sb-item.active{background:var(--qt-g50);color:var(--qt-g800-chu);
  font-weight:600;box-shadow:none;border-left:0;padding-left:10px}

/* --- Thanh tren --- */
/* Nen thanh tren la TOKEN, khong phai mot ma mau go cung.
   `rgba(255,255,255,.94)` chong len nen toi van ra #F1F0F1 — tuc o tong toi
   thanh tren VAN TRANG, va moi chu tren no roi xuong 1,02-2,94:1. Do that
   27/08/2026: mot loi nhung no co mat o 128/132 luot quet, vi thanh tren la
   thu MOI man deu ve. Lop mo kinh giu nguyen, chi doi mau nen. */
.qt .topbar{height:56px;padding:0 20px;gap:0;
  background:var(--qt-kinh);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--qt-line);position:sticky;top:0;z-index:8}
/* Ten man dang mo la TIEU DE cua trang — ban thiet ke cho no 16px/700 mau chu
   chinh. De 14px/500 mau mo thi no doc ra nhu mot dong chu phu, va man hinh
   khong con thu gi noi ro "ban dang o dau". */
.qt .topbar .crumb{font-size:16px;color:var(--qt-ink);font-weight:700}

/* --- Vung noi dung --- */
.qt .page-in{max-width:1600px;margin:0 auto;padding:20px}

/* DIEN THOAI — phai khai NGAY DAY, khong duoc de o khoi @media phia tren tep.
   `.qt .topbar` o khoi 900px (~dong 2297) va luat ngay tren CUNG do dac hieu
   (0,2,0); luat nao khai SAU thi thang, ma khoi nay nam sau. Ket qua truoc lan
   sua nay: o 390px thanh tren van an 48px dem MOI BEN, tuc 96px cua 390px.
   Day la lan thu sau cua dung mot cai bay do dac hieu trong tep nay. */
@media(max-width:900px){
  .qt .topbar{padding:0 12px;gap:8px}
  .qt .page-in{padding:14px}
  /* Avatar 32px + dem 5px = 42px, duoi chuan cham. Nut moi la vung bam. */
  .qt .tb-user{min-height:44px}
}

/* --- Dau trang --- */
.qt .man .fd-eyebrow{color:var(--qt-g700-chu);font-size:14px;font-weight:700;margin-bottom:10px}
.qt .man .fd-eyebrow .cham{background:var(--qt-g500)}
.qt .man .fd-eyebrow.on{color:var(--qt-g700-chu)}
.qt .man .fd-dau{margin-bottom:30px}
.qt .man .fd-dau :is(h1,h2){font-size:36px;line-height:1.2;letter-spacing:-.02em}
.qt .man .fd-dan{max-width:760px;margin-top:10px;font-size:16px;line-height:1.65}

/* --- Dai KPI --- */
.qt .man .summary{gap:18px;margin-bottom:28px}
.qt .man .metric{min-height:132px;padding:22px;border-radius:var(--qt-rlg)}
/* Soc xanh ben trai the toi — chi tiet nay lam the hero khong bi doc ra thanh
   mot o mau den vo co. */
.qt .man .metric.hero{border-left:5px solid var(--qt-g500)}
.qt .man .metric-value{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.qt .man .metric-label,.qt .man .metric-note{font-size:12px}

/* --- The noi dung --- */
.qt .man .fd-khoi{border:1px solid var(--qt-line);border-radius:var(--qt-rlg);background:var(--qt-white)}

/* Sidebar cua gauux co 16 muc, ban mau co 11 — nen tran la khong tranh duoc:
   do that o 1280x900, nav can 738px ma cho chi co 557px.

   Hai viec:
   1. Dung luat GOC cua ban mau (`.nav button{padding:10px 11px}` ~40px) chu
      khong phai luat 44px o khoi ghi de — luat do la chuan CHAM cho kho dien
      thoai, ma sidebar nay AN duoi 900px nen o day chi co chuot bam.
   2. Phan tran phai doc ra la CUON DUOC. Mot hang bi cat dung giua doc ra la
      bo cuc vo, con mot dai mo dan o day thi mat hieu ngay la con nua. */
.qt .sidebar .sb-item{min-height:36px;padding:0 10px;margin-bottom:0}
.qt .sidebar .sb-item.active{padding-left:10px}
.qt .sidebar .sb-khu{margin-top:6px}
.qt .sidebar .sb-shop{margin-bottom:4px}
/* HUY HIEU SO tren muc menu ERP. Loi CO SAN: khung.js ve `<span class="count">`
   ben trong `<nav class="sb-nav">`, ma luat duy nhat cho `.count` la
   `.qt .nav .count` (kit.css) — doi to tien mang lop `nav`, khong phai `sb-nav`.
   Selector khong khop gi, nen con so chua doc hien ra la SO TRAN. */
.qt .sidebar .sb-item .count{margin-left:auto;flex-shrink:0;padding:2px 8px;
  border-radius:999px;background:var(--qt-line2);color:var(--qt-ink2);
  font-size:12px;font-weight:600;line-height:1.5;font-variant-numeric:tabular-nums}
/* `--qt-ink3` tren vien thuoc `--qt-line2` chi con 4,34:1 (do 27/08/2026) —
   con so nay la thu nguoi ta liec de biet cho nao dang co viec, khong doc duoc
   thi vien thuoc chi con la trang tri. Dam len mot bac: 7,05:1. */
.qt .sidebar .sb-item.active .count{background:var(--qt-g100);color:var(--qt-g800-chu)}
/* `black` o day KHONG phai mot lua chon mau va khong duoc doi theo chu de:
   mask chi doc kenh ALPHA, mau dac nao cung cho ket qua y het. Viet bang tu
   khoa chu khong bang token de khong ai tuong day la mot mau cua bo nhan dien. */
.qt .sidebar .sb-nav{
  -webkit-mask-image:linear-gradient(to bottom,black calc(100% - 28px),transparent);
  mask-image:linear-gradient(to bottom,black calc(100% - 28px),transparent)}
/* Cuon toi cuoi thi bo dai mo — khong thi muc cuoi cung luc nao cung mo, va
   nguoi dung tuong minh chua cuon het. */
.qt .sidebar .sb-nav.het{-webkit-mask-image:none;mask-image:none}

/* Chu tren the KPI toi phai TRANG. Computed cua app dang la #191622 tren nen
   navy — the con doc duoc chi vi cac the con tu dat mau, nhung bat ky chu nao
   them vao the do ve sau se chim mat. */
/* The `hero` co nen TOI o CA HAI tong, nen chu tren no la mau sang CO DINH.
   `--qt-white` la mot BE MAT — o tong toi no thanh #1B1726 va ca cum chu bien
   mat (do duoc 1,1:1). Cung benh "mot mau hai vai" da gap voi --qt-g700 va
   --ember. */
.qt .man .metric.hero,.qt .man .metric.hero *{color:var(--qt-tren-hero)}
.qt .man .metric.hero .metric-label,.qt .man .metric.hero .metric-note{color:var(--qt-g200)}

/* Dai thong ke dau moi man mo-dun. Nam NGOAI `.hs-shell` (khung rail + bang)
   nen no chay het be ngang, dung nhu ban mau dat `.kpis` tren `.review-grid`. */
.qt .md-dai{padding:20px 32px 0;background:var(--qt-paper)}
.qt .md-dai .kpis{margin-bottom:14px}
/* Bo goc the: 14px (`--qt-rlg`), giong `.card` cua ban thiet ke. kit.css cho
   `.viz-card` 12px va no nap SAU style.css, nen phai neo them mot lop de thang. */
.qt .md-dai .viz-card{margin-bottom:16px;padding:14px 16px;border-radius:var(--qt-rlg)}
.qt .md-dai .viz-head{margin-bottom:4px}
@media(max-width:900px){.qt .md-dai{padding:14px 16px 0}}

/* `.kpi` nam trong 18 lop GIU BAN APP khi sinh kit, nen cac luat con cua ban
   mau (.kpi small / strong / span) cung bi loai theo — va o KPI hien ra thanh
   mot dong chu dinh lien: "Chi quang cao100.014.678d7 ngay". Chi thay khi chup
   man. Khai lai o day, doi 13->14 va 25->24 cho khop thang chu bo nhan dien. */
/* Moi o KHONG co vien va KHONG bo goc rieng — duong ke giua cac o la khe ho
   1px cua luoi (xem `.md-dai .kpis` ben duoi), dung khuon ban thiet ke. */
.qt .md-dai .kpi{padding:13px 16px;border:0;border-radius:0;
  background:var(--qt-white);display:flex;flex-direction:column;gap:2px}
.qt .md-dai .kpi small{display:block;color:var(--qt-ink3);font-size:12px;line-height:1.5}
.qt .md-dai .kpi strong{display:block;margin:0;color:var(--qt-ink);font-size:24px;
  font-weight:700;line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.qt .md-dai .kpi span{display:block;color:var(--qt-ink3);font-size:12px;line-height:1.5}
@media(max-width:1150px){.qt .md-dai .kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.qt .md-dai .kpis{grid-template-columns:1fr}}

/* Bieu do duong. Luoi/truc LUI VE SAU (chung la khung tham chieu, khong phai
   du lieu); vung to duoi duong rat nhat de no khong tranh cho voi chinh duong. */
.qt .bdd{position:relative;width:100%}
.qt .bdd svg{display:block;width:100%}
.qt .bdd-truc{stroke:var(--qt-line);stroke-width:1}
.qt .bdd-doc{stroke:var(--qt-line);stroke-width:1;stroke-dasharray:3 3}
.qt .bdd-vung{opacity:.10}
.qt .bdd-nhan{fill:var(--qt-ink3);font-size:12px}
.qt .bdd-chu{position:absolute;top:0;right:0;padding:3px 8px;border:1px solid var(--qt-line);
  border-radius:8px;background:var(--qt-white);color:var(--qt-ink2);font-size:12px;
  line-height:1.5;font-variant-numeric:tabular-nums;pointer-events:none}

/* Dai KPI: ban mau khai repeat(4,1fr), nhung man mo-dun co SAU o — 6 o trong
   luoi 4 cot vo thanh 4+2, hang duoi trong hoac hai o keo dai. auto-fit cho
   phep vua 6 o o 1440px va tu gap lai khi hep. */
/* 180px chi vua 5 o o be ngang 1100 (5x180+4x12=948; 6x180+5x12=1140 > 1100)
   nen o thu sau roi xuong hang mot minh. 150px thi du 6 o (960). */
/* DAI KPI LA MOT LUOI, KHONG PHAI N THE ROI. Nen luoi la mau vien, khe ho
   1px chinh la duong ke — nen chi co MOT duong giua hai o (hai the roi canh
   nhau cho ra hai vien sat nhau, day 2px, va trong nang hon han). */
.qt .md-dai .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:1px;background:var(--qt-line);border:1px solid var(--qt-line);
  border-radius:14px;overflow:hidden}

/* The canh bao: nhan va mo ta phai XEP DOC. Ban mau xep ngang duoc vi tieu de
   cua no ngan; tieu de tieng Viet dai hon nen bi bo thanh bon dong mot chu. */
.qt .md-dai .alert-item{display:block}
.qt .md-dai .alert-item strong{display:block;margin-bottom:4px;font-size:14px;line-height:1.5}
.qt .md-dai .alert-item p{margin:0;font-size:14px;line-height:1.5}
.qt .md-dai .alert-item{cursor:pointer}

/* CUON CA TRANG khi man co dai thong ke.
   Chu shop 24/08/2026: "keo xuong phai keo xuong ca, dang bi co dinh cai tren
   roi keo xuong rat kho nhin". Dung: `.cot-man` de overflow:hidden va
   `.hs-body` cuon BEN TRONG, nen dai thong ke dung im o tren con bang thi
   truot ben duoi — hai vung cuon long nhau, mat luon cam giac "mot trang".

   Chi doi voi man CO `.md-dai` (dung `:has`), de moi man khac giu nguyen hanh
   vi da can tay. Thanh loc doc thi dinh (sticky) chu khong troi mat. */
.qt .cot-man:has(> .md-dai){overflow-y:auto}
.qt .cot-man:has(> .md-dai) .hs-shell{overflow:visible;flex:0 0 auto}
.qt .cot-man:has(> .md-dai) .hs-body{overflow:visible;flex:0 0 auto}
.qt .cot-man:has(> .md-dai) .hs-views{position:sticky;top:0;z-index:6}
/* Dau bang van dinh khi cuon — nhung phai dinh duoi thanh loc, khong phai
   duoi dinh man hinh. */
/* 46px = chieu cao THAT cua hang tab: dem 13+10, dong chu 13px x 1.6 = 20,8,
   cong vien duoi 2px. Doi kieu dang hang tab thi phai do lai con so nay —
   lech 2px la dau bang bi che mot vach hoac de lo mot khe trang khi cuon. */
.qt .cot-man:has(> .md-dai) .hstable th{top:46px}

/* THANH TAB LEN DAU O MOI MAN.
   Chu shop 24/08/2026: "menu khong dong bo, luc xep tren luc xep duoi — doi
   lai xep tren dau het". Dung: man co dai thong ke thi thu tu la
   thanh tren > dai so > bang loc, con man khong co dai thi thanh loc nam ngay
   duoi thanh tren. Hai man canh nhau doi cho mot thanh dieu huong la nguoi
   dung phai tim lai no moi lan doi man.

   Ban mau xep: thanh tren > tab > `.kpis`. Lam theo do.

   `.hs-shell{display:contents}` de hai con cua no (`.hs-views` thanh loc va
   `.hs-body` bang) tro thanh con TRUC TIEP cua `.cot-man`, luc do `order` moi
   xep duoc chung xen ke voi `.md-dai` — `order` khong xuyen qua duoc mot lop
   boc trung gian. */
.qt .cot-man:has(> .md-dai) .hs-shell{display:contents}
/* Dat order cho MOI con cua .hs-shell truoc, roi moi cat rieng thanh loc len
   dau. Ban dau em chi cat `.hs-body` — nhung ba man (Kho, Nhan su, Canh bao)
   dung `.hs-main`, khong khop luat nao nen roi ve order mac dinh 0 va BANG
   NHAY LEN TRUOC TAB. Do that: Van hanh bang@223 con tab@437. */
/* `flex:0 0 auto` + `overflow:visible` la phan LAM CHO CA TRANG CUON DUOC.
   Thieu no thi `.hs-main`/`.hs-body` van giu `flex:1;overflow:auto`, tuc chung
   bi ep vao chieu cao con lai roi tu cuon BEN TRONG — do that truoc khi sua:
   `.cot-man` 900/900 (khong cuon) trong khi `hs-main` 272/1411, tuc ca bang
   bi nhet vao mot o cao 272px duoi dai thong ke. Do la cai "keo xuong rat kho
   nhin" chu shop bao. */
.qt .cot-man:has(> .md-dai) .hs-shell > *{order:3;flex:0 0 auto;overflow:visible}
/* NHUNG DAI MENU PHAI GIU CUON NGANG CUA NO.

   Luat tren dat `overflow:visible` cho moi con cua `.hs-shell` — dung y do
   (de ca trang cuon lam mot thay vi hai vung cuon long nhau), nhung no THANG
   ca `.qt .hs-views{overflow-x:auto}` va tat luon kha nang cuon cua dai menu.

   Hau qua do duoc 29/08/2026 o kho 390px, man Cham cong: dai co 11 muc, rong
   that 1.357px trong mot cho 390px — tuc 967px menu nam ngoai man hinh va
   KHONG CACH NAO VOI TOI. Khong phai "thieu dau hieu cuon": bay muc cuoi
   (Luong, Thac mac luong, Hop dong, Moi & phan quyen...) don gian la khong
   bam duoc tren dien thoai.

   Chi tra lai cuon NGANG; cuon doc van de `visible` de ca trang cuon lam mot,
   dung nhu luat tren muon. */
.qt .cot-man:has(> .md-dai) .hs-shell > .hs-views{overflow-x:auto;overflow-y:hidden}
.qt .cot-man:has(> .md-dai) .hs-views{order:1;position:sticky;top:0;z-index:6}
.qt .cot-man:has(> .md-dai) .md-dai{order:2}
/* `.page` cung phai co order. Nhung man dung khuon `.page` (khong phai
   `.hs-shell`) thi no la con truc tiep cua `.cot-man`, khong khop luat nao o
   tren nen roi ve order mac dinh 0 — tuc NOI DUNG NHAY LEN TRUOC ca hang tab
   lan dai mo-dun. Do that 28/08/2026 tren man Can ban quyet dinh: the card ve
   o dau trang, hang tab va dai KPI ve o GIUA trang, duoi chung. Chi thay khi
   chup man — khong phep kiem nao bat duoc. */
.qt .cot-man:has(> .md-dai) > .page{order:3}


/* Ton kho tren tung dong bang gia o tab Tao don. Mau CHI la kenh phu — chu
   noi ro "het hang" / "con N", vi mot cham do khong noi duoc con bao nhieu. */
.qt .ton-nho{margin-top:2px;color:var(--qt-ink3);font-size:12px;line-height:1.5}
.qt .ton-nho.thap{color:var(--qt-amber-chu)}
.qt .ton-nho.het{color:var(--qt-red-chu);font-weight:600}
.qt .cart-item.het-hang{opacity:.62}

/* Ghi chu nho duoi mot nut — noi ro gioi han cua thu vua bay ra, de nguoi doc
   khong hieu nham la may da khang dinh. */
.qt .ghi-nho{margin-top:4px;color:var(--qt-ink3);font-size:12px;line-height:1.5}

/* Dong don gan day trong tab Khach hang: ma don · tien day phai · trang thai. */
.qt .don-tien{margin-left:auto;font-variant-numeric:tabular-nums}
.qt .don-tt{margin-left:8px;color:var(--qt-ink3);font-size:12px;line-height:1.5}

/* Nut "xem them" o cuoi danh sach hoi thoai.
   Phai du do dac hieu de thang `.qt .man button` va `.qt button` — bai hoc da
   lap nhieu lan trong repo nay: doc CSS bang mat khong ra, phai do computed
   style trong trinh duyet. Day la nut nam trong `.ht-scroll` nen viet ba lop. */
.qt .ht-list .ht-scroll .ht-them {
  display: block;
  width: calc(100% - 24px);
  margin: 8px 12px 16px;
  min-height: 44px;                 /* chuan cham tren dien thoai */
  height: auto;
  padding: 10px 16px;
  border: 1px solid var(--qt-line);
  border-radius: 8px;
  background: transparent;
  color: var(--qt-g700-chu);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.qt .ht-list .ht-scroll .ht-them:hover:not(:disabled) { background: var(--qt-paper); }
.qt .ht-list .ht-scroll .ht-them:disabled { opacity: .6; cursor: default; }
.qt .ht-list .ht-scroll .ht-het {
  padding: 12px 16px 20px;
  text-align: center;
  font-size: 12px;
  color: var(--qt-ink3);
}

/* O bat "tim ca trong noi dung tin". Chi hien khi da go chu — bay san mot o
   tich khong lam gi la them mot thu phai doc moi lan mo hop thu. */
.qt .ht-list .tim-sau {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 4px 2px;
  font-size: 12px;
  color: var(--qt-ink3);
  cursor: pointer;
}
.qt .ht-list .tim-sau input { width: 14px; height: 14px; margin: 0; cursor: pointer; }


/* Nut mo / dong cot phai. Phai du do dac hieu de thang `.qt .man button` va
   `.qt button` — bai hoc da lap nam lan trong repo nay. */
.qt .ht-chat .hch-head .hch-phai{
  place-items:center;width:36px;height:36px;flex-shrink:0;
  border:0;background:transparent;color:var(--qt-ink2);cursor:pointer;padding:0}
.qt .ht-detail .det-tabs .det-dong{
  place-items:center;width:32px;height:32px;flex-shrink:0;margin-left:auto;
  border:0;background:transparent;color:var(--qt-ink2);cursor:pointer;padding:0}


/* Vung bam cua o nhan tren dien thoai: chuan cham la 44px. Kich thuoc co so da
   nang len 32px ngay trong luat `.bn-n` (19px la khong bam trung bang ngon tay
   — dot quet 16/08 sua `.cn-nut` nhung bo sot lop nay). Nang bang padding,
   KHONG phong to chu — phong chu la vo bo cuc bang. */
@media(max-width:900px){ .qt .ht-detail .bn-n{min-height:44px} }

/* Nut TU CHOI mot nhan AI de xuat. Do dac hieu phai thang `.qt .man button`
   va `.qt button`. */
.qt .ht-detail .bn-cap .bn-bo{
  display:grid;place-items:center;width:24px;min-width:24px;height:auto;
  border:0;border-left:1px solid var(--qt-white);background:transparent;
  color:var(--qt-ink2);font-size:16px;font-weight:700;line-height:1;
  cursor:pointer;padding:0;flex-shrink:0}
.qt .ht-detail .bn-cap .bn-bo:hover{background:var(--qt-white);color:var(--qt-ink)}
@media(max-width:900px){ .qt .ht-detail .bn-cap .bn-bo{width:36px;min-width:36px} }

/* O nhap nguoi nhan trong tab Tao don. */
.qt .ht-detail .td-o{display:block;margin:8px 0}
.qt .ht-detail .td-o > span{display:block;font-size:12px;font-weight:600;
  color:var(--qt-ink2);margin-bottom:4px}
.qt .ht-detail .td-nhac{font-size:12px;color:var(--qt-ink3);line-height:1.5;margin-top:6px}

/* Chip trang thai don. Mau chi la kenh THU HAI — chu van noi ro trang thai,
   dung bai hoc dataviz da ap o Trinh QC (mu mau do-luc la 8% nam gioi). */
.qt .tt-don{display:inline-block;padding:2px 8px;border-radius:999px;
  font-size:12px;font-weight:600;white-space:nowrap;border:1px solid var(--qt-line)}
.qt .tt-pending_review{background:var(--qt-paper);color:var(--qt-ink2)}
.qt .tt-confirmed,.qt .tt-packing{background:var(--qt-paper);color:var(--qt-g700-chu);
  border-color:var(--qt-g700)}
.qt .tt-shipping{background:var(--qt-paper);color:var(--qt-ink)}
.qt .tt-delivered{background:var(--qt-g700);color:var(--qt-tren-xanh);border-color:var(--qt-g700)}
.qt .tt-returned,.qt .tt-cancelled{background:var(--qt-paper);color:var(--qt-ink3)}

/* Chip tinh trang thanh toan. Mau kem CHU — khong bao gio chi bang mau. */
.qt .tt-thu{display:inline-block;padding:2px 8px;border-radius:999px;
  font-size:12px;font-weight:600;white-space:nowrap;border:1px solid var(--qt-line)}
.qt .tt-chua_thu{background:var(--qt-paper);color:var(--qt-ink2)}
.qt .tt-thu_mot_phan{background:var(--qt-paper);color:var(--qt-ink);border-color:var(--qt-ink3)}
.qt .tt-da_du{background:var(--qt-g700);color:var(--qt-tren-xanh);border-color:var(--qt-g700)}
.qt .tt-thu_thua{background:var(--qt-paper);color:var(--qt-g700-chu);border-color:var(--qt-g700)}

/* ---------- HOP SUA THONG TIN GIAO HANG (OSuaGiao) ----------
   `.veil`/`.mod` da co san tu lau nhung CHUA CHO NAO DUNG. Chung khai o ngoai
   moi bao `.qt`, nen khi hop nay ve BEN TRONG mot man ERP thi `.qt button`
   (0,1,1) lam phang nut dong o goc. Phai du dac hieu de thang no — bai hoc
   `.qt .man .tb-muc` va `.gc-o` da ghi trong CLAUDE.md, day la lan thu nam. */
.qt .mod-x{display:flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:8px;border:1px solid var(--qt-line);
  background:var(--qt-white);color:var(--qt-ink3);flex-shrink:0}
.qt .mod-x:hover{border-color:var(--qt-ink3);color:var(--qt-ink)}
.qt .sg-luoi{display:grid;grid-template-columns:1fr 1fr;gap:var(--gx-space-3)}
.qt .sg-luoi3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gx-space-3)}
.qt .sg-luoi label,.qt .sg-luoi3 label,.qt .sg-day{display:block;font-size:12px;
  font-weight:600;color:var(--qt-ink3);margin-bottom:var(--gx-space-3)}
.qt .sg-day{display:block}
.qt .sg-luoi input,.qt .sg-luoi3 select,.qt .sg-day textarea{
  margin-top:4px;font-weight:400;color:var(--qt-ink)}
/* Mot don thieu ma hanh chinh la mot don KHONG GIAO DUOC — mau canh bao, khong
   phai chu mo nhu mot ghi chu phu. */
.qt .chu-canh{font-size:12px;color:var(--qt-red-chu);margin-top:2px}
@media(max-width:900px){
  .qt .sg-luoi,.qt .sg-luoi3{grid-template-columns:1fr}
}

/* ---------- MAN KHO CUA GAUUX ---------- */
.qt .kg-h{font-size:var(--cc-4);font-weight:650;color:var(--qt-ink);
  margin:var(--gx-space-6) 0 var(--gx-space-2)}
.qt .kg-h:first-child{margin-top:0}
.qt .kg-form{border:1px solid var(--qt-line);border-radius:10px;
  padding:var(--gx-space-4);background:var(--qt-white)}
/* Kho da ngung dung van phai DOC DUOC — mo di la de phan biet, khong phai de giau. */
.qt tr.mo-di td{opacity:.55}

/* ---------- Man "Can ban quyet dinh": so cua TUNG hang cho ----------
   Truoc 25/08/2026 man nay chi hien TONG, nen bon the trong y het nhau va phai
   mo ca bon moi biet cai nao co viec — trong khi server da dem san tung khoa. */
.qt .qd-so{font-size:14px;font-weight:600;color:var(--qt-ink3);margin:6px 0 2px}
.qt .qd-so.co{color:var(--qt-g700-chu)}
.qt .card.co-viec{border-color:var(--qt-g600)}

/* ---------- TU CHAM CONG tren Trang cua toi ----------
   Ten lop khong dung lai `.cc-o` cua bang Cham cong — mot lop lai ten voi man
   khac la bay da mac voi `.ca-o` (Lich truc vs Thu vien anh). */
.qt .tc-hang{display:flex;align-items:flex-end;gap:var(--gx-space-6);flex-wrap:wrap}
.qt .tc-o{min-width:78px}
.qt .tc-o .l{font-size:12px;color:var(--qt-ink3);margin-bottom:2px}
.qt .tc-o .v{font-size:28px;font-weight:650;color:var(--qt-ink);line-height:1.2;
  font-variant-numeric:tabular-nums}
/* KHONG dat ten `.trong` — do la lop TOAN CUC cua khoi rong (padding 28px), va
   dung lai no lam o "Giờ ra" cao gap doi o "Giờ vào", nhan troi len roi khoi gia
   tri cua no. Chi thay khi chup man. Cung bay voi `.ca-o` va `.cc-o`. */
.qt .tc-o .v.chua{color:var(--qt-ink3);font-weight:400}
@media(max-width:900px){
  .qt .tc-hang{gap:var(--gx-space-4)}
  .qt .tc-hang .hang-nut{width:100%}
  .qt .tc-hang .hang-nut .btn{width:100%;justify-content:center}
}

/* ---------- Ghi nhan dong y nhan tin chu dong (cot phai hop thu) ----------
   Khoi nay nam trong cot hep, khong phai trong `.qt` — nen khong nho `.qt .btn`
   duoc, va cac o nhap phai tu khai co chu. */
.dy-form{display:flex;flex-direction:column;gap:8px}
.dy-form label{display:block;font-size:12px;font-weight:600;color:var(--t1)}
.dy-form select,.dy-form input{margin-top:3px;font-size:12px;font-weight:400;color:var(--t0)}
.dy-form .hang-nut{display:flex;gap:6px;margin-top:2px}

/* ---------- DINH KEM trong bong bong hop thu ----------
   Anh/video nam tren CDN Facebook va URL CO HAN — tai khong duoc la binh
   thuong, nen phai co khung bao thay vi mot o vo. */
.dk{display:flex;flex-direction:column;gap:6px;margin-top:4px;max-width:340px}
/* Album nhieu anh: luoi 2 cot, giong cach Messenger ve cho khach. Anh cat
   vuong deu nhau — cao thap khac nhau thi luoi rang cua va doc rat kho. */
.dk.dk-luoi{display:grid;grid-template-columns:1fr 1fr;gap:4px}
/* `.dk.dk-luoi img` (0,2,1) chu KHONG phai `.dk-luoi .dk-anh img`: long ten
   `.dk-anh` vao trong la trung ten voi mot lop cap tren (co test chan), va
   `.dk-luoi img` (0,1,1) thi HOA voi `.dk-anh img` — luc do ai thang chi phu
   thuoc vao thu tu khai trong file, dung cai bay da mac voi `.hch-lui`. */
.dk.dk-luoi img{width:100%;height:118px;max-height:118px;object-fit:cover}
.dk-anh{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--ln);
  background:var(--p2);line-height:0}
.dk-anh img{max-width:100%;max-height:280px;object-fit:cover;display:block}
.dk-video{max-width:100%;max-height:280px;border-radius:10px;border:1px solid var(--ln);
  background:var(--qt-ink);display:block}
.dk-tieng{width:100%;max-width:300px}
.dk-tep{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:10px;
  border:1px solid var(--ln);background:var(--p1);color:var(--t0);font-size:14px;
  text-decoration:none;word-break:break-word}
.dk-tep:hover{border-color:var(--ln2)}
.dk-tep.khong-mo{color:var(--t2);cursor:default}
.dk-tep svg{width:16px;height:16px;flex-shrink:0;color:var(--t2)}
.dk-hong{display:flex;align-items:center;gap:7px;padding:10px;border-radius:10px;
  border:1px dashed var(--ln2);color:var(--t2);font-size:14px}
.dk-hong svg{width:16px;height:16px;flex-shrink:0}
/* Tin khong co chu lan dinh kem — van phai noi ra, khong de mot khoang trong
   khong giai thich. Xay ra that: tin bi thu hoi, hay sticker chua doc duoc. */
.hbub-trong{color:var(--t2);font-style:italic}

/* ---------- Nut dinh kem trong o soan tin ----------
   `.qt .hinp-row input{flex:1}` ap cho MOI input trong hang, ke ca o chon tep
   an. No khong khai `display` nen `[hidden]` cua trinh duyet van thang — nhung
   khai ro o day de khong phu thuoc vao dieu do: bay `.hai{display:grid}` de mat
   `[hidden]` da xay ra that o trang dang nhap. */
.qt .hinp-row input[type=file]{display:none}
.qt .hinp-kep{display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:32px;height:32px;border-radius:8px;color:var(--qt-ink3);cursor:pointer}
.qt .hinp-kep:hover{background:var(--qt-paper);color:var(--qt-ink)}
.qt .hinp-kep.tat{opacity:.4;cursor:not-allowed}
.qt .hinp-kep svg{width:18px;height:18px}

/* ===== Hoi thoai dang sau mot de xuat (man Phan tich cau hoi khach) =====
   Doan chat doc de HIEU NGU CANH, khong phai de tra loi — nen khong dung lai
   bong bong cua man Hoi thoai: o day can DAY DAC, doc duoc 120 dong ma khong
   phai cuon mai. Ba ben phan biet bang NHAN CHU chu khong chi bang mau, vi
   nguoi mu mau doc mau xanh/tim gan nhu nhau (cung luat voi cot Trinh QC). */
.qt .man .dxh{margin-top:10px;padding:10px 12px;border:1px solid var(--qt-line);
  border-radius:10px;background:var(--qt-paper)}
.qt .man .dxh-ht{margin-top:10px;padding-top:10px;border-top:1px solid var(--qt-line)}
.qt .man .dxh-ht:first-of-type{margin-top:6px;padding-top:0;border-top:0}
.qt .man .dxh-dau{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.qt .man .dxh-tin{position:relative;max-height:340px;overflow-y:auto;background:var(--qt-white);
  border:1px solid var(--qt-line);border-radius:8px;padding:6px 8px}
.qt .man .dxh-d{display:grid;grid-template-columns:64px 1fr 44px;gap:8px;
  padding:3px 4px;border-radius:6px;font-size:14px;line-height:1.5}
.qt .man .dxh-ai{font-size:12px;font-weight:600;color:var(--qt-ink3)}
.qt .man .dxh-noi{white-space:pre-wrap;word-break:break-word}
.qt .man .dxh-g{font-size:12px;color:var(--qt-ink3);text-align:right}
.qt .man .dxh-dk{font-style:normal;font-size:12px;color:var(--qt-ink3)}
.qt .man .dxh-k .dxh-ai{color:var(--qt-ink)}
.qt .man .dxh-a .dxh-ai{color:var(--qt-g700-chu)}
.qt .man .dxh-n .dxh-ai{color:var(--qt-violet-chu)}
/* Tin KHOP: vien trai + nen nhat. Vien la kenh thu hai canh mau — mot minh mau
   thi nguoi mu mau khong tim ra dong dang noi toi giua 120 dong. */
.qt .man .dxh-khop{background:var(--qt-g50);
  box-shadow:inset 3px 0 0 var(--qt-g700)}

/* ===== Anh gan vao mot buoc tu van (man Quy trinh tu van) =====
   Chip bat/tat, khong phai <select>: chu shop can THAY nhanh the nao dang
   duoc chon va the nao con rong, ma select thi phai mo ra moi doc duoc. */
.qt .man .ab{margin-top:10px;padding-top:10px;border-top:1px solid var(--qt-line)}
.qt .man .ab-nhan{font-size:12px;font-weight:600;color:var(--qt-ink3);margin-bottom:6px}
.qt .man .ab-the{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
/* Chuan cham 44px cho dien thoai — chip 28px thi ngon tay khong bam trung. */
.qt .man .ab-o{display:inline-flex;align-items:center;gap:6px;min-height:44px;
  padding:0 12px;border:1px solid var(--qt-line);border-radius:999px;
  background:var(--qt-white);color:var(--qt-ink);font-size:14px;cursor:pointer}
.qt .man .ab-o:hover{border-color:var(--qt-g500)}
.qt .man .ab-o.ab-chon{background:var(--qt-g50);border-color:var(--qt-g700);font-weight:600}
.qt .man .ab-so{font-style:normal;font-size:12px;color:var(--qt-ink3)}
.qt .man .ab-o.ab-chon .ab-so{color:var(--qt-g700-chu)}
.qt .man .ab-canh{color:var(--qt-amber-chu)}
.qt .man .ab-nhan{display:flex;align-items:center;gap:10px}
.qt .man .ab-mo{min-height:32px;padding:0 10px;border:1px solid var(--qt-line);
  border-radius:8px;background:var(--qt-white);color:var(--qt-g700-chu);
  font-size:12px;font-weight:600;cursor:pointer}
.qt .man .ab-mo:hover{border-color:var(--qt-g500)}

/* Nut nho trong hai bang bang-chung webhook. `.qt .btn` (0,2,0) la thu duy nhat
   thang duoc `.qt button` (0,1,1) — luat lam phang moi nut trong khung ERP —
   nen phai di kem no chu khong dung `.sm`: `button.sm` cung do dac hieu voi
   `.qt button` va khai TRUOC, tuc thua. Do that 26/08/2026: hai nut cao 22px,
   padding 0, khong vien — tuc chu tran, khong con la nut.
   `sm-nut` chi thu nho lai cho vua mot bang, khong dung lai ten `.sm`. */
.qt .btn.sm-nut{padding:7px 12px;font-size:14px;font-weight:600;border-radius:7px;
  border:1px solid var(--qt-line)}

/* Nut gui anh trong o soan cua Chat thu. `.gh` la nut chu, o day no nam trong
   mot hang flex cung o nhap nen phai khong co giãn. */
.ct-go .ct-anh{flex:0 0 auto;cursor:pointer;white-space:nowrap}

/* Chỉ trình đọc màn hình thấy. Dùng cho tiêu đề trang ở những khung mà thiết
   kế cố ý không bày chữ tiêu đề ra — bỏ hẳn tiêu đề thì người dùng trình đọc
   không biết mình đang ở đâu, mà thêm chữ vào thì hỏng bố cục. */
.chi-doc{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Dải chip Đào tạo AI: ẩn trên máy tính, bật lên trong khối điện thoại cuối
   tệp. `DT_RAIL` chỉ sống trong sidebar, mà sidebar ẩn từ 900px xuống — đo ở
   390px thì mở `dt` xong là ngõ cụt, 16 màn con không tới được và menu "Thêm"
   chỉ liệt kê mục cấp một. `RailDt` mượn đúng khuôn `.hs-views` của Nhân sự
   và Quảng cáo; trên máy tính thì ẩn vì sidebar đã làm việc đó rồi.

   Luật bật nằm TRONG khối điện thoại cuối tệp chứ KHÔNG mở một khối @media
   mới sau nó — thêm một khối sau đó là phá đúng bất biến mà
   `test/mobile-cuoi-tep.test.js` giữ. */
/* HIEN CA TREN MAY TINH tu 28/08/2026. Truoc do an di voi ly do "sidebar da lam
   viec do roi" — nhung sidebar cua Dao tao AI la mot ACCORDION trong SidebarChat,
   khong phai hang tab. Doi chieu ban ve (scripts/doi-chieu-ban-ve.js) cho thay
   ca 20 man `dt-*` deu thieu "Hang tab ngang" ma ban ve co, va do la MOT LOI DUY
   NHAT nhan len 20 lan. Ban ve ve ca hai: sidebar 236px cho MO-DUN, hang tab
   ngang cho MAN trong mo-dun — dung khuon Nhan su va Quang cao dang chay. */
.qt .hs-views.dt-rail{display:flex}

/* ==========================================================================
   NGUON SO (ns-) va NHIP BOT (nb-) — hai man cua day chuyen quang cao.
   Ban chot 02/09/2026.

   DO DAC HIEU: trong bang phai neo `.qt .hstable .ns-*` (0,3,0) vi doi thu la
   `.qt .hstable td` (0,2,1), khong phai `.qt td`. Ngoai bang thi `.qt .ns-*`
   (0,2,0) la du.

   MAU KHONG BAO GIO LA TIN HIEU DUY NHAT: moi trang thai mang mot HINH DANG
   rieng (`●` `◐` `▲` `▢`) va mot chu tieng Viet luon hien. Thanh phan bo dung
   BA HOA VAN khac nhau (dac / soc cheo / cham) nen chup den trang van doc duoc.
   ========================================================================== */

/* ---- DONG DEM VIEC — ban 1 cua "Viec can ban" ----
   KHONG the, KHONG bieu do, KHONG danh sach rong. Mot dong, va mot popover
   liet ke nam nguon. Popover ne mep phai bang `right:0` khi khong du cho. */
.qt .vc-dong{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:44px;
  padding:5px 16px;background:var(--qt-g50);border-bottom:1px solid var(--qt-line);
  font-size:13px;color:var(--qt-ink2)}
.qt .vc-dong b{color:var(--qt-ink)}
.qt .vc-pop{position:relative}
.qt .vc-pop > summary{cursor:pointer;font-size:12px;font-weight:650;color:var(--qt-g700);
  list-style:none;min-height:24px;display:inline-flex;align-items:center}
.qt .vc-pop > summary::-webkit-details-marker{display:none}
.qt .vc-hop{position:absolute;z-index:9;left:0;top:28px;width:min(360px,calc(100vw - 40px));
  background:var(--qt-white);border:1px solid var(--qt-line2);border-radius:10px;
  padding:11px 13px;box-shadow:0 8px 24px rgba(15,23,42,.16)}
.qt .vc-dau,.qt .vc-chan{font-size:12px;color:var(--qt-ink3);line-height:1.45}
.qt .vc-chan{margin-top:9px;padding-top:8px;border-top:1px solid var(--qt-line)}
.qt .vc-muc{display:flex;gap:8px;align-items:flex-start;padding:8px 0;
  border-top:1px solid var(--qt-line);font-size:13px}
.qt .vc-muc:first-of-type{margin-top:8px}
.qt .vc-hd{flex:0 0 auto;font-size:12px;line-height:1.5;color:var(--qt-ink3)}
.qt .vc-co .vc-hd{color:var(--qt-g700)}
.qt .vc-so{font-variant-numeric:tabular-nums;color:var(--qt-ink2)}
.qt .vc-cho{font-size:12px;color:var(--qt-ink3);margin-top:2px;line-height:1.45}

/* Nhan cum cho hang chip loc: chip cua HAI cum bat duoc dong thoi, nen phai
   noi ro cum nao la cum nao — khong thi nguoi dung tuong chung loai tru nhau. */
.qt .fchip-nhan{font-size:12px;font-weight:650;color:var(--qt-ink3);
  padding:0 2px 0 6px;white-space:nowrap;align-self:center}
.qt .fchip-nhan:first-child{padding-left:0}
.qt .fchip-dem{font-variant-numeric:tabular-nums;font-weight:600;opacity:.75}

/* ---- DAI NGUON SO — mot dong o dau moi man doc so ----
   Nen g50 (khong phai amber): day khong phai canh bao, day la mot dieu kien
   doc so. KHONG co nut dong. O 390px rut gon con mot dong, chu XUONG DONG chu
   khong cat bang dau ba cham — cat chu la giau mat chinh cau can doc. */
.qt .dai-ns{display:flex;gap:9px;align-items:flex-start;flex-wrap:wrap;
  background:var(--qt-g50);border-bottom:1px solid var(--qt-line);
  padding:10px 16px;font-size:13px;color:var(--qt-ink2)}
.qt .dai-ns .dai-hd{flex:0 0 auto;color:var(--qt-ink3)}
.qt .dai-ns .dai-chu{flex:1 1 320px;min-width:0}
.qt .dai-ns b{color:var(--qt-ink)}
.qt .dai-ns .dai-lk{flex:0 0 auto;white-space:nowrap;font-weight:650}

/* ---- NHAN KHAU cua day chuyen sau bot, tren sidebar va tren rail ----
   Hai khau chua dung hien tren SIDEBAR (de nguoi doc thay day chuyen dut o
   dau) nhung KHONG len rail (rail la thanh dieu huong giua cac man, ma hai
   khau do khong co man nao). Chip "chua dung" la phan BAT BUOC cua nhan —
   thieu no thi menu hien hai dong tro tron va bi doc la loi render. */
.qt .sb-khau{display:flex;align-items:center;gap:6px;padding:9px 14px 3px 30px;
  font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--qt-ink3)}
.qt .sb-chua{font-size:12px;font-weight:600;letter-spacing:0;color:var(--qt-ink3);
  border:1px dashed var(--qt-line2);border-radius:999px;padding:0 7px}
.qt .rail-khau{padding:11px 12px 3px;font-size:12px;font-weight:700;
  letter-spacing:.06em;color:var(--qt-ink3);white-space:nowrap}

/* Khoi nhan cua hai man nay KHONG dung `.blkc`/`.blkd`: hai lop do lay token
   ho `--rdd`/`--am` cua san pham CHAT, nen trong khung ERP chung ra 1,16:1 —
   bo quet man bat duoc dung dieu do. O day khai rieng bang token `--qt-*`, va
   theo ban chot: CHU MAU MUC, mau trang thai CHI o vien trai 3px va icon. */
.qt .ns-khoi{display:flex;gap:10px;align-items:flex-start;background:var(--qt-white);
  border:1px solid var(--qt-line);border-left:3px solid var(--qt-line2);
  border-radius:9px;padding:12px 14px;color:var(--qt-ink)}
.qt .ns-khoi p{margin:0;color:var(--qt-ink2)}
.qt .ns-khoi p + p{margin-top:6px}
.qt .ns-canh{border-left-color:var(--qt-amber-chu)}
.qt .ns-canh .ns-hd{color:var(--qt-amber-chu)}
.qt .ns-ok{border-left-color:var(--qt-g700)}
.qt .ns-ok .ns-hd{color:var(--qt-g700)}

/* ---- phan quyet dau man ---- */
.qt .ns-canh{display:flex;gap:10px;align-items:flex-start}
.qt .ns-ok{display:flex;gap:10px;align-items:flex-start}
.qt .ns-hd{flex:0 0 auto;font-size:13px;line-height:1.5}
.qt .ns-pq{font-size:16px}
.qt .ns-nghen{margin-top:5px}
.qt .ns-lk{margin-top:7px}
.qt .ns-tuoi{margin:12px 16px 0;max-width:88ch}
.qt .ns-visao{display:block;margin-top:3px;color:var(--qt-ink3)}
.qt .ns-h{margin:22px 16px 8px}
.qt .ns-h3{margin:0 0 5px;font-size:16px;font-weight:700}
.qt .ns-ct{margin:8px 16px 0;max-width:92ch}

/* ---- bang ba cach tinh: phep chia in NGUYEN VAN de khong sai am tham ---- */
.qt .hstable .ns-chia{font-size:12px;color:var(--qt-ink3);white-space:nowrap}
.qt .hstable .ns-so{font-weight:700;font-variant-numeric:tabular-nums}

/* ---- thanh phan bo: ba be rong di bang ba bien tren the cha ---- */
.qt .ns-thanh{display:flex;height:34px;margin:0 16px;border-radius:8px;overflow:hidden;
  gap:2px;background:var(--qt-line)}
.qt .ns-thanh i{display:block;height:100%}
.qt .ns-thanh .ns-a{width:var(--a,0%)}
.qt .ns-thanh .ns-b{width:var(--b,0%)}
.qt .ns-thanh .ns-c{width:var(--c,0%)}
.qt .ns-a{background:var(--qt-g600)}
.qt .ns-b{background:repeating-linear-gradient(45deg,var(--qt-paper) 0 5px,var(--qt-line2) 5px 10px);
  border-top:1px solid var(--qt-line2);border-bottom:1px solid var(--qt-line2)}
.qt .ns-c{background:radial-gradient(var(--qt-ink3) 1.2px,var(--qt-nen2) 1.2px);
  background-size:6px 6px}
.qt .ns-chu{display:flex;flex-wrap:wrap;gap:14px;margin:9px 16px 0;font-size:12px}
.qt .ns-m{display:inline-flex;align-items:center;gap:7px}
.qt .ns-chu i{width:12px;height:12px;border-radius:3px;flex:0 0 auto;display:block}
.qt .ns-chu .ns-b{border:1px solid var(--qt-line2)}
.qt .ns-chu .ns-so{font-weight:700;font-variant-numeric:tabular-nums}
.qt .ns-lech{color:var(--qt-red-chu)}

/* ---- hai khoi rieng: nhom chua ghep duoc don, va con so do theo DON ---- */
.qt .ns-mu{background:repeating-linear-gradient(45deg,var(--qt-white) 0 6px,
  var(--qt-line) 6px 12px)}
.qt .ns-mu .ns-h3,.qt .ns-mu p{color:var(--qt-ink)}
.qt .ns-don p{margin:0}
.qt .ns-don p + p{margin-top:6px}

/* ==================== NHIP BOT ==================== */
.qt .nb-dau{margin:14px 16px 0;font-size:14px;max-width:88ch}
.qt .nb-nhip,.qt .nb-ho{margin:7px 16px 0;max-width:88ch}
.qt .nb-cuoi,.qt .nb-dong{margin:12px 16px 0;max-width:88ch}

/* Dai day chuyen: doan noi giua hai khau CHUA DUNG ve NET DUT, nen chup den
   trang van doc ra cho dut. */
.qt .nb-day{display:flex;align-items:center;flex-wrap:wrap;gap:0;margin:14px 16px 4px}
.qt .nb-khau{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650;
  padding:5px 11px;border:1px solid var(--qt-line2);border-radius:999px;
  background:var(--qt-white);white-space:nowrap}
.qt .nb-khau b{font-variant-numeric:tabular-nums;color:var(--qt-g700)}
.qt .nb-khau-chua{border-style:dashed;color:var(--qt-ink2)}
.qt .nb-khau-chua b{color:var(--qt-ink3)}
.qt .nb-vong{font-size:14px;padding:5px 10px}
.qt .nb-noi{display:block;width:16px;height:0;border-top:2px solid var(--qt-line2);flex:0 0 auto}
.qt .nb-dut{border-top-style:dashed}

/* ---- bang sau khau ---- */
.qt .hstable .nb-ten{white-space:nowrap}
.qt .hstable .nb-ten b{font-variant-numeric:tabular-nums;color:var(--qt-g700);margin-right:2px}
.qt .hstable .nb-mono{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--qt-ink2)}
.qt .hstable .nb-visao{white-space:normal;min-width:260px;max-width:420px}

/* Bon bac trang thai — moi bac mot hinh dang, chu luon hien canh hinh. */
.qt .nb-tt{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:650;
  padding:2px 9px;border-radius:999px;white-space:nowrap}
.qt .nb-tt i{font-size:12px;font-style:normal;line-height:1}
.qt .nb-chay{background:var(--qt-g100);color:var(--qt-g700)}
.qt .nb-doc{background:var(--qt-nen2);color:var(--qt-ink2);border:1px solid var(--qt-line2)}
.qt .nb-cho{background:var(--qt-amber-bg);color:var(--qt-amber-chu)}
.qt .nb-chua{color:var(--qt-ink2);border:1px dashed var(--qt-line2)}

/* ---- cua ghi len Meta: khoi RIENG duoi bang, khong nam trong hang bang ---- */
.qt .nb-ghi{display:flex;gap:10px;align-items:flex-start}
.qt .nb-lk{margin-top:8px}
.qt .nb-hoi{border:1px solid var(--qt-line2);border-radius:8px;padding:10px 12px;
  background:var(--qt-white);max-width:62ch}
.qt .nb-hoi p{margin:0 0 9px;font-size:13px}
.qt .nb-hoi button{margin-right:8px}

/* ================================================================
   ĐIỆN THOẠI — KHỐI CUỐI CÙNG, ĐẶT SAU MỌI LUẬT KHÁC

   Đặt ở đây là CỐ Ý. Ba lần trước các luật mobile bị chính luật cơ sở đè,
   vì chúng cùng độ đặc hiệu mà lại khai TRƯỚC:
     - `.qt .fchip` (dòng ~2654) thua `.qt .fchip` (dòng ~2780)
     - `.qt .gat` (~2655) thua `.qt .gat-sm` (~2874)
     - `.qt .ht-detail` slide-over (~1105) thua `.qt .ht-detail{display:none}` (~2204)
   Khối này khai sau tất cả, nên nó thắng mà không phải nâng độ đặc hiệu.
   ================================================================ */
@media (max-width: 900px) {

  /* PANEL KHÁCH HÀNG / TẠO ĐƠN — thứ bị mất hẳn trên điện thoại.
     `.ht-detail{display:none}` ở khối 900px khai SAU phần slide-over của khối
     1400px, nên ở 390px: nút mở vẫn hiện, nền mờ vẫn tối đi, mà panel không
     bao giờ mở. Bấm xong phải bấm nền mờ để thoát.
     `CotPhai` là nơi DUY NHẤT có Tạo đơn và Gắn nhãn. */
  .qt .ht-detail{display:flex;position:absolute;top:0;right:0;bottom:0;z-index:40;
    width:min(100%, 380px);border-left:1px solid var(--qt-line);
    transform:translateX(100%);transition:transform .2s}
  .qt .ht-detail[data-mo="1"]{transform:translateX(0)}

  /* VÙNG BẤM ≥44px. Danh sách cũ (~dòng 2262) bỏ sót đúng những nút hay bấm
     nhất — chip lọc của mọi màn ERP, chuông thông báo, công tắc chiến dịch. */
  .qt .hs-view-item{min-height:44px;display:flex;align-items:center}
  .qt .tb-icon{width:44px;height:44px}
  .qt .itool{width:44px;height:44px}
  .qt .nb-b{width:44px;height:44px}
  .qt .man .ab-mo{min-height:44px;padding:0 14px}
  .qt .man button.gh{min-height:44px;padding:0 14px}

  /* CÔNG TẮC. `.gat-sm` (32×18) bật/tắt CẢ MỘT CHIẾN DỊCH quảng cáo — nút
     điều khiển tiền thật, dưới chuẩn chạm. Phải khai riêng: `.qt .gat{50×30}`
     ở khối trên không với tới nó. */
  .qt .gat{width:50px;height:30px}
  .qt .gat i{width:24px;height:24px}
  .qt .gat.on i{transform:translateX(20px)}
  .qt .gat-sm{width:50px;height:30px}
  .qt .gat-sm i{width:24px;height:24px}
  .qt .gat-sm.on i{transform:translateX(20px)}

  /* CHIP LỌC — luật cơ sở đè mất padding và cỡ chữ của bản mobile. */
  .qt .fchip,.qt .ls-chip{min-height:44px;padding:10px 16px;font-size:14px}

  /* Bốn lớp còn lại, đo bằng trình duyệt ở 390px chứ không đọc CSS bằng mắt:
     .btn 40px · .pri 34px · .det-dong 32px · .gat 30px. */
  .qt .btn,.qt .pri{min-height:44px;padding-top:0;padding-bottom:0;
    display:inline-flex;align-items:center}
  .qt .det-dong{min-height:44px;display:flex;align-items:center}

  /* Công tắc: giữ hình viên thuốc 30px nhưng nới VÙNG BẤM lên 44px.
     `background-clip:content-box` để phần đệm không bị tô màu — phóng to cả
     hình thì nó không còn giống một công tắc nữa. */
  .qt .gat,.qt .gat-sm{height:44px;padding:7px 0;background-clip:content-box}
  .qt .gat i,.qt .gat-sm i{top:7px}

  /* `.qt .man button{min-height:32px}` (dòng ~462) là (0,2,1) — mọi luật một
     lớp của khối này đều thua nó. Khai lại ở đúng độ đặc hiệu đó; khối này nằm
     CUỐI TỆP nên thắng bằng thứ tự. Đo được: .pri · .date · .link-btn · .lk
     đều dính, cả bốn đứng ở 32–34px. */
  .qt .man button{min-height:44px}
  .qt .man .ab-mo{min-height:44px}

  /* Quét 24 màn ở 390px còn bốn lớp nữa: .hbtn 35 · .lk 31–36 · .pri 28 ·
     .td-muc 22. `.lk` là liên kết NẰM GIỮA MỘT ĐOẠN VĂN — không đặt min-height
     cho nó (sẽ vỡ dòng chữ), nới bằng đệm rồi kéo lại bằng lề âm. */
  .qt .hbtn{min-height:44px;display:inline-flex;align-items:center}
  .qt .pri{min-height:44px}
  .qt .td-muc{min-height:44px;display:flex;align-items:center}
  /* `.lk` là thẻ <a> hiển thị `inline` — `min-height` KHÔNG áp cho inline, nên
     chỉ có đệm mới nới được vùng bấm. 14px cho ra 44px với line-height của thân
     chữ; lề âm giữ dòng văn không giãn ra. */
  /* 15px chu khong phai 14: `.lk` la hop INLINE, chieu cao o nguoi dung cham
     duoc KHONG bang line-height cong hai lan padding — do that 28/08/2026, mot
     link line-height 19,2px voi padding 14px ra 43px o kho 834px (thieu 1px so
     voi chuan 44). Them 1px thi ra 45px o ca hai kho. */
  .qt .lk{padding:15px 2px;margin:-15px 0}

  /* `.pri.sm` là biến thể NHỎ, khai min-height:28px ở (0,1,1)+(0,1,1). Nút nhỏ
     trên máy tính là đúng; trên điện thoại thì không có nút nhỏ. */
  .qt .pri.sm,.qt .btn.sm,.qt .gh.sm{min-height:44px}
  /* Thủ phạm thật là `.qt .man button.sm` (0,2,2) ở dòng ~475 — phải khai lại
     đúng độ đặc hiệu đó mới thắng được bằng thứ tự. */
  .qt .man button.sm{min-height:44px}

  /* Bật dải chip Đào tạo AI. Luật ẩn nó trên máy tính khai TRƯỚC khối này
     (tìm `.dt-rail`), nên cùng độ đặc hiệu thì luật ở đây thắng — và nó nằm
     TRONG khối điện thoại cuối tệp chứ không mở một khối @media mới sau nó. */
  .qt .hs-views.dt-rail{display:flex}

  /* Hang chip cuon ngang chu khong xuong dong: xuong dong thi mot man 5
     chip an mat hai dong noi dung, con cuon ngang thi nguoi dung van thay
     ngay co bao nhieu bo loc. Luat nay phai nam TRONG khoi dien thoai cuoi
     tep, khong duoc mo mot @media moi sau no. */
  /* `currentColor` chu khong phai mot ma mau: trong `mask-image` chi DO DUC
     duoc dung (mo dan ve trong suot), con sac mau khong anh huong gi. Dat
     `#000` o day la mot ma mau thuc su nam trong `style.css` — tep nay chi
     duoc tieu thu token, khong duoc tu dat mau, va co test khoa.
     DAU HIEU CON CUON DUOC. Do that 29/08/2026 o 390px: hang tab mo-dun an
     khuat 967px — ~71% menu nam ngoai man hinh, va muc cuoi bi cat GIUA CHU
     nen trong nhu het roi. Mot dai cuon duoc ma khong co dau hieu gi thi
     nguoi dung khong biet de keo.
     `mask-image` lam mo dan mep phai — no noi "con nua" bang chinh hinh dang,
     khong them mot mui ten phai nho cho. Chi ap o kho hep: tren may tinh dai
     du cho nen lam mo la vo co. */
  .qt .hs-views{
    -webkit-mask-image:linear-gradient(to right,currentColor calc(100% - 28px),transparent);
    mask-image:linear-gradient(to right,currentColor calc(100% - 28px),transparent);
  }
  .hang-chip{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch}
  .hang-chip::-webkit-scrollbar{display:none}

  /* ---------------- Ô CHỌN và Ô TÍCH: hai loại điều khiển bị bỏ sót ----------
     Moi vong quet truoc chi dem `button, a, [role=button]` va vai lop chip, nen
     hai the NATIVE nay chua bao gio duoc do. Do that 05/09/2026 o 390px:

       select   296x32 (cai-dn) · 87x32 (dt-cai-dat) · 220x34 (mkt-qc)
                · 312x32 (kho) · 288x36 (nhansu)
       o tich   16x16 o KHAP NOI — luat chung (dong ~117) dat cung 16px va
                khong co ban cho thiet bi cham.

     `select` an theo luat chung `input:not(...),textarea,select{height:32px}`.
     Do la mot o dieu khien MO RA MOT DANH SACH — bam truot no tren dien thoai
     la mo nham hoac khong mo gi. */
  .qt select{height:44px;min-height:44px}

  /* O tich: vung bam CHINH LA hop cua the input, khong noi ra bang padding
     duoc (checkbox ve theo border-box, them dem la ve to ca cai o). Nen chi
     con cach dat kich thuoc. 24px chu khong phai 44: 24 la san WCAG 2.5.8 AA,
     con mot o tich to 44px thi khong con nhin ra la o tich nua — va vung bam
     THUC TE cua no la CA CAI NHAN bao no, xu ly ngay duoi.
     `.qt input[type=checkbox]` la (0,2,1), thang duoc `.cd-bat input` (0,1,1)
     dang go cung 17px — bay do dac hieu da mac sau lan trong repo nay, nen do
     bang computed style chu khong doc CSS bang mat. */
  .qt input[type=checkbox],.qt input[type=radio]{width:24px;height:24px}

  /* ...va CAI NHAN bao no. Bam vao nhan la tick — do moi la vung bam that, va
     no dang duoi chuan o moi cho do duoc:
       label.kl-o      296x31  (cai-dn — Cach tinh luong, 15 o tich mot luoi)
       label.bt-ghim-o 167x19  (bang tin)
       label.cd-bat    306x26  (dt-cai-dat)
       label.md-o-cai  296x40  (cai-dn, mkt-canh-bao)
     CHI dat `min-height` — KHONG dat `display`. Bon lop tren deu da la flex,
     nhung mot cai nhan chua gap co the la grid hay block, va ep `display:flex`
     len no la lam vo bo cuc de sua mot vung bam. */
  .qt label:has(input[type=checkbox]),.qt label:has(input[type=radio]){min-height:44px}
}

/* ================================================================
   NĂM TRẠNG THÁI — khuôn dùng chung (khai ở `khung.js`)

   `.trth-khoi` (đang tải) · `.trth-loi` (máy chủ hỏng) · `.trth-cam` (403).
   TIEN TO `trth-` chu khong `tt-`: ho `tt-` da thuoc ve danh sach hoi thoai
   (`tt-ds` `tt-a` `tt-i`). Dung lai tien to cua mot man khac la bay da mac
   that voi `.ca-o` — lop long trong sua duoc thuoc tinh no nhac toi nhung
   khong xoa duoc thuoc tinh no khong nhac, va chi nhin anh chup moi thay.
   Chúng chỉ mượn `.spin` / `.blkd` / `.warn` / `.empty-state` đã có; ở đây
   chỉ thêm phần bố cục. Không màu mới, không cỡ chữ mới.
   ================================================================ */
/* Ba lop nay khai o CUNG MOT CAP `.qt` — khong lop nao dat o cap tren cung roi
   mot lop khac long trong. Khai hai cap la dung hinh dang ma `test/giao-dien`
   dung de bat bay `.ca-o`: mot lop nen o cap tren cung, rieng trong mot khung
   thi khac di. O day khong co "hai man trung ten", nen cach dung la lam cho
   hinh dang do KHONG xuat hien, chu khong phai them ten vao lo mien tru. */
.qt .trth-khoi{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:var(--kc-3);padding:var(--kc-10) var(--kc-6);text-align:center}
.qt .trth-khoi .chu-mo{color:var(--qt-ink3)}
.qt .trth-loi,.qt .trth-cam{align-items:flex-start;margin:var(--kc-4) 0}
.qt .trth-loi .gian,.qt .trth-cam .gian{display:flex;flex-direction:column;gap:var(--kc-1)}
/* Dong "buoc tiep theo" nam tren NEN CO MAU (`.warn` = amber-bg), nen chu mo
   `--qt-ink3` chi con 4,15:1 — truot AA. Dam len mot bac: 6,90:1.
   Chi thay khi quet bang VAI NHAN VIEN: khoi 403 khong bao gio hien voi chu
   shop, nen ba luot quet truoc do deu bao sach. */
/* Chu cua khoi loi lay mau MUC, khong lay mau do. `--rdtx` do vua lam NEN (14%)
   vua lam CHU cua chinh khoi do, va o tong toi ra 3,88:1 — mot mau khong lam
   duoc ca hai vai. Mau do van con o vien trai va o icon, tuc tin hieu khong mat.
   Khuon nay da chay san o `.qt .set-page .blkd`; day chi la ap no cho lop trang
   thai dung chung, thu ma MOI man deu di qua. Do that 28/08/2026 tren kho-pos. */
.qt .trth-loi,.qt .trth-cam{color:var(--qt-ink)}
.qt .trth-loi .chu-mo,.qt .trth-cam .chu-mo{color:var(--qt-ink2)}
.qt .trth-loi .hang-nut,.qt .trth-cam .hang-nut{margin-top:var(--kc-2)}

/* ---------------- Bỏ qua điều hướng (skip link) ----------------
   `.skip-link` đã có kiểu trong `kit.css` nhưng KHÔNG thẻ nào mang nó — tức
   bàn phím phải đi qua 12 mục sidebar mỗi lần đổi màn. Nó nằm ngoài mọi bọc
   `.qt` của từng màn (nó ở `Goc()`), nên luật `.qt .skip-link` của kit không
   với tới; khai lại ở đây, cùng hình dạng. */
.bo-qua-dh{position:fixed;left:12px;top:8px;z-index:100;transform:translateY(-140%);
  min-height:44px;display:inline-flex;align-items:center;   /* chuan cham */
  padding:10px 14px;border-radius:8px;background:var(--nhan-nut);color:var(--nhan-nut-chu);
  font-size:14px;font-weight:600;border:0;transition:transform .12s}
.bo-qua-dh:focus-visible{transform:none}

/* ---------------- Chip lọc: thiếu phản hồi rê chuột ----------------
   `.ls-chip` và `.fchip` là bộ lọc chính của hộp thư và Trình QC. Cả hai là
   <button> nên có `:focus-visible` từ luật chung, nhưng KHÔNG luật `:hover`
   nào — rê chuột qua không có gì đổi, nên trông như chữ chứ không như nút. */
.ls-chip:hover:not(.on){border-color:var(--ln2);background:var(--p3)}
.qt .fchip:hover:not(.on){border-color:var(--qt-line2);background:var(--qt-paper)}

/* ---------------- MỘT quầng tiêu điểm, MỘT màu hover ----------------
   Đo 28/08/2026: ô nhập có hai quầng khác nhau (luật chung dùng `--cam-mo`,
   `.set-form input:focus` dùng `--qt-g100`), và nút chính có hai màu hover
   (`--nhan-nut-hover` = #0F5132 của BỘ TOKEN CŨ, còn `.btn-g:hover` =
   `--qt-g800` = #105434). Ô nhập đang `outline:none` nên quầng là tín hiệu
   DUY NHẤT — không bỏ nó, chỉ gộp về một.

   `--nhan-nut-hover` sống trong `thuong-hieu.css` (tệp của bộ nhận diện, không
   thuộc lớp này). Ánh xạ lại đúng theo cách tệp đó phân tông — `[data-th=sang]`
   (0,1,0), và style.css nạp sau nên thắng. Tông tối giữ nguyên. */
[data-th="sang"]{--nhan-nut-hover:var(--qt-g800)}
/* ---------------- Tiêu đề màn nằm TRONG nội dung ----------------
   `DauTrangQt` đã phát `<h1 class="crumb">` cho mọi màn ERP, nên tiêu đề của
   chính màn phải là `h2` — nếu không mỗi trang có hai `h1`. Kiểu dáng không
   đổi: hai luật này chép đúng khai báo của `.man-in h1` mà chúng thay thế. */
/* Hang dau man: tieu de + nut "? Huong dan" nam cung mot dong. Truoc
   28/08/2026 hai muoi man co huong dan viet xong ma KHONG co nut nao mo
   duoc no — mot tinh nang tuong la co ma khong ai toi duoc. Dat nut canh
   tieu de chu khong duoi day man: nguoi ta tim huong dan ngay luc vua mo
   man ra, khong phai sau khi cuon het trang. */
/* Hang chip loc + hanh dong (khuon `HangChip`). Cuon ngang tren dien thoai
   chu khong xuong dong: xuong dong thi mot man 5 chip an mat hai dong noi
   dung, con cuon ngang thi nguoi dung van thay ngay co bao nhieu bo loc. */
.hang-chip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin:0 0 var(--kc-4)}
.dau-man{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* `margin-right:auto` tren chinh tieu de, KHONG phai `margin-left:auto` tren
   nut: dat len nut la dung lai ten lop `.hd-nut` cua man khac, dung cai bay
   ma `test/giao-dien.test.js` giu — lop long trong sua duoc thuoc tinh no
   nhac toi nhung khong xoa duoc thuoc tinh no khong nhac. Day thi khong
   dung ten lop nao ca, va man chi co tieu de (khong nut) van dung. */
.dau-man > h2, .dau-man > h3{margin-bottom:0;margin-right:auto}

.man-in h2.man-h{font-family:var(--font-tieu-de);font-size:var(--cc-7);font-weight:650;
  letter-spacing:-.015em;margin:0 0 var(--kc-2);line-height:1.25}
.qt .set-page .man-in h2.man-h{font-family:var(--qt-font);font-size:20px;font-weight:800;
  letter-spacing:-.3px;color:var(--qt-ink)}
/* Tiêu đề khối trong thẻ: `h2` phải trông y hệt `h3` mà nó thay. Màn chỉ có
   thẻ (không có tiêu đề màn) thì `h1` → `h3` là nhảy hai bậc; dùng `h2`. */
/* The cai dat la MUC NGANG HANG cua trang, nen tieu de cua chung la h2 chu
   khong phai h3: trang khong co tieu de rieng (thanh tren giu h1), de h3 la
   nhay mot bac. Va no nhay THAT chu khong phai chi luc dang tai — the tien
   do dau man chi hien khi con viec chua xong, nen shop cai xong het la
   khong con h2 nao dung giua. Luat nay chep dung khai bao cua `.set-card h3`
   de doi the KHONG doi kieu dang. */
.qt .set-card h2{font-size:16px;font-weight:700;letter-spacing:-.2px;margin-bottom:4px}
.qt .card-h h2{font-size:14px;font-weight:700}

/* PHAT LAI — bon cot phai VUA MOT MAN. Cot "AI tra loi" la thu nguoi ta mo man
   nay de doc; de bang tu gian thi cot do bi day ra ngoai mep phai va phai cuon
   ngang moi thay — dung bai hoc "o ghi chu phai o COT DAU" ben Trinh QC.
   `white-space:normal` la bat buoc: `.hstable td` dat `nowrap`, ma day la doan
   van chu khong phai mot con so. */
.qt .hstable th.pl-k,.qt .hstable td.pl-k{width:18%;white-space:normal;vertical-align:top}
/* `pre-wrap` chu khong `normal`: bang nay de NGUOI DOI CHIEU cach viet, ma
   `normal` gop moi dau xuong dong thanh mot dau cach. Do that 29/08/2026 —
   nguoi go 2 dong, AI go 4 dong, va man hinh hien ca hai thanh mot khoi lien.
   Nguoi xem khong the danh gia mot thu ho khong nhin thay. */
.qt .hstable th.pl-c,.qt .hstable td.pl-c{width:33%;white-space:pre-wrap;vertical-align:top;
  line-height:1.5}
.qt .hstable th.pl-l,.qt .hstable td.pl-l{width:16%;white-space:normal;vertical-align:top}

/* Tung BONG BONG hien rieng, co duong ngat giua — nguoi xem phai thay duoc hinh
   dang tin nhan that. Nhan vien tach bubble bang cach GUI NHIEU TIN, AI tach
   bang `---`; gop ca hai thanh mot khoi thi khong ai doi chieu duoc cach viet. */
.qt .pl-bb{white-space:pre-wrap}
.qt .pl-ngat{height:1px;background:var(--qt-line);margin:7px 0;opacity:.7}

/* CA CUOC GOC — de nguoi duyet co ngu canh truoc khi doc bang so sanh.
   Khong dung khuon bong bong chat (.thr .bb): o day can DOC NHANH ca cuoc, ma
   bong bong so le trai-phai bat mat phai nhay qua nhay lai. Mot cot, nhan ai
   noi dat truoc, la kieu bien ban — dung cho viec doi chieu. */
.qt .pl-goc{border:1px solid var(--qt-line);border-radius:10px;padding:12px 14px;
  margin:10px 0 14px;max-height:420px;overflow-y:auto;background:var(--qt-white)}
.qt .pl-g{display:flex;gap:10px;padding:5px 0;font-size:14px;line-height:1.5;
  border-bottom:1px solid var(--qt-line2)}
.qt .pl-g:last-child{border-bottom:0}
.qt .pl-g-ai{flex:none;width:74px;font-size:12px;color:var(--qt-ink3);padding-top:2px}
.qt .pl-g-chu{white-space:pre-wrap;min-width:0}
.qt .pl-g.khach .pl-g-ai{color:var(--qt-g700);font-weight:600}
.qt .pl-g.ai .pl-g-ai{font-style:italic}

/* Bang Chuong trinh khuyen mai. Them cot "Theo lich" (06/09/2026) lam trinh
   duyet chia lai be ngang va o "Noi dung" bi ep con ~50px — dung cot nguoi ta
   doc de doi chieu cac dot. Chi thay khi chup man.
   Bang da nam trong `.cuon-ngang` nen cho cot rong that roi cuon ngang.
   `.qt .hstable .ct-*` (0,3,0) de thang `.qt .hstable td` (0,2,1). */
.qt .hstable .ct-ten{min-width:240px;max-width:260px}
/* `.hstable td` dat `nowrap` de bang cuon ngang duoc; dong nhac "hom nay bot
   chao ..." thi phai xuong dong, khong thi mot minh no keo cot rong 430px va
   day cot Trang thai ra ngoai man. */
.qt .hstable .ct-ten .dt-nho{white-space:normal}
.qt .hstable .ct-nd{min-width:300px}
.qt .hstable .ct-nd textarea{white-space:normal}

/* Chu bao loi trong mot hang dieu khien — khong dung style= noi dong (RATCHET
   trong test/he-thong-giao-dien.test.js chi cho so do GIAM). */
.qt .chu-loi{font-size:12px;color:var(--qt-red-chu)}

/* Le 0 cho the van ban trong mot khoi da co le rieng — thay `style="margin:0"`
   noi dong (RATCHET trong test/he-thong-giao-dien.test.js chi cho so do GIAM). */
.qt .le-0{margin:0
  /* --- Nguon so va Nhip bot: bang sau khau GAP thanh khoi --- */
  .qt .ns-tuoi,.qt .ns-ct,.qt .nb-dau,.qt .nb-nhip,.qt .nb-ho,
  .qt .nb-cuoi,.qt .nb-dong{margin-left:12px;margin-right:12px}
  .qt .ns-h{margin-left:12px;margin-right:12px}
  .qt .ns-thanh,.qt .ns-chu,.qt .nb-day{margin-left:12px;margin-right:12px}
  .qt .nb-day{gap:6px}
  .qt .nb-noi{width:10px}
  /* Bang sau khau GAP thanh khoi, KHONG cuon ngang (ban chot). */
  .qt .nb-bang,.qt .nb-bang tbody,.qt .nb-bang tr,.qt .nb-bang td{display:block;width:auto}
  .qt .nb-bang thead{display:none}
  .qt .nb-bang tr{border:1px solid var(--qt-line);border-radius:9px;padding:9px 11px;
    margin-bottom:9px;background:var(--qt-white)}
  .qt .nb-bang td{border:0;padding:3px 0;white-space:normal}
  .qt .nb-bang td::before{content:attr(data-nhan);display:block;font-size:12px;
    color:var(--qt-ink3);font-weight:650;margin-bottom:1px}
  .qt .hstable .nb-visao{min-width:0;max-width:none}
}
