/* Lá Số Tử Vi — câu chuyện riêng của tool (bộ V3). Chỉ phần riêng: Thiên Bàn, bàn 12 cung, khoảnh khắc đỉnh,
   bố cục khối luận giải. Ô nhập, nút, thẻ, bảng, gấp mở, thông báo lấy từ v3-khung.css, không vẽ lại ở đây. */

/* ── Màu riêng của Tử Vi (tím Tử Vi). Bốn biến ngoại lệ duy nhất của KE-HOACH 5.1; mọi độ mờ dẫn xuất từ chúng ── */
.lstv-trang {
  --v3-tool: #6c3082; --v3-tool-sang: #9050b0; --v3-tool-sau: #4a1860; --v3-tool-chu: #b489be;
  --lstv-tim-nhe: color-mix(in srgb, var(--v3-tool) calc(var(--v3-mo-2) * 100%), transparent);
  --lstv-tim-mo: color-mix(in srgb, var(--v3-tool) calc(var(--v3-mo-1) * 100%), transparent);
  --lstv-tim-vua: color-mix(in srgb, var(--v3-tool) calc(var(--v3-mo-3) * 100%), transparent);
}
.lstv-trang strong { font-weight: inherit; color: var(--v3-tool-chu); }
.lstv-mau-chu { color: var(--v3-tool-chu); }
.lstv-trang { overflow-wrap: anywhere; }
.lstv-doc { max-inline-size: 54ch; }
.lstv-trang { --lstv-nav-h: var(--v3-k-48); }
.lstv-khoi, .lstv-cung-the, .lstv-dv, .lstv-lg { scroll-margin-block-start: calc(var(--header-bar) + var(--lstv-nav-h) + var(--v3-k-16)); }
.lstv-khoi:focus, .lstv-tieu:focus { outline: none; }

/* ── MÀN NHẬP: một trục căn giữa. Dưới 768 tiêu đề + ấn lên trước form; 768-1023 một cột theo thứ tự nhãn, H1, lời dẫn, Thiên Bàn, ghi chú, form;
   từ 1024 cột trái (nhãn, H1, lời dẫn, Thiên Bàn) căn giữa dọc theo cột form, bốn cung chính trải đủ bề ngang ở hàng dưới ── */
.lstv-defs { position: absolute; inline-size: 0; block-size: 0; overflow: hidden; }
/* Dưới 768: nhãn, ấn + H1 một hàng, form, lời dẫn, Thiên Bàn, ghi chú, bốn cung chính. Lời dẫn (.tc-lead-inject) do plugin chèn ngay sau H1 */
.lstv-nhap { grid-template-columns: minmax(0, 1fr) auto auto minmax(0, 1fr); justify-items: center; text-align: center; column-gap: var(--v3-k-12);
  grid-template-areas: "mat mat mat mat" ". an h1 ." "form form form form" "ld ld ld ld" "ban ban ban ban" "ghi ghi ghi ghi" "cuoi cuoi cuoi cuoi"; }
.lstv-cot-chuyen, .lstv-chuyen-dau, .lstv-cot-form { display: contents; }
.lstv-mat { grid-area: mat; margin: 0; }
.lstv-an { grid-area: an; flex: none; inline-size: var(--v3-k-48); block-size: var(--v3-k-48); }
.lstv-an__nen { fill: var(--lstv-tim-nhe); stroke: var(--v3-tool-sang); stroke-width: 8px; }
.lstv-an__cung { fill: var(--v3-tool-chu); }
.lstv-an__menh { fill: var(--v3-c-vang); }
.lstv-an__tam { fill: var(--v3-tool); stroke: var(--v3-tool-chu); stroke-width: 8px; }
.lstv-h1 { grid-area: h1; text-align: start; }
.lstv-h1 br { display: none; }
.lstv-cot-form > .tc-lead-inject { grid-area: ld; margin: 0; max-inline-size: var(--v3-r-form); }
.lstv-ban-nho { grid-area: ban; inline-size: min(100%, 15rem); }
.lstv-ghi-chu { grid-area: ghi; margin: 0; max-inline-size: var(--v3-r-form); }
.lstv-form { grid-area: form; }
.lstv-cuoi { grid-area: cuoi; justify-items: center; inline-size: 100%; text-align: center; }
/* Màn chờ và màn lỗi: cao đúng phần màn dưới header, nội dung căn giữa dọc; Thiên Bàn min(22,5rem, 52svh), lỗi thì thu còn min(10rem, 24svh) và ngừng quay */
.lstv-ban-cho { inline-size: min(22.5rem, 52svh, calc(100vw - 2 * var(--v3-le))); }
.lstv-cho { display: grid; place-items: start center; align-content: start; padding-block-start: 10svh; box-sizing: border-box; max-inline-size: 37.5rem; min-block-size: calc(100svh - var(--v3-dinh-tren)); block-size: calc(100svh - var(--v3-dinh-tren)); scroll-margin-block-start: var(--v3-dinh-tren); }
/* Nội dung nằm hơi cao hơn tâm (10svh từ đỉnh) để khoảng trống phía trên không quá lớn ở màn cao */
.lstv-cho__goc { inline-size: 100%; }
.lstv-cho__goc > p { justify-self: stretch; }
.lstv-cho__goc[data-v3-cho="loi"] .lstv-ban-cho { inline-size: min(10rem, 24svh); }
.lstv-cho__goc[data-v3-cho="loi"] .lstv-tb__chi-vong, .lstv-cho__goc[data-v3-cho="loi"] .lstv-tb__cung { animation: none; }
.lstv-nho-chu { color: var(--v3-tool-chu); }
.lstv-chip { margin: 0; padding: 0; list-style: none; text-align: center; }
.lstv-chip li { display: inline-flex; align-items: center; gap: var(--v3-k-4); min-block-size: var(--v3-k-32); margin: 0 var(--v3-k-8) var(--v3-k-8) 0; padding: 0 var(--v3-k-12); font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); font-weight: var(--v3-dam-6); line-height: var(--v3-cd-giao-dien); letter-spacing: var(--v3-gc-2); color: var(--v3-c-nga); background: var(--lstv-tim-nhe); border: var(--v3-vien-1) solid var(--v3-tool); border-radius: var(--v3-bo-tron); }
.lstv-trich { margin: 0; }
.lstv-kl .lstv-chip { text-align: start; }
.lstv-y { display: grid; gap: var(--v3-k-4); margin: 0; padding: 0; list-style: none; }
.lstv-doan-ct { display: grid; justify-items: center; }
.lstv-doan-phu { display: block; }
.lstv-form { grid-template-columns: minmax(0, 1fr); inline-size: 100%; max-inline-size: var(--v3-r-form); margin-inline: auto; text-align: start; }
@media (min-width: 768px) {
  .lstv-nhap { grid-template-columns: minmax(0, 1fr); grid-template-areas: "mat" "h1" "ld" "ban" "ghi" "form" "cuoi"; row-gap: var(--v3-nhip-nhom); }
  .lstv-an { display: none; }
  .lstv-h1 { text-align: center; }
  .lstv-y { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--v3-k-24); }
}
@media (min-width: 1024px) {
  .lstv-nhap { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 1fr repeat(5, auto) 1fr auto; align-items: center; column-gap: var(--v3-k-48);
    grid-template-areas: ". form" "mat form" "h1 form" "ld form" "ban form" "ghi form" ". form" "cuoi cuoi"; }
  .lstv-form { align-self: center; }
  .lstv-ban-nho { inline-size: min(100%, 13rem); }
  .lstv-cuoi { margin-block-start: var(--v3-k-12); padding-block-start: var(--v3-nhip-giua); border-block-start: var(--v3-vien-1) solid var(--v3-v-1); }
}

