/* Bản đồ sao (/ban-do-sao/, khoá 'chiemtinh') — 13/10/2026. Nạp sau hoptuoi.css + kethon.css + tuvi.css (khung nhập dùng chung kiểu trang tử vi).
   Màu chỉ lấy từ biến của cute.css: nguyên tố dùng mực ngũ hành (--boi-hanh-*): Lửa = hỏa, Đất = thổ, Khí = mộc, Nước = thủy. */

.ct-page { --ct-lua: var(--boi-hanh-hoa); --ct-dat: var(--boi-hanh-tho); --ct-khi: var(--boi-hanh-moc); --ct-nuoc: var(--boi-hanh-thuy); --ct-line: var(--theme-border-strong); }
.ct-tool-head { background: linear-gradient(115deg, color-mix(in srgb, var(--boi-sky) 75%, var(--theme-bg-elevated)), color-mix(in srgb, var(--boi-pink) 45%, var(--theme-bg-elevated)) 55%, color-mix(in srgb, var(--boi-butter) 60%, var(--theme-bg-elevated))); }
:root:not([data-theme="light"]) .ct-tool-head { background: linear-gradient(115deg, var(--boi-sky), var(--boi-pink) 55%, var(--boi-butter)); }

/* Ký hiệu chiêm tinh: phông có sẵn trên máy, dạng chữ (không emoji). */
.ct-gl, .ct-w-glyph, .ct-w-pg { font-family: "Segoe UI Symbol", "Noto Sans Symbols 2", "Noto Sans Symbols", "Apple Symbols", "DejaVu Sans", sans-serif; font-variant-emoji: text; }

/* ---------- Form ---------- */
.ct-hrow { grid-template-columns: 1fr 1fr; max-width: 360px; }
.ct-geo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ct-geo[hidden], .ct-geo-hint[hidden] { display: none; }
.ct-adv { margin: 4px 0 0; padding: 0; border-top: 1px dashed var(--theme-border); }
.ct-adv > summary { padding: 14px 0 10px; cursor: pointer; font: 800 .92rem/1.3 var(--boi-font-head); color: var(--theme-text-secondary); list-style: none; }
.ct-adv > summary::-webkit-details-marker { display: none; }
.ct-adv > summary::before { content: "+"; display: inline-block; width: 1.2em; font-weight: 900; color: var(--theme-gold-text); }
.ct-adv[open] > summary::before { content: "−"; }
.ct-adv > summary:focus-visible { outline: 3px solid var(--theme-gold-text); outline-offset: 2px; border-radius: 8px; }
.ct-adv-in { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 0 14px; }

