/* Đại Lục Nhâm, sườn A. Phần chung ở v3-san.css; ở đây màu riêng, chữ Hán, Thức Bàn, Tứ Khoá, Tam Truyền, bảng và hàng riêng. */
@font-face { font-family: 'Noto Serif SC'; font-style: normal; font-weight: 500; font-display: optional; src: url('han.woff2') format('woff2'); }
.dln-trang { --v3-tool: #3A4A8C; --v3-tool-sang: #6878C8; --v3-tool-sau: #28336B; --v3-tool-chu: #AEB8EC; padding-block-end: 0; overflow-anchor: none; }
.dln-muc__ds li:not([hidden]) { display: block; }
.dln-muc__lk { color: var(--v3-c-nga-phu); }
.dln-muc__ds .dln-muc__lk { display: flex; flex-wrap: wrap; column-gap: var(--v3-k-4); align-items: center; min-block-size: var(--v3-cao-cham); text-decoration: none; }
.dln-muc__ds strong { font-weight: var(--v3-dam-5); color: var(--v3-c-nga); }

/* Thức Bàn: Địa Bàn vuông đứng yên */
.dln-chi__han { fill: var(--v3-c-nga-phu); opacity: .72; }
.dln-chi__cham { fill: none; stroke: var(--v3-c-vang); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: 0; }
.dln-chi.is-gio .dln-chi__han { fill: var(--v3-c-vang); opacity: 1; }
.dln-chi.is-gio .dln-chi__cham { opacity: .72; }
.dln-goc { fill: var(--v3-c-vang); opacity: .5; }
.dln-tu circle { fill: var(--v3-c-vang); opacity: .5; }
/* Kim xoay bằng rotate(a 240 240) ở thuộc tính; không đặt transform-origin vì sẽ chồng lên tâm xoay */
.dln-kim { opacity: 0; }
.dln-kim path { fill: var(--v3-c-vang); }
.dln-bt.is-gio .dln-kim { opacity: 1; }
.dln-o { fill: var(--v3-tool-sau); opacity: 0; }
.dln-o.is-chon { opacity: .72; }
.dln-vong { transform-origin: 240px 240px; }
.dln-thien__han { fill: var(--v3-c-nga); }
.dln-thien.is-khong .dln-thien__han { opacity: .28; }
.dln-tuong__han { fill: var(--v3-tool-chu); }
.dln-tuong.is-hoi .dln-tuong__han { fill: var(--v3-c-vang); }
.dln-khia { fill: var(--v3-c-vang); opacity: 0; }
.dln-chieu { fill: none; stroke: var(--v3-tool-chu); stroke-width: 1; vector-effect: non-scaling-stroke; opacity: .72; }
.dln-khoang__day { fill: var(--v3-n-1); }
.dln-tu-khoa, .dln-truyen { opacity: 0; }
.dln-khoa__han { fill: var(--v3-c-nga); }
.dln-soi { fill: none; stroke: var(--v3-c-vang); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: 0; }
.dln-hat circle { fill: var(--v3-tool); stroke: var(--v3-c-vang); stroke-width: 1; vector-effect: non-scaling-stroke; }
.dln-hat__han { fill: var(--v3-c-nga); }
.dln-bt.is-ket .dln-khia { opacity: 1; }
.dln-bt.is-ket .dln-tu-khoa, .dln-bt.is-ket .dln-truyen { opacity: 1; }
.dln-bt.is-ket .dln-o.is-truyen[data-tt="1"], .dln-bt.is-ket .dln-o.is-truyen[data-tt="2"] { opacity: 0; }
.dln-bt.is-ket .dln-o.is-chon { opacity: .72; }
.dln-tuong, .dln-thien, .dln-hat, .dln-khoa { pointer-events: none; }
.dln-vong, .dln-khoang, .dln-truyen { pointer-events: none; }

/* Màn chờ: vòng Chi thuận, vòng Tướng nghịch */
.dln-trang [data-man="cho"]:not([data-cho="loi"]) .dln-vong-thien { animation: dln-quay calc(var(--v3-t-dinh) * 6) linear infinite; }
.dln-trang [data-man="cho"]:not([data-cho="loi"]) .dln-vong-tuong { animation: dln-quay calc(var(--v3-t-dinh) * 5) linear infinite reverse; }
.dln-trang [data-man="cho"]:not([data-cho="loi"]) .dln-kim { opacity: 0; }
@keyframes dln-quay { to { transform: rotate(360deg); } }

/* Trạng thái cuối: gắn trên SVG để bản sao ở thanh dính và sổ đáy giữ đúng hình */
.dln-bt.is-ket .dln-vong-thien { transform: rotate(var(--dln-g-t, 0deg)); }
.dln-bt.is-ket .dln-khoang__day { fill: var(--v3-n-1); }

/* Đỉnh 0 đến 1.120 ms: hai vòng về góc thật, khía chạm kim, Tứ Khoá, sợi Tam Truyền, tấm và ấn */
.dln-trang [data-man="kq"] .dln-vong-thien { --dln-g: var(--dln-g-t, 0deg); animation: dln-chot calc(var(--v3-t-120) * 4) var(--v3-e-ra) backwards; }
.dln-trang [data-man="kq"] .dln-vong-tuong { --dln-g: 0deg; animation: dln-chot calc(var(--v3-t-120) * 4) var(--v3-e-ra) backwards; }
.dln-trang [data-man="kq"] .dln-khia { animation: dln-vao var(--v3-t-120) var(--v3-e-ra) calc(var(--v3-t-120) * 4) backwards; }
.dln-vanh { fill: none; stroke: var(--v3-c-vang); stroke-width: 1.5; vector-effect: non-scaling-stroke; opacity: 0; }
.dln-trang [data-man="kq"] .dln-vanh { animation: dln-sang var(--v3-t-120) var(--v3-e-deu) calc(var(--v3-t-120) * 4) backwards; }
.dln-trang [data-man="kq"] .dln-tu-khoa .dln-khoa { animation: dln-vao var(--v3-t-120) var(--v3-e-ra) calc(var(--v3-t-120) * 4 + (3 - var(--i)) * var(--v3-t-120) / 3) backwards; }
.dln-trang [data-man="kq"] .dln-tu-khoa { animation: dln-vao var(--v3-t-120) var(--v3-e-deu) calc(var(--v3-t-120) * 4) backwards; }
.dln-trang [data-man="kq"] .dln-hat[data-truyen="so"] { animation: dln-vao var(--v3-t-120) var(--v3-e-ra) calc(var(--v3-t-120) * 6) backwards; }
.dln-trang [data-man="kq"] .dln-hat[data-truyen="trung"] { animation: dln-vao var(--v3-t-120) var(--v3-e-ra) calc(var(--v3-t-120) * 22 / 3) backwards; }
.dln-trang [data-man="kq"] .dln-hat[data-truyen="mat"] { animation: dln-vao var(--v3-t-120) var(--v3-e-ra) calc(var(--v3-t-120) * 25 / 3) backwards; }
.dln-trang [data-man="kq"] .dln-soi[data-doan="so-trung"] { animation: v3-san-ve-quy var(--v3-t-120) var(--v3-e-deu) calc(var(--v3-t-120) * 19 / 3) backwards; }
.dln-trang [data-man="kq"] .dln-soi[data-doan="trung-mat"] { animation: v3-san-ve-quy var(--v3-t-120) var(--v3-e-deu) calc(var(--v3-t-120) * 23 / 3) backwards; }
.dln-trang [data-man="kq"] .dln-o.is-truyen[data-tt="0"] { animation: dln-vao var(--v3-t-200) var(--v3-e-ra) calc(var(--v3-t-120) * 6) backwards; }
.dln-trang [data-man="kq"] .dln-o.is-truyen[data-tt="1"] { animation: dln-quat-qua var(--v3-t-200) var(--v3-e-ra) calc(var(--v3-t-120) * 22 / 3) backwards; }
.dln-trang [data-man="kq"] .dln-o.is-truyen[data-tt="2"] { animation: dln-quat-qua var(--v3-t-200) var(--v3-e-ra) calc(var(--v3-t-120) * 25 / 3) backwards; }
.dln-trang .v3-san--kq [class~="v3-san-to__kq"] { --dln-y: 8px; animation: dln-vao calc(var(--v3-t-120) * 2) var(--v3-e-ra) calc(var(--v3-t-120) * 22 / 3) backwards; }
.dln-trang .dln-an-kq { animation: v3-san-an-dong var(--v3-t-360) var(--v3-e-ra) calc(var(--v3-t-120) * 8) backwards; }
@keyframes dln-vao { from { opacity: var(--dln-tu, 0); transform: translateY(var(--dln-y, 0)); } }
@keyframes dln-chot { from { transform: rotate(calc(var(--dln-g, 0deg) - var(--dln-chieu, 1) * 720deg)); } }
@keyframes dln-sang { 0%, 100% { opacity: 0; } 50% { opacity: .72; } }
@keyframes dln-quat-qua { 0% { opacity: 0; } 40% { opacity: .72; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .dln-trang [data-man] .dln-vong, .dln-trang [data-man] .dln-khia, .dln-trang [data-man] .dln-tu-khoa, .dln-trang [data-man] .dln-khoa, .dln-trang [data-man] .dln-hat, .dln-trang [data-man] .dln-soi, .dln-trang [data-man] .dln-o, .dln-trang .v3-san--kq [class~="v3-san-to__kq"], .dln-trang .dln-an-kq, .dln-trang [data-man] .dln-dia > circle { animation: none; }
}

/* Sân khấu: khoang tròn r114 (47,5% cạnh), H1, ấn */
.dln-khung { --v3-san-khoang: 26.25%; }
.dln-trang [data-man="kq"] .dln-khung { --v3-san-khoang: 36.25%; }
.dln-h1 { --v3-cs-dln-h1: min(var(--v3-san-h1), 7.6cqi); position: relative; font-size: var(--v3-cs-dln-h1); line-height: 1.04; white-space: nowrap; }
.dln-khung .dln-an-nhap { position: absolute; inset-block-start: 74%; inset-inline-start: 50%; translate: -50% 0; inline-size: min(var(--v3-k-24), 6.4cqi); block-size: min(var(--v3-k-24), 6.4cqi); }
.dln-trang .dln-cho__huy { min-block-size: var(--v3-cao-cham); pointer-events: auto; justify-self: center; animation: dln-vao var(--v3-t-200) var(--v3-e-ra) calc(var(--v3-t-200) * 5) backwards; }
.dln-trang [data-cho="loi"] .dln-cho__huy { display: none; }
.dln-khung [class~="v3-san-tam__kq"] { display: none; }
.dln-trang [class~="v3-san-ray__khoang"], .dln-trang [class~="v3-san-tam"] { pointer-events: none; }
.dln-trang [class~="v3-san-ray__khoang"] { padding: calc(var(--v3-san-mini) * .36); }
.dln-trang [class~="v3-san-ray__khoang"] b { font-family: var(--v3-f-ui); font-size: var(--v3-cs-13); font-weight: var(--v3-dam-5); line-height: 1.3; text-align: center; }
.dln-trang [class~="v3-san-ray__khoang"] small { font-size: var(--v3-cs-13); }
.dln-trang dialog [class~="v3-san-so-muc__khoang"] { inset: 36.25%; pointer-events: none; }
.dln-trang dialog [class~="v3-san-so-muc__khoang"] b { font-family: var(--v3-f-ui); font-size: var(--v3-cs-13); font-weight: var(--v3-dam-5); line-height: 1.2; }
/* Cuộn hoặc rê quạt: lưới Tứ Khoá nhường khoang cho tên mục; đang đọc mục Tứ Khoá thì lưới hiện đủ, tên mục ẩn */
.dln-trang .v3-san--thu .dln-tu-khoa, .dln-trang .dln-re .dln-tu-khoa { opacity: 0; transition: opacity var(--v3-t-phan-hoi) var(--v3-e-deu); }
.dln-trang .v3-san--thu[data-doc="ln-sect-tk"]:not(.dln-re) .dln-tu-khoa { opacity: 1; }
/* Rê hoặc focus quạt: khoang luôn hiện chữ Chi, Tướng, Lục Thân, dù bàn đang ở vị trí đầu trang (opacity của nền theo cuộn) */
.dln-trang .dln-re [class~="v3-san-ray__khoang"] { --dln-k: calc((1 - var(--v3-san-t, 0) * var(--v3-san-giam, .37)) / (1 - var(--v3-san-giam, .37))); opacity: 1; inline-size: calc(var(--v3-san-mini) * var(--dln-k)); block-size: calc(var(--v3-san-mini) * var(--dln-k)); padding: calc(var(--v3-san-mini) * .36 * var(--dln-k)); } /* khoang vẽ theo cỡ bàn thu nhỏ: nở theo bàn đang có để chữ nằm đúng tâm khi bàn chưa thu, chữ giữ cỡ 13 */
/* Sổ đáy: tên mục ở khoang nên lưới Tứ Khoá nhường chỗ, như khi cuộn */
.dln-trang dialog[class~="v3-san-so-muc"] .dln-bt .dln-tu-khoa { opacity: 0; }
.dln-trang .v3-san--thu[data-doc="ln-sect-tk"]:not(.dln-re) [class~="v3-san-ray__khoang"] [data-k-ten], .dln-trang .v3-san--thu[data-doc="ln-sect-tk"]:not(.dln-re) [class~="v3-san-ray__khoang"] [data-k-so] { opacity: 0; }

/* Quạt: lớp phủ HTML cắt theo hình quạt, bấm được ở mọi cỡ */
.dln-trang .dln-ray-o { display: none; padding: 0; pointer-events: none; }
.dln-trang .v3-san[data-man="kq"] .dln-ray-o, .dln-trang .v3-san-so-muc__ban .dln-ray-o { display: block; }
.dln-trang .dln-quat { position: absolute; inset: 0; display: block; pointer-events: auto; }
.dln-trang .dln-quat:focus-visible { outline: none; background: var(--v3-ph-vang-3); }

/* Form */
.dln-nhap.dln-nhap { grid-template-rows: minmax(0, 1fr); }
.dln-ngay-dau { display: flex; justify-content: space-between; flex-wrap: wrap; column-gap: var(--v3-k-8); }
.dln-ngay-dau { margin-block-end: var(--v3-k-8); align-items: center; }
.dln-ngay-dau > [class~="v3-san-nhan-o"] { inline-size: auto; flex: 0 1 auto; margin: 0; }
.dln-ngay-dau > .dln-bay-gio { margin-inline-start: auto; flex: 0 0 auto; }
.dln-bay-gio.dln-bay-gio { min-block-size: var(--v3-cao-cham); padding-block: 0; font-size: var(--v3-cs-13); }
.dln-goi-y-gio { margin-block-start: var(--v3-k-4); }
.dln-ngay [class~="v3-loi"] { grid-column: 1 / -1; }
.dln-doi { display: grid; gap: var(--v3-nhip-nhom); }
.dln-doi__o { min-inline-size: 0; }
.dln-ngay ~ [class~="v3-loi"]:empty, .dln-goi-y-gio ~ [class~="v3-loi"]:empty { display: none; }
.dln-truong-hoi { grid-template-columns: minmax(0, 1fr) auto; }
.dln-truong-hoi > [class~="v3-san-nhan-o"], .dln-hoi.dln-hoi, .dln-goi-y { grid-column: 1 / -1; }
.dln-hoi.dln-hoi { min-block-size: 7.5rem; resize: vertical; }
/* Từ 1024 form và bàn cân nhau (đáy form không thấp hơn đáy bàn 472): ô câu hỏi, khe và ghi chú dưới nút thu theo một thang ở mọi chiều cao màn */
@media (min-width: 1024px) {
  .dln-hoi.dln-hoi { min-block-size: 3.25rem; block-size: 3.25rem; }
  .dln-trang .dln-form { gap: var(--v3-k-12); }
  .dln-trang .dln-form [class~="v3-san-chan"] { margin-block-start: 0; gap: var(--v3-k-8); }
  .dln-trang .dln-ngay-dau { margin-block-end: var(--v3-k-4); }
  .dln-trang .dln-goi-y-gio { margin-block-start: 0; }
}
.dln-truong-hoi > .dln-dem { grid-column: 2; grid-row: 3; margin-block-start: var(--v3-k-4); display: flex; align-items: center; block-size: var(--v3-k-32); font-size: var(--v3-cs-13); font-weight: var(--v3-dam-4); font-variant-numeric: lining-nums tabular-nums; color: var(--v3-c-nhan); }
.dln-goi-y { grid-row: 3; margin-block-start: var(--v3-k-4); }
.dln-goi-y [class~="v3-goi-y-gap__nut"] { min-block-size: var(--v3-k-32); }
.dln-goi-y__ds { display: grid; }
.dln-goi-y__cau { display: block; inline-size: 100%; min-block-size: var(--v3-cao-cham); padding: var(--v3-k-4) 0; font-family: var(--v3-f-ui); font-size: var(--v3-cs-13); line-height: 1.5; text-align: start; color: var(--v3-c-nga-phu); background: none; border: 0; cursor: pointer; }
.dln-goi-y__cau:focus-visible { outline: var(--v3-vien-2) solid var(--v3-c-vang); outline-offset: var(--v3-vien-2); }
@media (hover: hover) { .dln-goi-y__cau:hover { color: var(--v3-c-vang); } }
.dln-trang [class~="v3-chon__muc"] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: var(--v3-k-8); row-gap: 0; }
.dln-trang [class~="v3-chon__muc"] > span { grid-column: 1; min-inline-size: 0; }
.dln-trang [class~="v3-chon__muc"]::after { grid-column: 2; grid-row: 1 / span 2; justify-self: end; }
.dln-hint { grid-column: 1; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--v3-cs-13); font-weight: var(--v3-dam-4); color: var(--v3-c-nhan); }
/* Danh sách Sự Việc rộng hơn ô để hint một dòng; neo mép phải, tick sát phải */
.dln-trang .dln-chon-sv [class~="v3-chon__ds"] { inset-inline-start: auto; inline-size: max(100%, min(22rem, calc(100vw - 2 * var(--v3-le)))); }
@media (min-width: 640px) { .dln-doi { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; } .dln-doi__o { display: grid; grid-template-rows: subgrid; grid-row: span 2; } }

