/* ═══════════════════════════════════════════════════════════════════════
   BỘ ÁO CHUNG CHO BẢNG ĐIỀU KHIỂN — dashboard.pos.29son.com
   Anh Sơn chốt 28/08/2026: *"làm nó giao diện chuyên nghiệp như trang letan,
   font chữ và kích thước như vậy cho dễ dùng"*.

   Lấy đúng chuẩn của letan.pos.29son.com:
     · chữ hệ thống Segoe UI / Roboto 14px/1.5 — không tải phông ngoài
     · xanh dương công sở #12457c, nền #eef1f5, thẻ trắng, viền #c9d3de
     · góc vuông 4px, không đổ bóng, kẻ ô rõ
     · chữ trong bảng nhỏ 11–13px, số căn phải

   File này NẠP SAU css gốc của từng app nên chỉ đè phần hình thức,
   không đụng gì tới cách chạy. Sửa một chỗ này là cả hai trang đổi theo.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── 1. Bảng màu và cỡ chữ chuẩn letan ───────────────────────────────── */
:root{
  --l-nen:#eef1f5; --l-the:#ffffff; --l-nen2:#f3f6f9;
  --l-vien:#c9d3de; --l-vien-nhat:#dde4ec;
  --l-chu:#1a2733; --l-mo:#5a6b7d; --l-mo-nhat:#8494a4;
  --l-chinh:#12457c; --l-chinh-dam:#0d3560; --l-chinh-nhat:#e8eef6;
  --l-xanh:#146c43; --l-xanh-nhat:#eaf5ef;
  --l-do:#a4231b; --l-do-nhat:#fcf3f6;
  --l-vang:#8a6100; --l-vang-nhat:#fdf7e8;
  --l-r:4px;
  --l-font:'Segoe UI',Roboto,'Helvetica Neue',Arial,'Liberation Sans',sans-serif;
}

/* ── 2. Thanh đầu chung (do thanh-dau.js chèn vào đầu trang) ──────────── */
.dash-bar{position:sticky;top:0;z-index:120;display:flex;align-items:center;gap:14px;
  height:54px;padding:0 16px;background:var(--l-chinh);color:#fff;
  border-bottom:3px solid var(--l-chinh-dam);
  font:14px/1.5 var(--l-font);-webkit-font-smoothing:antialiased}
.dash-bar .dash-hieu{font-weight:700;font-size:15px;letter-spacing:.2px;white-space:nowrap;
  padding-right:14px;border-right:1px solid rgba(255,255,255,.22);line-height:1.15}
.dash-bar .dash-hieu small{display:block;font-weight:400;font-size:10px;opacity:.8;
  letter-spacing:1.4px;text-transform:uppercase;margin-top:1px}
.dash-bar nav{display:flex;gap:2px;align-items:center;overflow-x:auto;flex:1}
.dash-bar nav a{color:rgba(255,255,255,.86);text-decoration:none;white-space:nowrap;
  font-size:13px;font-weight:600;padding:7px 12px;border-radius:var(--l-r);line-height:1.2}