/* ── THIÊN BÀN: một biểu tượng xuyên suốt, vòng 12 chi + 12 nút cung + ấn giữa ── */
.lstv-tb { display: block; inline-size: 100%; block-size: auto; }
.lstv-tb__nen { fill: var(--lstv-tim-nhe); stroke: var(--v3-tool); stroke-width: 1px; }
.lstv-tb__vanh, .lstv-tb__noi { fill: none; stroke: var(--v3-tool); stroke-width: 1px; stroke-dasharray: 3 5; opacity: var(--v3-mo-4); }
.lstv-tb__chi { fill: var(--v3-tool-chu); font-family: var(--v3-f-han); font-size: var(--v3-cs-12); font-weight: var(--v3-dam-5); opacity: var(--v3-mo-5); }
.lstv-tb__cung circle { fill: var(--v3-n-1); stroke: var(--v3-tool); stroke-width: 1px; }
.lstv-tb__cung text { fill: var(--v3-tool-chu); font-family: var(--v3-f-han); font-size: var(--v3-cs-12); font-weight: var(--v3-dam-5); }
.lstv-tb__cung { opacity: var(--v3-mo-4); }
.lstv-tb__cung--menh { opacity: var(--v3-mo-6); }
.lstv-tb__cung--menh circle { stroke: var(--v3-c-vang); stroke-width: 2px; }
.lstv-tb__cung--menh text { fill: var(--v3-c-vang); }
.lstv-tb__an circle { fill: var(--v3-n-1); stroke: var(--v3-tool); stroke-width: 2px; }
.lstv-tb__an-chu { fill: var(--v3-tool-chu); font-family: var(--v3-f-han); font-size: var(--v3-cs-20); font-weight: var(--v3-dam-5); }
.lstv-tb__an-phu { fill: var(--v3-c-nhan); font-family: var(--v3-f-han); font-size: var(--v3-cs-12); font-weight: var(--v3-dam-5); }
/* Màn chờ: vòng chi quay chậm, nút cung lần lượt sáng (chỉ transform, opacity) */
.lstv-tb--cho .lstv-tb__chi-vong { transform-origin: 120px 120px; animation: lstv-quay calc(var(--v3-t-dinh) * 40) linear infinite; }
.lstv-tb--cho .lstv-tb__cung { animation: lstv-sang calc(var(--v3-t-dinh) * 2) var(--v3-e-deu) infinite; }
.lstv-sang-0 { animation-delay: 0ms; }
.lstv-sang-1 { animation-delay: calc(1 * var(--v3-t-200)); }
.lstv-sang-2 { animation-delay: calc(2 * var(--v3-t-200)); }
.lstv-sang-3 { animation-delay: calc(3 * var(--v3-t-200)); }
.lstv-sang-4 { animation-delay: calc(4 * var(--v3-t-200)); }
.lstv-sang-5 { animation-delay: calc(5 * var(--v3-t-200)); }
.lstv-sang-6 { animation-delay: calc(6 * var(--v3-t-200)); }
.lstv-sang-7 { animation-delay: calc(7 * var(--v3-t-200)); }
.lstv-sang-8 { animation-delay: calc(8 * var(--v3-t-200)); }
.lstv-sang-9 { animation-delay: calc(9 * var(--v3-t-200)); }
.lstv-sang-10 { animation-delay: calc(10 * var(--v3-t-200)); }
.lstv-sang-11 { animation-delay: calc(11 * var(--v3-t-200)); }
@keyframes lstv-quay { to { transform: rotate(360deg); } }
@keyframes lstv-sang { 0%, 100% { opacity: var(--v3-mo-3); } 50% { opacity: var(--v3-mo-6); } }

