/* TT-CANONICAL-3D4
 * Scoped Tứ Trụ presentation CSS.
 * Lite selected-rule SHA256: 9207F41E2D65A30CF4690A65069387D4864ECAC41794BA5F9519D53B97B4A40E
 */
/* TVTT-3D4 Web preview shell. Lite-derived Tứ Trụ rules follow below. */
.tt-preview-main { padding-bottom: 42px; }
.tt-preview-banner { margin:14px auto 0; padding:10px 12px; border:1px solid #d6a84f; border-radius:10px; background:#fff8e1; color:#5d4037; font-size:13px; line-height:1.45; }
.tt-preview-workspace { padding: 22px 0 40px; }
.tt-preview-form-card { background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:18px; box-shadow:0 8px 28px rgba(15,23,42,.06); }
.tt-preview-form { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; align-items:end; }
.tt-preview-field { display:flex; flex-direction:column; gap:6px; min-width:0; }
.tt-preview-field--name { grid-column:span 2; }
.tt-preview-field label { font-weight:700; font-size:13px; color:#334155; }
.tt-preview-field input,.tt-preview-field select { width:100%; min-height:42px; box-sizing:border-box; border:1px solid #cbd5e1; border-radius:9px; background:#fff; padding:8px 10px; font:inherit; color:#0f172a; }
.tt-preview-options { grid-column:1/-1; display:flex; gap:16px; flex-wrap:wrap; align-items:center; padding-top:2px; }
.tt-preview-check { display:inline-flex; gap:8px; align-items:center; font-size:14px; }
.tt-preview-actions { grid-column:1/-1; display:flex; gap:10px; flex-wrap:wrap; }
.tt-preview-error { grid-column:1/-1; margin:0; color:#b91c1c; font-weight:600; }
.tt-preview-result { margin-top:18px; }
.tt-preview-result-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:10px; }
.tt-preview-result-head h2 { margin:0; }
.tt-preview-result-note { margin:4px 0 0; color:#64748b; font-size:13px; }
.tt-preview-scroll { overflow-x:auto; overflow-y:visible; -webkit-overflow-scrolling:touch; padding-bottom:8px; }
.tt-preview-chart { min-width:max-content; }
.tt-preview-chart .tu-tru-table { background:#fff; }
@media (max-width: 980px) {
  .tt-preview-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tt-preview-field--name { grid-column:1/-1; }
}
@media (max-width: 620px) {
  .tt-preview-form { grid-template-columns:1fr; }
  .tt-preview-field--name,.tt-preview-options,.tt-preview-actions,.tt-preview-error { grid-column:1; }
  .tt-preview-result-head { flex-direction:column; }
  .tt-preview-form-card { padding:14px; }
}

/* Exact Lite-derived presentation rules */
.engine-badge {display: inline-block; margin-left: 6px; padding: 2px 6px; border-radius: 999px; background: #eef5ff; color: #1565c0; font-size: 10px; font-weight: bold; text-transform: none; vertical-align: middle;}

.engine-badge.legacy {background: #f2f2f2; color: #555;}

.engine-badge.compare {background: #fff2d8; color: #8a5300;}

.bazi-relation-list {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; margin-top: 6px;}

.bazi-relation-item {border: 1px solid #ddd; border-radius: 4px; background: #fff; padding: 6px; font-size: 11px; line-height: 1.35;}

.bazi-relation-item b {color: #1565c0; display: block; margin-bottom: 2px;}

.bazi-relation-level {display: inline-block; margin-bottom: 3px; padding: 1px 5px; border-radius: 999px; background: #f1f8ff; color: #1565c0; font-size: 9px; font-weight: bold;}

.bazi-relation-level.manh, .bazi-relation-level.quan-trong {background: #fff0e8; color: #b92b27;}

.bazi-engine-compare {margin-top: 6px; padding: 7px; border: 1px solid #d6c58d; border-radius: 4px; background: #fffdf6; font-size: 11px; line-height: 1.4;}

.bazi-evidence-grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 6px;}

.bazi-evidence-card {border: 1px solid #ddd; border-radius: 4px; padding: 6px; background: #f9fbff;}

.bazi-evidence-card ul {margin: 3px 0 0; padding-left: 17px;}

.tu-tru-container {display: none; width: 100%; max-width: 1100px; margin: 16px auto 30px; overflow-x: auto; background: #fff; border: 2px solid #555;}

.tu-tru-title {padding: 10px; text-align: center; font-size: 18px; font-weight: bold; color: #b92b27; border-bottom: 1px solid #777; letter-spacing: 1px;}

.tu-tru-table {min-width: 960px; margin: 0; border-collapse: collapse; table-layout: fixed; font-size: 14px; font-weight: bold;}

.tu-tru-table th, .tu-tru-table td {border: 1px solid #888; padding: 8px 6px; text-align: center; vertical-align: middle; background: #f5f5f0;}

.tu-tru-label {width: 86px; background: #fff6cc !important; color: #23b24a; font-weight: bold; text-transform: uppercase; font-size: 13px;}

.tu-tru-subhead {color: #4d62a8; font-weight: bold; text-transform: uppercase;}

.tu-tru-can {display: block; font-size: 22px; line-height: 1.25; font-weight: bold;}

.tu-tru-chi {display: block; font-size: 20px; line-height: 1.25; font-weight: bold; color: #111;}

.tu-tru-small {display: block; margin-top: 3px; font-size: 12px; color: #777; font-weight: bold;}

.tu-tru-list {line-height: 1.55;}

.tu-tru-daivan td, .tu-tru-luunien td {font-size: 13px; line-height: 1.25;}

.tu-tru-van-clickable {cursor: pointer; user-select: none;}

.tu-tru-van-clickable:hover {background: #fff8d6 !important;}

.tu-tru-active {background: #fff1b8 !important;}

.tu-tru-age {color: #e53935; font-weight: bold;}

.tu-tru-analysis {text-align: left; font-weight: normal; line-height: 1.45;}

.tu-tru-analysis b {color: #b92b27;}

.tu-tru-analysis-title {font-weight: bold; color: #b92b27; text-transform: uppercase; margin-bottom: 4px;}

.tu-tru-analysis-subtitle {font-weight: bold; color: #1565c0; text-transform: uppercase; margin-top: 8px; margin-bottom: 4px;}

.tu-tru-force-table {width: 100%; margin-top: 5px; font-size: 12px; table-layout: fixed;}

.tu-tru-force-table th {background: #fff6cc; color: #1565c0;}

.tu-tru-force-table th, .tu-tru-force-table td {padding: 5px 6px; text-align: left; vertical-align: top;}

.tu-tru-force-score {font-weight: bold; color: #b92b27; white-space: nowrap;}

.tu-tru-explain-box {background: #f9fbff; border: 1px solid #ddd; border-radius: 4px; padding: 7px; margin-top: 5px;}

.tu-tru-explain-line {margin-bottom: 3px;}

.tu-tru-explain-line:last-child {margin-bottom: 0;}

.tu-tru-special-summary {background: #fff8e1; border: 1px solid #ead39a; border-radius: 4px; padding: 6px; margin-top: 5px; font-weight: bold; color: #5d4037;}

.tu-tru-special-grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 6px;}

.tu-tru-special-card {border: 1px solid #ddd; background: #fffdf6; border-radius: 4px; padding: 6px; box-sizing: border-box;}

.tu-tru-special-card b {display: block; margin-bottom: 2px; color: #b92b27;}

.tu-tru-special-level {display: inline-block; margin-bottom: 3px; padding: 1px 5px; border-radius: 999px; background: #f1f8ff; color: #1565c0; font-size: 11px; font-weight: bold;}

.tu-tru-special-card.canh-bao-manh {border-color: #b92b27; background: #fff3f0;}

.tu-tru-special-card.goi-y {background: #f9fbff;}

.tu-tru-analysis-grid {display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 7px;}

.tu-tru-analysis-card {border: 1px solid #ddd; background: #fffdf6; border-radius: 4px; padding: 6px; box-sizing: border-box;}

.tu-tru-analysis-card b {display: block; margin-bottom: 2px;}

.tu-tru-analysis-result {display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-top: 7px;}

.tu-tru-result-item {border: 1px solid #ddd; background: #f9fbff; border-radius: 4px; padding: 6px; box-sizing: border-box;}

.tu-tru-result-item b {display: block; margin-bottom: 2px; color: #1565c0;}

.tu-tru-analysis-table {width: 100%; margin-top: 6px; font-size: 12px; table-layout: fixed;}

.tu-tru-analysis-table th, .tu-tru-analysis-table td {padding: 4px 5px;}

.tu-tru-analysis-note {margin-top: 6px; font-size: 11px; color: #607d8b; font-weight: bold;}

.tu-tru-summary-wrap {text-align: left; font-weight: normal; line-height: 1.4;}

.tu-tru-summary-head {display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 8px;}

.tu-tru-summary-title {font-size: 16px; font-weight: bold; color: #b92b27; text-transform: uppercase;}

.tu-tru-summary-note {font-size: 11px; color: #607d8b; font-weight: bold; text-align: right;}

.tu-tru-summary-grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px;}

.tu-tru-summary-card {border: 1px solid #d7d7d7; border-radius: 6px; background: #fffdf6; overflow: hidden;}

.tu-tru-summary-card[open] {border-color: #d6a84f; box-shadow: 0 1px 4px rgba(0,0,0,0.06);}

.tu-tru-summary-card summary {position: relative; cursor: pointer; list-style: none; padding: 9px 34px 9px 10px; user-select: none;}

.tu-tru-summary-card summary::-webkit-details-marker, .tu-tru-summary-card summary::-webkit-details-marker {display: none;}

.tu-tru-summary-card summary::after {content: "＋"; position: absolute; top: 50%; right: 10px; transform: translateY(-50%); color: #1565c0; font-size: 17px; font-weight: bold;}

.tu-tru-summary-card[open] summary::after {content: "−";}

.tu-tru-summary-label {display: block; color: #1565c0; font-weight: bold; font-size: 11px; text-transform: uppercase; margin-bottom: 2px;}

.tu-tru-summary-result {display: block; color: #222; font-weight: bold; font-size: 14px;}

.tu-tru-summary-desc {display: block; color: #5d4037; font-size: 11px; margin-top: 3px;}

.tu-tru-summary-detail, .tu-tru-summary-detail {border-top: 1px solid #eee; background: #f9fbff; padding: 8px 10px; font-size: 12px;}

.tu-tru-summary-detail ul {margin: 4px 0 0; padding-left: 18px;}

.tu-tru-summary-detail li, .tu-tru-summary-detail li {margin-bottom: 3px;}

.tu-tru-summary-card.canh-bao {border-color: #dfb1a8; background: #fff7f4;}

.tu-tru-detail-toggle-row td {background: #f7f7f7 !important; padding: 7px !important;}

.tu-tru-detail-toggle {width: auto; min-width: 260px; padding: 8px 16px; background: #607d8b; text-transform: none; font-size: 12px;}

.tu-tru-detail-toggle:hover {background: #455a64;}

.tu-tru-chi-tiet-row {display: none;}

.tu-tru-chi-tiet-row.is-open, .tu-tru-chi-tiet-row.is-open {display: table-row;}

.tu-tru-report-section {border: 1px solid #ddd; background: #fffdf6; border-radius: 4px; padding: 7px; margin: 6px 0;}

.tu-tru-report-section b {color: #1565c0;}

.tu-tru-cach-list {margin: 0; padding-left: 16px;}

.tu-tru-cach-list li {margin: 2px 0;}

.tu-tru-van-han-panel {text-align: left; font-weight: normal; line-height: 1.45;}

.tu-tru-van-han-title {font-weight: bold; color: #b92b27; text-transform: uppercase; margin-bottom: 6px;}

.tu-tru-van-han-grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px;}

.tu-tru-van-han-card {border: 1px solid #ddd; background: #fffdf6; border-radius: 4px; padding: 7px; box-sizing: border-box;}

.tu-tru-van-han-card b {display: block; color: #1565c0; margin-bottom: 3px;}

.tu-tru-van-han-card ul {margin: 0; padding-left: 18px;}

.tu-tru-van-han-card li {margin-bottom: 2px;}

.tu-tru-luu-nguyet-panel {text-align: left; font-weight: normal;}

.tu-tru-luu-nguyet-grid {display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px;}

.tu-tru-luu-nguyet-item {border: 1px solid #ddd; background: #fffdf6; border-radius: 4px; padding: 6px 4px; cursor: pointer; text-align: center; line-height: 1.25; user-select: none;}

.tu-tru-luu-nguyet-item:hover {background: #fff8d6;}

.tu-tru-luu-nguyet-item.tu-tru-active {border-color: #d6a84f;}

.tu-tru-luu-nguyet-name {display: block; color: #1565c0; font-weight: bold; font-size: 12px;}

.tu-tru-luu-nguyet-can-chi {display: block; font-size: 13px; margin-top: 2px;}

.tu-tru-luu-nguyet-date {display: block; font-size: 10px; color: #777; margin-top: 2px;}

.hanh-moc {color: #00882d !important;}

.hanh-hoa {color: #d32f2f !important;}

.hanh-tho {color: #dfa100 !important;}

.hanh-kim {color: #758283 !important;}

.hanh-thuy {color: #0b2265 !important;}

.bazi-v3-overview {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-bottom: 8px;}

.bazi-v3-key {border: 1px solid #d7d7d7; border-radius: 6px; background: #fff; padding: 8px; min-width: 0;}

.bazi-v3-key-label {display: block; color: #607d8b; font-size: 10px; font-weight: bold; text-transform: uppercase; margin-bottom: 3px;}

.bazi-v3-key-value {display: block; color: #222; font-size: 14px; font-weight: bold; line-height: 1.25;}

.bazi-confidence-badge {display: inline-block; margin-top: 5px; padding: 2px 7px; border-radius: 999px; font-size: 10px; font-weight: bold; background: #eef5ff; color: #1565c0;}

.bazi-confidence-badge.ro {background: #e9f7ee; color: #087a34;}

.bazi-confidence-badge.kha-ro {background: #eef5ff; color: #1565c0;}

.bazi-confidence-badge.nghieng-ve {background: #fff8df; color: #8a5a00;}

.bazi-confidence-badge.giap-ranh, .bazi-confidence-badge.chua-the-chot {background: #fff0ea; color: #b92b27;}

.bazi-role-grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; margin-top: 6px;}

.bazi-role-item {border: 1px solid #ddd; border-radius: 4px; background: #fff; padding: 6px;}

.bazi-role-item b {display: block; color: #1565c0; font-size: 10px; text-transform: uppercase; margin-bottom: 2px;}

.bazi-candidate-table {width: 100%; border-collapse: collapse; font-size: 11px; table-layout: auto;}

.bazi-candidate-table th, .bazi-candidate-table td {border: 1px solid #ddd; padding: 5px; text-align: left; vertical-align: top;}

.bazi-candidate-table th {background: #fff6cc; color: #5d4037;}

.bazi-candidate-selected td {background: #fff8e1;}

.bazi-climate-box {border: 1px solid #d6c58d; border-radius: 5px; background: #fffdf6; padding: 7px; line-height: 1.4;}

.bazi-decision-trace {margin: 5px 0 0; padding-left: 18px;}

.bazi-decision-trace li {margin-bottom: 3px;}

.bazi-confidence-grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 6px;}

.bazi-confidence-card {border: 1px solid #ddd; border-radius: 5px; background: #f9fbff; padding: 7px;}

.bazi-confidence-card b {color: #1565c0; display: block; margin-bottom: 3px;}

.bazi-mobile-pillars, .bazi-mobile-luck {display: none;}

.bazi-mobile-pillar {border: 1px solid #cfcfcf; border-radius: 7px; background: #fffdf6; padding: 8px; min-width: 0;}

.bazi-mobile-pillar-title {font-size: 11px; font-weight: bold; color: #1565c0; text-transform: uppercase; text-align: center;}

.bazi-mobile-pillar-can-chi {text-align: center; margin: 5px 0;}

.bazi-mobile-pillar-line {border-top: 1px solid #eee; padding-top: 4px; margin-top: 4px; font-size: 11px; line-height: 1.35;}

.bazi-mobile-pillar-line b {color: #607d8b;}

.bazi-mobile-strip {display: flex; gap: 6px; overflow-x: auto; padding: 3px 1px 7px; scroll-snap-type: x proximity;}

.bazi-mobile-luck-item {flex: 0 0 112px; border: 1px solid #ddd; border-radius: 6px; background: #fff; padding: 7px 5px; text-align: center; cursor: pointer; scroll-snap-align: start; font-size: 11px;}

.bazi-mobile-luck-item.tu-tru-active {background: #fff1b8; border-color: #d6a84f;}

.bazi-mobile-luck-title {font-size: 11px; color: #1565c0; font-weight: bold; margin: 6px 0 2px;}

.bazi-disease-table, .bazi-stem-score-table {width: 100%; border-collapse: collapse; font-size: 11px; margin-top: 6px;}

.bazi-disease-table th, .bazi-disease-table td, .bazi-stem-score-table th, .bazi-stem-score-table td {border: 1px solid #ddd; padding: 5px; text-align: left; vertical-align: top;}

.bazi-disease-table th, .bazi-stem-score-table th {background: #eef5ff; color: #234b72;}

.bazi-disease-primary td {background: #fff7e0;}

.bazi-selected-mark {display: inline-block; margin-top: 2px; padding: 1px 5px; border-radius: 999px; background: #e8f5e9; color: #1b6e32; font-size: 9px; font-weight: bold;}

.bazi-transit-useful-box {display: grid; gap: 7px; margin-top: 6px;}

.bazi-transit-compare-grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px;}

.bazi-transit-compare-grid > div {border: 1px solid #d7dce4; border-radius: 6px; background: #f8fbff; padding: 7px; min-width: 0;}

.bazi-transit-compare-grid b, .bazi-transit-compare-grid span, .bazi-transit-compare-grid small {display: block;}

.bazi-transit-compare-grid b {color: #1565c0; font-size: 10px; text-transform: uppercase;}

.bazi-transit-compare-grid span {font-weight: bold; margin-top: 3px;}

.bazi-transit-compare-grid small {color: #607d8b; margin-top: 3px; line-height: 1.3;}

.bazi-transit-stage {border-left: 3px solid #7b9dcc; background: #f7faff; padding: 6px 8px; line-height: 1.4;}

.bazi-annual-verdict {border: 1px solid #d5d5d5; border-radius: 6px; background: #fafafa; padding: 8px;}

.bazi-annual-verdict b, .bazi-annual-verdict span {display: block;}

.bazi-annual-verdict.is-good {background: #edf8f0; border-color: #a9d8b5;}

.bazi-annual-verdict.is-bad {background: #fff2ed; border-color: #e5b1a2;}

.bazi-transit-wide {grid-column: 1 / -1;}

@media (max-width: 700px) {
.bazi-relation-list, .bazi-evidence-grid {grid-template-columns: 1fr; gap: 3px;}
.bazi-relation-item {font-size: 8px; padding: 4px;}
.engine-badge {font-size: 7px; margin-left: 3px; padding: 1px 4px;}
.tu-tru-analysis-grid, .tu-tru-analysis-result, .tu-tru-special-grid {grid-template-columns: 1fr; gap: 3px;}
.tu-tru-analysis-card, .tu-tru-result-item, .tu-tru-special-card {padding: 3px;}
.tu-tru-special-summary {padding: 3px; font-size: 7px;}
.tu-tru-special-level {font-size: 6px; padding: 1px 3px;}
.tu-tru-analysis-table, .tu-tru-force-table {font-size: 7px;}
.tu-tru-force-table th, .tu-tru-force-table td {padding: 2px;}
.tu-tru-explain-box {padding: 3px;}
.tu-tru-analysis-note {font-size: 6px; margin-top: 3px;}
.tu-tru-summary-grid, .tu-tru-summary-grid {grid-template-columns: 1fr; gap: 3px;}
.tu-tru-summary-head {display: block; margin-bottom: 4px;}
.tu-tru-summary-title {font-size: 10px;}
.tu-tru-summary-note, .tu-tru-summary-note {font-size: 6px; text-align: left; margin-top: 2px;}
.tu-tru-summary-card summary, .tu-tru-summary-card summary {padding: 5px 22px 5px 6px;}
.tu-tru-summary-card summary::after, .tu-tru-summary-card summary::after {right: 6px; font-size: 11px;}
.tu-tru-summary-label, .tu-tru-summary-label {font-size: 6px;}
.tu-tru-summary-result, .tu-tru-summary-result {font-size: 8px;}
.tu-tru-summary-desc, .tu-tru-summary-desc {font-size: 6px; margin-top: 1px;}
.tu-tru-summary-detail, .tu-tru-summary-detail {padding: 5px 6px; font-size: 7px;}
.tu-tru-detail-toggle, .tu-tru-detail-toggle {min-width: 0; width: 100%; padding: 6px; font-size: 7px;}
.tu-tru-cach-list {padding-left: 10px;}
.tu-tru-van-han-grid {grid-template-columns: 1fr; gap: 3px;}
.tu-tru-van-han-card {padding: 3px;}
.tu-tru-van-han-card ul {padding-left: 14px;}
.tu-tru-luu-nguyet-grid {grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px;}
.tu-tru-luu-nguyet-item {padding: 3px 1px;}
.tu-tru-luu-nguyet-name {font-size: 7px;}
.tu-tru-luu-nguyet-can-chi {font-size: 7px;}
.tu-tru-luu-nguyet-date {font-size: 6px;}
.tu-tru-container {margin-top: 10px; border-width: 1px; overflow-x: hidden;}
.tu-tru-title {font-size: 14px; padding: 6px;}
.tu-tru-table {width: 100%; min-width: 0; table-layout: fixed; font-size: 7px; line-height: 1.15;}
.tu-tru-table th, .tu-tru-table td {padding: 4px 1px; overflow-wrap: anywhere; word-break: break-word;}
.tu-tru-label {width: 46px; font-size: 7px; line-height: 1.12;}
.tu-tru-subhead {font-size: 7px;}
.tu-tru-can {font-size: 13px; line-height: 1.1;}
.tu-tru-chi {font-size: 12px; line-height: 1.1;}
.tu-tru-small {margin-top: 1px; font-size: 6px;}
.tu-tru-list {line-height: 1.25;}
.tu-tru-daivan td, .tu-tru-luunien td {font-size: 6px; line-height: 1.12;}
.tu-tru-age {font-size: 6px;}
.tu-tru-container,
            .tu-tru-container.mobile-expert-open {width: 100%;
                max-width: 100%;
                overflow-x: auto;
                overflow-y: visible;
                -webkit-overflow-scrolling: touch;}
.bazi-mobile-pillars,
            .bazi-mobile-luck,
            .tu-tru-container.mobile-expert-open .bazi-mobile-pillars,
            .tu-tru-container.mobile-expert-open .bazi-mobile-luck {display: none !important;}
#tuTruNoiDung > .tu-tru-table > tbody > .tu-tru-core-row,
            #tuTruNoiDung > .tu-tru-table > tbody > .tu-tru-daivan,
            #tuTruNoiDung > .tu-tru-table > tbody > .tu-tru-luunien,
            #tuTruNoiDung > .tu-tru-table > tbody > #tuTruLuuNguyetRow {display: table-row;}
.tu-tru-table,
            .tu-tru-container.mobile-expert-open .tu-tru-table {width: 100%;
                min-width: 0;
                table-layout: fixed;
                font-size: 8px;
                line-height: 1.18;}
.tu-tru-table th,
            .tu-tru-table td {padding: 4px 1px;
                overflow-wrap: anywhere;
                word-break: break-word;}
.tu-tru-label {width: 48px;
                font-size: 7px;
                line-height: 1.15;}
.tu-tru-subhead {font-size: 7px;}
.tu-tru-can {font-size: 14px; line-height: 1.1;}
.tu-tru-chi {font-size: 13px; line-height: 1.1;}
.tu-tru-small {margin-top: 1px; font-size: 6px;}
.tu-tru-list {line-height: 1.28;}
.tu-tru-daivan td,
            .tu-tru-luunien td {font-size: 6px; line-height: 1.12;}
.tu-tru-age {font-size: 6px;}
#tuTruKetLuanRow > .tu-tru-label {display: table-cell;}
.tu-tru-summary-grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px;}
.tu-tru-summary-head {display: flex; margin-bottom: 6px;}
.tu-tru-summary-title {font-size: 12px;}
.tu-tru-summary-note, .tu-tru-summary-note {font-size: 8px; line-height: 1.3; text-align: right; margin-top: 0;}
.tu-tru-summary-card summary, .tu-tru-summary-card summary {padding: 6px 22px 6px 7px;}
.tu-tru-summary-label, .tu-tru-summary-label {font-size: 7px;}
.tu-tru-summary-result, .tu-tru-summary-result {font-size: 10px;}
.tu-tru-summary-desc, .tu-tru-summary-desc {font-size: 7px; line-height: 1.3; margin-top: 2px;}
.tu-tru-summary-detail, .tu-tru-summary-detail {padding: 6px 7px; font-size: 8px; line-height: 1.35;}
.tu-tru-detail-toggle, .tu-tru-detail-toggle {min-width: 0; width: 100%; padding: 7px; font-size: 8px;}
.tu-tru-analysis-grid, .tu-tru-analysis-grid,
            .tu-tru-analysis-result, .tu-tru-analysis-result {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px;}
.tu-tru-special-grid, .tu-tru-special-grid,
            .tu-tru-van-han-grid, .tu-tru-van-han-grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px;}
.tu-tru-luu-nguyet-grid, .tu-tru-luu-nguyet-grid {grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2px;}
.tu-tru-luu-nguyet-name, .tu-tru-luu-nguyet-name {font-size: 7px;}
.tu-tru-luu-nguyet-can-chi, .tu-tru-luu-nguyet-can-chi {font-size: 7px;}
.tu-tru-luu-nguyet-date, .tu-tru-luu-nguyet-date {font-size: 6px;}
.tu-tru-analysis-table, .tu-tru-analysis-table,
            .tu-tru-force-table, .tu-tru-force-table {font-size: 7px;}
.tu-tru-force-table th, .tu-tru-force-table th,
            .tu-tru-force-table td, .tu-tru-force-table td {padding: 3px;}
.tu-tru-analysis-note, .tu-tru-analysis-note {font-size: 7px; margin-top: 4px;}
}

@media (max-width: 760px) {
.bazi-transit-compare-grid {grid-template-columns: 1fr;}
.bazi-disease-table, .bazi-stem-score-table {display: block; overflow-x: auto; white-space: normal;}
}

@media (max-width:700px) {
body.unified-compact-ui .la-so-container, body.unified-compact-ui .tu-tru-container {width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;}
}

.tu-tru-label {color: #087a34;}

@media (max-width: 700px) {
.tu-tru-table,
  .tu-tru-container.mobile-expert-open .tu-tru-table {font-size: 9px;
    line-height: 1.2;}
.tu-tru-label {width: 50px;
    font-size: 8px;
    line-height: 1.16;}
.tu-tru-subhead {font-size: 8px;}
.tu-tru-can {font-size: 15px; line-height: 1.1;}
.tu-tru-chi {font-size: 14px; line-height: 1.1;}
.tu-tru-small {margin-top: 1px; font-size: 7px;}
.tu-tru-daivan td,
  .tu-tru-luunien td {font-size: 7px; line-height: 1.14;}
.tu-tru-age {font-size: 7px;}
.bazi-v3-overview {grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;}
.bazi-v3-overview > .bazi-v3-key:nth-child(3) {grid-column: 1 / -1;}
.bazi-v3-key {padding: 7px;}
.bazi-v3-key-label {font-size: 8px;}
.bazi-v3-key-value {font-size: 11px; line-height: 1.25;}
.bazi-confidence-badge {font-size: 8px;}
.tu-tru-summary-label {font-size: 8px;}
.tu-tru-summary-result {font-size: 11px;}
.tu-tru-summary-desc {font-size: 8px; line-height: 1.32;}
.tu-tru-summary-detail {font-size: 8px; line-height: 1.38;}
.tu-tru-analysis-note {font-size: 7px; line-height: 1.35;}
.tu-tru-luu-nguyet-grid {grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2px;}
.tu-tru-luu-nguyet-name {font-size: 8px;}
.tu-tru-luu-nguyet-can-chi {font-size: 8px;}
.tu-tru-luu-nguyet-date {font-size: 7px;}
}

@media (max-width: 399px) {
.tu-tru-luu-nguyet-grid {grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px;}
.tu-tru-luu-nguyet-name {font-size: 8px;}
.tu-tru-luu-nguyet-can-chi {font-size: 9px;}
.tu-tru-luu-nguyet-date {font-size: 7px;}
}

@media (max-width: 700px) {
body.unified-compact-ui .tu-tru-container,
  body.unified-compact-ui .tu-tru-container.mobile-expert-open {width: calc(100% + 6px) !important;
    max-width: calc(100% + 6px) !important;
    margin-left: -3px !important;
    margin-right: -3px !important;
    box-sizing: border-box !important;}
}

.bazi-structure-head {border:1px solid #d9c38d;
  border-radius:6px;
  background:#fffaf0;
  padding:8px 9px;
  margin-bottom:6px;}

.bazi-structure-kicker {display:block;
  color:#1565c0;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  margin-bottom:2px;}

.bazi-structure-title {display:block;
  color:#222;
  font-size:14px;
  font-weight:700;
  line-height:1.25;}

.bazi-structure-meta {display:block;
  color:#607d8b;
  font-size:10px;
  font-weight:600;
  margin-top:2px;}

.bazi-structure-conclusion {border-left:3px solid #d5a94d;
  background:#fff8e1;
  padding:7px 8px;
  margin-bottom:7px;
  line-height:1.4;}

.bazi-structure-grid {display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;}

.bazi-structure-card {min-width:0;
  border:1px solid #ddd;
  border-radius:6px;
  background:#fffdf8;
  padding:7px 8px;
  box-sizing:border-box;}

.bazi-structure-card b {display:block;
  color:#1565c0;
  font-size:10px;
  text-transform:uppercase;
  margin-bottom:4px;}

.bazi-structure-card ul {margin:0;
  padding-left:16px;}

.bazi-structure-card li {margin:2px 0;
  line-height:1.38;}

.bazi-structure-card .tu-tru-analysis-note {line-height:1.38;}

@media (max-width:700px) {
.tu-tru-summary-card.cach-cuc-card[open] {grid-column:1 / -1 !important;}
.tu-tru-summary-card.cach-cuc-card[open] .tu-tru-summary-detail {font-size:9px;
    line-height:1.4;}
.bazi-structure-grid {grid-template-columns:1fr; gap:5px;}
.bazi-structure-head {padding:7px 8px;}
.bazi-structure-title {font-size:13px;}
.bazi-structure-conclusion {padding:6px 7px;}
.bazi-structure-card {padding:6px 7px;}
.bazi-structure-card b {font-size:9px;}
}

@media (max-width:700px) {
html[data-app-platform="android-play"] .phu-tinh-container .hanh-moc,
  html[data-app-platform="android-play"] .cung-cuc-vong .hanh-moc {color:#00B04A !important;}
html[data-app-platform="android-play"] .phu-tinh-container .hanh-hoa,
  html[data-app-platform="android-play"] .cung-cuc-vong .hanh-hoa {color:#F02B2C !important;}
html[data-app-platform="android-play"] .phu-tinh-container .hanh-tho,
  html[data-app-platform="android-play"] .cung-cuc-vong .hanh-tho {color:#DB9000 !important;}
html[data-app-platform="android-play"] .phu-tinh-container .hanh-kim,
  html[data-app-platform="android-play"] .cung-cuc-vong .hanh-kim {color:#73777C !important;}
html[data-app-platform="android-play"] .phu-tinh-container .hanh-thuy,
  html[data-app-platform="android-play"] .cung-cuc-vong .hanh-thuy {color:#000000 !important;}
}

.tu-tru-two-tier {display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  min-width:0;
  box-sizing:border-box;}

.tu-tru-tier-head {display:flex;
  align-items:flex-start;
  justify-content:center;
  width:100%;
  min-height:1.25em;
  margin-bottom:3px;
  line-height:1.15;
  white-space:nowrap;}

.tu-tru-tier-body {width:100%;
  min-width:0;
  text-align:center;}

.tu-tru-van-stack {display:grid;
  grid-template-rows:auto auto;
  align-items:center;
  justify-items:center;
  row-gap:2px;
  width:100%;
  min-width:0;}

.tu-tru-van-canchi,
.tu-tru-van-year,
.tu-tru-luunien-canchi {display:block;
  width:100%;
  min-width:0;
  text-align:center;
  white-space:nowrap;
  line-height:1.12;}

.tu-tru-van-year {font-size:.78em; letter-spacing:-0.1px;}

.tu-tru-pho-inline {display:inline-flex;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:center;
  column-gap:2px;
  max-width:100%;
  white-space:nowrap;}

.tu-tru-pho-item {white-space:nowrap;}

@media (max-width:700px) {
.tu-tru-tier-head {margin-bottom:2px;}
.tu-tru-van-stack {row-gap:1px;}
.tu-tru-pho-inline {column-gap:1.5px;}
}

.tu-tru-subgrid {display:grid;
  grid-template-columns:repeat(var(--tu-subcols), minmax(0,1fr));
  align-items:center;
  justify-items:center;
  column-gap:1px;
  width:100%;
  min-width:0;
  box-sizing:border-box;
  white-space:nowrap;}

.tu-tru-subgrid-item {display:block;
  min-width:0;
  text-align:center;
  white-space:nowrap;}

.tu-tru-tier-row > td:not(.tu-tru-label),
.tu-tru-menh-row > td:not(.tu-tru-label) {vertical-align:top !important;}

.tu-tru-tier-row .tu-tru-tier-head,
.tu-tru-menh-row .tu-tru-tier-head {height:1.35em;
  min-height:1.35em;
  margin-bottom:3px;
  align-items:flex-start;}

.tu-tru-menh-card {display:grid;
  grid-template-rows:1.35em 1.35em 1.35em;
  row-gap:2px;
  align-items:start;
  justify-items:center;
  width:100%;
  min-width:0;
  box-sizing:border-box;}

.tu-tru-menh-primary,
.tu-tru-menh-sub {display:flex;
  align-items:flex-start;
  justify-content:center;
  width:100%;
  min-width:0;
  text-align:center;
  line-height:1.15;
  white-space:nowrap;}

.tu-tru-menh-card .tu-tru-tier-head {margin-bottom:0 !important;}

.tu-tru-menh-sub {font-size:.86em;}

.tu-tru-menh-sub-empty {visibility:hidden;}

.tu-tru-canchi-stack {display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  min-width:0;
  line-height:1.05;
  white-space:nowrap;}

.tu-tru-canchi-can,
.tu-tru-canchi-chi {display:block;
  width:100%;
  text-align:center;
  white-space:nowrap;}

.tu-tru-age-stack {display:grid;
  grid-template-rows:auto auto;
  row-gap:1px;
  align-items:center;
  justify-items:center;
  width:100%;
  line-height:1.08;}

.tu-tru-start-year {white-space:nowrap;}

@media (max-width:700px) {
.tu-tru-subgrid {column-gap:.5px;}
.tu-tru-tier-row .tu-tru-tier-head,
  .tu-tru-menh-row .tu-tru-tier-head {margin-bottom:2px;}
.tu-tru-canchi-stack {line-height:1.02;}
.tu-tru-age-stack {row-gap:0;}
}

@media (max-width:370px) {
.tu-tru-subgrid-row .tu-tru-subgrid {font-size:.96em;
    column-gap:.25px;}
}

.tu-tru-container,
.tu-tru-container * {font-family:Roboto, "Noto Sans", Arial, sans-serif !important;}

.tu-tru-container .hanh-moc {color:#00B04A !important;}

.tu-tru-container .hanh-hoa {color:#F02B2C !important;}

.tu-tru-container .hanh-tho {color:#DB9000 !important;}

.tu-tru-container .hanh-kim {color:#73777C !important;}

.tu-tru-container .hanh-thuy {color:#000000 !important;}

.tu-tru-menh-primary {column-gap:2px !important;}

@media (max-width:700px) {
.tu-tru-summary-grid > .tu-tru-summary-card[open] {grid-column:1 / -1 !important;}
.tu-tru-summary-grid > .tu-tru-summary-card[open] .tu-tru-summary-detail {font-size:9px !important;
    line-height:1.40 !important;
    padding:7px 8px !important;}
.tu-tru-summary-head {display:block !important;
    margin-bottom:7px !important;}
.tu-tru-summary-title {display:block !important;
    font-size:12px !important;
    line-height:1.18 !important;
    margin:0 0 3px !important;}
.tu-tru-summary-note {display:block !important;
    width:100% !important;
    font-size:8px !important;
    line-height:1.35 !important;
    text-align:left !important;
    margin:0 !important;}
.tu-tru-summary-card[open] .bazi-role-grid {grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:5px !important;}
}


/* TVTT-3F1: Web shell display hotfix.
 * Lite keeps .tu-tru-container hidden until its app shell explicitly opens it.
 * Web uses the parent [data-tutru-result][hidden] state instead, so the chart
 * container itself must be displayable after a successful form submit.
 */
.tt-preview-chart.tu-tru-container[data-tutru-chart] {
  display: block;
}