.dash-bar nav a:hover{background:rgba(255,255,255,.12);color:#fff}
.dash-bar nav a.dang-o{background:#fff;color:var(--l-chinh-dam)}
.dash-bar .dash-cuoi{margin-left:auto;font-size:11px;opacity:.85;white-space:nowrap}

/* ═══ 3. BỘ MÁY AI (bo-may-ai-yana) — đè bảng màu kem/vàng ═══ */
:root{
  --small:12px;--base:14px;--medium:15px;--large:17px;--title:20px;--hero:26px;
  --radius-small:4px;--radius:4px;--radius-large:4px;
  --shadow-small:none;--shadow-large:none;
  --cream:var(--l-nen);--cream-2:var(--l-nen2);--card:var(--l-the);
  --brown:var(--l-chu);--brown-2:var(--l-chinh-dam);
  --gold:var(--l-chinh);--gold-light:#cfe0f2;--gold-dark:var(--l-chinh-dam);
  --muted:var(--l-mo);--border:var(--l-vien);
  --green:var(--l-xanh);--green-soft:var(--l-xanh-nhat);
  --red:var(--l-do);--red-soft:var(--l-do-nhat);
  --blue:var(--l-chinh);--blue-soft:var(--l-chinh-nhat);
  --sidebar:0px;--motion:120ms;
}
html{font-family:var(--l-font);font-size:14px;background:var(--l-nen);color:var(--l-chu)}
body{font:14px/1.5 var(--l-font)}
h1,h2,h3{font-family:var(--l-font);font-weight:600;letter-spacing:0}
h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}

/* thanh ngăn dọc bên trái → hàng tab ngang như letan */
.app-shell{padding-left:0}
.sidebar{position:sticky;top:54px;inset:auto;width:auto;height:auto;z-index:29;
  display:flex;flex-direction:row;align-items:stretch;gap:0;padding:0 10px;
  background:var(--l-the);color:var(--l-chu);border-bottom:1px solid var(--l-vien);
  overflow-x:auto}
.sidebar .brand,.sidebar .signed-user{display:none}
.nav-list{display:flex;gap:0;padding:0;align-items:stretch}
.nav-item{min-height:38px;height:38px;border-radius:0;padding:0 12px;gap:6px;
  font-size:13px;color:var(--l-mo);border-bottom:2px solid transparent}
.nav-item span{font-size:13px;width:auto}
.nav-item b{font-weight:600}
.nav-item i{background:var(--l-do);color:#fff;font-size:10px;min-width:18px;height:18px}
.nav-item:hover{background:var(--l-nen2);color:var(--l-chinh)}
.nav-item.is-active{background:transparent;color:var(--l-chinh-dam);
  border-bottom-color:var(--l-chinh);font-weight:700}
.side-foot{margin:0 0 0 auto;display:flex;flex-direction:row;align-items:center;gap:8px}
.danger-button{min-height:28px;height:28px;padding:0 10px;font-size:12px;border-radius:var(--l-r);
  border:1px solid var(--l-vien);color:var(--l-do);background:var(--l-the)}
.danger-button:hover,.danger-button.is-stopped{background:var(--l-do);color:#fff;border-color:var(--l-do)}
.main-area{padding:14px 16px}
.topbar{min-height:auto;margin-bottom:12px;align-items:flex-end}
.eyebrow{font-size:10px;letter-spacing:1.4px;color:var(--l-mo);font-weight:700;margin-bottom:2px}

/* thẻ, ô nhập, nút — vuông vắn kiểu sổ */
.metric-card,.field-card,.sec-card,.songay-tong div,.songay-row,.may-row,
.approval-card,.workflow-card,.timeline-panel,.org-panel,.home-chat-panel,
.knowledge-status,.version-row,.brain-model-item{border-radius:var(--l-r);box-shadow:none}
.metric-card,.field-card,.sec-card{border:1px solid var(--l-vien);background:var(--l-the)}
input,select,textarea{border-radius:var(--l-r);border:1px solid var(--l-vien);
  background:var(--l-the);font-size:13px;padding:6px 8px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--l-chinh-nhat);border-color:var(--l-chinh)}
label{font-size:12px;color:var(--l-mo)}
.primary-button{background:var(--l-chinh);color:#fff;border:1px solid var(--l-chinh-dam);
  border-radius:var(--l-r);height:32px;padding:0 14px;font-size:13px;font-weight:600;box-shadow:none}
.primary-button:hover{background:var(--l-chinh-dam)}
.secondary-button{background:var(--l-the);color:var(--l-chu);border:1px solid var(--l-vien);
  border-radius:var(--l-r);height:32px;padding:0 12px;font-size:13px;font-weight:600;box-shadow:none}
.secondary-button:hover{border-color:var(--l-chinh);color:var(--l-chinh-dam);background:var(--l-nen2)}
.chip-button{height:26px;padding:0 10px;font-size:12px;border-radius:var(--l-r);
  border:1px solid var(--l-vien);background:var(--l-the)}
.chip-button.is-active{background:var(--l-chinh);border-color:var(--l-chinh-dam);color:#fff}
.sec-head{padding:8px 12px}
.sec-name{font-size:13px}
.sec-name small{font-size:11px}
.sec-tag span{border-radius:var(--l-r);font-size:10px}
.tag-gold{background:var(--l-chinh-nhat);color:var(--l-chinh-dam)}
.tag-red{background:var(--l-do-nhat);color:var(--l-do)}
.tag-grey{background:var(--l-nen2);color:var(--l-mo)}
.sec-body{padding:12px}
.field-help{font-size:11px;color:var(--l-mo)}

/* bảng số — kẻ ô rõ, chữ nhỏ, số căn phải */
.songay-row,.may-row{border-color:var(--l-vien-nhat)}
.songay-row.songay-head{font-size:10px;text-transform:uppercase;letter-spacing:.4px}
.songay-row span,.may-info b{font-size:12.5px}
.songay-row small,.may-info small,.may-nhip small,.may-so small{font-size:10.5px}
.songay-row .so{font-size:13px}
.songay-tong b{font-size:17px}
.may-tomtat{border-radius:var(--l-r);background:var(--l-nen2);border:1px solid var(--l-vien-nhat)}
.may-tomtat b{font-size:17px}

/* sơ đồ tổ chức: bớt tròn trịa cho hợp bảng biểu */
.agent-card{border-radius:var(--l-r);box-shadow:none;border:1px solid var(--l-vien)}
.agent-card.is-involved{border-color:var(--l-chinh)}

/* ═══ 4. BUỒNG LÁI (cockpit) — đè bảng màu giấy/vàng ═══ */
:root,:root[data-theme="light"],:root[data-theme="dark"]{
  --plane:var(--l-nen);--surface:var(--l-the);--surface-2:var(--l-nen2);
  --ink:var(--l-chu);--ink-2:var(--l-mo);--muted:var(--l-mo-nhat);
  --hair:var(--l-vien);
  --gold:var(--l-chinh);--gold-soft:var(--l-chinh);--gold-bg:var(--l-chinh-nhat);
  --good:var(--l-xanh);--good-ink:var(--l-xanh);--warn:var(--l-vang);
  --font:var(--l-font);--serif:var(--l-font);
}
.mark{font-family:var(--l-font)!important;font-size:15px!important;letter-spacing:.2px!important;
  font-weight:700!important;color:var(--l-chinh)!important}

@media(max-width:900px){
  /* điện thoại: hàng tab vẫn nằm ngang ngay dưới thanh đầu, không rơi xuống đáy */
  .app-shell{padding:0}
  .sidebar{position:sticky;top:54px;inset:auto;height:auto;display:flex;padding:0 8px}
  .nav-list{display:flex;grid-template-columns:none;gap:0}
  .nav-item{display:flex;min-width:auto;font-size:12px;padding:0 10px;min-height:36px;height:36px}
  .nav-item span{position:static;transform:none}
  .nav-item i{position:static;transform:none}
  .main-area{padding:10px}
  .dash-bar{padding:0 10px;gap:10px}
  .dash-bar .dash-cuoi{display:none}
}

/* ── 5. Vá nốt vệt vàng/nâu còn sót của Buồng Lái (đo bằng máy 28/08/2026) ── */
/* Trang Buồng Lái viết thẳng mã màu vàng vào từng chỗ chứ không qua biến,
   nên phải gọi đích danh. Danh sách này lấy từ bài soi máy, không đoán. */
.card{border-top-color:var(--l-chinh)!important}
button.on,.seg button.on,#seg button.on,#viewseg button.on{
  background:var(--l-chinh)!important;border-color:var(--l-chinh-dam)!important;color:#fff!important}
span.hhchip,span.hv,span.rk{
  border-color:var(--l-vien)!important;color:var(--l-chinh-dam)!important;background:var(--l-chinh-nhat)!important}
a[href*="workflow"]{border-color:var(--l-vien)!important}
/* nút nổi "Máy chạy nền — bật/tắt" ở góc trên nay trùng với thanh đầu chung */
body > div:first-of-type > a[href="/workflow.html"]{display:none}
/* chấm màu trạng thái giữ nguyên ý nghĩa, chỉ bớt chói */
i[style*="ed a100"],i[style*="eb6834"]{filter:saturate(.85)}

/* chữ và cỡ chữ của Buồng Lái theo đúng letan */
body{font:14px/1.5 var(--l-font)!important;background:var(--l-nen)!important;color:var(--l-chu)!important}
.mark{color:var(--l-chinh)!important}
h1,h2,h3{font-family:var(--l-font)!important}
h2{font-size:15px!important}
.card{border-radius:var(--l-r)!important;box-shadow:none!important}

/* nút nổi cũ "Máy chạy nền — bật/tắt": thanh đầu chung đã có mục này rồi */
body > div:has(> a[href="/workflow.html"]){display:none}
a[href="/workflow.html"][style*="background"]{display:none}

/* ── 6. Trang "Máy chạy nền" (workflow.html) vốn nền tối, đổi sang nền sáng
      cho khớp hai trang kia. Lớp lấy từ bài soi máy 28/08/2026. ── */
div.gh{background:var(--l-chinh)!important;color:#fff!important;border-radius:var(--l-r)!important}
div.gh *{color:#fff!important}
div.mg{background:var(--l-the)!important;color:var(--l-chu)!important;border:1px solid var(--l-vien)!important}
div.lo{background:var(--l-do-nhat)!important;color:var(--l-do)!important;border:1px solid var(--l-do)!important}
button.btn#quet,button.btn{background:var(--l-the)!important;color:var(--l-chu)!important;
  border:1px solid var(--l-vien)!important;border-radius:var(--l-r)!important}
button.btn:hover{border-color:var(--l-chinh)!important;color:var(--l-chinh-dam)!important;background:var(--l-nen2)!important}
span.chip.on{background:var(--l-chinh)!important;color:#fff!important;border-color:var(--l-chinh-dam)!important}
span.chip{border-radius:var(--l-r)!important}
/* công tắc bật/tắt: xanh = đang chạy, xám = đã tắt (thay vàng cho đỡ chói) */
div.sw{background:var(--l-mo-nhat)!important;border-radius:999px!important}
div.sw.on{background:var(--l-xanh)!important}
div.sw.lock{background:var(--l-mo)!important}

/* ── 7. Thanh đầu: tên người + nút đăng xuất (28/08/2026) ── */
.dash-bar .dash-nguoi{margin-left:auto;display:flex;align-items:center;gap:10px;white-space:nowrap}
.dash-bar .dash-ten{font-size:12px;opacity:.9}
.dash-bar .dash-thoat{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);
  border-radius:var(--l-r);height:26px;padding:0 10px;font-size:12px;font-weight:600;cursor:pointer;
  font-family:var(--l-font)}
.dash-bar .dash-thoat:hover{background:rgba(255,255,255,.14);border-color:#fff}
.dash-bar .dash-cuoi{display:none}

/* ── 8. Chỗ còn sót nền tối trong Buồng Lái (đo lại 28/08/2026) ── */
/* dải "SỐ THẬT · Nguồn ..." trước là chữ tối trên nền tối, không đọc được */
[class*="src"],#srcbar,#srcbar *{background:var(--l-xanh-nhat)!important;color:var(--l-chu)!important;
  border-color:var(--l-xanh)!important}
#srcbar a,[class*="src"] a{color:var(--l-chinh)!important;text-decoration:underline}
/* chip "Quay lại 47%" */
[class*="chip"]:not(.chip-button){background:var(--l-chinh-nhat)!important;color:var(--l-chinh-dam)!important;
  border:1px solid var(--l-vien)!important}
/* nút Sáng/Tối: trang nay chỉ dùng một tông sáng cho khớp letan */
button[id*="theme"],button[class*="theme"],#tg{display:none!important}

/* ── 9. Trang đăng nhập chung: khoác áo letan ── */
body.login-shell,.login-shell{background:var(--l-nen)!important;font-family:var(--l-font)!important}
.login-card{background:var(--l-the)!important;border:1px solid var(--l-vien)!important;
  border-radius:var(--l-r)!important;box-shadow:none!important;color:var(--l-chu)!important}
.login-card h1{font-family:var(--l-font)!important;font-size:19px!important;color:var(--l-chu)!important}
.login-card .eyebrow{color:var(--l-mo)!important;font-size:10px!important;letter-spacing:1.4px!important}
.login-card .intro{color:var(--l-mo)!important;font-size:12.5px!important}
.login-card .brand-mark{background:var(--l-chinh)!important;color:#fff!important;
  border-radius:var(--l-r)!important;font-family:var(--l-font)!important}
.login-card label{color:var(--l-mo)!important;font-size:12px!important}
.login-card input{background:var(--l-the)!important;border:1px solid var(--l-vien)!important;
  border-radius:var(--l-r)!important;color:var(--l-chu)!important;font-size:13px!important}
.login-card button[type=submit]{background:var(--l-chinh)!important;color:#fff!important;
  border:1px solid var(--l-chinh-dam)!important;border-radius:var(--l-r)!important;
  font-family:var(--l-font)!important;font-weight:600!important}
.login-card button[type=submit]:hover{background:var(--l-chinh-dam)!important}
.login-card .safety{color:var(--l-mo)!important;font-size:11px!important}

/* ── 10. Sổ chi công ty (28/08/2026) ── */
.sochi-nhap .sochi-hang{display:grid;grid-template-columns:130px 200px 110px 90px 150px 1fr auto;gap:var(--k3);align-items:end}
.sochi-nhap .sochi-hang label{display:grid;gap:3px}
.sochi-nhap .sochi-hang label.rong{grid-column:auto}
.sochi-tong{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--k3);margin:var(--k3) 0}
.sochi-tong div{background:var(--l-the);border:1px solid var(--l-vien);border-radius:var(--l-r);padding:var(--k3);display:grid;gap:2px}
.sochi-tong b{font-size:17px}
.sochi-tong small{font-size:var(--small);color:var(--l-mo)}
.sochi-nhom{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-bottom:var(--k3)}
.sochi-nhom-o{background:var(--l-the);border:1px solid var(--l-vien-nhat);border-radius:var(--l-r);padding:8px 10px;display:grid;gap:1px}
.sochi-nhom-o b{font-size:15px;font-variant-numeric:tabular-nums}
.sochi-nhom-o span{font-size:11.5px}
.sochi-nhom-o small{font-size:10.5px;color:var(--l-mo)}
@media(max-width:900px){.sochi-nhap .sochi-hang{grid-template-columns:1fr 1fr}.sochi-nhap .sochi-hang label.rong{grid-column:1/-1}.sochi-tong{grid-template-columns:1fr}}