/* Tấm kết luận */
.dln-tam-dau { position: relative; display: grid; gap: var(--v3-k-4); }
.dln-trang .dln-cau-gio { display: flex; align-items: center; min-block-size: var(--v3-k-32); margin-block-start: 0; }
.dln-lien { white-space: nowrap; }
.dln-trang [class~="v3-san-ten-kq"] { column-gap: var(--v3-k-8); align-items: baseline; }
.dln-ten-han { font-size: var(--v3-cs-16); }
.dln-canh { display: grid; gap: var(--v3-k-4); }
.dln-canh:not([hidden]) { margin-inline-end: calc(var(--v3-k-48) + var(--v3-k-8)); } /* chừa chỗ cho ấn ở góc phải tấm */
.dln-doi-gio__nut { justify-self: start; }
.dln-tam-dau .dln-an-kq { position: absolute; inset-block-start: 0; inset-inline-end: 0; inline-size: var(--v3-k-48); block-size: var(--v3-k-48); }
.dln-trang [class~="v3-san-so-ba"] { grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr) minmax(0, .9fr); }
.dln-trang [class~="v3-san-so-ba"] dd { text-wrap: balance; }
.dln-trang [class~="v3-san-so-ba"] dd { overflow-wrap: anywhere; }
.dln-trang [class~="v3-san-so-ba"] small { display: block; font-size: var(--v3-cs-13); font-weight: var(--v3-dam-4); color: var(--v3-c-nhan); }