/* ── BÀN 12 CUNG (màn kết quả): lưới 4x4, mọi ô cùng cỡ, ô giữa 2x2. Hai chế độ theo bề rộng bàn ── */
.lstv-ban { container-type: inline-size; position: relative; box-sizing: border-box; inline-size: 100%; max-inline-size: var(--v3-r-tool); margin-inline: auto; padding: var(--v3-k-8); background: var(--v3-n-1); border: var(--v3-vien-1) solid var(--v3-tool); border-radius: var(--v3-bo-4); }
.lstv-ban__luoi { --lstv-h: 31.25cqw; position: relative; isolation: isolate; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 1fr; border-block-start: var(--v3-vien-1) solid var(--v3-v-2); border-inline-start: var(--v3-vien-1) solid var(--v3-v-2); }
.lstv-ban__duong { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; overflow: visible; pointer-events: none; z-index: -1; }
.lstv-duong { stroke: var(--v3-tool-sang); stroke-width: 1px; vector-effect: non-scaling-stroke; opacity: var(--v3-mo-3); }
.lstv-duong--doi { stroke-dasharray: 4 5; }
.lstv-o { position: relative; box-sizing: border-box; display: grid; min-inline-size: 0; align-self: stretch; justify-self: stretch; aspect-ratio: 4 / 5; margin: 0; padding: 0; font-family: var(--v3-f-ui); color: var(--v3-c-nga-phu); background: transparent; border-inline-end: var(--v3-vien-1) solid var(--v3-v-2); border-block-end: var(--v3-vien-1) solid var(--v3-v-2); cursor: pointer; transition: transform var(--v3-t-120) var(--v3-e-deu); }
/* Nhãn tam phương 三合 對宮: hai bản, chỉ một bản hiện. Gọn: ở hàng chân, bên phải địa chi. Đủ chữ: ở hàng tên cung, đẩy sang phải. Không absolute nên không bao giờ đè chữ, và ô không đổi cao */
.lstv-o__nut { box-sizing: border-box; display: flex; flex-direction: column; align-items: stretch; gap: var(--v3-k-4); min-inline-size: 0; max-inline-size: 100%; overflow-wrap: anywhere; margin: var(--v3-k-4); padding: 0; font: inherit; color: inherit; text-align: start; background: none; border: 0; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.lstv-o__nut:focus-visible { outline: var(--v3-vien-2) solid var(--v3-tool-sang); outline-offset: calc(-1 * var(--v3-vien-2)); }
.lstv-o:active { transform: scale(.99); }
.lstv-o[data-chon] { background: var(--lstv-tim-vua); }
.lstv-o[data-tp="hop"], .lstv-o[data-tp="doi"] { background: var(--lstv-tim-mo); }
.lstv-o--menh::after { content: ''; position: absolute; inset: 0; border: var(--v3-vien-2) solid var(--v3-c-vang); pointer-events: none; }
@media (hover: hover) { .lstv-o:hover { outline: var(--v3-vien-1) solid var(--v3-tool-sang); outline-offset: calc(-1 * var(--v3-vien-1)); } }
.lstv-o__dau { display: flex; flex-wrap: wrap; align-items: baseline; align-content: flex-start; gap: var(--v3-k-4); min-inline-size: 0; min-block-size: calc(var(--v3-cs-13) * 3); }
.lstv-o__ten { font-size: var(--v3-cs-13); font-weight: var(--v3-dam-5); line-height: var(--v3-cd-giao-dien); letter-spacing: var(--v3-gc-1); color: var(--v3-tool-chu); min-inline-size: 0; overflow-wrap: anywhere; }
.lstv-o__chinh { display: grid; align-content: start; gap: 0; font-family: var(--v3-f-serif); }
/* Sao lưu niên giữ đúng một hàng: sao không đủ chỗ xuống hàng ẩn, không cắt giữa tên, thẻ Cung đang chọn có đủ */
.lstv-o__luu { display: flex; flex-wrap: wrap; align-items: center; align-content: flex-start; gap: 0 var(--v3-k-4); box-sizing: border-box; min-block-size: var(--v3-k-24); max-block-size: var(--v3-k-24); overflow: hidden; }
.lstv-o__tren { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--v3-k-4); }
.lstv-o__chan { margin-block-start: auto; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--v3-k-4) var(--v3-k-8); }
.lstv-o__chan > .lstv-o__them { gap: var(--v3-k-8); margin-inline-start: auto; }
.lstv-o__them { display: none; }
.lstv-o__tp { flex: none; margin-inline-start: auto; font-family: var(--v3-f-han); font-size: var(--v3-cs-12); font-weight: var(--v3-dam-5); line-height: 1; color: var(--v3-tool-chu); }
.lstv-o__tp:empty, .lstv-o__tp--day { display: none; }
.lstv-o__th { display: none; }
.lstv-ban--th .lstv-o__th { display: grid; gap: 0; }
.lstv-o__th-muc { font-size: var(--v3-cs-13); line-height: var(--v3-cd-giao-dien); letter-spacing: var(--v3-gc-1); color: var(--v3-c-nhan); }
.lstv-o__chi, .lstv-o__can, .lstv-o__dv, .lstv-o__ts { font-size: var(--v3-cs-13); font-weight: var(--v3-dam-4); line-height: var(--v3-cd-giao-dien); letter-spacing: var(--v3-gc-1); color: var(--v3-c-nhan); }
.lstv-o__dv--nay { color: var(--v3-tool-chu); }
.lstv-o__trong { font-size: var(--v3-cs-18); font-weight: var(--v3-dam-6); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nhan); }
.lstv-o__phu .lstv-s:not(:last-child)::after, .lstv-ds-sao--phu .lstv-s::after { content: ' ·'; color: var(--v3-c-nhan); }
.lstv-ds-sao--phu li:last-child .lstv-s::after { content: none; }
.lstv-o__phu .lstv-s { margin-inline-end: var(--v3-k-4); }
/* Ngôi sao: chính tinh vai Số liệu (14), lên vai Giá trị (18) khi bàn đủ chữ; phụ tinh vai Chú thích (13); độ sáng và Tứ Hóa nằm ở chữ Hán đi kèm */
.lstv-s { display: inline; font-size: var(--v3-cs-13); font-weight: var(--v3-dam-4); line-height: var(--v3-cd-giao-dien); letter-spacing: var(--v3-gc-1); color: var(--v3-c-nhan); }
.lstv-s--chinh { font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); font-weight: var(--v3-dam-5); letter-spacing: var(--v3-gc-0); color: var(--v3-c-nga); }
.lstv-s--luu { flex: none; white-space: nowrap; font-weight: var(--v3-dam-5); }
.lstv-s--cat { color: var(--v3-c-dat-ok); }
.lstv-s--hung { color: var(--v3-c-dat); }
.lstv-sh, .lstv-th { margin-inline-start: var(--v3-k-4); font-size: var(--v3-cs-12); }
.lstv-b-mieu .lstv-sh, .lstv-b-vuong .lstv-sh { color: var(--v3-c-vang); }
.lstv-b-dac .lstv-sh, .lstv-b-loi .lstv-sh { color: var(--v3-c-nga-phu); }
.lstv-b-ham .lstv-sh { color: var(--v3-c-dat); }
.lstv-h-loc { color: var(--v3-h-moc); }
.lstv-h-quyen { color: var(--v3-c-vang); }
.lstv-h-khoa { color: var(--v3-h-thuy); }
.lstv-h-ky { color: var(--v3-c-loi); }
.lstv-ban .lstv-th, .lstv-ban .lstv-o__th-muc { color: var(--v3-tool-chu); }
.lstv-ban .lstv-sh { display: none; color: var(--v3-c-nhan); }
.lstv-bd { font-size: var(--v3-cs-12); color: var(--v3-c-nhan); }
.lstv-bd--menh, .lstv-bd--than { color: var(--v3-tool-chu); }
.lstv-bd--triet, .lstv-bd--tuan { color: var(--v3-c-dat); }
/* Ô giữa 2x2: ấn Tử Vi Đẩu Số, giới tính, ngày sinh, Nạp Âm, Cục */
.lstv-giua { grid-area: 2 / 2 / 4 / 4; position: relative; display: grid; align-content: center; justify-items: center; gap: var(--v3-k-4); padding: var(--v3-k-8); text-align: center; border-inline-end: var(--v3-vien-1) solid var(--v3-v-2); border-block-end: var(--v3-vien-1) solid var(--v3-v-2); }
.lstv-giua p { margin: 0; }
/* Mỗi dòng chữ ô giữa có nền cùng màu nền ô, đường tam phương đi sau chữ */
.lstv-giua p, .lstv-giua li { padding-inline: var(--v3-k-4); background: var(--v3-n-1); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.lstv-giua__an { font-size: var(--v3-cs-20); color: var(--v3-tool-chu); }
.lstv-giua__ten { font-size: var(--v3-cs-16); color: var(--v3-tool-chu); }
.lstv-giua__ds { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; font-family: var(--v3-f-ui); font-size: var(--v3-cs-13); font-weight: var(--v3-dam-4); line-height: var(--v3-cd-giao-dien); letter-spacing: var(--v3-gc-1); color: var(--v3-c-nhan); }
/* Bàn rất hẹp (320): tên cung dài có thể xuống tới ba dòng, nên chừa ba dòng để chính tinh vẫn cùng mép trên ở mọi ô */
@container (max-width: 20rem) {
  .lstv-o__dau { min-block-size: calc(var(--v3-cs-13) * 4.5); }
}
/* Chế độ đủ chữ khi bàn rộng từ 40rem: hiện can, đại vận, phụ tinh, Trường Sinh, điểm; ô vuông hơn */
@container (min-width: 40rem) {
  .lstv-ban__luoi { --lstv-h: 25cqw; }
  .lstv-o { aspect-ratio: 1 / 1; }
  .lstv-o__nut { padding: var(--v3-k-4); }
  .lstv-o__them { display: flex; }
  .lstv-o__phu { display: block; }
  .lstv-giua__ds .lstv-o__them { display: block; }
  .lstv-ban .lstv-sh { display: inline; }
  .lstv-o__tp--gon { display: none; }
  .lstv-o__tp--day { display: block; }
  .lstv-o__tp--day:empty { display: none; }
  .lstv-o__ten { font-size: var(--v3-cs-14); white-space: normal; }
  .lstv-o__dau { flex-wrap: nowrap; min-block-size: calc(var(--v3-cs-14) * 1.5); }
  .lstv-giua { padding: var(--v3-k-16); gap: var(--v3-k-8); }
  .lstv-giua__an { font-size: var(--v3-cs-24); }
  .lstv-s--chinh { font-family: var(--v3-f-serif); font-size: var(--v3-cs-18); font-weight: var(--v3-dam-6); font-variant-numeric: lining-nums; }
}
@container (min-width: 56rem) {
  .lstv-ban__luoi { --lstv-h: 20cqw; }
  .lstv-o { aspect-ratio: 5 / 4; }
}

/* ── KHOẢNH KHẮC ĐỈNH (trần 1.200 ms tính từ delay + duration: ô cuối 550 + 360, viền Mệnh, đường và thẻ 670 + 360 = 1.030) : 11 ô từ vòng tròn Thiên Bàn mở ra thành lá số vuông, Cung Mệnh sáng cuối cùng ── */
.lstv-c-0 { --lstv-cx: -37.5cqw; } .lstv-c-1 { --lstv-cx: -12.5cqw; } .lstv-c-2 { --lstv-cx: 12.5cqw; } .lstv-c-3 { --lstv-cx: 37.5cqw; }
.lstv-r-0 { --lstv-cy: calc(var(--lstv-h) * -1.5); } .lstv-r-1 { --lstv-cy: calc(var(--lstv-h) * -.5); } .lstv-r-2 { --lstv-cy: calc(var(--lstv-h) * .5); } .lstv-r-3 { --lstv-cy: calc(var(--lstv-h) * 1.5); }
.lstv-k-0 { --lstv-g: 195deg; } .lstv-k-1 { --lstv-g: 225deg; } .lstv-k-2 { --lstv-g: 255deg; } .lstv-k-3 { --lstv-g: 285deg; }
.lstv-k-4 { --lstv-g: 315deg; } .lstv-k-5 { --lstv-g: 345deg; } .lstv-k-6 { --lstv-g: 375deg; } .lstv-k-7 { --lstv-g: 405deg; }
.lstv-k-8 { --lstv-g: 435deg; } .lstv-k-9 { --lstv-g: 465deg; } .lstv-k-10 { --lstv-g: 495deg; } .lstv-k-11 { --lstv-g: 525deg; }
.lstv-d-0 { --lstv-d: 0; } .lstv-d-1 { --lstv-d: 1; } .lstv-d-2 { --lstv-d: 2; } .lstv-d-3 { --lstv-d: 3; } .lstv-d-4 { --lstv-d: 4; } .lstv-d-5 { --lstv-d: 5; }
.lstv-d-6 { --lstv-d: 6; } .lstv-d-7 { --lstv-d: 7; } .lstv-d-8 { --lstv-d: 8; } .lstv-d-9 { --lstv-d: 9; } .lstv-d-10 { --lstv-d: 10; } .lstv-d-11 { --lstv-d: 11; }
.lstv-khu--dinh .lstv-o { animation: lstv-hien var(--v3-t-360) var(--v3-e-ra) both; animation-delay: calc(var(--lstv-d) * var(--v3-t-120) / 2.4); }
.lstv-khu--dinh .lstv-giua { animation: lstv-hien-giua var(--v3-t-360) var(--v3-e-ra) both; }
.lstv-khu--dinh .lstv-o--menh::after { animation: lstv-menh var(--v3-t-360) var(--v3-e-ra) both; animation-delay: calc(11 * var(--v3-t-120) / 2.4 + var(--v3-t-120)); }
.lstv-khu--dinh .lstv-chon-the, .lstv-khu--dinh .lstv-ban__duong { animation: lstv-hien-giua var(--v3-t-360) var(--v3-e-ra) both; animation-delay: calc(11 * var(--v3-t-120) / 2.4 + var(--v3-t-120)); }
@keyframes lstv-hien { from { opacity: 0; transform: translate(calc(sin(var(--lstv-g)) * 38cqw - var(--lstv-cx)), calc(cos(var(--lstv-g)) * -38cqw - var(--lstv-cy))) scale(.5); } }
@keyframes lstv-hien-giua { from { opacity: 0; } }
@keyframes lstv-menh { from { opacity: 0; transform: scale(1.1); } }

/* ── Thanh chọn sao lưu, hành động, thẻ Cung đang chọn, chú giải ── */
.lstv-hang-chon:empty { display: none; }
.lstv-hang-chon { align-items: center; }
.lstv-pd--ban { margin: 0; }
/* Khu bàn và thẻ: dưới 1200 thẻ nằm dưới bàn, từ 1200 thẻ ở cột phải 20rem, dính khi cuộn và tự cuộn trong nếu dài hơn màn */
.lstv-khu { display: grid; inline-size: 100%; grid-template-columns: minmax(0, 1fr); gap: var(--v3-nhip-giua); align-items: start; max-inline-size: var(--v3-r-tool); margin-inline: auto; }
.lstv-khu__ban { display: grid; gap: var(--v3-nhip-nhom); min-inline-size: 0; }
.lstv-chon-the { inline-size: 100%; padding: var(--v3-k-16); gap: var(--v3-k-8); }
@media (min-width: 1200px) {
  .lstv-khu { grid-template-columns: minmax(0, 1fr) 20rem; }
  .lstv-chon-the { position: sticky; inset-block-start: calc(var(--v3-dinh-tren) + var(--v3-k-16)); max-block-size: calc(100svh - var(--v3-dinh-tren) - var(--v3-k-32)); overflow-y: auto; overscroll-behavior: contain; }
}
.lstv-chon__ten { overflow-wrap: anywhere; }
.lstv-chon__dau { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--v3-k-8); }
.lstv-chon__huy { margin: 0; }
.lstv-chon__huy:empty { display: none; }
.lstv-chon__so { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--v3-k-4) var(--v3-k-16); margin: 0; padding: 0; list-style: none; }
.lstv-ds-sao { margin: 0; padding: 0; list-style: none; }
.lstv-ds-sao--chinh { display: grid; gap: var(--v3-k-8); }
.lstv-ds-sao--phu { display: flex; flex-wrap: wrap; column-gap: var(--v3-k-16); }
.lstv-ds-sao--chinh .lstv-s--chinh { font-family: var(--v3-f-serif); font-size: var(--v3-cs-16); font-weight: var(--v3-dam-6); }
.lstv-chi-tiet__dong, .lstv-chi-tiet > summary { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--v3-k-8); }
/* Hàng chính tinh: lưới cột cố định (tên | chữ Hán + nhãn độ sáng | chữ Hán + nhãn Hóa), cột cùng loại thẳng hàng giữa các hàng */
.lstv-hs { display: grid; grid-template-columns: minmax(0, 1fr) 3rem 4.5rem; align-items: center; column-gap: var(--v3-k-4); flex: 1; font-weight: var(--v3-dam-4); min-inline-size: 0; font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nga-phu); }
.lstv-hs__ten { font-weight: var(--v3-dam-5); color: var(--v3-c-nga); overflow-wrap: break-word; }
.lstv-hs__sang, .lstv-hs__hoa { white-space: nowrap; }
.lstv-chi-tiet > summary { gap: var(--v3-k-4); padding-inline: var(--v3-k-8) var(--v3-k-12); }
.lstv-chi-tiet__dong { min-block-size: var(--v3-k-32); }
.lstv-ds-sao--chinh .lstv-chi-tiet__dong { padding-inline: var(--v3-k-8) calc(var(--v3-k-32) + var(--v3-k-4)); }
.lstv-chon-the { scroll-margin-block: calc(var(--v3-dinh-tren) + var(--v3-k-8)) var(--v3-k-8); }
.lstv-chon__co-ta { flex: 1 1 100%; }
.lstv-chi-tiet > summary { font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); }
.lstv-gap--phang { display: block; }
.lstv-gap--phang > .lstv-gap__dong { box-sizing: border-box; min-block-size: var(--v3-cao-cham); padding: var(--v3-k-12) var(--v3-k-16); align-items: center; }
.lstv-o__phu .lstv-s, .lstv-ds-sao--phu .lstv-s { display: inline-block; white-space: nowrap; }
.lstv-chi-tiet__than { display: grid; gap: var(--v3-nhip-nhom); padding-block-end: var(--v3-k-8); }
.lstv-chon__lk { display: flex; align-items: center; justify-content: space-between; gap: var(--v3-k-12); box-sizing: border-box; min-block-size: var(--v3-cao-cham); padding: var(--v3-k-8) var(--v3-k-12); font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); font-weight: var(--v3-dam-5); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nga-phu); text-decoration: none; border: var(--v3-vien-1) solid var(--v3-v-1); border-radius: var(--v3-bo-8); transition: transform var(--v3-t-120) var(--v3-e-deu); }
.lstv-chon__lk:active { transform: scale(.99); }
.lstv-chon__lk:focus-visible { outline: var(--v3-vien-2) solid var(--v3-c-vang); outline-offset: var(--v3-vien-2); }
@media (hover: hover) {
  .lstv-chon__lk:hover { color: var(--v3-c-vang); border-color: var(--v3-c-vang); }
}
.lstv-phu-ta { display: grid; gap: var(--v3-k-8); }
/* Chú giải ký hiệu: gấp mở đóng sẵn; bên trong 2 cột điện thoại, 3 cột từ 768, canh trái */
.lstv-chu-giai { inline-size: 100%; }
.lstv-cg-ds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--v3-k-12) var(--v3-k-16); margin: 0; padding: 0; list-style: none; text-align: start; font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nga-phu); }
.lstv-cg-ds li { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--v3-k-4) var(--v3-k-8); min-inline-size: 0; }
.lstv-cg-ghi { flex-basis: 100%; }
@media (min-width: 768px) {
  .lstv-cg-ds { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ── Khối kết quả ── */
/* Hero gọn: rộng bằng khu bàn, không đường kẻ; nhãn + chú thích một hàng, tiêu đề một dòng từ 1024, biệt danh + chip một hàng khi đủ chỗ */
.lstv-kl { display: grid; gap: 0; min-inline-size: 0; inline-size: 100%; max-inline-size: var(--v3-r-tool); margin-inline: auto; scroll-margin-block-start: calc(var(--v3-dinh-tren) + var(--v3-k-8)); }
.lstv-kl__tren, .lstv-kl__duoi { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 var(--v3-k-16); min-inline-size: 0; }
.lstv-kl__tren p, .lstv-kl__duoi p, .lstv-kl__duoi ul { margin: 0; }
/* Chip hero: một kiểu dòng chữ phụ ngăn bằng · có khoảng trắng hai bên ở mọi khung; dấu chấm đứng đầu dòng thì ẩn (JS), không bao giờ treo đầu hay cuối dòng */
.lstv-kl .lstv-chip { display: block; font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nga-phu); }
.lstv-kl .lstv-chip li { display: inline; min-block-size: 0; margin: 0; padding: 0; font-weight: var(--v3-dam-4); letter-spacing: var(--v3-gc-0); color: var(--v3-c-nga-phu); background: none; border: 0; border-radius: var(--v3-bo-0); }
.lstv-kl .lstv-chip li + li::before { content: '\00a0·\00a0'; color: var(--v3-c-nhan); }
.lstv-kl .lstv-chip li.lstv-chip__xuong::before { content: none; }
.lstv-trang { --v3-cs-hero: clamp(2.5rem, 4vw, 3.5rem); }
.lstv-tieu { margin: 0; font-size: var(--v3-cs-hero); text-wrap: balance; }
.lstv-tieu__sao { white-space: nowrap; }
.v3-chu-to .lstv-tieu__sao { white-space: normal; }
.lstv-tieu { overflow-wrap: anywhere; min-inline-size: 0; }
.lstv-tieu__cham--an { visibility: hidden; }
.lstv-biet-danh { font-style: italic; }
.lstv-tom__ds { display: grid; gap: var(--v3-k-4); margin: 0; padding: 0; list-style: none; }
.lstv-con { min-inline-size: 0; }
.lstv-buoc { display: flex; align-items: center; gap: var(--v3-k-8); }
.lstv-buoc__so { display: inline-grid; place-items: center; inline-size: var(--v3-k-32); block-size: var(--v3-k-32); font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); font-weight: var(--v3-dam-5); line-height: 1; color: var(--v3-c-nga); background: var(--lstv-tim-nhe); border: var(--v3-vien-1) solid var(--v3-tool); border-radius: var(--v3-bo-tron); }
.lstv-nhan-nho { display: inline-block; padding: 0 var(--v3-k-8); font-family: var(--v3-f-ui); font-size: var(--v3-cs-13); font-weight: var(--v3-dam-4); line-height: var(--v3-cd-giao-dien); letter-spacing: var(--v3-gc-1); color: var(--v3-tool-chu); border: var(--v3-vien-1) solid var(--v3-tool); border-radius: var(--v3-bo-tron); }
.lstv-nhan-hoa { text-transform: uppercase; }
.lstv-ds { display: grid; gap: var(--v3-k-8); margin: 0; padding: 0; list-style: none; font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nga-phu); }
.lstv-ghi { padding-inline-start: var(--v3-k-12); border-inline-start: var(--v3-vien-2) solid var(--v3-tool); }
.lstv-sao-ds { margin: 0; }
.lstv-sao-ds .lstv-s { margin-inline-end: var(--v3-k-12); }
.lstv-cl-daicat, .lstv-cl-cat { border-color: var(--v3-c-dat-ok); color: var(--v3-c-dat-ok); }
.lstv-cl-hung { border-color: var(--v3-c-dat); color: var(--v3-c-dat); }
.lstv-l-cat { color: var(--v3-c-dat-ok); }
.lstv-l-hung, .lstv-l-sat { color: var(--v3-c-dat); }
.lstv-lg__diem { min-inline-size: var(--v3-k-48); text-align: end; font-variant-numeric: lining-nums tabular-nums; }
.lstv-lg__nhan { color: var(--v3-tool-chu); }
.lstv-vd-4 .lstv-lg__nhan, .lstv-vd-5 .lstv-lg__nhan { color: var(--v3-c-dat-ok); }
.lstv-vd-1 .lstv-lg__nhan, .lstv-vd-2 .lstv-lg__nhan { color: var(--v3-c-dat); }
.lstv-gio--nay { border-color: var(--v3-c-vang); }
.lstv-bang { overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; }
/* Bảng Phi cung: chỉ cuộn ngang, cột định sẵn (Cung 4,5rem, bốn cột Hóa 7,5rem), tiêu đề cột không xuống dòng */
.lstv-bang--pc { inline-size: 34.5rem; min-inline-size: 34.5rem; }
.lstv-pc-cung { inline-size: 4.5rem; }
.lstv-pc-hoa { inline-size: 7.5rem; }
.lstv-bang--pc th { white-space: nowrap; }
.lstv-luu-y { align-items: baseline; }
.lstv-ket { justify-items: center; text-align: center; }
.lstv-hanh-dong { justify-content: center; }
/* Bốn nút cuối: lưới 2x2 dưới 768, 4 cột bằng nhau từ 768, mọi nút cùng rộng, rộng bằng khu bàn */
.lstv-buoc-tiep { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--v3-k-8); inline-size: 100%; max-inline-size: var(--v3-r-tool); margin-inline: auto; }
.lstv-btn-cuoi { display: flex; align-items: center; justify-content: center; gap: var(--v3-k-8); white-space: nowrap; align-self: stretch; justify-self: stretch; inline-size: 100%; max-inline-size: none; }
@media (min-width: 768px) {
  .lstv-buoc-tiep { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.lstv-phong-hop { max-inline-size: calc(100% - 2 * var(--v3-le)); inline-size: var(--v3-r-rong); }
.lstv-phong-than .lstv-ban { min-inline-size: 64rem; }
/* Một cột đọc duy nhất: mọi thẻ cùng rộng bằng --v3-r-chu, mép phải thẳng hàng. Bàn 12 cung (khu rộng) là ngoại lệ duy nhất */
.lstv-cho { inline-size: 100%; margin-inline: auto; }
/* Một lưới, hai mép (từ 1280): mép A rộng 67,5rem (hero, tab, bàn, nút dưới bàn, nav, 4 nút cuối), mép B là cột đọc 45rem có mép phải trùng mép phải khu bàn. Dưới 1280 mọi khối cùng một mép trái, cùng bề rộng */
.lstv-dinh, .lstv-sau, .lstv-bo, .lstv-hanh-dong { inline-size: 100%; max-inline-size: var(--v3-r-tool); margin-inline: auto; min-inline-size: 0; }
.lstv-tom, .lstv-muc { inline-size: 100%; min-inline-size: 0; }
.lstv-cot { inline-size: 100%; min-inline-size: 0; }
@media (min-width: 1280px) {
  .lstv-tom, .lstv-chu-giai, .lstv-muc { max-inline-size: var(--v3-r-chu); margin-inline-start: auto; }
}
/* Đệm thẻ một kiểu: 16 dưới 768, 24 từ 768 */
.lstv-the { padding: var(--v3-k-16); }
@media (min-width: 768px) {
  .lstv-the { padding: var(--v3-k-24); }
}
.lstv-tom { display: grid; gap: var(--v3-k-4); }
.lstv-tom p { margin: 0; }
.lstv-ds-gap { display: grid; gap: var(--v3-k-8); }
.lstv-luoi-5, .lstv-luoi-chinh, .lstv-luoi-hoa, .lstv-luoi-sao, .lstv-luoi-gio { --v3-cot: 2; }
@media (min-width: 768px) {
  .lstv-luoi-5, .lstv-luoi-chinh, .lstv-luoi-hoa, .lstv-luoi-sao, .lstv-luoi-gio { --v3-cot: 3; }
}
/* Mục lục: 2 cột từ 600, 3 cột từ 1024, hàng ≥ 44 px, rộng bằng cột nội dung */
.lstv-muc__ds { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--v3-k-8) var(--v3-k-16); }
@media (min-width: 600px) {
  .lstv-muc__ds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .lstv-muc__ds { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Thanh chuyển phần: dưới 1280 là dải ngang dính dưới header (mục đang đọc tô vàng, bóng mép); từ 1280 là cột trái 15rem dính */
.lstv-bo { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--v3-nhip-giua); }
.lstv-nav { position: sticky; inset-block-start: var(--v3-dinh-tren); z-index: var(--v3-z-noi); box-sizing: border-box; min-inline-size: 0; background: var(--v3-n-0); border-block-end: var(--v3-vien-1) solid var(--v3-v-1); transition: transform var(--v3-t-200) var(--v3-e-ra); }
/* Header trượt đi thì khối dính nhảy lên ngay: lệch ngược bằng transform rồi trượt về 0 cùng lúc với header (JS thêm lớp trong một nhịp) */
.lstv-nav--lech-xuong { transform: translateY(var(--header-bar)); transition: none; }
.lstv-nav--lech-len { transform: translateY(calc(-1 * var(--header-bar))); transition: none; }
.lstv-nav__ds { display: flex; gap: var(--v3-k-8); margin: 0; padding: 0 var(--v3-k-8); list-style: none; overflow-x: auto; overscroll-behavior-x: contain; -webkit-mask-image: linear-gradient(90deg, transparent, var(--v3-n-0) var(--v3-k-24), var(--v3-n-0) calc(100% - var(--v3-k-24)), transparent); mask-image: linear-gradient(90deg, transparent, var(--v3-n-0) var(--v3-k-24), var(--v3-n-0) calc(100% - var(--v3-k-24)), transparent); }
.lstv-nav--het-trai .lstv-nav__ds { -webkit-mask-image: linear-gradient(90deg, var(--v3-n-0) calc(100% - var(--v3-k-24)), transparent); mask-image: linear-gradient(90deg, var(--v3-n-0) calc(100% - var(--v3-k-24)), transparent); }
.lstv-nav--het-phai .lstv-nav__ds { -webkit-mask-image: linear-gradient(90deg, transparent, var(--v3-n-0) var(--v3-k-24)); mask-image: linear-gradient(90deg, transparent, var(--v3-n-0) var(--v3-k-24)); }
.lstv-nav--het-trai.lstv-nav--het-phai .lstv-nav__ds { -webkit-mask-image: none; mask-image: none; }
.lstv-nav__ds::-webkit-scrollbar { display: none; }
.lstv-nav__ds li { flex: none; }
.lstv-nav__lk { display: flex; align-items: center; box-sizing: border-box; min-block-size: var(--v3-cao-cham); padding: 0 var(--v3-k-12); font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); font-weight: var(--v3-dam-5); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nga-phu); text-decoration: none; white-space: nowrap; border-block-end: var(--v3-vien-2) solid transparent; }
.lstv-nav__lk[aria-current] { color: var(--v3-c-vang); border-color: var(--v3-c-vang); }
@media (hover: hover) {
  .lstv-nav__lk:hover { color: var(--v3-c-vang); }
}
@media (min-width: 1280px) {
  .lstv-trang { --lstv-nav-h: calc(var(--v3-k-48) * 0); }
  .lstv-bo { grid-template-columns: 15rem minmax(0, var(--v3-r-chu)); justify-content: space-between; column-gap: var(--v3-k-48); align-items: start; }
  .lstv-nav { inset-block-start: calc(var(--v3-dinh-tren) + var(--v3-k-16)); max-block-size: calc(100svh - var(--v3-dinh-tren) - var(--v3-k-32)); overflow-y: auto; overscroll-behavior: contain; background: none; border-block-end: 0; }
  .lstv-nav__ds { flex-direction: column; gap: var(--v3-k-8); padding: 0; overflow: visible; -webkit-mask-image: none; mask-image: none; }
  .lstv-nav__lk { border-block-end: 0; border-inline-start: var(--v3-vien-2) solid var(--v3-v-1); }
  .lstv-nav__lk[aria-current] { border-inline-start-color: var(--v3-c-vang); }
}
/* Gấp mở dữ liệu (11 cung, đại vận): một dòng đầu gọn */
.lstv-gap--the > summary { font-size: var(--v3-cs-16); }
.lstv-gap__dong { display: flex; flex: 1; flex-wrap: wrap; align-items: baseline; gap: var(--v3-k-4) var(--v3-k-12); min-inline-size: 0; }
.lstv-gap__ten { font-family: var(--v3-f-serif); font-weight: var(--v3-dam-6); }
.lstv-gap__phu { font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); font-weight: var(--v3-dam-4); color: var(--v3-c-nga-phu); }
.lstv-gap__so { flex: none; }
.lstv-gap__phu::before { content: '·'; margin-inline-end: var(--v3-k-8); color: var(--v3-c-nhan); }
.lstv-dv > summary .lstv-gap__dong { flex-wrap: nowrap; align-items: center; gap: var(--v3-k-8); }
.lstv-dv > summary .lstv-gap__ten, .lstv-dv > summary .lstv-gap__phu { flex: none; }
.lstv-dv--nay { border-color: var(--v3-c-vang); }
/* Liên kết khám phá: hàng có rê, có mũi tên, cùng kiểu thẻ */
.lstv-lk-ds { gap: var(--v3-k-8); }
.lstv-lk-the { display: flex; align-items: center; justify-content: space-between; gap: var(--v3-k-12); min-block-size: var(--v3-cao-cham); padding: var(--v3-k-12) var(--v3-k-16); font-family: var(--v3-f-ui); font-size: var(--v3-cs-14); line-height: var(--v3-cd-giao-dien); color: var(--v3-c-nga-phu); }
.lstv-lk-mui { flex: none; color: var(--v3-c-vang); }
@media (hover: hover) {
  .lstv-lk-the:hover { color: var(--v3-c-vang); }
}
.lstv-gap > summary { text-wrap: balance; }
.lstv-nb { white-space: nowrap; }
.lstv-bang .lstv-nhan-nho { display: block; inline-size: fit-content; margin-block-start: var(--v3-k-4); }
.lstv-hh { white-space: normal; }
.lstv-lk { display: inline-block; padding-block: var(--v3-k-12); }
.lstv-tin { text-align: center; }

