/* =============================================================================
   Font chữ mặc định toàn app: Inter
   Nạp SAU tất cả css khác trong index.html (thắng cascade mà không cần !important).
   Bootstrap và các thành phần tự viết kế thừa từ html/body.
   ============================================================================= */

:root,
body {
    --app-font-family: Inter, "Segoe UI", Arial, system-ui, -apple-system, sans-serif;
}

html,
body,
button,
input,
select,
textarea,
optgroup {
    font-family: var(--app-font-family);
}

/* --- Bootstrap ------------------------------------------------------------- */
.bb-toast,
.modal,
.popover,
.tooltip,
.dropdown-menu {
    font-family: var(--app-font-family);
}

/* =============================================================================
   MỘT font duy nhất cho cả app (kể cả ô mã, số tiền, mã hàng trước đây dùng font đơn cách JetBrains Mono).
   Chỉ giữ font riêng cho giấy in thu nhỏ trong trang (tờ khai thuế .a4, tờ điều chỉnh hoá đơn .ia-paper).
   Số vẫn thẳng cột nhờ tabular-nums.
   ============================================================================= */
html body :where(*):not(.a4, .a4 *, .ia-paper, .ia-paper *, .fa, .fas, .far, .fal, .fat, .fad, .fab, .fa-solid, .fa-regular, .fa-light, .fa-thin, .fa-duotone, .fa-brands) {
    font-family: var(--app-font-family) !important;
}

html body :is(.num, .mono, [class*="num"], td, .trow) {
    font-variant-numeric: tabular-nums;
}

/* Các cột trong bảng (dòng dữ liệu của lưới div.g và tbody của bảng) không in đậm; muốn đậm riêng thì thêm lớp fw-strong vào phần tử đó */
html body :is(.trow, tbody > tr):not(.fw-strong),
html body :is(.trow, tbody > tr) :where(*):not(.fw-strong) {
    font-weight: 400 !important;
}

/* Mã chứng từ / mã trong các cột của list đơn, phiếu luôn in đậm (đặt sau luật chữ thường ở trên để thắng cùng độ ưu tiên) */
html body :is(.trow, tbody > tr) :is(.code, .code-cell, .code-chip, .code *, .code-cell *, .code-chip *) {
    font-weight: 600 !important;
}

/* Cột mã trong list luôn trên một dòng, không xuống dòng (độ rộng cột do từng màn đặt cho vừa mã) */
html body :is(.trow, tbody > tr) :is(.code, .code-cell, .code-chip) {
    white-space: nowrap !important;
}

/* Cột mã / số chứng từ trong list luôn in đậm (đặt cuối để thắng luật chữ thường của ô bảng) */
html body :is(.trow, .g.trow, .tgr tr, tbody > tr) :is(.code, .code-cell, .code-chip, .keycell, .codecell, .code *, .code-cell *, .code-chip *, .keycell *, .codecell *) {
    font-weight: 600 !important;
}

/* Bảng báo cáo (ReportTable .rp-tbl, table.rpt): mã trong ô dữ liệu chữ thường như các cột khác (lớp đôi để thắng luật mã in đậm ở trên) */
html body :is(.rp-tbl.rp-tbl, table.rpt.rpt) tbody > tr :is(.code, .code-cell, .code-chip, .keycell, .codecell, .code *, .code-cell *, .code-chip *, .keycell *, .codecell *) {
    font-weight: 400 !important;
}
