/* GIAO DIỆN CỔNG — lấy nguyên từ bản xem trước 26 (đã duyệt theo G1 mục I), phông tự lưu trên máy chủ (OFL). */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/montserrat-vietnamese-400-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/montserrat-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/montserrat-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/montserrat-vietnamese-500-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/montserrat-latin-ext-500-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/montserrat-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/montserrat-vietnamese-600-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/montserrat-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/montserrat-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/tainguyen/phong/montserrat-vietnamese-700-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/tainguyen/phong/montserrat-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/tainguyen/phong/montserrat-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/be-vietnam-pro-vietnamese-400-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/be-vietnam-pro-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/be-vietnam-pro-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/be-vietnam-pro-vietnamese-500-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/be-vietnam-pro-latin-ext-500-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/be-vietnam-pro-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/be-vietnam-pro-vietnamese-600-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/be-vietnam-pro-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/be-vietnam-pro-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/tainguyen/phong/be-vietnam-pro-vietnamese-700-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/tainguyen/phong/be-vietnam-pro-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/tainguyen/phong/be-vietnam-pro-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/playfair-display-vietnamese-600-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/playfair-display-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/playfair-display-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/jetbrains-mono-vietnamese-400-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/jetbrains-mono-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/tainguyen/phong/jetbrains-mono-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/jetbrains-mono-vietnamese-500-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/jetbrains-mono-latin-ext-500-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/tainguyen/phong/jetbrains-mono-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/jetbrains-mono-vietnamese-600-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/jetbrains-mono-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/tainguyen/phong/jetbrains-mono-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* =====================================================================
   CỔNG ERP — BẢN XEM TRƯỚC 21 (24/10/2026; khung từ bản 7). SỐ MINH HOẠ, KHÔNG NỐI APP.
   14 chủ đề đầu CHÉP NGUYÊN từ ba toà (giaodien.py, 19 biến), chỉ đổi
   bộ chọn :root[data-cd] -> [data-cd] để thẻ xem trước dùng được.
   7 chủ đề sau là riêng của ERP.
   Biến MỞ RỘNG (tuỳ chọn, chủ đề nào không khai thì lấy mặc định = trông
   y như ba toà): --cot-* (cột trái), --nen-trang, --the-nen, --dinh-nen,
   --dinh-vien, --bo, --phong-td, --td-chu, --bd1..--bd6 (màu biểu đồ).
   ===================================================================== */
/* Giá trị MẶC ĐỊNH của biến mở rộng — khai trên MỌI phần tử có data-cd và
   đứng TRƯỚC các khối chủ đề (cùng độ ưu tiên, khối sau thắng). Nếu không,
   thẻ xem trước của một chủ đề sẽ thừa hưởng biến mở rộng của chủ đề đang
   dùng trên <html> (lỗi bắt được khi chụp ảnh 24/10/2026). */