/* Điện thoại hẹp (kể cả phóng 200% ở 390 px = 195): thẻ bớt đệm, số bước ẩn để không tràn khối */
@media (max-width: 480px) {
  .lstv-chu, .lstv-chinh, .lstv-sao-the, .lstv-gio, .lstv-cach, .lstv-tp, .lstv-truong-phai { padding: var(--v3-k-16); }
}
@media (max-width: 360px) {
  .lstv-buoc__so { display: none; }
}

/* ── VÒNG 3 ── */
.lstv-pd { margin: 0; }
/* SL-26: đáy khung tool vừa đủ, khoảng trống màn nhập ≤ 140 px */
.lstv-trang { padding-block-end: var(--v3-k-32); }
/* Lưu Nhật: chip canh trái theo tiêu đề, nhãn Hóa không xuống dòng, ô giờ cao đều */
.lstv-con .lstv-chip { text-align: start; }
.lstv-hoa .lstv-th { white-space: nowrap; }
.lstv-ky { white-space: nowrap; }
.lstv-luoi-gio { align-items: stretch; }
.lstv-gio { align-content: start; min-block-size: var(--v3-k-64); }
/* Ấn đóng khi lá số hoàn tất (SL-21): chữ âm bản trên nền đất đỏ, viền lệch nhẹ như đóng tay, 64 px */
.lstv-an-son { inline-size: var(--v3-k-64); block-size: var(--v3-k-64); }
.lstv-an-son__nen { fill: color-mix(in srgb, var(--v3-c-dat) 58%, var(--v3-n-0)); }
.lstv-an-son__vien { fill: none; stroke: var(--v3-c-nga); stroke-width: 1px; opacity: var(--v3-mo-4); }
.lstv-an-son__chu { fill: var(--v3-c-nga); font-family: var(--v3-f-han); font-size: var(--v3-cs-24); font-weight: var(--v3-dam-5); }