/* Bộ phần tử dùng chung trong kết quả */
.dln-dong dt, .dln-dong dd { overflow-wrap: anywhere; }
.dln-ke { margin: 0; padding: 0; list-style: none; }
.dln-lon { font-size: var(--v3-cs-16); color: var(--v3-c-nga); }
.dln-phu { color: var(--v3-c-nhan); }
.dln-khuyen { color: var(--v3-c-nga); }
.dln-kv { color: var(--v3-c-nhan); }
.dln-moc { font-size: var(--v3-cs-13); font-weight: var(--v3-dam-5); color: var(--v3-c-vang); }
.dln-cat { font-size: var(--v3-cs-13); font-weight: var(--v3-dam-5); white-space: nowrap; }
.dln-cat--cat { color: var(--v3-c-dat-ok); }
.dln-cat--hung, .dln-cat--tieu_hung { color: var(--v3-c-dat); }
.dln-khoa-dong { display: block; }
.dln-khoa-dong b { font-weight: var(--v3-dam-5); color: var(--v3-c-nhan); }
.dln-khoa-khac { color: var(--v3-c-vang); }
.dln-tk { direction: rtl; }
.dln-tk > div { direction: ltr; }
.dln-trang .dln-tk { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) and (max-width: 1023px) { .dln-trang .dln-tk { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.v3-chu-to .dln-trang .dln-tk { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dln-cg { display: grid; gap: var(--v3-k-12); }
.dln-cg__muc { display: grid; gap: var(--v3-k-4); }
.dln-cg__muc strong { font-weight: var(--v3-dam-5); color: var(--v3-c-nga); }
.dln-cg__muc span { color: var(--v3-c-nga-phu); }
/* Thước một màu, khắc vạch */
.dln-thuoc { display: grid; gap: var(--v3-k-8); margin: 0; padding: 0; list-style: none; }
.dln-thuoc__dong { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; align-items: center; column-gap: var(--v3-k-12); font-size: var(--v3-cs-13); color: var(--v3-c-nga-phu); }
.dln-thuoc__vach { position: relative; display: block; block-size: var(--v3-k-8); background: repeating-linear-gradient(90deg, var(--v3-v-2) 0 var(--v3-vien-1), transparent var(--v3-vien-1) 10%); }
.dln-thuoc__vach::after { content: ""; position: absolute; inset: 0; inline-size: var(--dln-d, 0%); background: var(--v3-tool-sang); opacity: .72; }
.dln-thuoc__vach--am::after { background: var(--v3-c-nhan); }
.dln-thuoc__dong b { font-weight: var(--v3-dam-5); font-variant-numeric: lining-nums tabular-nums; color: var(--v3-c-nga); white-space: nowrap; }
.dln-thuoc small { color: var(--v3-c-nhan); }
.dln-bac { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--v3-k-4); margin: 0; padding: 0; list-style: none; font-size: var(--v3-cs-13); }
.dln-bac li { padding-block: var(--v3-k-4); text-align: center; color: var(--v3-c-nhan); border-block-end: var(--v3-vien-2) solid var(--v3-v-2); }
.dln-bac .dln-bac--dang { color: var(--v3-c-vang); border-block-end-color: var(--v3-c-vang); }
.dln-gio { text-decoration: none; }
.dln-gio small { display: block; font-size: var(--v3-cs-13); color: var(--v3-c-nhan); }
/* Luận giải AI */
.dln-ai { display: grid; gap: var(--v3-k-12); }
.dln-ai__hoi { color: var(--v3-c-nga); }
.dln-ai__chu { display: grid; gap: var(--v3-k-8); }
.dln-ai__mo[aria-busy="true"] { display: grid; gap: var(--v3-k-8); }
.dln-ai__dong { display: block; block-size: var(--v3-k-12); background: var(--v3-n-3); }
.dln-ai__dong:nth-of-type(2) { inline-size: 84%; }
.dln-ai__dong:nth-of-type(3) { inline-size: 62%; }
@media (prefers-reduced-motion: no-preference) { .dln-ai__dong { --dln-tu: .28; animation: dln-vao calc(var(--v3-t-dinh) * 1.5) var(--v3-e-deu) infinite alternate; } }

/* Khuôn chung: chip 5 cột, ba chỉ số bằng nhau, chữ nhỏ không dưới 13, bảng hiệu Bộ Công Cụ một cụm khắc */
.dln-trang small { font-size: var(--v3-cs-13); font-weight: var(--v3-dam-4); }
.dln-trang [class~="v3-san-chip"] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--v3-k-4); }
.dln-trang [class~="v3-san-chip__han"] { font-size: var(--v3-cs-16); }
.dln-trang [class~="v3-san-so-ba"] dd { --v3-cs-dln-so: min(var(--v3-cs-16), 4.3vi); font-size: var(--v3-cs-dln-so); }
.dln-trang [class~="v3-san-phong__khac"] { display: none; }
.dln-trang .smh-card { min-block-size: 0; }
.dln-trang .smh-card--current .smh-card__desc { grid-row: 2; }
.dln-trang [class~="v3-san-phong__dang"] { grid-column: 2 / -1; grid-row: 2; justify-self: end; }
@media (max-width: 767px) {
  .dln-trang [class~="v3-san-hang--ban"] > [class~="v3-san-hang__than"] { margin-inline: calc(-1 * var(--v3-le)); padding-inline: 0; }
  /* Bàn Lớn dưới 768: mỗi hàng lưới 2x2, tên hàng trải hết, nhãn cột nhỏ trên giá trị (thead ẩn nên nhãn lấy từ data-nhan); chữ lùi vào đúng lề trang */
  .dln-trang [class~="v3-san-hang--ban"] [class~="v3-san-bang"] tr { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--v3-k-4) var(--v3-k-12); padding-inline: var(--v3-le); }
  .dln-trang [class~="v3-san-hang--ban"] [class~="v3-san-bang"] td { min-inline-size: 0; }
  .dln-trang [class~="v3-san-hang--ban"] [class~="v3-san-bang"] td::before { content: attr(data-nhan); display: block; font-size: var(--v3-cs-13); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nhan); }
}
@media (max-width: 767px) {
  .v3-chu-to .dln-trang [class~="v3-san-hang--ban"] [class~="v3-san-bang"] tr { grid-template-columns: minmax(0, 1fr); }
  .v3-chu-to .dln-trang [class~="v3-san-hang--ban"] [class~="v3-san-bang"] td { display: flow-root; text-align: end; }
  .v3-chu-to .dln-trang [class~="v3-san-hang--ban"] [class~="v3-san-bang"] td::before { float: inline-start; text-align: start; margin-inline-end: var(--v3-k-12); }
}
/* Từ 1024 vị trí cột đọc lệch theo khung (khe lưới 64 px của doc trong man-kq có lúc cộng, có lúc không): JS đo khoảng từ mép trái hàng tới mép trái lưới (--dln-bl) để bảng phủ đúng từ mép trái lưới tới mép phải cột đọc */
@media (min-width: 1024px) {
  .dln-trang [class~="v3-san-hang--ban"] > [class~="v3-san-hang__than"] { margin-inline-start: calc(-1 * var(--dln-bl, calc(var(--v3-san-o) + var(--v3-k-48)))); }
}
/* Từ 768 đầu dính của Bàn Lớn rộng bằng cột đọc còn bảng rộng hơn: tắt dính để đầu không che chữ bảng */
@media (min-width: 768px) {
  .dln-trang [class~="v3-san-hang--ban"][open] > [class~="v3-san-hang__dau"] { position: static; }
}
@media (max-width: 639px), (min-width: 1024px) and (max-width: 1279px) {
  .v3-chu-to .dln-trang [class~="v3-san-so-ba"] dd { --v3-cs-dln-so: var(--v3-cs-16); }
  .v3-chu-to .dln-trang [class~="v3-san-so-ba"] { grid-template-columns: minmax(0, 1fr); }
  .v3-chu-to .dln-trang [class~="v3-san-so-ba"] > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--v3-k-12); padding-inline: 0; text-align: end; }
  .v3-chu-to .dln-trang [class~="v3-san-so-ba"] > div + div { border-inline-start: 0; border-block-start: var(--v3-vien-1) solid var(--v3-v-1); }
}
/* Hủy khi chờ: dưới 1024 nút nằm trong tấm chờ dưới bàn; từ 1024 tấm ở cột phải nên Hủy thứ hai đứng dưới bàn ở cột trái */
.dln-trang .dln-cho__huy--ban { display: none; }
@media (min-width: 1024px) {
  .dln-trang .dln-cho__huy:not(.dln-cho__huy--ban) { display: none; }
  .dln-trang [data-man="cho"]:not([data-cho="loi"]) .dln-cho__huy--ban { display: inline-flex; position: absolute; inset-block-start: calc(100% + var(--v3-k-12)); inset-inline: 0; inline-size: fit-content; margin-inline: auto; }
}
@media (max-width: 359px) {
  .dln-trang [class~="v3-san-chip"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .dln-trang [class~="v3-san-chip"] li { grid-column: span 2; }
  .dln-trang [class~="v3-san-chip"] li:nth-child(4) { grid-column: 2 / span 2; }
  .dln-trang [class~="v3-san-chip"] li:nth-child(5) { grid-column: 4 / span 2; }
}

/* Quạt bấm được: lớp phủ HTML cắt theo hình quạt r114 tới mép vuông, cùng góc ±15 độ với .dln-o */
.dln-trang .dln-quat[data-dia="0"] { clip-path: polygon(56.15% 72.94%, 54.12% 73.39%, 52.07% 73.66%, 50.00% 73.75%, 47.93% 73.66%, 45.88% 73.39%, 43.85% 72.94%, 36.60% 100.00%, 63.40% 100.00%); }
.dln-trang .dln-quat[data-dia="1"] { clip-path: polygon(43.85% 72.94%, 41.88% 72.32%, 39.96% 71.52%, 38.12% 70.57%, 36.38% 69.45%, 34.73% 68.19%, 33.21% 66.79%, 0.00% 100.00%, 36.60% 100.00%); }
.dln-trang .dln-quat[data-dia="2"] { clip-path: polygon(33.21% 66.79%, 31.81% 65.27%, 30.55% 63.62%, 29.43% 61.88%, 28.48% 60.04%, 27.68% 58.12%, 27.06% 56.15%, 0.00% 63.40%, 0.00% 100.00%); }
.dln-trang .dln-quat[data-dia="3"] { clip-path: polygon(27.06% 56.15%, 26.61% 54.12%, 26.34% 52.07%, 26.25% 50.00%, 26.34% 47.93%, 26.61% 45.88%, 27.06% 43.85%, 0.00% 36.60%, 0.00% 63.40%); }
.dln-trang .dln-quat[data-dia="4"] { clip-path: polygon(27.06% 43.85%, 27.68% 41.88%, 28.48% 39.96%, 29.43% 38.12%, 30.55% 36.38%, 31.81% 34.73%, 33.21% 33.21%, 0.00% 0.00%, 0.00% 36.60%); }
.dln-trang .dln-quat[data-dia="5"] { clip-path: polygon(33.21% 33.21%, 34.73% 31.81%, 36.38% 30.55%, 38.13% 29.43%, 39.96% 28.48%, 41.88% 27.68%, 43.85% 27.06%, 36.60% 0.00%, 0.00% 0.00%); }
.dln-trang .dln-quat[data-dia="6"] { clip-path: polygon(43.85% 27.06%, 45.88% 26.61%, 47.93% 26.34%, 50.00% 26.25%, 52.07% 26.34%, 54.12% 26.61%, 56.15% 27.06%, 63.40% 0.00%, 36.60% 0.00%); }
.dln-trang .dln-quat[data-dia="7"] { clip-path: polygon(56.15% 27.06%, 58.12% 27.68%, 60.04% 28.48%, 61.88% 29.43%, 63.62% 30.55%, 65.27% 31.81%, 66.79% 33.21%, 100.00% 0.00%, 63.40% 0.00%); }
.dln-trang .dln-quat[data-dia="8"] { clip-path: polygon(66.79% 33.21%, 68.19% 34.73%, 69.45% 36.38%, 70.57% 38.12%, 71.52% 39.96%, 72.32% 41.88%, 72.94% 43.85%, 100.00% 36.60%, 100.00% 0.00%); }
.dln-trang .dln-quat[data-dia="9"] { clip-path: polygon(72.94% 43.85%, 73.39% 45.88%, 73.66% 47.93%, 73.75% 50.00%, 73.66% 52.07%, 73.39% 54.12%, 72.94% 56.15%, 100.00% 63.40%, 100.00% 36.60%); }
.dln-trang .dln-quat[data-dia="10"] { clip-path: polygon(72.94% 56.15%, 72.32% 58.12%, 71.52% 60.04%, 70.57% 61.88%, 69.45% 63.62%, 68.19% 65.27%, 66.79% 66.79%, 100.00% 100.00%, 100.00% 63.40%); }
.dln-trang .dln-quat[data-dia="11"] { clip-path: polygon(66.79% 66.79%, 65.27% 68.19%, 63.62% 69.45%, 61.88% 70.57%, 60.04% 71.52%, 58.12% 72.32%, 56.15% 72.94%, 63.40% 100.00%, 100.00% 100.00%); }
