/* ═════════════════════════════════════════════════════════════════════════════
   BÙ CHO FIREFOX ESR 102/115 — :has() và color-mix() trong CSS của His_Site (22/09)

   Firefox hiểu color-mix() từ bản 113 (ESR 115 có, ESR 102 không) và :has() từ bản 121 (cả
   ESR 102 lẫn 115 đều không). Luật có :has() ở bộ chọn bị bỏ NGUYÊN LUẬT; khai báo có
   color-mix() bị bỏ đúng khai báo đó (với biến CSS: biến thành "không hợp lệ lúc dùng" →
   nền trong suốt). Không báo lỗi gì — chỉ là control mất hình thức.

   Tệp RIÊNG, không nằm trong hoa-giai-portal.css: lớp hoà giải có luật cấm đụng hình thức control
   (.ts-wrapper, .modal…), còn ở đây ta KHÔI PHỤC đúng hình thức His_Site định có — khác mục đích.
   Nạp ngay SAU CSS thư viện trong _ThuVienHis.cshtml (luật .gp-cha phải đứng sau grouppanel.css).

   Không sửa tệp thư viện. Mỗi luật bù dưới đây mang thẻ «ESR-BU: <tệp> | <bộ chọn gốc>» —
   test CssFirefoxEsrTests.CssNapVao_KhongHasColorMixThieuLuatBu đòi MỌI luật :has()/
   color-mix() của CSS trong wwwroot phải có đúng một thẻ như vậy, và luật bù không được tự
   dùng :has()/color-mix(). Đo: tools/giaodien/quet_css_esr.py.
   Xoá được khi: máy bệnh viện hết ESR < 121 (và < 113 cho color-mix).
   ═════════════════════════════════════════════════════════════════════════════ */

/* ESR-BU: Css/exComponent/grouppanel.css | .gp-noi.gp-ngang > .gp-o:not(:has(> label))
   Lớp .gp-o-khong-nhan do ThemHis/js/dung-control-trang.js gắn khi trình duyệt không có :has(). */
.gp-noi.gp-ngang > .gp-o.gp-o-khong-nhan { display: block; }

/* ESR-BU: Css/partCss/bootStrapCustom.css | .modal-body:has(> .tabulator)
   Lớp .modal-body-luoi do ThemHis/js/dung-control-trang.js gắn. */
.modal-body.modal-body-luoi { padding: 0px !important; }

/* ESR-BU: Css/exComponent/grouppanel.css | .gp-cha
   ESR-BU: Css/exComponent/grouppanel.css | html[data-theme='dark'] .gp-cha
   Màu TÍNH SẴN từ màu gốc #2563eb (--main-color của master.css; Portal không đặt --accent):
     12% #2563eb + #fff     = #e5ecfd  (nền đầu nhóm)
     60% #2563eb + #1f2937  = #234ca3  (chữ đầu nhóm — 6,7:1 trên #e5ecfd)
     26% #2563eb + #2a2f3a  = #293d68  (nền đầu nhóm, nền tối)
   Chỉ áp khi trình duyệt KHÔNG hiểu color-mix(): trình duyệt mới vẫn pha theo tông phân hệ. */
@supports not (color: color-mix(in srgb, red 50%, blue)) {
    .gp-cha { --gp-nen-hd: #e5ecfd; --gp-chu-hd: #234ca3; }
    html[data-theme='dark'] .gp-cha { --gp-nen-hd: #293d68; }
}

/* ESR-BU: Script/Lib/exControl/dropDown/tom-select.bootstrap5.min.css | .ts-wrapper .dropdown-header
   Bản gốc viết color-mix(var(--bs-body-bg),#d0d0d0,85%) — SAI CÚ PHÁP (thiếu "in <không gian
   màu>", phần trăm đặt sai chỗ) nên MỌI trình duyệt đều bỏ khai báo này, không riêng ESR. Hành vi
   hiện nay ở mọi nơi là nền trong suốt; luật này ghi rõ đúng hành vi đó để ESR và Chrome giống
   nhau và để lần quét sau không coi là chưa bù. Đã ghi vào ghi chú gửi đơn vị HIS. */
.ts-wrapper .dropdown-header { background-color: transparent; }

/* Trình xem PDF.js 5 của bộ HIS_Site (khung /kho-ho-so/trinh-xem-pdf) — 20 luật :has()/color-mix() của viewer.css:
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .dialog
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .textLayer ::-moz-selection
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .textLayer ::selection
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :is(.annotationLayer section):has(div.annotationContent) canvas.annotationContent
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .toggle-button
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | #addSignatureDialog
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :where(html:not(.is-light)) #addSignatureDialog
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :where(html.is-dark) #addSignatureDialog
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer):has(input:disabled) > label
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar):has(:focus-visible)
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):has(.dropdown:not(.hidden))
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):has(.dropdown:not(.hidden))::after
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .editorParamsToolbar:has(#highlightParamsToolbarContainer)
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :root
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .toggleButton:has( > input:checked)
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .toggleButton:is(:hover,:has( > input:focus-visible))
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .loadingInput:has( > .loading:is(#pageNumber))::after
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | #sidebarContainer:has(#outlineView:not(.hidden)) #outlineOptionsContainer
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | .loadingInput:has( > [data-status="pending"]:is(:is(#findbar #findInputContainer) #findInput))::after
   ESR-BU: Script/Lib/pdfjs-viewer/web/viewer.css | :is(#findbar #findbarMessageContainer):has( > :is(#findResultsCount,#findMsg):not(:empty))
   KHÔNG cần luật bù CSS: trên Firefox ESR 102/115 trình xem này không bao giờ được nạp — PDF.js 5 cần Promise.withResolvers và :has() mà ESR
   102/115 không có, nên trình xem kho (js/kq-kho-ho-so.js, moPdfHis) kiểm hai thứ đó trước và LÙI về trình xem canvas pdf.js legacy (lib/his/Script/
   Lib/pdfjs, chạy được trên ESR) — cùng dấu chìm điểm ảnh, cùng chặn tải/in. */