/* ---------- Vòng bản đồ sao ---------- */
.ct-chart-sec .kh-sec-h small { display: block; margin-top: 4px; font: 600 .86rem/1.5 var(--boi-font-body); color: var(--theme-text-soft); }
.ct-wheel-wrap { max-width: 640px; margin: 8px auto 0; }
.ct-wheel { display: block; width: 100%; height: auto; }
.ct-w-bg { fill: var(--theme-bg-elevated); stroke: var(--ct-line); stroke-width: 1.5; }
.ct-w-sign { stroke: var(--ct-line); stroke-width: 1; }
.ct-w-sign.is-lua { fill: color-mix(in srgb, var(--ct-lua) 16%, var(--theme-bg-elevated)); }
.ct-w-sign.is-dat { fill: color-mix(in srgb, var(--ct-dat) 16%, var(--theme-bg-elevated)); }
.ct-w-sign.is-khi { fill: color-mix(in srgb, var(--ct-khi) 16%, var(--theme-bg-elevated)); }
.ct-w-sign.is-nuoc { fill: color-mix(in srgb, var(--ct-nuoc) 16%, var(--theme-bg-elevated)); }
.ct-w-glyph { font-size: 22px; text-anchor: middle; dominant-baseline: central; fill: var(--theme-text-strong); }
.ct-w-glyph.is-lua { fill: var(--ct-lua); }
.ct-w-glyph.is-dat { fill: var(--ct-dat); }
.ct-w-glyph.is-khi { fill: var(--ct-khi); }
.ct-w-glyph.is-nuoc { fill: var(--ct-nuoc); }
.ct-w-sname { font: 700 11.5px/1 var(--boi-font-body); text-anchor: middle; dominant-baseline: central; fill: var(--theme-text-secondary); }
.ct-w-axisl { stroke: var(--theme-text-strong); stroke-width: 1.8; }
.ct-w-arrow { fill: var(--theme-text-strong); }
.ct-w-axisd { font: 700 12px/1 var(--boi-font-body); text-anchor: middle; dominant-baseline: central; fill: var(--theme-text-soft); }
.ct-w-tick { stroke: var(--ct-line); stroke-width: 1; }
.ct-w-ring { fill: none; stroke: var(--ct-line); stroke-width: 1.2; }
.ct-w-house { stroke: var(--ct-line); stroke-width: 1; stroke-dasharray: 3 3; }
.ct-w-house.is-axis { stroke: var(--theme-text-strong); stroke-width: 1.8; stroke-dasharray: none; }
.ct-w-hnum { font: 800 14px/1 var(--boi-font-body); text-anchor: middle; dominant-baseline: central; fill: var(--theme-text-soft); }
.ct-w-axis { font: 900 16px/1 var(--boi-font-head); text-anchor: middle; dominant-baseline: central; fill: var(--theme-text-strong); }
.ct-w-asp { stroke-width: 1.4; opacity: .85; }
.ct-w-asp.is-hai { stroke: var(--ct-nuoc); }
.ct-w-asp.is-cang { stroke: var(--ct-lua); }
.ct-w-ptick { stroke: var(--theme-text-strong); stroke-width: 1.5; }
.ct-w-pg { font-size: 25px; text-anchor: middle; dominant-baseline: central; fill: var(--theme-text-strong); }
.ct-w-pl.is-sun .ct-w-pg, .ct-w-pl.is-mars .ct-w-pg { fill: var(--ct-lua); }
.ct-w-pl.is-moon .ct-w-pg, .ct-w-pl.is-neptune .ct-w-pg { fill: var(--ct-nuoc); }
.ct-w-pl.is-venus .ct-w-pg, .ct-w-pl.is-saturn .ct-w-pg { fill: var(--ct-dat); }
.ct-w-pl.is-mercury .ct-w-pg, .ct-w-pl.is-uranus .ct-w-pg { fill: var(--ct-khi); }
.ct-w-pl.is-jupiter .ct-w-pg, .ct-w-pl.is-pluto .ct-w-pg { fill: var(--theme-gold-text); }
.ct-w-pl.is-node .ct-w-pg, .ct-w-pl.is-chiron .ct-w-pg { fill: var(--theme-text-secondary); }
/* Cùng màu đó cho ký hiệu sao trong bảng, chú thích, Ba điểm chính */
.ct-pc { color: var(--theme-text-strong); }
.ct-pc.is-sun, .ct-pc.is-mars { color: var(--ct-lua); }
.ct-pc.is-moon, .ct-pc.is-neptune { color: var(--ct-nuoc); }
.ct-pc.is-venus, .ct-pc.is-saturn { color: var(--ct-dat); }
.ct-pc.is-mercury, .ct-pc.is-uranus { color: var(--ct-khi); }
.ct-pc.is-jupiter, .ct-pc.is-pluto, .ct-pc.is-asc, .ct-pc.is-mc { color: var(--theme-gold-text); }
.ct-pc.is-node, .ct-pc.is-chiron { color: var(--theme-text-secondary); }
.ct-ec.is-lua { color: var(--ct-lua); }
.ct-ec.is-dat { color: var(--ct-dat); }
.ct-ec.is-khi { color: var(--ct-khi); }
.ct-ec.is-nuoc { color: var(--ct-nuoc); }
.ct-ag.is-hai { color: var(--ct-nuoc); }
.ct-ag.is-cang { color: var(--ct-lua); }
.ct-ag.is-nhap { color: var(--theme-gold-text); }
.ct-w-pd { font: 800 14px/1 var(--boi-font-body); text-anchor: middle; dominant-baseline: central; fill: var(--theme-text-secondary); }