:root,[data-cd]{--cot-nen:var(--nen2);--cot-chu:var(--chu2);--cot-nhom:var(--chu3);--cot-tang:var(--chu);
--cot-dang-chu:color-mix(in srgb,var(--nhan) 60%,var(--chu));
/* Dòng menu đang chọn (bản 19): nền màu nhấn 24% + viền 2px màu nhấn (quy tắc C, trạng thái "đang chọn")
   + chữ sáng nhất của cột, đậm. Khác hẳn trạng thái di chuột (chỉ nền nhạt, không viền). */
--cot-dang-nen:color-mix(in srgb,var(--cot-dang-chu) 24%,transparent);--cot-dang-van:var(--cot-tang);--cot-dang-vien:var(--cot-dang-chu);--cot-hover:var(--nen3);--cot-vien:var(--vien);
--nen-trang:var(--nen);--the-nen:var(--nen2);--dinh-nen:var(--nen2);--dinh-vien:1px solid var(--vien);
--bo:12px;--phong-td:inherit;--td-chu:var(--chu);
--bd1:var(--nhan);--bd2:var(--vang);--bd3:var(--tot);--bd4:var(--loi);--bd5:var(--nhan2);--bd6:var(--chu3);
/* HỆ VIỀN — 3 quy tắc theo CHỨC NĂNG (24/10/2026). Viền KHÔNG BAO GIỜ lấy
   màu biểu đồ (--bd*) hay màu trang trí của chủ đề.
   A. Viền nội dung  : thẻ số, khối biểu đồ, bảng, khối AI, băng ghi chú, thẻ app.
   B. Vạch ý nghĩa   : CHỈ "Cần chú ý" và băng "SỐ MINH HOẠ" — vạch vàng 4px mép trái;
                       viền ba cạnh còn lại vẫn là viền nội dung.
   C. Viền tương tác : nút, hộp chọn, ô tìm — có trạng thái thường / di chuột /
                       focus / đang chọn / khoá / lỗi. Phải đủ 3:1 với nền. */
--vien-noidung:var(--vien);--vach-y:var(--vang);
/* Hộp nhóm của cột trái (bản 17): viền NỘI DUNG 1px (quy tắc A), lấy theo màu chữ cột trái
   nên tự sáng trên cột tối, tự tối trên cột sáng. Không phải viền tương tác (2px). */
--cot-hop-vien:color-mix(in srgb,var(--cot-chu) 30%,transparent);--cot-hop-nen:color-mix(in srgb,var(--cot-chu) 4%,transparent);
/* Viền tương tác (anh Chung 24/10/2026): DÀY 2px như bộ 2.4.1 và ĐẬM HƠN viền ô nhập gốc —
     pha 35% màu chữ chính vào: nền tối thì chữ sáng -> viền SÁNG lên; nền sáng thì chữ tối -> viền TỐI đi. */
--vien-tt:color-mix(in srgb,var(--vien-nhap) 65%,var(--chu));--day-tt:2px;--vien-tt-hover:var(--nhan);--vien-tt-chon:var(--nhan);--vien-tt-loi:var(--loi);
--vien-tt-cot:color-mix(in srgb,var(--cot-chu) 65%,var(--cot-tang));--focus:var(--nhan);--focus-cot:var(--cot-dang-chu)}
/* ---------- 14 CHỦ ĐỀ TỪ BA TOÀ (sinh tự động, đừng sửa tay) ---------- */
:root[data-cd="thuonghieu"],[data-cd="thuonghieu"]{--nen:#F2F5F9;--nen2:#FFF;--nen3:#E8F4FF;--nen4:#D7E8FA;--vien:#D3E0EE;
--vien2:#AFC3D6;--vien-nhap:#688EB2;--chu:#071C31;--chu2:#3B4A5A;
--chu3:#5B6875;--nhan:#1E6FBF;--nhan2:#175C9F;
--nhan-mo:rgba(46,134,222,.10);--vang:#A75D06;
--vang-mo:rgba(247,147,30,.11);--tot:#367E39;
--tot-mo:rgba(76,175,80,.10);--loi:#B3261E;--loi-mo:rgba(179,38,30,.10);
color-scheme:light}
:root,:root[data-cd="thuonghieunavy"],[data-cd="thuonghieunavy"]{--nen:#071C31;--nen2:#0C2942;--nen3:#123453;--nen4:#1A4467;
--vien:#22506F;--vien2:#356A8D;--vien-nhap:#4283AE;--chu:#F2F5F9;
--chu2:#B9C7D6;--chu3:#93A3B2;--nhan:#4FA3EA;--nhan2:#8CC6F5;
--nhan-mo:rgba(46,134,222,.14);--vang:#FFBF4B;
--vang-mo:rgba(247,147,30,.18);--tot:#6FC873;
--tot-mo:rgba(76,175,80,.20);--loi:#F08379;
--loi-mo:rgba(240,131,121,.16);color-scheme:dark}
:root[data-cd="navy"],[data-cd="navy"]{--nen:#0A1628;--nen2:#112340;--nen3:#16294A;--nen4:#1D3860;
--vien:#22406C;--vien2:#31568C;--vien-nhap:#4375BD;--chu:#F3F7FC;
--chu2:#9FB3CC;--chu3:#7E92AE;--nhan:#35C4E8;--nhan2:#6FE0F7;
--nhan-mo:rgba(53,196,232,.13);--vang:#D8AC55;
--vang-mo:rgba(216,172,85,.14);--tot:#48C593;
--tot-mo:rgba(72,197,147,.14);--loi:#E8756A;
--loi-mo:rgba(232,117,106,.12);color-scheme:dark}
:root[data-cd="daiduong"],[data-cd="daiduong"]{--nen:#001A5C;--nen2:#002B8C;--nen3:#0F3AA3;--nen4:#1B4AB8;
--vien:#2A5AC4;--vien2:#3E6FD8;--vien-nhap:#698FE1;--chu:#F0FFFF;
--chu2:#A8C2E8;--chu3:#9DB3D9;--nhan:#77B5FF;--nhan2:#8FC4FF;
--nhan-mo:rgba(95,168,255,.14);--vang:#E8C15A;
--vang-mo:rgba(232,193,90,.15);--tot:#4FD6A0;
--tot-mo:rgba(79,214,160,.15);--loi:#FF8A7A;
--loi-mo:rgba(255,138,122,.15);color-scheme:dark}
:root[data-cd="oled"],[data-cd="oled"]{--nen:#000;--nen2:#0B0B0E;--nen3:#131318;--nen4:#1C1C23;--vien:#24242E;
--vien2:#38384A;--vien-nhap:#616180;--chu:#F7F7FA;--chu2:#A0A0B2;
--chu3:#7C7C94;--nhan:#8B7CF6;--nhan2:#B4A8FF;
--nhan-mo:rgba(139,124,246,.15);--vang:#E0B44A;
--vang-mo:rgba(224,180,74,.14);--tot:#3FD69B;
--tot-mo:rgba(63,214,155,.14);--loi:#F4726A;
--loi-mo:rgba(244,114,106,.14);color-scheme:dark}
:root[data-cd="vangkim"],[data-cd="vangkim"]{--nen:#0F0F0F;--nen2:#1C1C1B;--nen3:#2A2929;--nen4:#3A3938;
--vien:#444342;--vien2:#5E5C5A;--vien-nhap:#757370;--chu:#FBF8F2;
--chu2:#B5B0A6;--chu3:#969189;--nhan:#FFB700;--nhan2:#FFD000;
--nhan-mo:rgba(255,183,0,.14);--vang:#FFD000;
--vang-mo:rgba(255,208,0,.13);--tot:#5BD48F;
--tot-mo:rgba(91,212,143,.13);--loi:#FF7B5E;
--loi-mo:rgba(255,123,94,.13);color-scheme:dark}
:root[data-cd="lucbao"],[data-cd="lucbao"]{--nen:#071A15;--nen2:#0D2A22;--nen3:#123A2E;--nen4:#17493A;
--vien:#1D5745;--vien2:#2A7B61;--vien-nhap:#308D6F;--chu:#F0F8F4;
--chu2:#9DC4B4;--chu3:#78A492;--nhan:#2FD69B;--nhan2:#6FEFC2;
--nhan-mo:rgba(47,214,155,.13);--vang:#D9B65C;
--vang-mo:rgba(217,182,92,.14);--tot:#4FDCA6;
--tot-mo:rgba(79,220,166,.14);--loi:#EC7F6E;
--loi-mo:rgba(236,127,110,.14);color-scheme:dark}
:root[data-cd="hoaly"],[data-cd="hoaly"]{--nen:#2E2742;--nen2:#3B3356;--nen3:#4B3F6E;--nen4:#5C4F84;
--vien:#6C5F8D;--vien2:#8677A8;--vien-nhap:#9A8DB6;--chu:#F6F3FA;
--chu2:#C4B8DA;--chu3:#BBB0CF;--nhan:#C8ABCD;--nhan2:#D7B8DC;
--nhan-mo:rgba(186,150,193,.13);--vang:#E0C48A;
--vang-mo:rgba(224,196,138,.15);--tot:#7FD1A8;
--tot-mo:rgba(127,209,168,.15);--loi:#F0918A;
--loi-mo:rgba(240,145,138,.06);color-scheme:dark}
:root[data-cd="bac"],[data-cd="bac"]{--nen:#F5F7FA;--nen2:#FFF;--nen3:#EDF1F6;--nen4:#E2E8F0;--vien:#D5DDE7;
--vien2:#B3C0D0;--vien-nhap:#738BA8;--chu:#111A26;--chu2:#4B5C70;
--chu3:#5F6F83;--nhan:#0F6FB5;--nhan2:#0B5389;
--nhan-mo:rgba(15,111,181,.09);--vang:#8A6520;
--vang-mo:rgba(138,101,32,.10);--tot:#0C7350;
--tot-mo:rgba(12,115,80,.10);--loi:#A83428;--loi-mo:rgba(168,52,40,.10);
color-scheme:light}
:root[data-cd="xamkhoi"],[data-cd="xamkhoi"]{--nen:#F1F1F1;--nen2:#FFF;--nen3:#E7E7E6;--nen4:#D8D8D6;--vien:#C9C9C6;
--vien2:#AAAAA6;--vien-nhap:#83837D;--chu:#171719;--chu2:#4C4B4B;
--chu3:#666664;--nhan:#2E2E30;--nhan2:#171719;
--nhan-mo:rgba(46,46,48,.08);--vang:#876712;
--vang-mo:rgba(138,106,21,.10);--tot:#2F6B4C;
--tot-mo:rgba(47,107,76,.10);--loi:#9E3A2C;--loi-mo:rgba(158,58,44,.10);
color-scheme:light}
:root[data-cd="lacay"],[data-cd="lacay"]{--nen:#FFFAF5;--nen2:#FFF;--nen3:#F2F6EC;--nen4:#E3EDD8;--vien:#C7D9B5;
--vien2:#94AB71;--vien-nhap:#7C9457;--chu:#001910;--chu2:#3D5240;
--chu3:#61755B;--nhan:#385723;--nhan2:#243A14;
--nhan-mo:rgba(56,87,35,.09);--vang:#8A6A15;
--vang-mo:rgba(249,237,178,.55);--tot:#2F7350;
--tot-mo:rgba(47,115,80,.10);--loi:#A8442E;--loi-mo:rgba(168,68,46,.10);
color-scheme:light}
:root[data-cd="binhminh"],[data-cd="binhminh"]{--nen:#FBF6EF;--nen2:#FFFDFA;--nen3:#F4EADC;--nen4:#EADCC7;
--vien:#E0D0B8;--vien2:#C9B392;--vien-nhap:#A0804F;--chu:#2B2118;
--chu2:#6B5946;--chu3:#786651;--nhan:#9C5915;--nhan2:#8A5016;
--nhan-mo:rgba(176,106,34,.10);--vang:#8A6520;
--vang-mo:rgba(138,101,32,.10);--tot:#2F7350;
--tot-mo:rgba(47,115,80,.11);--loi:#A8442E;--loi-mo:rgba(168,68,46,.11);
color-scheme:light}
:root[data-cd="luxurytoi"],[data-cd="luxurytoi"]{--nen:#081A2C;--nen2:#0B2238;--nen3:#12304D;--nen4:#1B3A55;
--vien:rgba(214,178,110,.22);--vien2:#7A5A34;--vien-nhap:#9FB0C3;--chu:#F3EEE3;
--chu2:#9FB0C3;--chu3:#8FA6BD;--nhan:#F2D69B;--nhan2:#FFF1CF;
--nhan-mo:rgba(217,179,108,.14);--vang:#F2B65E;
--vang-mo:rgba(242,182,94,.16);--tot:#6FD39A;
--tot-mo:rgba(111,211,154,.14);--loi:#FF8A8A;
--loi-mo:rgba(255,138,138,.14);color-scheme:dark}
:root[data-cd="luxurysang"],[data-cd="luxurysang"]{--nen:#FBF8F1;--nen2:#FFFFFF;--nen3:#F3ECDD;--nen4:#EFE3CC;
--vien:rgba(148,110,44,.26);--vien2:#C7AC80;--vien-nhap:#535B6B;--chu:#1B2433;
--chu2:#535B6B;--chu3:#535B6B;--nhan:#7A5418;--nhan2:#5E400F;
--nhan-mo:rgba(148,110,44,.10);--vang:#A8530A;
--vang-mo:rgba(168,83,10,.12);--tot:#17703F;
--tot-mo:rgba(23,112,63,.10);--loi:#B3261E;--loi-mo:rgba(179,38,30,.10);
color-scheme:light}
/* ---------- 7 CHỦ ĐỀ RIÊNG CỦA ERP ---------- */
:root[data-cd="tinhgon"],[data-cd="tinhgon"]{--nen:#F5F6F8;--nen2:#FFFFFF;--nen3:#F2F4F7;--nen4:#E4E7EC;--vien:#E4E7EC;
--vien2:#D0D5DD;--vien-nhap:#7B8494;--chu:#101828;--chu2:#475467;--chu3:#5D6676;
--nhan:#1D4ED8;--nhan2:#1E3A8A;--nhan-mo:rgba(29,78,216,.09);--vang:#B54708;
--vang-mo:rgba(181,71,8,.10);--tot:#067647;--tot-mo:rgba(6,118,71,.10);--loi:#B42318;
--loi-mo:rgba(180,35,24,.09);color-scheme:light;--bo:14px;
--bd1:#1E3A8A;--bd2:#5B8DEF;--bd3:#067647;--bd4:#B42318;--bd5:#B54708;--bd6:#98A2B3}
:root[data-cd="sangtrong"],[data-cd="sangtrong"]{--nen:#F4F3EF;--nen2:#FFFFFF;--nen3:#EFEDE6;--nen4:#E6E3DA;--vien:#E6E3DA;
--vien2:#D9D5CA;--vien-nhap:#8A8473;--chu:#141A26;--chu2:#4F5664;--chu3:#5F6675;
--nhan:#7A5A1C;--nhan2:#0E1525;--nhan-mo:rgba(201,162,77,.16);--vang:#A15C07;
--vang-mo:rgba(161,92,7,.10);--tot:#2F6B3F;--tot-mo:rgba(47,107,63,.10);--loi:#A8322A;
--loi-mo:rgba(168,50,42,.09);color-scheme:light;--bo:16px;
--cot-nen:#0E1525;--cot-chu:#B4BBC7;--cot-nhom:#8D96A6;--cot-tang:#E7E9EE;
--cot-dang-chu:#E9C46A;--cot-dang-van:#F2D488;--cot-hover:#161E30;--cot-vien:#222B3D;
--phong-td:"Playfair Display",Georgia,serif;
--bd1:#0E1525;--bd2:#C9A24D;--bd3:#2F6B3F;--bd4:#A8322A;--bd5:#7A8BA8;--bd6:#8D96A6}

:root[data-cd="bieutuong"],[data-cd="bieutuong"]{--nen:#F4F6FB;--nen2:#FFFFFF;--nen3:#EEF2F8;--nen4:#E5E9F2;--vien:#E5E9F2;
--vien2:#D5DBE7;--vien-nhap:#7D8AA3;--chu:#111827;--chu2:#475569;--chu3:#5A6577;
--nhan:#067647;--nhan2:#054F31;--nhan-mo:rgba(6,118,71,.09);--vang:#B54708;
--vang-mo:rgba(181,71,8,.10);--tot:#15803D;--tot-mo:rgba(21,128,61,.10);--loi:#B42318;
--loi-mo:rgba(180,35,24,.09);color-scheme:light;--bo:18px;
--bd1:#067647;--bd2:#2563EB;--bd3:#D97706;--bd4:#B42318;--bd5:#32D583;--bd6:#94A3B8}

/* Mạ Non và Lúa Chín — bản 26 theo "PHIẾU THIẾT KẾ UI — HOÀN THIỆN THEME MẠ NON & LÚA CHÍN" (24/10/2026).
   Ánh xạ token của phiếu → biến của cổng:
     --color-page → --nen · --color-header → --dinh-nen · --color-sidebar → --cot-nen · --color-surface → --nen2 (thẻ)
     --color-border → --vien · --color-primary → --nhan (chữ/liên kết) · --color-primary-strong → --nhan2
     --color-text → --chu · --color-text-muted → --chu2 · accent / secondary-accent → mảng nhấn (--nhan-mo, --vang-mo) và biểu đồ.
   Chỉnh có kiểm soát (đã đo, ghi trong báo cáo):
     - Lúa Chín: primary #A87812 chỉ đạt 3,85:1 làm CHỮ trên bề mặt → giữ #A87812 làm MẢNG (biểu đồ, nền nhấn),
       chữ / liên kết màu chính dùng #85600F cùng tông (5,61:1).
     - Biểu đồ: accent #80B94A, #C69B27, #D9B45A chưa đạt 3:1 so với bề mặt → dùng tông đậm cùng màu (#679C34, #A8811C, #B3862F)
       để mọi chuỗi dữ liệu ≥ 3:1. Màu tươi gốc vẫn dùng cho nền nhấn.
     - Trạng thái tốt / cảnh báo / lỗi dùng CHUNG một bộ cho cả hai chủ đề (quy chuẩn 6).
     - Chữ phụ cột trái (tiêu đề nhóm, gợi ý ô tìm): Mạ Non #4E5C43, Lúa Chín #5E4D2B — màu chữ phụ chung chỉ đạt 4,47:1 trên nền ô tìm. */
:root[data-cd="manon"],[data-cd="manon"]{--nen:#F5F8EF;--nen2:#FEFFF9;--nen3:#EDF2E2;--nen4:#E0E8CD;--vien:#D1DDBD;
--vien2:#B4C59A;--vien-nhap:#788A62;--chu:#293521;--chu2:#58664A;--chu3:#5A6850;
--nhan:#47752E;--nhan2:#29451F;--cot-nhom:#4E5C43;--nhan-mo:rgba(128,185,74,.16);--vang:#8C5A0A;
--vang-mo:rgba(198,155,39,.16);--tot:#2F6B3A;--tot-mo:rgba(47,107,58,.11);--loi:#A3342A;
--loi-mo:rgba(163,52,42,.10);color-scheme:light;
--dinh-nen:#FCFDF8;--cot-nen:#E6EDD5;--cot-hover:#DBE5C6;--cot-vien:#C9D6B1;
--bd1:#47752E;--bd2:#A8811C;--bd3:#3F8078;--bd4:#679C34;--bd5:#8B5A2B;--bd6:#7E8C6A}
:root[data-cd="luachin"],[data-cd="luachin"]{--nen:#FAF5E8;--nen2:#FFFDF7;--nen3:#F5EBD0;--nen4:#EBDDB4;--vien:#E5D1A0;
--vien2:#CDB27A;--vien-nhap:#8F7748;--chu:#332A1A;--chu2:#705D39;--chu3:#6B5935;
--nhan:#85600F;--nhan2:#40321A;--cot-nhom:#5E4D2B;--nhan-mo:rgba(217,180,90,.24);--vang:#8C5A0A;
--vang-mo:rgba(217,180,90,.22);--tot:#2F6B3A;--tot-mo:rgba(47,107,58,.11);--loi:#A3342A;
--loi-mo:rgba(163,52,42,.10);color-scheme:light;
--dinh-nen:#FFFCF4;--cot-nen:#F0E1B8;--cot-hover:#E9D59E;--cot-vien:#DDC48A;
--bd1:#A87812;--bd2:#70843A;--bd3:#8B5A2B;--bd4:#3F8078;--bd5:#B3862F;--bd6:#7E8C6A}

/* 4 chủ đề bổ sung — bản 27 (25/10/2026), theo tệp anh Chung gửi "ERP-Binh-Minh-4-giao-dien-demo.html".
   Chỉ lấy MÀU và độ bo góc (13px) của tệp mẫu; bố cục, menu hộp nhóm, dòng đang chọn, hệ viền giữ đúng chuẩn cổng đã duyệt (G1 mục I).
   Ánh xạ token tệp mẫu → biến cổng:
     --bg → --nen · --side → --cot-nen + --dinh-nen · --card → --nen2 (thẻ) · --line → --vien
     --txt → --chu · --muted → --chu2 / --chu3 · --brand → --nhan · --accent → biểu đồ thứ hai · --ok → --tot
   Tệp mẫu không có màu cảnh báo / lỗi riêng → em thêm cùng tông (vàng cảnh báo, đỏ lỗi), đã đo tương phản (báo cáo bản 27).
   Tên hiển thị giữ đúng như tệp mẫu (không tự dịch). Mã nội bộ: midnight, graphite, nordic, warmslate. */
:root[data-cd="midnight"],[data-cd="midnight"]{--nen:#0B1220;--nen2:#162338;--nen3:#1C2B42;--nen4:#243550;--vien:#304158;
--vien2:#46597A;--vien-nhap:#7F93AE;--chu:#F3F7FC;--chu2:#A9B8CC;--chu3:#9AAAC0;
--nhan:#38BDF8;--nhan2:#7DD3FC;--nhan-mo:rgba(56,189,248,.14);--vang:#D6B56D;
--vang-mo:rgba(214,181,109,.15);--tot:#34D399;--tot-mo:rgba(52,211,153,.14);--loi:#F87171;
--loi-mo:rgba(248,113,113,.12);color-scheme:dark;--bo:13px;
--dinh-nen:#101B2D;--cot-nen:#101B2D;--cot-hover:#1A2840;--cot-vien:#22324A;
--bd1:#38BDF8;--bd2:#D6B56D;--bd3:#34D399;--bd4:#F87171;--bd5:#A78BFA;--bd6:#94A3B8}
:root[data-cd="graphite"],[data-cd="graphite"]{--nen:#171A21;--nen2:#242B35;--nen3:#2B323D;--nen4:#343C48;--vien:#414B59;
--vien2:#566273;--vien-nhap:#8B96A5;--chu:#F4F6F8;--chu2:#B2BBC7;--chu3:#A6B0BD;
--nhan:#5EE0B5;--nhan2:#9BEFD2;--nhan-mo:rgba(94,224,181,.13);--vang:#E8B04B;
--vang-mo:rgba(232,176,75,.14);--tot:#5EE0B5;--tot-mo:rgba(94,224,181,.13);--loi:#FF8A80;
--loi-mo:rgba(255,138,128,.12);color-scheme:dark;--bo:13px;
--dinh-nen:#1D222B;--cot-nen:#1D222B;--cot-hover:#2A313C;--cot-vien:#343C48;
--bd1:#5EE0B5;--bd2:#8DB8FF;--bd3:#E8B04B;--bd4:#FF8A80;--bd5:#C4A7FF;--bd6:#9AA4B2}
:root[data-cd="nordic"],[data-cd="nordic"]{--nen:#F4F7FB;--nen2:#FFFFFF;--nen3:#EEF2F8;--nen4:#E3E9F2;--vien:#DCE4EE;
--vien2:#C3CFDD;--vien-nhap:#7A889C;--chu:#17243A;--chu2:#5D6B80;--chu3:#5A687C;
--nhan:#2457A7;--nhan2:#183E7A;--nhan-mo:rgba(36,87,167,.09);--vang:#B45309;
--vang-mo:rgba(180,83,9,.10);--tot:#15803D;--tot-mo:rgba(21,128,61,.10);--loi:#B42318;
--loi-mo:rgba(180,35,24,.09);color-scheme:light;--bo:13px;
--bd1:#2457A7;--bd2:#0E7490;--bd3:#15803D;--bd4:#B42318;--bd5:#B45309;--bd6:#8592A6}
:root[data-cd="warmslate"],[data-cd="warmslate"]{--nen:#F6F5F1;--nen2:#FFFFFF;--nen3:#EFEEE8;--nen4:#E6E4DC;--vien:#E1E0D9;
--vien2:#CDCBC2;--vien-nhap:#7E7A70;--chu:#242D38;--chu2:#626B75;--chu3:#5F6872;
--nhan:#276C68;--nhan2:#1A4A47;--nhan-mo:rgba(39,108,104,.10);--vang:#A15C07;
--vang-mo:rgba(161,92,7,.10);--tot:#237A50;--tot-mo:rgba(35,122,80,.10);--loi:#A8322A;
--loi-mo:rgba(168,50,42,.09);color-scheme:light;--bo:13px;
--bd1:#276C68;--bd2:#536D8A;--bd3:#237A50;--bd4:#A8322A;--bd5:#A15C07;--bd6:#8C8A82}

/* QuanE20 — anh Chung đặt tên 24/10/2026. Bố cục và màu tham khảo một ảnh
   mẫu bảng điều hành (cột trái navy, dòng đang chọn vàng). Màu đo từ ảnh
   JPG nên chỉ gần đúng — đây là chủ đề mới, không phải màu thương hiệu.
   Vàng #FEC61B chỉ dùng làm MẢNG (dòng đang chọn, cột biểu đồ, vạch dưới
   thanh trên) — làm chữ trên nền trắng chỉ ~1,6:1. */
:root[data-cd="quane20"],[data-cd="quane20"]{--nen:#F3F5FA;--nen2:#FFFFFF;--nen3:#EEF2F8;--nen4:#E1E7F1;--vien:#E3E8F0;
--vien2:#C9D2E3;--vien-nhap:#7383A3;--chu:#14213D;--chu2:#45516B;--chu3:#5B6680;
--nhan:#2E4382;--nhan2:#1B2B5E;--nhan-mo:rgba(46,67,130,.09);--vang:#B45309;
--vang-mo:rgba(253,193,19,.20);--tot:#1F7A3A;--tot-mo:rgba(38,128,64,.10);--loi:#C62F36;
--loi-mo:rgba(225,71,71,.10);color-scheme:light;--bo:14px;--td-chu:#233A7A;
--cot-nen:linear-gradient(180deg,#1B3270,#112557 45%,#0D1E48);--cot-chu:#DCE3F3;--cot-nhom:#9FB0D6;
--cot-tang:#FFFFFF;--cot-dang-nen:#FEC61B;--cot-dang-chu:#112557;--cot-dang-van:#112557;--cot-dang-vien:#FEC61B;--cot-hover:rgba(255,255,255,.09);
--cot-vien:rgba(255,255,255,.10);--dinh-vien:3px solid #FEC61B;--focus-cot:#FEC61B;
--bd1:#243E79;--bd2:#28A6E1;--bd3:#FDC113;--bd4:#F28C28;--bd5:#E14747;--bd6:#8F6FDA}

/* Phông riêng: hai mẫu Luxury của ba toà (thân Be Vietnam Pro, h1 Playfair). */
[data-cd^="luxury"] h1{font-family:"Playfair Display","Be Vietnam Pro",system-ui,sans-serif;font-weight:600}

/* ---------- khung ---------- */
*,*::before,*::after{box-sizing:border-box}
html{--dinh-cao:58px}
body{margin:0;background:var(--nen-trang,var(--nen));background-attachment:fixed;color:var(--chu);
font:400 15px/1.6 Montserrat,"Be Vietnam Pro","Segoe UI",system-ui,Arial,sans-serif;
-webkit-font-smoothing:antialiased}
[data-cd^="luxury"] body{font-family:"Be Vietnam Pro","Segoe UI",system-ui,sans-serif}
.mono,td.so{font-family:"JetBrains Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
a{color:var(--nhan);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{margin:0;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:25px;font-weight:700;line-height:1.2;color:var(--td-chu,var(--chu));font-family:var(--phong-td,inherit)}
h2{font-size:15.5px;font-weight:600}
p{margin:0}
button,select,input{font-family:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

.dinh{position:sticky;top:0;z-index:40;background:var(--dinh-nen,var(--nen2));
border-bottom:var(--dinh-vien,1px solid var(--vien));display:flex;align-items:center;
gap:10px;padding:9px 16px;flex-wrap:wrap}
.hieu{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;color:var(--chu);margin-right:6px}
/* Logo tròn: cắt theo mép ngoài vòng cam, nền ngoài vòng trong suốt (24/10/2026) */
.hieu-logo{width:42px;height:42px;border-radius:50%;display:block;flex:none}
/* LUẬT LOGO (anh Chung 24/10/2026): mọi chỗ có logo CHỈ dùng logo tròn cắt theo vòng cam.
   Bản nhỏ dùng chung một ảnh qua lớp .logo-nho (khai MỘT lần, không chép ảnh nhiều chỗ). */
.logo-nho{display:inline-block;width:20px;height:20px;border-radius:50%;flex:none;vertical-align:middle;
background:url(/tainguyen/bieutuong.png) center/cover no-repeat}
.hieu small{display:block;font-weight:400;font-size:11px;color:var(--chu3);line-height:1.3}
/* Tên chính thức anh Chung chốt 24/10/2026: "CÔNG NGHỆ BÌNH MINH - NGƯỜI BẠN ĐỒNG HÀNH".
   Chỉ là TÊN HIỂN THỊ — mã nội bộ, thư mục, tên miền erp.* giữ nguyên. */
.ten-cong{letter-spacing:.02em}.ten-cong small{font-weight:600;letter-spacing:.06em}
.dinh-giua{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dinh-phai{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.o-chon{background:var(--nen3);color:var(--chu);border:var(--day-tt) solid var(--vien-tt);
border-radius:9px;padding:6px 9px;font-size:13px;cursor:pointer}
.o-chon:hover{border-color:var(--vien-tt-hover)}
/* Chip kỳ / phạm vi: CHỈ HIỂN THỊ (v2), không bấm được — nên KHÔNG dùng viền tương tác,
   dùng viền nội dung nét đứt để không trông như nút. */
.chip-loc{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--chu2);
border:1px dashed var(--vien-noidung);border-radius:9px;padding:6px 10px;font-size:13px;white-space:nowrap}
.nut{border:var(--day-tt) solid var(--vien-tt);background:var(--nen3);color:var(--chu);border-radius:9px;
padding:6px 11px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none;line-height:1.2}
.nut:hover{border-color:var(--vien-tt-hover);color:var(--nhan);text-decoration:none}
.nut[disabled]{cursor:not-allowed;color:var(--chu2);border-style:dashed}
.nut[disabled]:hover{border-color:var(--vien-tt);color:var(--chu2)}
.nut--chinh{background:var(--nhan-mo);border-color:var(--vien-tt-chon);color:var(--nhan);font-weight:600}
.chuong{position:relative}
.chuong .so-dem{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;border-radius:10px;
background:var(--loi);color:var(--nen2);font:700 11px/19px Montserrat,sans-serif;text-align:center;padding:0 4px}
.nguoi-dn{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--chu);line-height:1.25}
.nguoi-dn small{display:block;color:var(--chu3);font-size:11.5px}
.avt{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12.5px;
background:var(--nhan-mo);color:var(--nhan);border:1px solid var(--vien-nhap)}
.mo-cot{display:none}

.than{display:grid;grid-template-columns:var(--rong-cot) 1fr;align-items:start}
html{--rong-cot:300px}
.cot{background:var(--cot-nen,var(--nen2));border-right:1px solid var(--cot-vien,var(--vien));
padding:12px 10px 40px;position:sticky;top:var(--dinh-cao);height:calc(100vh - var(--dinh-cao));
overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.cot-nhom{font:600 10.5px/1 "JetBrains Mono",monospace;letter-spacing:.12em;text-transform:uppercase;
color:var(--cot-nhom,var(--chu3));padding:16px 10px 7px}
.cot a,.cot button.pb{display:flex;width:100%;align-items:center;gap:10px;padding:7px 9px;border-radius:10px;
color:var(--cot-chu,var(--chu2));font-size:13.5px;text-decoration:none;background:none;border:0;cursor:pointer;
text-align:left;line-height:1.3}
.cot a:hover,.cot button.pb:hover{background:var(--cot-hover,var(--nen3));color:var(--cot-tang,var(--chu));text-decoration:none}
.cot a.dang{background:var(--cot-dang-nen,var(--nhan-mo));color:var(--cot-dang-chu,var(--nhan));font-weight:700}
.cot button.pb{color:var(--cot-tang,var(--chu));font-weight:600}
.cot .chev{margin-left:auto;transition:transform .15s;opacity:.8}
.cot .mo-pb .chev{transform:rotate(180deg)}
.cot .con{display:none;padding:2px 0 6px 40px}
.cot .mo-pb + .con{display:block}
.cot .con a{font-size:13px;padding:5px 9px}
.ic-o{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;
background:color-mix(in srgb,var(--h1) 15%,transparent);color:var(--h1)}
[data-cot="toi"] .cot .ic-o,.mini[data-cot="toi"] .ic-o{background:color-mix(in srgb,var(--h2) 20%,transparent);color:var(--h2)}
.cot a.dang .ic-o{background:color-mix(in srgb,currentColor 16%,transparent);color:inherit}
.dem-nho{margin-left:auto;font:600 11px/1 Montserrat,sans-serif;padding:4px 7px;border-radius:999px;
background:var(--loi);color:var(--nen2)}
.ra-ngoai{margin-left:auto;opacity:.75}
.cot-ghi{font-size:11.5px;color:var(--cot-nhom,var(--chu3));padding:4px 10px 0;line-height:1.45}

.chinh{padding:20px 24px 60px;min-width:0}
.duong{font-size:12.5px;color:var(--chu3);margin-bottom:4px}
.mota{color:var(--chu2);font-size:14px;margin:3px 0 14px;max-width:80ch}
.trang[hidden]{display:none}

.nhan-nho{display:inline-flex;align-items:center;font:700 10px/1 Montserrat,"Be Vietnam Pro",sans-serif;letter-spacing:.06em;
text-transform:uppercase;padding:5px 7px;border-radius:5px;white-space:nowrap;
color:color-mix(in srgb,var(--vang) 72%,var(--chu));background:var(--vang-mo);border:1px solid color-mix(in srgb,var(--vang) 40%,transparent)}
.nhan-nho--tot{color:color-mix(in srgb,var(--tot) 72%,var(--chu));background:var(--tot-mo);border-color:color-mix(in srgb,var(--tot) 40%,transparent)}
.nhan-nho--mo{color:var(--chu3);background:var(--nen3);border-color:var(--vien)}
.bao{padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:13.5px}
.bao--y{background:var(--the-nen);color:var(--chu2);border:1px solid var(--vien-noidung);border-left:4px solid var(--vach-y)}
.bao--y b{color:var(--vang)}

.hop{background:var(--the-nen,var(--nen2));border:1px solid var(--vien-noidung);border-radius:var(--bo,12px);min-width:0;
display:flex;flex-direction:column}
.hop-dau{padding:12px 14px 6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hop-dau h2{display:flex;align-items:center;gap:8px;margin-right:auto}
.hop-than{padding:6px 14px 14px;flex:1}
.loc{background:var(--nen3);color:var(--chu2);border:1px solid var(--vien-nhap);border-radius:8px;
padding:4px 8px;font-size:12.5px}

.chuy{border:1px solid var(--vien-noidung);border-left:4px solid var(--vach-y);border-radius:var(--bo,12px);
padding:12px 14px;margin:0 0 14px;background:var(--the-nen)}
.chuy-dau{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.chuy-ten{color:var(--vang);font-weight:700;font-size:15px;margin-right:auto}
.chuy-dong{display:flex;gap:10px;align-items:flex-start;padding:7px 8px;margin:0 -8px;border-radius:8px;
font-size:14px;line-height:1.45;color:var(--chu2);text-decoration:none}
a.chuy-dong:hover{background:var(--nen3);text-decoration:none}
.chuy-dong b{color:var(--chu)}
.muc{flex:none;font:700 10.5px/1 Montserrat,sans-serif;padding:4px 7px;border-radius:5px;margin-top:2px;min-width:44px;text-align:center}
.muc--cao{color:color-mix(in srgb,var(--loi) 72%,var(--chu));background:var(--loi-mo);border:1px solid color-mix(in srgb,var(--loi) 40%,transparent)}
.muc--vua{color:color-mix(in srgb,var(--vang) 72%,var(--chu));background:var(--vang-mo);border:1px solid color-mix(in srgb,var(--vang) 40%,transparent)}
.chuy-di{margin-left:auto;color:var(--nhan);white-space:nowrap;font-size:13px}

.the-hang{display:grid;gap:12px;margin-bottom:14px;grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1500px){.the-hang{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.the-hang{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Điện thoại: biểu tượng lên trên số, đường xu hướng xuống dưới — để số
   "1.683.000 đ" không bị cắt thành "1.683…" (thấy khi chụp 390px). */
.the{padding:11px 11px 9px}.the-tren{flex-direction:column;gap:6px}.the-ic{width:34px;height:34px}
.the-so{font-size:18px;white-space:normal;overflow-wrap:anywhere}.the-duoi{flex-direction:column;align-items:stretch}
.the-duoi svg{flex:none;width:100%}}
.the{background:var(--the-nen,var(--nen2));border:1px solid var(--vien-noidung);border-radius:var(--bo,12px);padding:13px 14px 10px;
display:flex;flex-direction:column;min-width:0}
.the-tren{display:flex;gap:11px;align-items:flex-start}
.the-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;
background:color-mix(in srgb,var(--mau) 15%,transparent);color:var(--mau)}
.the-nhan{font-size:12.5px;color:var(--chu3)}
.the-so{font:700 22px/1.2 "JetBrains Mono",monospace;font-variant-numeric:tabular-nums;color:var(--chu);margin-top:2px;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.the-that{font:400 11.5px/1.3 "JetBrains Mono",monospace;color:var(--chu3);margin-top:2px}
.ss{font-size:12.5px;margin-top:6px;color:var(--chu3)}
.ss b{font-weight:700}
.ss .len{color:var(--tot)}.ss .xuong{color:var(--loi)}
.the-duoi{display:flex;align-items:flex-end;gap:8px;margin-top:4px}
.the-duoi svg{flex:1;min-width:0;height:34px}
.the-nguon{font-size:11px;color:var(--chu3);margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* Chín khối biểu đồ nằm chung MỘT lưới: màn rất rộng 3 cột, màn thường 2 cột
   (khối AI trải hết hàng), điện thoại 1 cột. Ba cột ở màn 1440px làm bảng
   tiền đủ từng đồng bị cắt — thấy khi chụp ảnh 24/10/2026. */
.luoi3{display:grid;gap:12px;margin-bottom:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.luoi3>.ai{grid-column:1/-1}
@media(min-width:1700px){.luoi3{grid-template-columns:1.25fr 1fr 1.1fr}.luoi3>.ai{grid-column:auto}}
@media(max-width:900px){.luoi3{grid-template-columns:1fr}}

.bangbao{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:7px 8px;text-align:left;border-top:1px solid var(--vien)}
thead th{border-top:0;background:var(--nen3);color:var(--chu3);font:600 10.5px/1.2 "JetBrains Mono",monospace;
letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
td.so,th.so{text-align:right;white-space:nowrap}
tbody tr:hover td{background:var(--nen3)}
.hang-so{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font:700 11.5px/1 Montserrat,sans-serif;
background:color-mix(in srgb,var(--bd3) 26%,transparent);color:var(--chu)}
.hang-so.h2{background:color-mix(in srgb,var(--bd2) 24%,transparent)}
.hang-so.h3{background:color-mix(in srgb,var(--bd4) 24%,transparent)}
.hang-so.hx{background:var(--nen3);color:var(--chu2)}
.tang{color:var(--tot);font-weight:600}.giam{color:var(--loi);font-weight:600}

.chu-thich{display:flex;flex-direction:column;gap:6px;font-size:13px;min-width:0}
.ct{display:flex;align-items:center;gap:8px;color:var(--chu2)}
.ct i{width:10px;height:10px;border-radius:50%;flex:none}
.ct b{margin-left:auto;color:var(--chu);font-family:"JetBrains Mono",monospace;font-weight:600}
.vanh-khoi{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.vanh-khoi svg{flex:none}
.vanh-khoi .chu-thich{flex:1;min-width:160px}

.pheu-hang{display:grid;grid-template-columns:118px 1fr 52px;gap:10px;align-items:center;margin:7px 0;font-size:13px}
.pheu-ten{color:var(--chu2);line-height:1.3}
.pheu-ray{height:22px;display:flex;justify-content:center}
.pheu-ray i{display:block;height:100%;border-radius:5px}
.pheu-pt{text-align:right;font:600 12.5px "JetBrains Mono",monospace;color:var(--chu)}
.pheu-so{font:600 12px "JetBrains Mono",monospace;color:var(--chu)}

.ai{/* viền nội dung như mọi khối — không lấy màu biểu đồ */}
.ai-luoi{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.ai-luoi{grid-template-columns:1fr}}
.ai-nguon{font-size:12.5px;color:var(--chu2);margin:0 0 10px;line-height:1.6}
.ai h3{font-size:13.5px;margin-bottom:6px;display:flex;gap:6px;align-items:center}
.ai ul,.ai ol{margin:0;padding-left:18px;font-size:13px;color:var(--chu2);line-height:1.55}
.ai li{margin-bottom:5px}
.ai-ghi{font-size:12px;color:var(--chu2);margin-top:8px;border-top:1px dashed var(--vien);padding-top:8px}

.app-luoi{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-bottom:12px}
.app{background:var(--the-nen,var(--nen2));border:1px solid var(--vien-noidung);border-radius:var(--bo,12px);padding:13px 14px;
text-decoration:none;color:var(--chu);display:block}
a.app:hover{border-color:var(--nhan);text-decoration:none}
.app-dau{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.app-ten{font-weight:600;font-size:14px}
.app-mo{font-size:12px;color:var(--chu3)}
.tt{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}
.tt span{display:inline-flex;gap:5px;align-items:center;padding:3px 8px;border-radius:999px;border:1px solid var(--vien);color:var(--chu2)}
.tt span.ok,.tt span.y,.tt span.l{color:color-mix(in srgb,var(--c) 72%,var(--chu))}
.tt .ok{--c:var(--tot);border-color:color-mix(in srgb,var(--tot) 45%,transparent);background:var(--tot-mo)}
.tt .y{--c:var(--vang);border-color:color-mix(in srgb,var(--vang) 45%,transparent);background:var(--vang-mo)}
.tt .l{--c:var(--loi);border-color:color-mix(in srgb,var(--loi) 45%,transparent);background:var(--loi-mo)}
.muc-ten{display:flex;align-items:center;gap:8px;margin:18px 0 8px}
.muc-ten h2{font-size:16px}

.chan{margin-top:26px;padding-top:14px;border-top:1px solid var(--vien);color:var(--chu3);font-size:12.5px;
display:flex;gap:6px 16px;flex-wrap:wrap}

/* ---------- trang Giao diện ---------- */
.gd-luoi{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-bottom:8px}
.gd-the{border:1px solid var(--vien-noidung);border-radius:14px;background:var(--nen2);overflow:hidden;display:flex;flex-direction:column}
.gd-the.dang-dung{border:2px solid var(--vien-tt-chon);box-shadow:0 0 0 3px var(--nhan-mo)}
.mini{height:150px;display:grid;grid-template-columns:62px 1fr;grid-template-rows:24px 1fr;
background:var(--nen-trang,var(--nen));color:var(--chu);font-family:inherit;border-bottom:1px solid var(--vien)}
.mini-dinh{grid-column:1/-1;background:var(--dinh-nen,var(--nen2));border-bottom:var(--dinh-vien,1px solid var(--vien));
display:flex;align-items:center;gap:5px;padding:0 7px}
.mini-cot{background:var(--cot-nen,var(--nen2));border-right:1px solid var(--cot-vien,var(--vien));padding:6px 5px;display:flex;flex-direction:column;gap:4px}
.mini-cot i{display:block;height:7px;border-radius:3px;background:color-mix(in srgb,var(--cot-chu,var(--chu2)) 35%,transparent)}
.mini-cot i.d{background:var(--cot-dang-nen,var(--nhan-mo));height:11px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cot-dang-chu,var(--nhan)) 40%,transparent)}
.mini-than{padding:7px;display:flex;flex-direction:column;gap:6px;min-width:0}
.mini-the{background:var(--the-nen,var(--nen2));border:1px solid var(--vien);border-radius:7px;padding:5px 7px;font-size:10px;line-height:1.3;color:var(--chu3)}
.mini-the b{display:block;font:700 14px/1.2 "JetBrains Mono",monospace;color:var(--chu)}
.mini-nhan{display:flex;gap:4px;flex-wrap:wrap}
.mini-nhan span{font:600 9px/1 Montserrat,sans-serif;padding:3px 5px;border-radius:4px}
.mini-nhan .a{color:color-mix(in srgb,var(--tot) 65%,var(--chu));background:var(--tot-mo)}.mini-nhan .b{color:color-mix(in srgb,var(--vang) 65%,var(--chu));background:var(--vang-mo)}.mini-nhan .c{color:color-mix(in srgb,var(--loi) 65%,var(--chu));background:var(--loi-mo)}
.mini-cot-bd{display:flex;align-items:flex-end;gap:3px;height:22px}
.mini-cot-bd i{display:block;flex:1;border-radius:2px 2px 0 0}
.gd-duoi{padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px;flex:1}
.gd-ten{font-weight:600;font-size:14px;color:var(--chu)}
.gd-phu{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--chu3)}
.gd-duoi .nut{justify-content:center;margin-top:auto}


/* ---------- bản 8: menu một đích mỗi dòng, ô tìm, dòng chưa mở được ---------- */
.an{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tim{display:flex;align-items:center;gap:7px;margin:2px 2px 4px;padding:6px 9px;border-radius:9px;
background:color-mix(in srgb,var(--cot-chu) 8%,transparent);border:var(--day-tt) solid var(--vien-tt-cot);color:var(--cot-chu)}
.tim input{flex:1;min-width:0;background:none;border:0;color:var(--cot-tang);font-size:13px;outline:none}
.tim input::placeholder{color:color-mix(in srgb,var(--cot-chu) 75%,var(--cot-tang));opacity:1}   /* bản 26: trước dùng --cot-nhom, chỉ 4,28–4,47:1 ở Navy, OLED, Xanh Lá, Mạ Non */
.tim:focus-within{outline:2px solid var(--focus-cot);outline-offset:1px}
/* Cột trái có thể khác nền phần nội dung (QuanE20, Sang trọng) — viền focus dùng token riêng */
.cot :focus-visible{outline-color:var(--focus-cot)}
.cot .khong-mo{display:flex;width:100%;align-items:center;gap:10px;padding:7px 9px;border-radius:10px;
color:var(--cot-nhom);font-style:italic;font-size:13.5px;line-height:1.3;cursor:default}
.cot .khong-mo .ic-o{opacity:.55}
.m-ten{flex:1;min-width:0}
.m-tt{flex:none;font-style:normal;font:700 9.5px/1 Montserrat,sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:4px 6px;border-radius:5px;
border:1px solid color-mix(in srgb,var(--cot-chu) 45%,transparent);color:var(--cot-chu)}
.chuy-tat{display:inline-block;margin-top:6px;font-size:13px}
.chuy-di a{white-space:nowrap}
.dai-app{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;background:var(--the-nen);border:1px solid var(--vien-noidung);
border-radius:var(--bo);padding:10px 14px;margin:2px 0 12px;font-size:13.5px}
.dai-app .tt{display:inline-flex}
.app-mo{margin-top:6px;line-height:1.5}
.app-mo b{color:var(--chu2)}
[hidden]{display:none!important}
/* ---------- bản 15: xem thử quyền, trang đăng nhập ---------- */
.xem-quyen{display:inline-flex;align-items:center;gap:6px;margin:0}
.xem-quyen .o-chon{max-width:190px}
.luat{margin:0;padding-left:20px;font-size:13.5px;color:var(--chu2);line-height:1.6}.luat li{margin-bottom:6px}.luat b{color:var(--chu)}
.luat code{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--chu)}
.co-q{color:var(--tot);font-weight:700}.khong-q{color:var(--chu3)}
/* ---------- bản 20: bảng quyền công tắc Xem / Dùng (G1 D.9) ----------
   Viền 2px theo quy tắc C (viền tương tác). Bật = nền màu "tốt" + núm sang phải + chữ.
   Khoá = viền nét đứt + ổ khoá + lý do khi di chuột. Không dùng màu làm tín hiệu duy nhất. */
.o-quyen{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.cong-tac{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:2px 4px;margin:0 -4px;border-radius:8px;cursor:pointer;color:var(--chu);font:inherit;font-size:12.5px;white-space:nowrap}
.ct-ten{min-width:30px;color:var(--chu2)}
.ct-ray{position:relative;width:36px;height:20px;border-radius:999px;border:var(--day-tt) solid var(--vien-tt);background:var(--nen3);flex:none;transition:background .15s,border-color .15s}
.ct-num{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--chu2);transition:transform .15s}
.cong-tac[aria-checked="true"] .ct-ray{background:var(--tot);border-color:var(--tot)}
.cong-tac[aria-checked="true"] .ct-num{transform:translateX(16px);background:var(--nen2)}
.cong-tac[aria-checked="true"] .ct-ten{color:var(--tot);font-weight:700}
.cong-tac:not([aria-disabled="true"]):hover .ct-ray{border-color:var(--vien-tt-hover)}
.cong-tac[aria-disabled="true"]{cursor:not-allowed}
.cong-tac[aria-disabled="true"] .ct-ray{border-style:dashed}
.cong-tac[aria-disabled="true"][aria-checked="true"] .ct-ray{background:color-mix(in srgb,var(--tot) 55%,var(--nen3))}
.ct-khoa{color:var(--chu3);display:inline-flex}
.ct-khong{font-size:12.5px;color:var(--chu3)}
#bang-quyen td,#bang-quyen th{vertical-align:top}
#bang-quyen th{white-space:normal;min-width:118px}
#ghi-quyen{margin:12px 0 0}
.nut-nho{font-size:12.5px;padding:5px 10px}
.tq-nguoi{margin:0 0 14px}
/* bản 21: quyền mồ côi — chữ + biểu tượng, không chỉ màu */
.mo-coi{display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:1.35;color:color-mix(in srgb,var(--vang) 72%,var(--chu));white-space:normal;max-width:220px}
#bang-quyen td.o-mo-coi{background:var(--vang-mo)}
.ra-soat{margin-top:16px;padding-top:12px;border-top:1px solid var(--vien-noidung)}
.ra-soat h3{font-size:14.5px}
.tq-loi-tat{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
body.dang-vao .dinh,body.dang-vao .than{display:none}
.vao{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.vao-khung{width:100%;max-width:400px;background:var(--the-nen);border:1px solid var(--vien-noidung);border-radius:16px;padding:28px 26px}
.vao-logo{display:block;margin:0 auto 10px;border-radius:50%}
.vao-ten{text-align:center;font-weight:700;font-size:17px;letter-spacing:.02em;color:var(--chu)}
.vao-ten small{display:block;font-size:11.5px;font-weight:600;letter-spacing:.06em;color:var(--chu3);margin-top:2px}
#vao-form label{display:block;font-size:13px;color:var(--chu2);margin:12px 0 5px}
#vao-form input{width:100%;background:var(--nen);color:var(--chu);border:var(--day-tt) solid var(--vien-tt);border-radius:10px;padding:10px 12px;font-size:14.5px}
#vao-form input:focus{outline:2px solid var(--focus);outline-offset:1px}
.vao-nut{width:100%;justify-content:center;margin-top:16px;padding:10px 12px;font-size:14px}
.vao-ghi{font-size:12px;color:var(--chu3);text-align:center;margin-top:12px}
@media(max-width:1180px){.xem-quyen .nhan-nho{display:none}}
@media(max-width:880px){.xem-quyen .o-chon{max-width:130px}}
/* ---------- MENU TRÁI bản 14, đóng hộp theo nhóm ở bản 17 ----------
   Mỗi dòng MỘT hàng, không xuống dòng; cao cố định 36px; tiêu đề nhóm cao cố định 30px.
   Bản 17 (anh Chung 24/10/2026): MỖI NHÓM MỘT HỘP viền 1px bo góc, như khối ở trang chính.
   Thu nhóm → hộp thu lại chỉ còn tiêu đề; mở → hộp mở ra. KHÔNG đóng hộp từng dòng.
   Nền menu thống nhất, icon cùng màu chữ; màu nhấn CHỈ cho dòng đang chọn và nhãn trạng thái. */
.cot{padding:10px 6px 32px}
.nhom-m{border:1px solid var(--cot-hop-vien);border-radius:12px;background:var(--cot-hop-nen);padding:3px}
.nhom-m+.nhom-m{margin-top:10px}
.cot .tim{margin-bottom:10px}
.nhom-nut{display:flex;align-items:center;justify-content:space-between;width:100%;height:30px;padding:0 10px;
background:none;border:0;border-radius:8px;cursor:pointer;color:var(--cot-nhom);
font:700 11.5px/1 "JetBrains Mono",monospace;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--cot-chu)}
.nhom-nut:hover{color:var(--cot-tang);background:var(--cot-hover)}
.nhom-nut svg{transition:transform .15s}
.nhom-nut[aria-expanded="false"] svg{transform:rotate(-90deg)}
.nhom-than{display:flex;flex-direction:column;gap:2px;margin-top:2px}
.nhom-nut[aria-expanded="true"]{border-radius:8px 8px 4px 4px}
.cot .m-dong{display:flex;align-items:center;gap:8px;height:36px;min-height:36px;padding:0 8px;border-radius:9px;
font-size:14px;font-weight:500;line-height:1;white-space:nowrap;color:var(--cot-chu);text-decoration:none;width:100%}
.cot .m-dong>svg{flex:none;opacity:1}
/* bản 18: dòng bấm được dùng màu chữ sáng nhất của cột */
.cot a.m-dong{color:var(--cot-tang)}
.cot a.m-dong:hover{background:var(--cot-hover);color:var(--cot-tang);text-decoration:none}
.cot a.m-dong.dang{background:var(--cot-dang-nen);color:var(--cot-dang-van);font-weight:700;box-shadow:inset 0 0 0 2px var(--cot-dang-vien)}
.cot a.m-dong.dang>svg{opacity:1}
.cot .m-dong.khong-mo{color:var(--cot-chu);font-style:normal;cursor:default}
.cot .m-dong.khong-mo>svg{opacity:.55}
.m-ten{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m-tt{flex:none;font-style:normal;font:700 9.5px/1 Montserrat,sans-serif;letter-spacing:0;text-transform:uppercase;padding:4px 4px;
border-radius:5px;border:1px solid color-mix(in srgb,var(--cot-chu) 45%,transparent);color:var(--cot-chu)}
.cot .dem-nho,.cot .ra-ngoai{margin-left:0;flex:none}
/* Bản 26: nhãn trạng thái nằm trên dòng ĐANG CHỌN dùng màu chữ của dòng đang chọn (trước đây dùng màu chữ phụ của cột → 3,3–3,8:1 ở 9 chủ đề) */
.cot .m-dong.dang .m-tt{color:var(--cot-dang-van);border-color:color-mix(in srgb,var(--cot-dang-van) 55%,transparent)}
.cot-chu-thich{margin:14px 4px 0;font-size:11.5px;color:var(--cot-nhom);line-height:1.5}
.cot-chu-thich summary{cursor:pointer;padding:6px;border-radius:7px;font-weight:600}
.cot-chu-thich summary:hover{color:var(--cot-tang)}
.cot-chu-thich ul{margin:4px 0 6px;padding-left:18px}
.cot-chu-thich p{margin:4px 6px}
h1[tabindex="-1"]:focus{outline:none}
.cap-luoi{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));margin-bottom:6px}
.cap{border:1px solid var(--vien-noidung);border-radius:14px;background:var(--nen2);padding:10px 12px}
.cap-hai{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cap-hai .mini{border:1px solid var(--vien);border-radius:8px;overflow:hidden;height:150px}
.cap-ten{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-weight:600;font-size:13px;margin-top:6px;color:var(--chu)}
/* Chọn kỳ (anh Chung 24/10, bản xem trước 24): mặc định Tháng này; 10 kỳ có sẵn + Tùy chọn ngày. Tuần bắt đầu thứ Hai. */
.ky-loc{position:relative;display:inline-flex}
.ky-nut{gap:7px;white-space:nowrap}
.ky-ten{font-weight:600}
.ky-khoang{color:var(--chu2)}
.ky-hop{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:400px;max-width:calc(100vw - 24px);background:var(--nen2);
border:1px solid var(--vien2);border-radius:12px;box-shadow:0 14px 34px rgba(0,0,0,.35);padding:8px}
.ky-ds{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.ky-mot{display:grid;gap:1px;width:100%;background:transparent;border:0;border-radius:8px;padding:7px 10px;color:var(--chu);
font:inherit;font-size:13.5px;cursor:pointer;text-align:left;line-height:1.3}
.ky-mot small{color:var(--chu2);font-size:12px}
.ky-mot:hover,.ky-mot:focus-visible{background:var(--nen3)}
.ky-mot:focus-visible{outline:2px solid var(--nhan);outline-offset:-2px}
.ky-mot[aria-pressed="true"]{background:color-mix(in srgb,var(--nhan) 22%,transparent);box-shadow:inset 0 0 0 2px var(--nhan);font-weight:600}
.ky-mot[aria-pressed="true"] small{color:var(--chu)}
.ky-mot.ky-rong{grid-column:1/-1}
.ky-tuy{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 4px 2px}
.ky-tuy label{display:grid;gap:4px;font-size:12.5px;color:var(--chu2)}
.ky-tuy input{border:var(--day-tt) solid var(--vien-tt);background:var(--nen);color:var(--chu);border-radius:8px;padding:6px 8px;font:inherit;font-size:13.5px;min-width:0}
.ky-tuy input:focus-visible{outline:2px solid var(--nhan);outline-offset:1px}
.ky-loi{grid-column:1/-1;margin:0;color:var(--loi);font-size:12.5px;min-height:0}
.ky-loi:empty{display:none}
.ky-ap{grid-column:1/-1;justify-content:center}
.ky-chu-thich{font-size:12px;color:var(--chu3);margin:8px 6px 2px}
/* Ô kỳ và chip phạm vi (Bản v2) giữ như bản 23: dưới 1500px ẩn để thanh trên giữ MỘT hàng.
   Khi làm v2: màn nhỏ đặt ô kỳ ở đầu trang Tổng quan. */
@media(max-width:1500px){.dinh-giua{display:none}}
/* Bản 25: từ 1501px trở lên thanh trên cũng giữ MỘT hàng — bớt dần chữ phụ khi màn hẹp lại */
@media(max-width:1800px){.ky-khoang{display:none}}
@media(max-width:1700px){.dinh-giua .chip-loc{display:none}}
@media(max-width:1580px){.ky-nut .nhan-nho{display:none}}
@media(max-width:880px){
.than{grid-template-columns:1fr}
.cot{position:fixed;inset:var(--dinh-cao) auto 0 0;width:min(var(--rong-cot),88vw);z-index:35;transform:translateX(-100%);
transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.4)}
.cot.mo{transform:none}
.mo-cot{display:inline-flex}
.chinh{padding:14px 14px 50px}
h1{font-size:21px}
.nguoi-dn .ten-dn{display:none}
.hieu small{display:none}}
@media(max-width:520px){.nut-lui span{display:none}.dinh{gap:7px;padding:8px 10px}#cd{max-width:150px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== BỔ SUNG CHO BẢN THẬT (G2a) — chỉ dùng biến màu của chủ đề, không mã màu cứng ===== */
.form-doc{max-width:520px}
.form-doc label{display:block;font-size:13px;color:var(--chu2);margin:12px 0 5px}
.form-doc input,.form-doc select{width:100%;background:var(--nen);color:var(--chu);border:var(--day-tt) solid var(--vien-tt);border-radius:10px;padding:9px 12px;font-size:14px}
.form-doc input:focus,.form-doc select:focus,.form-hang select:focus{outline:2px solid var(--focus);outline-offset:1px}
.form-doc .nut{margin-top:14px}
.form-doc .mota{margin:6px 0 0;font-size:12.5px}
.form-hang{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px}
.form-hang label{font-size:13px;color:var(--chu2)}
.form-hang .mota{margin:0;font-size:12.5px}
.ct-form{display:contents}
.form-cd,.form-thoat{display:inline-flex;align-items:center;gap:6px;margin:0}
.bao--tot{background:var(--the-nen);color:var(--chu);border:1px solid var(--vien-noidung);border-left:4px solid var(--tot)}
.bao--loi{background:var(--the-nen);color:var(--chu);border:1px solid var(--vien-noidung);border-left:4px solid var(--loi)}
.bao--loi b{color:var(--loi)}
.nhan-nho--loi{color:color-mix(in srgb,var(--loi) 72%,var(--chu));background:var(--loi-mo);border-color:color-mix(in srgb,var(--loi) 40%,transparent)}
.cb-ds{list-style:none;margin:6px 0 10px;padding:0;display:flex;flex-direction:column;gap:8px}
.cb-dong{line-height:1.55;color:var(--chu)}
.cb-gio{color:var(--chu3);font-size:12.5px;margin-right:4px}
.muc-ten h3{font-size:14px;margin:14px 0 8px;color:var(--chu2)}
.tq-loi-tat{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/* G2a: chữ "Xem"/"Dùng" đang bật trong ô mồ côi (nền vàng nhạt) — chủ đề Biểu tượng chỉ đạt 4,32:1 → pha 25% màu chữ chính */
#bang-quyen td.o-mo-coi .cong-tac[aria-checked="true"] .ct-ten{color:color-mix(in srgb,var(--tot) 75%,var(--chu))}

/* ===== BỔ SUNG G2b — kết nối app: thẻ số thật, dải tình trạng, trang Ứng dụng. Chỉ biến màu của chủ đề. ===== */
.the{--mau:var(--bd1)}
.the-moi{font-size:11.5px;color:var(--chu3);margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ss .trung{color:var(--chu2)}
.the-duoi{flex-direction:column;align-items:stretch}
.xh{flex:none;width:100%;min-width:0;height:34px}
.xh-duong{stroke:var(--mau);stroke-width:2}
.xh-diem{fill:var(--mau)}
.tt-tot{color:color-mix(in srgb,var(--tot) 80%,var(--chu))}
.tt-y{color:color-mix(in srgb,var(--vang) 80%,var(--chu))}
.tt-loi{color:color-mix(in srgb,var(--loi) 80%,var(--chu))}
.tt-mo{color:var(--chu3)}
.dai-app{padding:10px 14px;border-radius:var(--bo,12px);margin:0 0 14px;font-size:13.5px}
.dai-app .muc{display:inline-flex;gap:6px;align-items:center}
.ud-bang{width:100%;border-collapse:collapse;font-size:13.5px}
.ud-bang th{text-align:left;font-size:12px;color:var(--chu3);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--vien)}
.ud-bang td{padding:9px 10px;border-bottom:1px solid var(--vien);vertical-align:top;color:var(--chu)}
.ud-bang td .mota{margin:2px 0 0;font-size:12.5px}
.khoa-mot-lan{font:500 14px/1.5 "JetBrains Mono",monospace;background:var(--nen3);color:var(--chu);border:var(--day-tt) solid var(--vien-tt);
border-radius:10px;padding:10px 12px;overflow-wrap:anywhere;user-select:all}
.ud-buoc{margin:6px 0 0;padding-left:20px;color:var(--chu2);font-size:13.5px;line-height:1.6}
.cb-app{color:var(--chu)}
.cb-app a{color:var(--nhan)}