/* Điện thoại: bàn tràn hết bề ngang màn (bỏ đệm và viền hai bên) để tên sao vừa một dòng */
@media (max-width: 767px) {
  .lstv-khu__ban .lstv-ban { inline-size: calc(100% + 2 * var(--v3-le)); max-inline-size: none; margin-inline: calc(-1 * var(--v3-le)); padding: 0; border-inline: 0; border-radius: var(--v3-bo-0); }
  /* Vai Tên sao trong ô: tên một dòng, cụm ký hiệu về mép phải cùng dòng; ô dưới 390 hết chỗ thì cả cụm xuống một dòng riêng, vẫn ở mép phải */
  .lstv-o__chinh .lstv-s--chinh { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; column-gap: var(--v3-k-4); font-size: var(--v3-cs-13); white-space: nowrap; }
  .lstv-o__chinh .lstv-ky { margin-inline-start: auto; }
  .lstv-o__chinh .lstv-ky .lstv-sh, .lstv-o__chinh .lstv-ky .lstv-th { margin-inline-start: 0; }
  .lstv-o__luu .lstv-s--luu { max-inline-size: 100%; overflow: hidden; text-overflow: ellipsis; letter-spacing: var(--v3-gc-0); }
  .v3-chu-to .lstv-o__chinh .lstv-s--chinh { white-space: normal; }
}