.ct-legend { justify-content: center; }
.ct-lg::before, .ct-lg-l::before { content: ""; display: inline-block; vertical-align: middle; margin-right: 6px; }
.ct-lg::before { width: 12px; height: 12px; border-radius: 4px; }
.ct-lg.is-lua::before { background: color-mix(in srgb, var(--ct-lua) 35%, var(--theme-bg-elevated)); }
.ct-lg.is-dat::before { background: color-mix(in srgb, var(--ct-dat) 35%, var(--theme-bg-elevated)); }
.ct-lg.is-khi::before { background: color-mix(in srgb, var(--ct-khi) 35%, var(--theme-bg-elevated)); }
.ct-lg.is-nuoc::before { background: color-mix(in srgb, var(--ct-nuoc) 35%, var(--theme-bg-elevated)); }
.ct-lg-l::before { width: 18px; height: 3px; border-radius: 2px; }
.ct-lg-l.is-hai::before { background: var(--ct-nuoc); }
.ct-lg-l.is-cang::before { background: var(--ct-lua); }
.ct-act { justify-content: center; margin: 14px 0 4px; }

.ct-notes { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.ct-notes li { margin: 0; padding: 10px 14px; border-radius: 14px; font-size: .9rem; line-height: 1.55; color: var(--boi-sticker-ink); background: color-mix(in srgb, var(--boi-butter) 55%, var(--theme-bg-elevated)); }

/* ---------- Big 3 ---------- */
.ct-b3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.ct-b3-c { margin: 0; padding: 16px 18px; border-radius: 22px; border: 1.5px solid var(--theme-border); background: var(--theme-bg-elevated); box-shadow: var(--boi-card-shadow); }
.ct-b3-c.is-lua { border-top: 5px solid var(--ct-lua); }
.ct-b3-c.is-dat { border-top: 5px solid var(--ct-dat); }
.ct-b3-c.is-khi { border-top: 5px solid var(--ct-khi); }
.ct-b3-c.is-nuoc { border-top: 5px solid var(--ct-nuoc); }
.ct-b3-i { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 0 8px; border-radius: 50%; font-size: 1.45rem; font-weight: 900; background: var(--theme-bg); border: 1.5px solid var(--theme-border); }
.ct-b3-h { margin: 0; font: 900 1.08rem/1.3 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-b3-h small { font: 700 .84rem/1 var(--boi-font-body); color: var(--theme-text-soft); }
.ct-b3-k { margin: 2px 0 8px; font-size: .86rem; font-weight: 800; color: var(--theme-gold-text); }
.ct-b3-c p:last-child { margin: 0; line-height: 1.65; }

/* ---------- Tổng quan ---------- */
.ct-h4 { margin: 18px 0 6px; font: 900 1.02rem/1.3 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-bal { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 28px; }
.ct-bal .ct-h4 { margin-top: 4px; }
.ct-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ct-bar { display: grid; grid-template-columns: 92px 1fr 28px; align-items: center; gap: 10px; margin: 0; font-size: .92rem; font-weight: 700; color: var(--theme-text-secondary); }
.ct-bar-t { height: 12px; border-radius: 999px; background: color-mix(in srgb, var(--theme-border) 70%, transparent); overflow: hidden; }
.ct-bar-t span { display: block; height: 100%; border-radius: 999px; background: var(--theme-gold-text); }
.ct-bar.is-lua .ct-bar-t span { background: var(--ct-lua); }
.ct-bar.is-dat .ct-bar-t span { background: var(--ct-dat); }
.ct-bar.is-khi .ct-bar-t span { background: var(--ct-khi); }
.ct-bar.is-nuoc .ct-bar-t span { background: var(--ct-nuoc); }
.ct-bar-v { text-align: right; font-weight: 900; color: var(--theme-text-strong); }
.ct-small { margin: 8px 0 0; font-size: .84rem; line-height: 1.55; color: var(--theme-text-soft); }
.ct-lines { margin: 10px 0 0; padding-left: 1.2em; display: grid; gap: 6px; line-height: 1.6; }
.ct-empty { margin: 0; padding: 14px 16px; border-radius: 16px; background: color-mix(in srgb, var(--boi-sky) 14%, var(--theme-bg-elevated)); line-height: 1.6; }
.ct-dim { color: var(--theme-text-soft); }

/* ---------- Hành tinh ---------- */
.ct-pos-table th[scope="row"] { white-space: nowrap; }
.ct-pos-table .ct-gl { display: inline-block; width: 1.3em; text-align: center; color: var(--theme-gold-text); }
.ct-pls { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; margin-top: 16px; }
.ct-pl { margin: 0; padding: 14px 16px; border-radius: 18px; border: 1.5px solid var(--theme-border); background: var(--theme-bg-elevated); }
.ct-pl.is-slow { background: color-mix(in srgb, var(--boi-sky) 8%, var(--theme-bg-elevated)); }
.ct-pl-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 0; font: 900 1.02rem/1.3 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-pl-h .ct-gl { color: var(--theme-gold-text); font-size: 1.2rem; }
.ct-pl-h small { font: 700 .84rem/1.3 var(--boi-font-body); color: var(--theme-text-soft); }
.ct-pl-role { margin: 4px 0 6px !important; font-size: .8rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--theme-gold-text); }
.ct-pl p { margin: 6px 0 0; line-height: 1.6; }

/* ---------- Góc chiếu ---------- */
.ct-asps { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.ct-asp { margin: 0; padding: 10px 14px; border-radius: 14px; border-left: 4px solid var(--ct-line); background: var(--theme-bg-elevated); }
.ct-asp.is-hai { border-left-color: var(--ct-nuoc); }
.ct-asp.is-cang { border-left-color: var(--ct-lua); }
.ct-asp.is-nhap { border-left-color: var(--theme-gold-text); }
.ct-asp p { margin: 0; line-height: 1.55; }
.ct-asp p + p { margin-top: 4px; }
.ct-asp-tag { display: inline-block; margin-left: 4px; padding: 1px 8px; border-radius: 999px; font-size: .74rem; font-weight: 900; color: var(--boi-sticker-ink); background: color-mix(in srgb, var(--boi-butter) 60%, var(--theme-bg-elevated)); }
.ct-asp.is-hai .ct-asp-tag { background: color-mix(in srgb, var(--boi-sky) 60%, var(--theme-bg-elevated)); }
.ct-asp.is-cang .ct-asp-tag { background: color-mix(in srgb, var(--boi-peach) 60%, var(--theme-bg-elevated)); }
.ct-asp-orb { font-size: .82rem; color: var(--theme-text-soft); }
:root:not([data-theme="light"]) .ct-asp-tag, :root:not([data-theme="light"]) .ct-notes li { background: color-mix(in srgb, var(--boi-butter) 18%, var(--theme-bg-elevated)); color: var(--theme-text-strong); }

/* ---------- Bảng tra trong chữ trang ---------- */
.ct-table-note { margin: 8px 0 0; font-size: .86rem; color: var(--theme-text-soft); text-align: center; }

/* ---------- Ảnh tải về (dựng ngoài màn hình) ---------- */
.ct-shot { position: fixed; left: -10000px; top: 0; width: 760px; padding: 28px 36px 24px; background: var(--theme-bg); color: var(--theme-text-strong); text-align: center; }
.ct-shot-logo { margin: 0 0 6px; }
.ct-shot-logo img { height: 44px; width: auto; }
.ct-shot-h { margin: 0; font: 900 26px/1.3 var(--boi-font-head); }
.ct-shot-s { margin: 4px 0 10px; font: 600 15px/1.5 var(--boi-font-body); color: var(--theme-text-soft); }
.ct-shot .ct-wheel { width: 640px; margin: 0 auto; }
.ct-shot-b { margin: 10px 0 0; font: 800 17px/1.4 var(--boi-font-body); }
.ct-shot-foot { margin: 8px 0 0; font: 800 15px/1.4 var(--boi-font-body); color: var(--theme-gold-text); }

/* ---------- Điện thoại ---------- */
@media (max-width: 768px) {
    .ct-adv-in { grid-template-columns: 1fr; }
    .ct-bal { grid-template-columns: 1fr; }
    .ct-bar { grid-template-columns: 82px 1fr 24px; }
    .ct-wheel-wrap { margin-left: -6px; margin-right: -6px; }
    .ct-act { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .ct-act .ht-btn { grid-column: auto; justify-self: stretch; padding: 6px 10px; }
    .ct-act #ctAgain { grid-column: 1 / -1; }
    .ct-pls { grid-template-columns: 1fr; }
    .ct-w-pd { font-size: 18px; }
    .ct-w-hnum { font-size: 17px; }
    .ct-w-pg { font-size: 30px; }
    .ct-w-glyph { font-size: 28px; }
    .ct-w-axis { font-size: 19px; }
}

/* Đọc kỹ theo chủ đề (14/10/2026) */
.ct-focus-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 4px 0 18px; }
.ct-focus-tabs .tv-opt span { padding: 9px 16px; border: 1.5px solid var(--theme-border); border-radius: 999px; }
.ct-focus-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.ct-focus-list li { margin: 0; padding: 14px 16px; border-radius: 18px; background: var(--theme-bg-elevated); border: 1px solid var(--theme-border); }
.ct-focus-list h4 { margin: 0 0 6px; font: 800 1rem/1.35 var(--boi-font-head); color: var(--theme-gold-text); }
.ct-focus-list p { margin: 0; line-height: 1.7; }
@media (min-width: 900px) { .ct-focus-list { grid-template-columns: 1fr 1fr; } }

/* ---------- Phần miễn phí mở rộng + các bài trả phí + tương hợp (14/10/2026, docs/49) ---------- */
.ct-bridge { margin: 14px 0 0; padding: 12px 16px; border-radius: 18px; line-height: 1.7; background: color-mix(in srgb, var(--boi-sky) 22%, var(--theme-bg-elevated)); color: var(--theme-text-strong); }
.ct-por-grid { display: grid; gap: 16px; }
@media (min-width: 900px) { .ct-por-grid { grid-template-columns: 1fr 1fr; } }
.ct-por-k { margin: 6px 0 8px; font: 800 .78rem/1.3 var(--boi-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--theme-gold-text); }
.ct-focus-list.is-one { grid-template-columns: 1fr; }
.ct-por-q { margin: 16px 0 0; padding: 14px 16px; border-radius: 18px; border: 1.5px dashed var(--theme-border); line-height: 1.6; font-weight: 700; color: var(--theme-text-strong); }
.ct-por-q span { display: block; margin-bottom: 2px; font: 800 .74rem/1.3 var(--boi-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--theme-gold-text); }
.ct-focus-more { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--theme-border); }
.ct-toc-lock { margin: 0 0 12px; padding-left: 1.3em; display: grid; gap: 4px; line-height: 1.5; color: var(--theme-text-secondary); }
.ct-go { min-width: 220px; }
.ct-buy-go s { margin-left: 6px; font-size: .85rem; color: var(--theme-text-soft); }
.ct-card-h { margin: 0; font: 900 1.02rem/1.3 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-step { margin-top: 14px; padding: 18px; border-radius: 22px; border: 2px solid var(--theme-gold-text); background: var(--theme-bg-elevated); }
.ct-step-h { margin: 0 0 10px; font: 900 1.1rem/1.3 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-step-h:focus { outline: none; }
.ct-ask { margin: 10px 0; display: grid; gap: 6px; }
.ct-ask-in { width: 100%; min-height: 70px; padding: 10px 12px; border-radius: 14px; border: 1.5px solid var(--theme-border); background: var(--theme-bg); color: var(--theme-text-strong); font: inherit; line-height: 1.5; resize: vertical; }
.ct-err { margin: 6px 0; font-weight: 700; color: var(--theme-gold-text); }
.ct-buy-go { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.ct-report.is-off { text-align: center; }
.ct-report.is-off .ct-buy-go { justify-content: center; }
.ct-rep-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 10px; }
.ct-rep-act { display: flex; flex-wrap: wrap; gap: 8px; }
.ct-asked { margin: 12px 0; padding: 12px 16px; border-radius: 16px; border: 1.5px dashed var(--theme-border); line-height: 1.55; color: var(--theme-text-strong); }
.ct-asked span { display: block; font: 800 .74rem/1.3 var(--boi-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--theme-gold-text); }
.ct-rep-toc ol { margin: 12px 0; padding-left: 1.3em; display: grid; gap: 4px; }
.ct-rep-toc a { color: var(--theme-gold-text); font-weight: 700; }
.ct-rg { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--theme-border); scroll-margin-top: calc(var(--tv-stick, 0px) + 16px); }
.ct-rg-h { margin: 0 0 8px; font: 900 1.2rem/1.3 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-sec-h { margin: 16px 0 6px; font: 900 1.02rem/1.35 var(--boi-font-head); color: var(--theme-gold-text); }
.ct-bh { margin: 12px 0 6px; font: 800 .95rem/1.35 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-rg p { line-height: 1.75; }
.ct-wait { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; font-weight: 700; color: var(--theme-text-secondary); background: color-mix(in srgb, var(--boi-butter) 45%, var(--theme-bg-elevated)); }
.ct-wait .tv-spin { flex: none; width: 26px; height: 26px; }
.ct-link { padding: 0; border: 0; background: none; color: var(--theme-gold-text); font: inherit; font-weight: 800; text-decoration: underline; cursor: pointer; }
.ct-gift { margin-top: 18px; padding: 14px; border-radius: 18px; background: color-mix(in srgb, var(--boi-butter) 30%, var(--theme-bg-elevated)); }
.ct-pa-h { margin: 14px 0 4px; font: 900 1rem/1.3 var(--boi-font-head); color: var(--theme-gold-text); }
.ct-pa-h small { margin-left: 6px; font: 600 .82rem/1.3 var(--boi-font-body); color: var(--theme-text-soft); }
.ct-pb { margin-top: 6px; padding-top: 6px; border-top: 1.5px dashed var(--theme-border); }
.ct-pb[hidden], .ct-pa-h[hidden], .ct-step[hidden], #ctOwned[hidden], #ctTopicStep[hidden] { display: none; }
.ct-dp-grid { display: grid; gap: 12px; margin: 10px 0; }
@media (min-width: 720px) { .ct-dp-grid { grid-template-columns: 1fr 1fr; } }
.ct-dp { padding: 14px 16px; border-radius: 20px; border: 1.5px solid var(--theme-border); background: var(--theme-bg-elevated); }
.ct-dp .ht-btn { margin-top: 10px; }
:root:not([data-theme="light"]) .ct-wait, :root:not([data-theme="light"]) .ct-gift { background: color-mix(in srgb, var(--boi-butter) 12%, var(--theme-bg-elevated)); }
.ct-portrait > .kh-sec-h:not(:first-child) { margin-top: 22px; } /* tương hợp hai người: nhiều tiêu đề trong một khung */
.ct-qh { display: block; margin-top: 8px; }
.ct-qh[hidden] { display: none; }
.ct-dig { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: .78rem; font-weight: 800; white-space: nowrap; background: color-mix(in srgb, var(--boi-mint) 40%, var(--theme-bg-elevated)); color: var(--theme-text-strong); }
.ct-dig.is-lac, .ct-dig.is-suy { background: color-mix(in srgb, var(--boi-peach) 40%, var(--theme-bg-elevated)); }
.ct-dig-x { font-size: .9rem; color: var(--theme-text-secondary); }
.ct-asktop-l { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.ct-asktop-l li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.ct-asktop-l span { font-size: .88rem; color: var(--theme-text-secondary); }
.ct-pos-table th, .ct-pos-table td { white-space: nowrap; }
.ct-panel .ht-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ---------- Bố cục kết quả theo Lá số tử vi (15/10/2026, docs/51) ----------
 * Khung bản đồ: vòng bản đồ bên trái, Ba điểm chính bên phải (máy tính) → thanh thẻ dính → mỗi thẻ một bảng.
 * Trong một thẻ, các khối ngăn bằng đường kẻ mảnh thay cho nhiều khung lồng nhau. */
.ct-chart-sec .tv-mine-parts { margin-top: 14px; }
.ct-tabs { scroll-margin-top: calc(var(--tv-stick, 0px) + 8px); }
.ct-blk + .ct-blk { margin-top: 28px; padding-top: 24px; border-top: 1px dashed var(--theme-border-strong); }
.ct-blk > .kh-sec-h { margin-top: 0; }
.ct-blk-k { margin: 0 0 2px; font: 900 .76rem/1.3 var(--boi-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--theme-gold-text); text-align: center; }
.ct-panel-mine { padding: 0; border: 0; background: none; box-shadow: none; }
.ct-panel-mine .ct-report { margin: 0; border: 2px solid var(--theme-gold-text); }
/* Thẻ Đọc sâu: dùng lại khung ba gói của Lá số tử vi (tuvi.css), thêm phần riêng của bản đồ sao */
.ct-unlock .tv-plan-price span:first-child:not(:last-child) { order: -1; }
.ct-unlock .tv-addon .ct-small { display: inline; }
.ct-step-k { margin: 0 0 10px; font: 900 1.02rem/1.3 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-topics { margin-bottom: 4px; }
.tv-topic.is-picked { border-color: var(--theme-gold-text); box-shadow: 0 0 0 3px color-mix(in srgb, var(--boi-pink) 50%, transparent); }
.ct-topic-p { margin: 0; }
.ct-topic-p b { font: 900 1.1rem/1 var(--boi-font-head); color: var(--theme-gold-text); }
.ct-topic-p s { margin-left: 4px; font-size: .8rem; color: var(--theme-text-soft); }
#ctTopicStep { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--theme-border-strong); }
.ct-help { margin-top: 12px; }
.ct-help .ct-ask-in { margin-top: 4px; }
.ct-help .ct-asktop-l { text-align: left; }
@media (max-width: 768px) {
    .ct-blk + .ct-blk { margin-top: 22px; padding-top: 18px; }
}

/* ---------- Khung bản đồ (15/10/2026, docs/51 mục 7–8) ----------
 * Tiêu đề + dòng thông tin lúc sinh → vòng bản đồ | vị trí các hành tinh → Ba điểm chính + tổng quan → các góc chiếu chính (hai cột). */
.ct-po { display: grid; gap: 18px; }
.ct-po-head .kh-sec-h { margin: 0; }
.ct-who { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ct-who li { margin: 0; padding: 4px 12px; border-radius: 999px; font-size: .86rem; font-weight: 700; color: var(--theme-text-secondary); background: var(--theme-bg-elevated); border: 1px solid var(--theme-border); }
.ct-po-main { display: grid; gap: 18px; align-items: center; }
@media (min-width: 1000px) { .ct-po-main { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 26px; } }
.ct-po .ct-wheel-wrap { max-width: 680px; width: 100%; margin: 0 auto; }
.ct-po-box { margin: 0; padding: 16px 18px; border-radius: 20px; border: 1.5px solid var(--theme-border); background: var(--theme-bg-elevated); min-width: 0; overflow-x: auto; }
.ct-po-h { margin: 0 0 10px; padding-bottom: 8px; border-bottom: 1px solid var(--theme-border); font: 900 .92rem/1.3 var(--boi-font-head); letter-spacing: .05em; text-transform: uppercase; color: var(--theme-text-strong); }
.ct-po-b3 .ct-b3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ct-po-b3 .ct-b3-c { padding: 14px 16px; border-radius: 16px; box-shadow: none; }
.ct-po-b3 .ct-b3-c p:last-child { font-size: .92rem; line-height: 1.6; }
@media (max-width: 760px) { .ct-po-b3 .ct-b3 { grid-template-columns: 1fr; } }
.ct-po-ov { margin-top: 14px; padding: 14px 16px; border-radius: 16px; background: color-mix(in srgb, var(--boi-sky) 18%, var(--theme-bg-elevated)); }
.ct-po-ovh { margin: 0 0 4px; font: 900 .9rem/1.3 var(--boi-font-head); color: var(--theme-text-strong); }
.ct-po-ov p { margin: 0; line-height: 1.7; color: var(--theme-text-strong); }
.ct-po-t { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: .92rem; }
.ct-po-t th, .ct-po-t td { border: 0; background: none; padding: 7px 6px; text-align: left; vertical-align: middle; border-bottom: 1px dashed var(--theme-border); white-space: nowrap; }
.ct-po-t tbody tr:last-child > * { border-bottom: 0; }
.ct-po-t thead th { padding-top: 0; font-size: .72rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: var(--theme-text-soft); border-bottom-style: solid; }
.ct-po-t tbody th { font-weight: 800; color: var(--theme-text-strong); }
.ct-po-t .ct-gl, .ct-asl .ct-gl { display: inline-block; width: 1.5em; margin-right: 4px; text-align: center; font-size: 1.12em; font-weight: 700; }
.ct-asl { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 28px; }
@media (min-width: 900px) { .ct-asl { grid-template-columns: 1fr 1fr; grid-auto-flow: column; grid-template-rows: repeat(4, auto); } }
.ct-asl li { display: grid; grid-template-columns: minmax(0, 1fr) 30px minmax(0, 1fr) 54px 74px; align-items: center; gap: 6px; margin: 0; padding: 8px 2px; border-bottom: 1px dashed var(--theme-border); font-size: .92rem; }
.ct-asl-p { font-weight: 800; color: var(--theme-text-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ct-asl-g { text-align: center; }
.ct-asl-g .ct-gl { margin: 0; }
.ct-asl-o { color: var(--theme-text-secondary); white-space: nowrap; }
.ct-at { font-size: .84rem; font-weight: 800; white-space: nowrap; }
.ct-at.is-hai { color: var(--ct-nuoc); }
.ct-at.is-cang { color: var(--ct-lua); }
.ct-at.is-nhap { color: var(--theme-gold-text); }
.ct-po-more { margin: 10px 0 0; text-align: right; font-size: .9rem; }
@media (max-width: 640px) {
    .ct-po-t { font-size: .86rem; }
    .ct-po-t th, .ct-po-t td { padding: 6px 3px; }
    .ct-po-t .ct-gl { width: 1.3em; margin-right: 2px; }
    .ct-po-t .ct-sao { display: none; }
    .ct-po-t tbody th, .ct-po-pos td:nth-child(2) { white-space: normal; }
    .ct-po-box { padding: 14px 10px; }
    .ct-asl li { grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr) 48px; font-size: .86rem; }
    .ct-asl .ct-at { display: none; }
    .ct-asl-p { white-space: normal; overflow: visible; line-height: 1.3; }
    .ct-asl .ct-gl { width: 1.2em; margin-right: 2px; }
    .ct-who li { font-size: .8rem; padding: 3px 10px; }
}
@media (max-width: 768px) {
    .ct-w-sname { font-size: 19px; }
    .ct-w-axis { font-size: 22px; }
    .ct-w-axisd { font-size: 18px; }
}
/* Ảnh tải về: cả khung bản đồ, bản rộng 1280px, luôn hai cột */
.ct-shot.ct-shot-po { width: 1280px; padding: 32px 36px 24px; text-align: left; }
.ct-shot .ct-po-main { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 26px; }
.ct-shot .ct-wheel { width: 100%; }
.ct-shot .ct-po-b3 .ct-b3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ct-shot .ct-asl { grid-template-columns: 1fr 1fr; grid-auto-flow: column; grid-template-rows: repeat(4, auto); }
.ct-shot .ct-po-box { overflow: visible; }
.ct-shot .ct-shot-foot { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 18px; }
.ct-shot .ct-shot-foot img { height: 30px; width: auto; }
/* Ký hiệu bằng ảnh (15/10/2026, docs/52) */
.ct-ico { display: inline-block; width: 1.25em; height: 1.25em; margin: 0 6px 0 0; vertical-align: -.28em; object-fit: contain; }
.ct-ico.is-b3 { width: 26px; height: 26px; margin: 0; vertical-align: middle; }
.ct-ico.is-h { width: 1.3em; height: 1.3em; margin-right: 2px; }
.ct-asl-g .ct-ico { margin: 0; }
.ct-bar-l .ct-ico { width: 1.1em; height: 1.1em; margin-right: 5px; }
.ct-gl.ct-pc.is-asc, .ct-gl.ct-pc.is-mc { width: auto; min-width: 1.3em; white-space: nowrap; font-size: .9em; } /* AC, MC: hai chữ, không bẻ dòng */
.ct-b3-i.ct-gl.ct-pc.is-asc { width: 44px; font-size: 1.1rem; }
