

/* Giữ nhãn cung và metadata ngắn trên một dòng ở mọi kích thước */
.vibe-tuvi-chart .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-canabbr,
.vibe-tuvi-chart .vibe-tuvi-palace-age,
.vibe-tuvi-chart .vibe-tuvi-palace-thang,
.vibe-tuvi-chart .vibe-tuvi-palace-mirror,
.vibe-tuvi-chart [data-group="than"] {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}
/* Kích thước Tràng Sinh theo responsive */
.vibe-tuvi-chart [data-group="than"] { font-size: 10px !important; line-height: 1.15 !important; }
@media (max-width: 1024px) {
  .vibe-tuvi-chart [data-group="than"] { font-size: 8px !important; }
}
@media (max-width: 600px) {
  .vibe-tuvi-chart [data-group="than"] { font-size: 6px !important; }
}

/* Đồng bộ Cung Chức nhỏ hơn Chính Tinh trên mọi thiết bị */
.vibe-tuvi-chart .vibe-tuvi-palace-name { font-size: 11px !important; line-height: 1.15 !important; }
@media (max-width: 1024px) { .vibe-tuvi-chart .vibe-tuvi-palace-name { font-size: 9px !important; } }
@media (max-width: 600px) { .vibe-tuvi-chart .vibe-tuvi-palace-name { font-size: 7px !important; } }:root {
    --vibe-tuvi-primary: #8b0a0a;
    --vibe-tuvi-border: #8b0a0a;
    --vibe-tuvi-bg: #fffcf5;
    --vibe-tuvi-card-bg: #ffffff;
    --vibe-tuvi-header-bg: #f9e5d3;
    --vibe-tuvi-text-main: #1a1a1a;
    --vibe-tuvi-text-good: #c0392b;
    --vibe-tuvi-text-bad: #1a4d8f;
    --vibe-tuvi-text-neutral: #5a5a5a;
    --vibe-tuvi-border-thin: rgba(139, 10, 10, 0.18);
    --vibe-tuvi-trangs: #7c3aed;
    --vibe-tuvi-bw-text-main: #000;
    --vibe-tuvi-bw-text-good: #000;
    --vibe-tuvi-bw-text-bad: #222;
}

.vibe-tuvi-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
    color: var(--vibe-tuvi-text-main);
    box-sizing: border-box;
}

.vibe-tuvi-wrapper *,
.vibe-tuvi-wrapper *::before,
.vibe-tuvi-wrapper *::after {
    box-sizing: inherit;
}

.vibe-tuvi-panel {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    margin-bottom: 32px;
}

.vibe-tuvi-panel-header {
    background: var(--vibe-tuvi-primary);
    color: #fff;
    padding: 18px 28px;
    font-weight: 700;
    font-size: 22px;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
}

.vibe-tuvi-form {
    padding: 28px;
}

.vibe-tuvi-form-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: 16px;
    gap: 16px;
}

.vibe-tuvi-form-row--submit {
    justify-content: flex-end;
    margin-top: 28px;
    margin-bottom: 0;
}

.vibe-tuvi-label {
    flex: 0 0 180px;
    min-width: 140px;
    font-weight: 600;
    font-size: 14px;
    color: #333;
    padding-top: 9px;
    text-align: right;
}

.vibe-tuvi-required {
    color: #e74c3c;
}

.vibe-tuvi-control {
    flex: 1;
    min-width: 0;
}

.vibe-tuvi-inline {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.vibe-tuvi-control select:focus,
.vibe-tuvi-control input[type="text"]:focus {
    outline: none;
    border-color: var(--vibe-tuvi-primary);
    box-shadow: 0 0 0 3px rgba(139, 10, 10, 0.15);
}

.vibe-tuvi-hour-label {
    display: inline-block;
    margin-left: 10px;
    font-weight: 600;
    color: var(--vibe-tuvi-primary);
    font-size: 14px;
}

.vibe-tuvi-radio,
.vibe-tuvi-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 400;
    color: #333;
    user-select: none;
}

.vibe-tuvi-radio input,
.vibe-tuvi-checkbox input {
    accent-color: var(--vibe-tuvi-primary);
    width: 16px;
    height: 16px;
}

.vibe-tuvi-submit {
    background: var(--vibe-tuvi-primary);
    color: #fff;
    border: none;
    padding: 12px 36px;
    font-weight: 700;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
}

.vibe-tuvi-submit:hover {
    filter: brightness(1.1);
}

.vibe-tuvi-submit:active {
    transform: scale(0.97);
}

.vibe-tuvi-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.vibe-tuvi-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    color: var(--vibe-tuvi-primary);
    font-weight: 600;
    font-size: 15px;
}

.vibe-tuvi-spinner {
    width: 22px;
    height: 22px;
    border: 3px solid #e5e7eb;
    border-top-color: var(--vibe-tuvi-primary);
    border-radius: 50%;
    animation: vibe-tuvi-spin 0.7s linear infinite;
    margin-right: 12px;
}

@keyframes vibe-tuvi-spin {
    to { transform: rotate(360deg); }
}

.vibe-tuvi-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    padding: 14px 18px;
    border-radius: 6px;
    margin: 16px 0;
    font-size: 14px;
    line-height: 1.6;
}

.vibe-tuvi-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 16px;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.vibe-tuvi-toolbar-btn {
    background: var(--vibe-tuvi-primary);
    color: #fff;
    border: none;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 5px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: filter 0.2s;
}

.vibe-tuvi-toolbar-btn:hover {
    filter: brightness(1.1);
}

.vibe-tuvi-toolbar-btn:disabled {
    opacity: 0.65;
    cursor: default;
    filter: none;
}

.vibe-tuvi-toolbar-icon {
    font-size: 14px;
    line-height: 1;
}

.vibe-tuvi-toolbar-toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    flex: 0 0 100%;
    width: 100%;
    justify-content: center;
    margin: 0 0 2px;
    padding: 0 0 8px;
    border-left: 0;
    border-bottom: 1px solid #e0e0e0;
}

.vibe-tuvi-toolbar-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
    font-size: 13px;
    color: #444;
    font-weight: 500;
}

.vibe-tuvi-toolbar-toggle input {
    accent-color: var(--vibe-tuvi-primary);
    width: 15px;
    height: 15px;
    margin: 0;
}

.vibe-tuvi-chart {

    position: relative;

}

.vibe-tuvi-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(4, minmax(190px, auto));
    gap: 4px;
}

.vibe-tuvi-center {
    grid-column: 2 / 4;
    grid-row: 2 / 4;
    border: 2px solid var(--vibe-tuvi-border);
    background: var(--vibe-tuvi-card-bg);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 2;
}

.vibe-tuvi-center-inner {
    padding: 14px 16px;
    flex: 1;
    overflow-y: auto;
    background: linear-gradient(180deg, #fff 0%, #fafafa 100%);
}

.vibe-tuvi-center-title {
    text-align: center;
    font-size: 22px;
    font-weight: 800;
    color: var(--vibe-tuvi-border);
    margin: 0 0 4px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    line-height: 1.2;
}

.vibe-tuvi-center-subtitle {
    text-align: center;
    font-size: 12px;
    color: #666;
    margin: 0 0 12px;
    font-weight: 500;
    font-style: italic;
}

.vibe-tuvi-center-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.vibe-tuvi-center-table tr {
    border-bottom: 1px dashed #ead8c2;
}

.vibe-tuvi-center-table tr:last-child {
    border-bottom: none;
}

.vibe-tuvi-center-table tr.vibe-tuvi-center-row-highlight {
    background: rgba(139, 10, 10, 0.04);
}

.vibe-tuvi-center-table tr.vibe-tuvi-center-row-watch {
    background: rgba(255, 193, 7, 0.12);
}

.vibe-tuvi-info-list {
    width: 100%;
    font-size: 12.5px;
    border: 1px solid rgba(139, 10, 10, 0.12);
    border-radius: 8px;
    background: #fffdfa;
    overflow: hidden;
}

.vibe-tuvi-info-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 6px 10px;
    border-bottom: 1px dashed #ead8c2;
}

.vibe-tuvi-info-row:last-child {
    border-bottom: none;
}

.vibe-tuvi-info-row:nth-child(even) {
    background: rgba(139, 10, 10, 0.03);
}

.vibe-tuvi-info-label {
    flex: 0 0 84px;
    font-weight: 700;
    color: var(--vibe-tuvi-border, #8b0a0a);
    font-size: 12px;
    white-space: nowrap;
}

.vibe-tuvi-info-value {
    flex: 1;
    color: #333;
    font-size: 12.5px;
    line-height: 1.4;
    word-break: break-word;
}

.vibe-tuvi-info-value--split {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.vibe-tuvi-info-value-a {
    flex: 0 0 42%;
}

.vibe-tuvi-info-value-b {
    flex: 1;
    font-weight: 600;
    color: #5a4632;
}

.vibe-tuvi-info-list .vibe-tuvi-bm-main {
    font-weight: 600;
}

.vibe-tuvi-info-list .vibe-tuvi-bm-relation {
    color: #777;
    font-size: 11.5px;
    margin-left: 4px;
}

@media (max-width: 480px) {
    .vibe-tuvi-info-label {
        flex: 0 0 72px;
        font-size: 11px;
    }
    .vibe-tuvi-info-value,
    .vibe-tuvi-info-value-b {
        font-size: 11.5px;
    }
}

.vibe-tuvi-center-label {
    font-weight: 600;
    color: #555;
    padding: 5px 8px 5px 0;
    white-space: nowrap;
    width: 38%;
    font-size: 12px;
}

.vibe-tuvi-center-value {
    color: #111;
    padding: 5px 0;
    font-weight: 600;
    font-size: 12.5px;
}

.vibe-tuvi-center-tuhoa {
    margin-top: 12px;
    padding: 10px;
    background: linear-gradient(135deg, #fffcf5 0%, #fce4ec 100%);
    border: 1px solid #ead8c2;
    border-radius: 6px;
}

.vibe-tuvi-center-tuhoa-title {
    font-size: 11.5px;
    font-weight: 700;
    color: #555;
    text-align: center;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.vibe-tuvi-center-tuhoa-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 10px;
    font-size: 11.5px;
}

.vibe-tuvi-tuhoa-item {
    font-weight: 500;
    color: #333;
}

.vibe-tuvi-tuhoa-item b {
    font-weight: 700;
    margin-right: 2px;
}

.hoa-loc { color: #16a34a; font-weight: 700; }
.hoa-quyen { color: #16a34a; font-weight: 700; }
.hoa-khoa { color: #16a34a; font-weight: 700; }
.hoa-ky { color: #111111; font-weight: 700; }

.vibe-tuvi-credit {
    text-align: center;
    font-size: 10.5px;
    color: #999;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #ead8c2;
}

.vibe-tuvi-palace {
    border: 1.5px solid var(--vibe-tuvi-border);
    background: var(--vibe-tuvi-card-bg);
    border-radius: 3px;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto 1fr auto;
    font-size: 12.5px;
    position: relative;
    transition: box-shadow 0.2s, transform 0.1s;
    cursor: pointer;
}

.vibe-tuvi-palace:hover {
    box-shadow: 0 4px 12px rgba(139, 10, 10, 0.18);
    z-index: 3;
}

.vibe-tuvi-palace.is-menh {
    border-color: #d4a017;
    border-width: 2.5px;
    box-shadow: inset 0 0 0 1px rgba(212, 160, 23, 0.3);
}

.vibe-tuvi-palace.is-than {
    border-style: dashed;
}

.vibe-tuvi-palace-header {
    background: var(--vibe-tuvi-header-bg);
    padding: 4px 6px;
    border-bottom: 1.5px solid var(--vibe-tuvi-border);
    text-align: center;
    line-height: 1.15;
}

.vibe-tuvi-palace-header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 4px;
    margin-bottom: 1px;
}

.vibe-tuvi-palace-name {
    font-weight: 800;
    font-size: 13px;
    color: var(--vibe-tuvi-border);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.vibe-tuvi-palace-can {
    font-size: 10px;
    color: #888;
    font-style: italic;
    font-weight: 500;
}

.vibe-tuvi-palace-branch {
    font-weight: 700;
    font-size: 14px;
    color: #1a1a1a;
    display: block;
}

.vibe-tuvi-palace {
    grid-template-columns: 1fr auto;
    grid-template-areas:
        "header header"
        "thansat han"
        "main    han"
        "bad     han"
        "other   han";
}

.vibe-tuvi-palace-header { grid-area: header; }
.vibe-tuvi-palace-thansat { grid-area: thansat; }
.vibe-tuvi-palace-main    { grid-area: main; }
.vibe-tuvi-palace-bad     { grid-area: bad; }
.vibe-tuvi-palace-other   { grid-area: other; }
.vibe-tuvi-palace-han     { grid-area: han; }

.vibe-tuvi-palace-thansat {
    padding: 3px 6px;
    background: rgba(249, 229, 211, 0.4);
    border-bottom: 1px dashed #ead8c2;
    font-size: 11px;
    line-height: 1.3;
    min-height: 22px;
    text-align: center;
}

.vibe-tuvi-thansat-line {
    color: var(--vibe-tuvi-trangs);
    font-weight: 600;
    font-style: italic;
}

.vibe-tuvi-chieu-line {
    color: #888;
    font-size: 10px;
    font-style: italic;
    margin-top: 1px;
}

.vibe-tuvi-chieu-icon {
    color: var(--vibe-tuvi-primary);
    font-weight: 700;
}

.vibe-tuvi-palace-main {
    padding: 3px 6px;
    text-align: center;
    border-bottom: 1px dashed var(--vibe-tuvi-border-thin);
    min-height: 18px;
}

.vibe-tuvi-palace-main .vibe-tuvi-star--main {
    font-size: 13px;
    font-weight: 700;
    color: var(--vibe-tuvi-text-good);
    line-height: 1.25;
    padding: 1px 0;
}

.vibe-tuvi-palace-main .vibe-tuvi-star--main.hoa-loc { color: #16a34a; }
.vibe-tuvi-palace-main .vibe-tuvi-star--main.hoa-quyen { color: #16a34a; }
.vibe-tuvi-palace-main .vibe-tuvi-star--main.hoa-khoa { color: #16a34a; }
.vibe-tuvi-palace-main .vibe-tuvi-star--main.hoa-ky { color: #111111; }

.vibe-tuvi-palace-bad {
    padding: 3px 6px;
    text-align: center;
    border-bottom: 1px dashed var(--vibe-tuvi-border-thin);
    min-height: 18px;
}

.vibe-tuvi-palace-bad .vibe-tuvi-star--bad {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--vibe-tuvi-text-bad);
    line-height: 1.25;
    padding: 1px 0;
}

.vibe-tuvi-palace-bad .vibe-tuvi-star--bad.hoa-ky { color: #111111; font-weight: 800; }

.vibe-tuvi-palace-other {
    padding: 3px 6px;
    text-align: center;
    min-height: 18px;
    font-size: 11px;
    line-height: 1.25;
}

.vibe-tuvi-palace-other .vibe-tuvi-star--good {
    color: var(--vibe-tuvi-text-good);
    font-weight: 500;
    padding: 0.5px 0;
}

.vibe-tuvi-palace-other .vibe-tuvi-star--good.hoa-loc { color: #16a34a; font-weight: 700; }
.vibe-tuvi-palace-other .vibe-tuvi-star--good.hoa-quyen { color: #16a34a; font-weight: 700; }
.vibe-tuvi-palace-other .vibe-tuvi-star--good.hoa-khoa { color: #16a34a; font-weight: 700; }

.vibe-tuvi-palace-other .vibe-tuvi-star--neutral {
    color: var(--vibe-tuvi-text-neutral);
    padding: 0.5px 0;
}

.vibe-tuvi-palace-han {
    background: rgba(255, 193, 7, 0.08);
    border-left: 1.5px solid var(--vibe-tuvi-border);
    padding: 3px 5px;
    font-size: 10.5px;
    text-align: center;
    min-width: 50px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 2px;
}

.vibe-tuvi-han-dai {
    color: var(--vibe-tuvi-border);
    font-weight: 700;
    line-height: 1.2;
    font-size: 10.5px;
}

.vibe-tuvi-han-tieu {
    color: #c0392b;
    font-weight: 700;
    font-size: 10.5px;
    background: #fff3cd;
    border-radius: 2px;
    padding: 1px 2px;
    line-height: 1.2;
}

.vibe-tuvi-chart--bw {

    --vibe-tuvi-bg: #fff;
    --vibe-tuvi-card-bg: #fff;
    --vibe-tuvi-header-bg: #f5f5f5;
    --vibe-tuvi-text-main: #000;
    --vibe-tuvi-text-good: #000;
    --vibe-tuvi-text-bad: #222;
    --vibe-tuvi-text-neutral: #333;
    --vibe-tuvi-border: #000;
    --vibe-tuvi-primary: #000;
    --vibe-tuvi-trangs: #000;
    --vibe-tuvi-border-thin: rgba(0, 0, 0, 0.2);
}

.vibe-tuvi-chart--bw .vibe-tuvi-palace {
    border-color: #000;
}

.vibe-tuvi-chart--bw .vibe-tuvi-palace-name,
.vibe-tuvi-chart--bw .vibe-tuvi-palace-branch {
    color: #000;
}

.vibe-tuvi-chart--bw .vibe-tuvi-palace-main .vibe-tuvi-star--main,
.vibe-tuvi-chart--bw .vibe-tuvi-palace-other .vibe-tuvi-star--good {
    color: #000;
}

.vibe-tuvi-chart--bw .vibe-tuvi-palace-bad .vibe-tuvi-star--bad {
    color: #333;
}

.vibe-tuvi-chart--bw .vibe-tuvi-thansat-line {
    color: #000;
}

.vibe-tuvi-chart--bw .hoa-loc,
.vibe-tuvi-chart--bw .hoa-quyen,
.vibe-tuvi-chart--bw .hoa-khoa,
.vibe-tuvi-chart--bw .hoa-ky {
    color: #000;
    text-decoration: underline;
}

.vibe-tuvi-chart[data-hide-than="1"] .vibe-tuvi-palace-thansat { display: none; }
.vibe-tuvi-chart[data-hide-han="1"]  .vibe-tuvi-palace-han     { display: none; }

.vibe-tuvi-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.vibe-tuvi-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(2px);
}

.vibe-tuvi-modal-content {
    position: relative;
    background: #fff;
    max-width: 720px;
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    border-radius: 10px;
    padding: 28px 32px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.vibe-tuvi-modal-close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: transparent;
    border: none;
    font-size: 28px;
    line-height: 1;
    color: #666;
    cursor: pointer;
    padding: 4px 10px;
}

.vibe-tuvi-modal-close:hover {
    color: #000;
}

#vibe-modal-title {
    margin: 0 0 16px;
    font-size: 22px;
    color: var(--vibe-tuvi-primary);
    border-bottom: 2px solid var(--vibe-tuvi-primary);
    padding-bottom: 10px;
}

#vibe-modal-body {
    font-size: 14px;
    line-height: 1.7;
    color: #333;
}

#vibe-modal-body h4 {
    color: var(--vibe-tuvi-primary);
    margin: 16px 0 6px;
    font-size: 15px;
}

#vibe-modal-body ul {
    padding-left: 20px;
}

#vibe-modal-body li {
    margin-bottom: 4px;
}

@media (max-width: 900px) {
    .vibe-tuvi-form-row {
        flex-direction: column;
        gap: 4px;
    }
    .vibe-tuvi-label {
        flex: none;
        text-align: left;
        padding-top: 0;
        min-width: unset;
    }
    .vibe-tuvi-inline {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .vibe-tuvi-submit {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 768px) {
    .vibe-tuvi-wrapper {
        padding: 10px;
    }
    .vibe-tuvi-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .vibe-tuvi-toolbar-toggles {
        margin-left: 0;
        padding-left: 0;
        border-left: none;
        border-top: 0;
        border-bottom: 1px solid #e0e0e0;
        padding: 0 0 8px;
    }
    .vibe-tuvi-board {
        min-width: 600px;
        width: max-content;
        margin: 0 auto;
    }
}

@media print {
    .no-print,
    .vibe-tuvi-form,
    .vibe-tuvi-panel-header,
    .vibe-tuvi-submit,
    .vibe-tuvi-modal {
        display: none !important;
    }
    .vibe-tuvi-chart {
        border: 1.5px solid #000 !important;
        box-shadow: none !important;
        padding: 10px !important;
    }
    .vibe-tuvi-palace,
    .vibe-tuvi-center {
        border: 1px solid #000 !important;
    }
    .vibe-tuvi-board {
        gap: 1px;
    }
    .vibe-tuvi-palace-name,
    .vibe-tuvi-palace-branch {
        color: #000 !important;
    }
    .vibe-tuvi-palace-main .vibe-tuvi-star--main,
    .vibe-tuvi-palace-other .vibe-tuvi-star--good {
        color: #000 !important;
    }
    .vibe-tuvi-palace-bad .vibe-tuvi-star--bad {
        color: #222 !important;
    }
    .vibe-tuvi-credit {
        display: block !important;
    }
    .hoa-loc, .hoa-quyen, .hoa-khoa, .hoa-ky {
        color: #000 !important;
        text-decoration: underline;
    }
}

.vibe-tuvi-chart {

    overflow: visible;
}

.vibe-tuvi-chart .vibe-tuvi-palace {

    transition: background .15s ease;
}

.vibe-tuvi-chart .vibe-tuvi-palace:hover {

    z-index: 4;
}

.vibe-tuvi-chart .vibe-tuvi-palace.is-menh,
.vibe-tuvi-chart .vibe-tuvi-palace.is-than {

    border-width: 1px !important;
    outline: none !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-topline {

    justify-content: space-between;

}

.vibe-tuvi-chart .vibe-tuvi-palace-age {

    flex: 0 0 auto;
}

.vibe-tuvi-chart .vibe-tuvi-palace-topline .vibe-tuvi-palace-name {
    flex: 1 1 auto;

}

.vibe-tuvi-chart .vibe-tuvi-el-kim { color: #777; }
.vibe-tuvi-chart .vibe-tuvi-el-moc { color: #008000; }
.vibe-tuvi-chart .vibe-tuvi-el-thuy { color: #000; }
.vibe-tuvi-chart .vibe-tuvi-el-hoa { color: #ff1a00; }
.vibe-tuvi-chart .vibe-tuvi-el-tho { color: #f59e0b; }

.vibe-tuvi-chart .vibe-tuvi-star em {

    color: inherit;
}

.vibe-tuvi-chart .vibe-tuvi-chieu-line {
    margin-top: 3px;
    font-size: 9px;
    color: #777;
    font-style: italic;
    text-align: center;
}

.vibe-tuvi-chart .vibe-tuvi-palace-footer span:nth-child(2) {
    font-weight: 700;
    color: #111;

}

.vibe-tuvi-chart .vibe-tuvi-chart-legend,
.vibe-tuvi-chart-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    padding: 4px 5px;
    background: #fffcf5;
    border-top: 1px solid #222;
    color: #111;
}
.vibe-tuvi-dot {
    display: inline-block;

}

.vibe-tuvi-tuhoa-summary {
    border-top: 1px solid #222;
    padding: 6px 8px;
    font-size: 11px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    background: #fffaf1;
}

.vibe-tuvi-chart > .vibe-tuvi-credit {
    margin: 0 !important;
    padding: 5px !important;
    border-top: 1px solid #222 !important;
    color: #555 !important;
    background: #fffcf5;
}

@media (max-width: 768px) {
    .vibe-tuvi-chart { max-width: none; overflow-x: auto; }
    .vibe-tuvi-chart .vibe-tuvi-board { min-width: 640px !important; width: 640px !important; }
}

@media print {
    .vibe-tuvi-chart {

        border-color: #000 !important;
    }
}

.vibe-tuvi-chart {

    --vibe-tuvi-card-bg: #fffcf5;

    margin: 0 auto !important;
    padding: 0 !important;

    border-radius: 0 !important;

    font-size: 10px !important;
    line-height: 1.14 !important;
    box-shadow: none !important;
}

.vibe-tuvi-chart .vibe-tuvi-board {
    display: grid !important;

    gap: 0 !important;

    border: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace,
.vibe-tuvi-chart .vibe-tuvi-center {

    border-radius: 0 !important;

}

.vibe-tuvi-chart .vibe-tuvi-palace {

    display: flex !important;
    flex-direction: column !important;

    position: relative !important;
    cursor: pointer;
}

.vibe-tuvi-chart .vibe-tuvi-palace-topline {

    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 4px !important;

    color: #111 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-canabbr {
    white-space: pre-line !important;
    display: inline-block !important;
    font-weight: 700 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-age {

    color: #111 !important;
    text-align: right !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-topline .vibe-tuvi-palace-name {
    text-align: center !important;
    margin-top: 0 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-name {
    color: #a90707 !important;

    text-transform: uppercase !important;

}

.vibe-tuvi-chart .vibe-tuvi-palace.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-pos-4 .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-pos-8 .vibe-tuvi-palace-name {
    color: #9d9d9d !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-thang,
.vibe-tuvi-chart .vibe-tuvi-palace-mirror {

    white-space: nowrap !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-element {

    text-align: left !important;

    color: #008a26 !important;

}

.vibe-tuvi-chart .vibe-tuvi-palace-stars {
    flex: 1 1 auto !important;

    overflow: hidden !important;
}

.vibe-tuvi-chart .vibe-tuvi-star-line {

    text-align: center !important;
}

.vibe-tuvi-chart .vibe-tuvi-star {
    display: block !important;
    padding: 0 !important;

    white-space: normal !important;
}

.vibe-tuvi-chart .vibe-tuvi-star em {

    font-style: normal !important;

}

.vibe-tuvi-chart .vibe-tuvi-star--main {

    text-align: center !important;
}
.vibe-tuvi-chart .vibe-tuvi-star-line--main{display:flex!important;flex-direction:column!important;align-items:center;min-height:18px}.vibe-tuvi-chart .vibe-tuvi-star-line--main .vibe-tuvi-star--main{display:block!important;width:100%}.vibe-tuvi-chart .vibe-tuvi-star-line--empty{min-height:18px}.vibe-tuvi-chart .main-double-group .vibe-tuvi-star-line--main,.vibe-tuvi-chart .main-double-group .vibe-tuvi-star-line--empty{min-height:36px}
.vibe-home-packages{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px auto;max-width:1100px}.vibe-home-packages article{background:#fff;border:1px solid #dfe3ea;border-radius:14px;padding:26px;box-shadow:0 8px 20px #17203312}.vibe-home-packages h3{font-size:28px;margin:0 0 12px}.vibe-home-packages p{font-size:18px}.vibe-home-packages li{margin:10px 0}.vibe-home-packages a{display:inline-block;background:#3158ed;color:#fff;padding:12px 18px;border-radius:8px;text-decoration:none;font-weight:700}.vibe-home-packages .is-popular{border:2px solid #3158ed}@media(max-width:700px){.vibe-home-packages{grid-template-columns:1fr}}
.vibe-tuvi-ai-locked,.vibe-tuvi-ai-login{padding:28px!important}.vibe-tuvi-ai-locked h3,.vibe-tuvi-ai-login h3{margin-top:0}.vibe-tuvi-unlock-btn,.vibe-tuvi-mission-open{display:inline-block;margin:8px 8px 0 0;padding:11px 18px;border:0;border-radius:8px;background:#e69138;color:#fff;font-weight:700;text-decoration:none;cursor:pointer}.vibe-tuvi-mission-open{background:#168440}
.vibe-tuvi-login-modal[hidden]{display:none}.vibe-tuvi-login-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center}.vibe-tuvi-login-modal__overlay{position:absolute;inset:0;background:rgba(15,23,42,.62)}.vibe-tuvi-login-modal__dialog{position:relative;width:min(92vw,430px);padding:32px;border-radius:16px;background:#fff;box-shadow:0 20px 60px rgba(0,0,0,.28)}.vibe-tuvi-login-modal__dialog h3{margin:0 0 20px;font-size:26px;color:#99100d}.vibe-tuvi-login-modal__close{position:absolute;right:14px;top:8px;border:0;background:none;font-size:30px;color:#667085;cursor:pointer}.vibe-tuvi-login-modal__dialog form p{margin:0 0 14px}.vibe-tuvi-login-modal__dialog input[type=text],.vibe-tuvi-login-modal__dialog input[type=password]{width:100%;box-sizing:border-box;padding:11px;border:1px solid #d0d5dd;border-radius:8px}.vibe-tuvi-login-modal__dialog input[type=submit]{padding:11px 20px;border:0;border-radius:8px;background:#3158ed;color:#fff;font-weight:700;cursor:pointer}.vibe-tuvi-login-register{margin:18px 0 0}.vibe-tuvi-login-modal-open{overflow:hidden}
@media (max-width:1024px) and (min-width:601px){.vibe-tuvi-chart .main-double-group .vibe-tuvi-star-line--main,.vibe-tuvi-chart .main-double-group .vibe-tuvi-star-line--empty{min-height:34px}}
@media (max-width:600px){.vibe-tuvi-chart .main-double-group .vibe-tuvi-star-line--main,.vibe-tuvi-chart .main-double-group .vibe-tuvi-star-line--empty{min-height:20px}}

.vibe-tuvi-chart .vibe-tuvi-star-columns {
    display: grid !important;

    align-items: start !important;

}

.vibe-tuvi-chart .vibe-tuvi-star-columns > div:nth-child(2) {
    text-align: right !important;
}

.vibe-tuvi-chart .vibe-tuvi-chieu-line {
    display: none !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-footer {

    grid-template-columns: 1fr auto 1fr !important;

    align-items: end !important;
    color: #111 !important;

}

.vibe-tuvi-chart .vibe-tuvi-palace-footer span:nth-child(2) {
    text-align: center !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace-footer span:last-child {
    text-align: right !important;
}

.vibe-tuvi-chart .vibe-tuvi-center {
    grid-column: 2 / 4 !important;
    grid-row: 2 / 4 !important;

    position: relative !important;
    overflow: hidden !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-lines {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
    pointer-events: none !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-lines line,
.vibe-tuvi-chart .vibe-tuvi-center-lines polyline {

    fill: none !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-branches {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    pointer-events: none !important;

    line-height: 1 !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-branches .br {
    position: absolute !important;
    display: block !important;
    font-weight: 400 !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-inner {
    position: relative !important;
    z-index: 3 !important;
    height: 100% !important;

    background: transparent !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-brand {

    color: #111 !important;
    text-align: center !important;
    text-transform: uppercase !important;

}

.vibe-tuvi-chart .vibe-tuvi-center-url {

    font-weight: 800 !important;
    text-decoration: none !important;

}

.vibe-tuvi-chart .vibe-tuvi-center-hotline {

    color: #111 !important;

    font-weight: 700 !important;

    text-align: center !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-hotline strong {

    font-weight: 800 !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-title {

    color: #111 !important;

    text-transform: none !important;

}

.vibe-tuvi-chart .vibe-tuvi-center-table {
    width: 100% !important;

    border-collapse: collapse !important;

    color: #111 !important;
    background: transparent !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-table tr,
.vibe-tuvi-chart .vibe-tuvi-center-table td {
    border: 0 !important;
    background: transparent !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-table td {

    color: #111 !important;
    vertical-align: top !important;

}

.vibe-tuvi-chart .vibe-tuvi-center-table td:first-child {

    white-space: nowrap !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-table td:nth-child(3) {
    text-align: left !important;
    white-space: nowrap !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-seal {
    position: absolute !important;

    object-fit: contain !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-seal--text {
    border: 2px solid #b71a1a !important;
    color: #b71a1a !important;
    background: transparent !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    font-family: serif !important;
    font-weight: 800 !important;
}

.vibe-tuvi-chart-legend {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;

    color: #111 !important;

    line-height: 1 !important;
}

.vibe-tuvi-legend-spacer { flex: 1 1 auto !important; }
.vibe-tuvi-legend-id { margin-left: auto !important; white-space: nowrap !important; }

.vibe-tuvi-tuhoa-summary,
.vibe-tuvi-chart > .vibe-tuvi-credit {
    display: none !important;
}

.vibe-tuvi-chart[data-hide-than="1"] [data-group="than"] { display: none !important; }
.vibe-tuvi-chart[data-hide-han="1"] [data-group="han"] { display: none !important; }
.vibe-tuvi-chart[data-hide-tuhoa="1"] [data-group="tuhoa"] { display: none !important; }
.vibe-tuvi-chart[data-hide-chieu="1"] [data-group="chieu"] { display: none !important; }

@media (max-width: 640px) {
    .vibe-tuvi-wrapper { overflow-x: auto !important; }
    .vibe-tuvi-chart {
        width: 600px !important;
        max-width: none !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-board {
        min-width: 0 !important;
        width: 100% !important;
    }
}
.vibe-tuvi-chart .vibe-tuvi-special-marker {
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;

    text-align: center !important;

    pointer-events: none !important;
}
.vibe-tuvi-chart .vibe-tuvi-special-marker--triệt,
.vibe-tuvi-chart .vibe-tuvi-special-marker--triet { bottom: 0 !important; }
.vibe-tuvi-chart .vibe-tuvi-special-marker--tuần,
.vibe-tuvi-chart .vibe-tuvi-special-marker--tuan { top: 0 !important; }

.vibe-tuvi-chart .vibe-tuvi-center-chieu-lines {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;

    pointer-events: none !important;

}
.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line {

    fill: none !important;

}
.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line.is-tam-hop { stroke: rgba(145, 72, 154, .72) !important; }
.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line.is-xung { stroke: rgba(255, 90, 70, .78) !important; }
.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line.is-luc-hop {
    stroke: rgba(45, 120, 255, .58) !important;
    stroke-dasharray: 4 3 !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-source {

    outline-offset: -2px !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-tamhop {

    outline-offset: -2px !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-xung {

    outline-offset: -2px !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-luchop {
    box-shadow: inset 0 0 0 2px rgba(45, 120, 255, .42) !important;
}
.vibe-tuvi-chart[data-hide-chieu="1"] .vibe-tuvi-center-chieu-lines,
.vibe-tuvi-chart[data-hide-chieu="1"] .vibe-tuvi-chieu-line {
    display: none !important;
}

.vibe-tuvi-chart .vibe-tuvi-special-marker--top {
    bottom: auto !important;
    top: 0 !important;
    transform: translate(-50%, -50%) !important;
    z-index: 20 !important;
}
.vibe-tuvi-chart .vibe-tuvi-special-marker--bottom {  top: auto !important; }
.vibe-tuvi-chart .vibe-tuvi-special-marker--right {
    left: auto !important;

    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) rotate(90deg) !important;
}

.vibe-tuvi-chart {
    --vibe-tuvi-bg: #fffcf5;
    --vibe-tuvi-line: #111;
    --vibe-color-kim: #8d8d8d;
    --vibe-color-moc: #009632;
    --vibe-color-thuy: #050505;
    --vibe-color-hoa: #ed0000;
    --vibe-color-tho: #ff9300;
    width: 720px !important;
    max-width: 100% !important;

    background: var(--vibe-tuvi-bg) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    color: #080808 !important;
    -webkit-font-smoothing: antialiased;
    text-rendering: geometricPrecision;
}

.vibe-tuvi-chart .vibe-tuvi-board {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(4, 216px) !important;
    background: var(--vibe-tuvi-line) !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace,
.vibe-tuvi-chart .vibe-tuvi-center {

    background: #fffcf5 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace {
    height: 216px !important;
    min-height: 216px !important;
    padding: 9px 9px 25px !important;

}

.vibe-tuvi-chart .vibe-tuvi-palace:hover {
    background: #fff6e7 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-topline {
    min-height: 25px !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace-canabbr {
    font-size: 13px !important;
    line-height: 1.12 !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace-age {
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-heading {
    min-height: 27px !important;
    gap: 4px !important;
    align-items: flex-start !important;
    margin-top: 0 !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace-name {
    font-size: 14px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    letter-spacing: .05px !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace-thang,
.vibe-tuvi-chart .vibe-tuvi-palace-mirror {
    font-size: 13px !important;
    line-height: 1.05 !important;
    font-weight: 800 !important;
    color: #111 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace-el-kim .vibe-tuvi-palace-name { color: var(--vibe-color-kim) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-moc .vibe-tuvi-palace-name { color: var(--vibe-color-moc) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-thuy .vibe-tuvi-palace-name { color: var(--vibe-color-thuy) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-hoa .vibe-tuvi-palace-name { color: var(--vibe-color-hoa) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-tho .vibe-tuvi-palace-name { color: var(--vibe-color-tho) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace.is-than .vibe-tuvi-palace-name { color: inherit !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-kim.is-than .vibe-tuvi-palace-name { color: var(--vibe-color-kim) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-moc.is-than .vibe-tuvi-palace-name { color: var(--vibe-color-moc) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-thuy.is-than .vibe-tuvi-palace-name { color: var(--vibe-color-thuy) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-hoa.is-than .vibe-tuvi-palace-name { color: var(--vibe-color-hoa) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-el-tho.is-than .vibe-tuvi-palace-name { color: var(--vibe-color-tho) !important; }

.vibe-tuvi-chart .vibe-tuvi-palace-element {
    min-height: 18px !important;
    font-size: 13px !important;
    line-height: 1.12 !important;
    font-weight: 800 !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace-element.vibe-tuvi-el-kim { color: var(--vibe-color-kim) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-element.vibe-tuvi-el-moc { color: var(--vibe-color-moc) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-element.vibe-tuvi-el-thuy { color: var(--vibe-color-thuy) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-element.vibe-tuvi-el-hoa { color: var(--vibe-color-hoa) !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-element.vibe-tuvi-el-tho { color: var(--vibe-color-tho) !important; }

.vibe-tuvi-chart .vibe-tuvi-palace-stars {
    font-size: 13px !important;
    line-height: 1.22 !important;
    padding-top: 1px !important;
}
.vibe-tuvi-chart .vibe-tuvi-star-line {
    margin: 0 0 4px !important;
}
.vibe-tuvi-chart .vibe-tuvi-star {
    margin: 0 0 3px !important;
    letter-spacing: -.12px !important;
}
.vibe-tuvi-chart .vibe-tuvi-star em {
    font-size: 12px !important;
    font-weight: 800 !important;
}
.vibe-tuvi-chart .vibe-tuvi-star--main {
    font-size: 15px !important;
    line-height: 1.16 !important;
    font-weight: 900 !important;
}
.vibe-tuvi-chart .vibe-tuvi-star-columns {
    grid-template-columns: 1fr 1fr !important;
    column-gap: 10px !important;
    text-align: left !important;
}
.vibe-tuvi-chart .vibe-tuvi-star-columns > div,
.vibe-tuvi-chart .vibe-tuvi-star-columns > div:nth-child(2) {
    text-align: left !important;
    min-width: 0 !important;
}

.vibe-tuvi-chart .vibe-tuvi-star-color-red { color: var(--vibe-color-hoa) !important; font-weight: 800 !important; }
.vibe-tuvi-chart .vibe-tuvi-star-color-orange { color: var(--vibe-color-tho) !important; font-weight: 800 !important; }
.vibe-tuvi-chart .vibe-tuvi-star-color-green { color: var(--vibe-color-moc) !important; font-weight: 800 !important; }
.vibe-tuvi-chart .vibe-tuvi-star-color-gray,
.vibe-tuvi-chart .vibe-tuvi-star-color-grey { color: var(--vibe-color-kim) !important; font-weight: 800 !important; }
.vibe-tuvi-chart .vibe-tuvi-star-color-black { color: var(--vibe-color-thuy) !important; font-weight: 800 !important; }
.vibe-tuvi-chart .vibe-tuvi-star-color-blue { color: #0d55d9 !important; font-weight: 800 !important; }

.vibe-tuvi-chart .vibe-tuvi-star--neutral { font-weight: 400 !important; }
.vibe-tuvi-chart .vibe-tuvi-star--bad { font-weight: 400 !important; }
.vibe-tuvi-chart .vibe-tuvi-star--good { font-weight: 400 !important; }

.vibe-tuvi-chart .vibe-tuvi-star--has-state { font-weight: 800 !important; }
.vibe-tuvi-chart .hoa-loc { color: var(--vibe-color-moc) !important; font-weight: 800 !important; }
.vibe-tuvi-chart .hoa-quyen { color: var(--vibe-color-moc) !important; font-weight: 800 !important; }
.vibe-tuvi-chart .hoa-khoa { color: var(--vibe-color-moc) !important; font-weight: 800 !important; }
.vibe-tuvi-chart .hoa-ky { color: var(--vibe-color-thuy) !important; font-weight: 800 !important; }

.vibe-tuvi-chart .vibe-tuvi-palace-footer {
    left: 8px !important;
    right: 8px !important;
    bottom: 5px !important;
    font-size: 12px !important;
    line-height: 1.05 !important;
    font-weight: 700 !important;
}

.vibe-tuvi-chart .vibe-tuvi-center {
    height: 432px !important;
    min-height: 432px !important;
    background: radial-gradient(circle at 50% 48%, #fffef9 0%, #fffcf5 62%, #fdf8ec 100%) !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-lines line,
.vibe-tuvi-chart .vibe-tuvi-center-lines polyline {
    stroke: rgba(148, 78, 165, .42) !important;
    stroke-width: .55 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-chieu-lines {
    z-index: 2 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-branches {
    font-size: 13px !important;
    color: #222 !important;
}
.vibe-tuvi-chart .br-hoi  { left: 7px !important; top: 5px !important; }
.vibe-tuvi-chart .br-ty   { left: 7px !important; top: 42% !important; transform: none !important; }
.vibe-tuvi-chart .br-suu  { left: 9px !important; bottom: 72px !important; top: auto !important; transform: none !important; }
.vibe-tuvi-chart .br-dan  { left: 8px !important; right: auto !important; bottom: 4px !important; top: auto !important; }
.vibe-tuvi-chart .br-mao  { left: 24% !important; bottom: 4px !important; right: auto !important; top: auto !important; }
.vibe-tuvi-chart .br-thin { right: 30% !important; bottom: 4px !important; }
.vibe-tuvi-chart .br-ti   { right: 8px !important; bottom: 4px !important; }
.vibe-tuvi-chart .br-ngo  { right: 39px !important; bottom: 72px !important; }
.vibe-tuvi-chart .br-mui  { right: 7px !important; top: 42% !important; bottom: auto !important; left: auto !important; transform: none !important; }
.vibe-tuvi-chart .br-than { right: 7px !important; top: 5px !important; left: auto !important; bottom: auto !important; }
.vibe-tuvi-chart .br-dau  { right: 31% !important; top: 5px !important; left: auto !important; bottom: auto !important; }
.vibe-tuvi-chart .br-tuat { left: 24% !important; top: 5px !important; }

.vibe-tuvi-chart .vibe-tuvi-center-inner {
    padding: 36px 52px 18px !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-brand {
    max-width: 385px !important;
    font-size: 15px !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-url {
    margin-top: 6px !important;
    font-size: 18px !important;
    line-height: 1 !important;
    color: #123cff !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-hotline {
    margin-top: 10px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-hotline strong {
    font-size: 16px !important;
    color: #1d48ff !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-title {

    line-height: 1 !important;
    font-family: Georgia, 'Times New Roman', serif !important;
    font-style: italic !important;
    font-weight: 900 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-table {
    max-width: 425px !important;
    font-size: 14px !important;
    line-height: 1.38 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-table td {
    padding: 2px 6px !important;
    font-weight: 500 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-table td:first-child {
    width: 116px !important;
    font-weight: 900 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-table td:nth-child(2) {
    width: 142px !important;
}
.vibe-tuvi-chart .vibe-tuvi-bm-main,
.vibe-tuvi-chart .vibe-tuvi-bm-relation {
    display: inline-block !important;
    line-height: 1.25 !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-seal {
    right: 45px !important;
    bottom: 57px !important;
    width: 52px !important;
    height: 52px !important;
}
.vibe-tuvi-chart .vibe-tuvi-center-seal--text {
    font-size: 34px !important;
    border-width: 3px !important;
}

.vibe-tuvi-chart .vibe-tuvi-special-marker {
    width: clamp(46px, 11vw, 70px) !important;
    height: clamp(16px, 2.6vw, 20px) !important;
    line-height: clamp(16px, 2.6vw, 22px) !important;
    font-size: clamp(8.5px, 1.7vw, 14px) !important;
    font-weight: 900 !important;
    letter-spacing: .2px !important;
    background: #000 !important;
    color: #fff !important;
    z-index: 20 !important;
    box-shadow: 0 0 0 1px #000 !important;
    box-sizing: border-box !important;
    padding: 0 2px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
}
.vibe-tuvi-chart .vibe-tuvi-special-marker--tuan-triet {
    width: clamp(58px, 14.5vw, 96px) !important;
}
.vibe-tuvi-chart .vibe-tuvi-special-marker--top {
    top: -1px !important;
}
.vibe-tuvi-chart .vibe-tuvi-special-marker--bottom {
    bottom: -10px !important;
}
.vibe-tuvi-chart .vibe-tuvi-special-marker--right {
    right: -38px !important;
}

.vibe-tuvi-chart-legend {
    height: 31px !important;
    padding: 6px 10px !important;
    gap: 8px !important;
    font-size: 13px !important;
    border-top: 1px solid #111 !important;
    background: #fffcf5 !important;
}
.vibe-tuvi-chart-legend b {
    color: var(--vibe-color-hoa) !important;
    font-weight: 900 !important;
}
.vibe-tuvi-dot {
    width: 14px !important;
    height: 14px !important;
    margin-right: 4px !important;
    vertical-align: -2px !important;
}
.vibe-tuvi-dot.vibe-tuvi-el-kim { background: var(--vibe-color-kim) !important; }
.vibe-tuvi-dot.vibe-tuvi-el-moc { background: var(--vibe-color-moc) !important; }
.vibe-tuvi-dot.vibe-tuvi-el-thuy { background: var(--vibe-color-thuy) !important; }
.vibe-tuvi-dot.vibe-tuvi-el-hoa { background: var(--vibe-color-hoa) !important; }
.vibe-tuvi-dot.vibe-tuvi-el-tho { background: var(--vibe-color-tho) !important; }

.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line {
    stroke-width: 1.4 !important;
    opacity: .72 !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-source,
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-tamhop,
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-xung,
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-luchop {
    outline-offset: -3px !important;
}

@media print {
    .vibe-tuvi-chart { width: 720px !important; max-width: 720px !important; }
    .vibe-tuvi-chart .vibe-tuvi-center { height: 432px !important; min-height: 432px !important; }
}

.vibe-tuvi-ai-panel {
    margin-top: 18px;
    background: rgb(238 249 243 / 97%);
    border: 0 12px 24px rgba(50,150,110,.32);
    border-radius: 10px;
    padding: 16px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
    font-family: Arial, Helvetica, sans-serif;
    color: #151515;
}

.vibe-tuvi-ai-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    border-bottom: 1px solid #2f9370;
    padding-bottom: 10px;
}

.vibe-tuvi-ai-header h3 {
    margin: 0 0 4px;
    font-size: 20px;
    font-weight: 800;
    color: #26564a;
}

.vibe-tuvi-ai-header p {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: #4b3d2c;
}

.vibe-tuvi-ai-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    border: 1px solid #8b0a0a;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 700;
    color: #8b0a0a;
    background: #fff;
}

.vibe-tuvi-ai-sections {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0 12px;
}

.vibe-tuvi-ai-sections button,
.vibe-tuvi-ai-submit {
    background: #fff;
    color: #151515;
    border-radius: 6px;
    padding: 7px 10px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all .15s ease;
}

.vibe-tuvi-ai-sections button:hover,
.vibe-tuvi-ai-sections button.is-active {
    background: #2f9370;
    border-color: #2f9370;
    color: #fff;
}

.vibe-tuvi-ai-ask {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: stretch;
    margin-bottom: 12px;
}

.vibe-tuvi-ai-question {
    width: 100%;
    min-height: 74px;
    resize: vertical;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 14px;
    line-height: 1.55;
    background: #fff;
    color: #111;
}

.vibe-tuvi-ai-question:focus {
    outline: none;
    border-color: #2f9370;
    box-shadow: 0 0 0 3px rgba(139, 10, 10, .12);
}

.vibe-tuvi-ai-submit {
    background: #2f9370;
    color: #fff;
    border-color: #2f9370;
    min-width: 110px;
}

.vibe-tuvi-ai-submit:disabled {
    opacity: .65;
    cursor: wait;
}

.vibe-tuvi-ai-output {
    background: #fff;
    border-radius: 8px;
    padding: 14px 16px;
    min-height: 92px;
    font-size: 14px;
    line-height: 1.75;
}

.vibe-tuvi-ai-output h3 {
    margin: 12px 0 7px;
    color: #26564a;
    font-size: 18px;
    font-weight: 800;
}

.vibe-tuvi-ai-output h4 {
    margin: 10px 0 5px;
    color: #111;
    font-size: 15px;
    font-weight: 800;
}

.vibe-tuvi-ai-output p {
    margin: 0 0 9px;
}

.vibe-tuvi-ai-output ul,
.vibe-tuvi-ai-output ol {
    margin: 6px 0 10px 20px;
    padding: 0;
}

.vibe-tuvi-ai-output li {
    margin-bottom: 4px;
}

.vibe-tuvi-ai-loading {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: #2f9370;
}

.vibe-tuvi-ai-error {
    color: #b91c1c;
    background: #fff1f2;
    border: 1px solid #fecdd3;
    border-radius: 6px;
    padding: 10px 12px;
}

.vibe-tuvi-ai-note {
    margin: 10px 0 0;
    color: #7a6b58;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 760px) {
    .vibe-tuvi-ai-ask {
        grid-template-columns: 1fr;
    }
    .vibe-tuvi-ai-submit {
        width: 100%;
    }
}

.vibe-tuvi-ai-contact {
    margin-top: 14px;
    padding: 15px 16px;
    border: 1px solid #f0b35e;
    border-left: 5px solid #8b0a0a;
    border-radius: 10px;
    background: linear-gradient(135deg, #fff8e8 0%, #fff 100%);
    color: #1d1d1d;
}
.vibe-tuvi-ai-contact h3 {
    margin: 0 0 7px !important;
    color: #8b0a0a !important;
    font-size: 18px !important;
}
.vibe-tuvi-ai-contact p {
    margin: 0 0 8px !important;
    line-height: 1.65 !important;
}
.vibe-tuvi-ai-contact-phone {
    margin: 8px 0 0 !important;
}
.vibe-tuvi-ai-contact-phone a,
.vibe-tuvi-ai-contact-phone {
    font-size: 22px;
    font-weight: 900;
    color: #0b45ff !important;
    text-decoration: none;
}
.vibe-tuvi-ai-panel.is-ai-quota-reached .vibe-tuvi-ai-sections button,
.vibe-tuvi-ai-panel.is-ai-quota-reached .vibe-tuvi-ai-question,
.vibe-tuvi-ai-panel.is-ai-quota-reached .vibe-tuvi-ai-submit {
    opacity: .62;
    cursor: not-allowed;
}

@media (max-width: 760px) {
    .vibe-tuvi-wrapper {

        padding: 8px !important;
    }
    .vibe-tuvi-panel-header {
        font-size: 18px !important;
        padding: 14px 16px !important;
    }
    .vibe-tuvi-form {
        padding: 16px !important;
    }
    .vibe-tuvi-control select,
    .vibe-tuvi-control input[type="text"] {
        max-width: none !important;
        min-height: 42px;
        font-size: 16px;
    }
    .vibe-tuvi-toolbar {
        position: relative !important;
        width: 100% !important;
        padding: 8px !important;
        gap: 8px !important;
        border-radius: 8px !important;
        background: #fff !important;
    }
    .vibe-tuvi-toolbar-btn {
        flex: 1 1 calc(50% - 8px) !important;
        justify-content: center !important;
        min-height: 40px !important;
        padding: 9px 10px !important;
        font-size: 13px !important;
    }
    .vibe-tuvi-toolbar-toggles {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px 10px !important;
        margin: 0 !important;
        padding: 0 0 8px !important;
        border-left: 0 !important;
        border-top: 0 !important;
        border-bottom: 1px solid #e7ded0 !important;
    }
    .vibe-tuvi-toolbar-toggle {
        font-size: 12px !important;
        line-height: 1.2 !important;
    }

    .vibe-tuvi-chart {

        border-width: 1px !important;

    }
    .vibe-tuvi-chart .vibe-tuvi-center-table td:nth-child(2),
    .vibe-tuvi-chart .vibe-tuvi-center-table td:nth-child(3) {
        width: auto !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace-canabbr,
    .vibe-tuvi-chart .vibe-tuvi-palace-age,
    .vibe-tuvi-chart .vibe-tuvi-palace-thang,
    .vibe-tuvi-chart .vibe-tuvi-palace-element {
        font-size: 12px !important;
    }
    .vibe-tuvi-tuhoa-summary {
        font-size: 12px !important;
        line-height: 1.45 !important;
    }
    .vibe-tuvi-ai-panel {
        padding: 12px !important;
        border-radius: 8px !important;
    }
    .vibe-tuvi-ai-header {
        display: block !important;
    }
    .vibe-tuvi-ai-badge {
        margin-top: 8px !important;
    }
    .vibe-tuvi-ai-sections {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-auto-flow: row !important;
        gap: 6px !important;
    }
    .vibe-tuvi-ai-sections button {
        width: 30% !important;
        padding: 8px 6px !important;
        font-size: 12px !important;
    }
    .vibe-tuvi-ai-output {
        padding: 12px !important;
        font-size: 14px !important;
        line-height: 1.65 !important;
    }
}

@media (max-width: 520px) {
    .vibe-tuvi-chart .vibe-tuvi-star-columns {
        grid-template-columns: 1fr 1fr !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table,
    .vibe-tuvi-chart .vibe-tuvi-center-table tbody,
    .vibe-tuvi-chart .vibe-tuvi-center-table tr,
    .vibe-tuvi-chart .vibe-tuvi-center-table td {

        width: 100% !important;
    }
}

@media (max-width: 760px) {

    .vibe-tuvi-chart {

        padding: 0 !important;

        --vibe-tuvi-mobile-scale: .54;
    }

    .vibe-tuvi-chart .vibe-tuvi-board {

        transform-origin: top left !important;

    }

    .vibe-tuvi-chart .vibe-tuvi-center-lines,
    .vibe-tuvi-chart .vibe-tuvi-center-chieu-lines,
    .vibe-tuvi-chart .vibe-tuvi-center-branches {
        display: block !important;
    }
}

.vibe-tuvi-chart .vibe-tuvi-center-lines {
    display: none !important;
}

@media (max-width: 760px) {
    .vibe-tuvi-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }

    .vibe-tuvi-chart {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
        border: 1px solid #111 !important;
        background: #fffcf5 !important;
        --vibe-tuvi-mobile-cell-h: clamp(100px, 30vw, 150px);
        --vibe-tuvi-mobile-center-h: clamp(200px, 60vw, 300px);
        --vibe-tuvi-mobile-tiny: clamp(5.2px, 1.48vw, 7.2px);
        --vibe-tuvi-mobile-small: clamp(5.8px, 1.70vw, 8px);
        --vibe-tuvi-mobile-normal: clamp(6.2px, 1.90vw, 9px);
        --vibe-tuvi-mobile-main: clamp(6.7px, 2.03vw, 9.6px);
    }

    .vibe-tuvi-chart .vibe-tuvi-board {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

        grid-auto-flow: row !important;
        grid-auto-rows: unset !important;
        gap: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        background: #111 !important;
        zoom: 1 !important;
        transform: none !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-palace {
        grid-column: auto !important;
        grid-row: auto !important;
        order: initial !important;
        width: auto !important;

        margin: 0 !important;
        padding: clamp(2px, .75vw, 4px) clamp(2px, .8vw, 4px) clamp(10px, 2.8vw, 14px) !important;
        border: 1px solid #111 !important;
        border-radius: 0 !important;
        overflow: hidden !important;
        background: #fffcf5 !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-center {
        order: initial !important;
        grid-column: 2 / 4 !important;
        grid-row: 2 / 4 !important;
        width: auto !important;

        margin: 0 !important;
        padding: 0 !important;
        border: 1px solid #111 !important;
        border-radius: 0 !important;

        display: flex !important;
        background: #fffcf5 !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-center-lines {
        display: none !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-chieu-lines,
    .vibe-tuvi-chart .vibe-tuvi-center-branches {
        display: block !important;
    }
    .vibe-tuvi-chart[data-hide-chieu="1"] .vibe-tuvi-center-chieu-lines {
        display: none !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-center-inner {

        padding: clamp(10px, 4.8vw, 18px) clamp(12px, 5.6vw, 22px) clamp(6px, 2.3vw, 10px) !important;

        background: transparent !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-center-brand {
        max-width: 100% !important;
        font-size: clamp(6.3px, 2.05vw, 9px) !important;
        line-height: 1.08 !important;
        font-weight: 900 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-url {
        margin-top: clamp(1px, .8vw, 3px) !important;
        font-size: clamp(7px, 2.45vw, 10px) !important;
        line-height: 1 !important;
        word-break: normal !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-hotline {
        margin-top: clamp(2px, 1.2vw, 5px) !important;
        font-size: clamp(5.7px, 1.8vw, 8px) !important;
        line-height: 1.15 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-hotline strong {
        font-size: clamp(6.6px, 2.1vw, 9px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-title {
        margin: clamp(4px, 1.9vw, 7px) 0 clamp(4px, 1.9vw, 7px) !important;
        font-size: clamp(13px, 4.3vw, 18px) !important;
        line-height: .98 !important;
        font-family: Georgia, 'Times New Roman', serif !important;
        font-style: italic !important;
        font-weight: 900 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table {
        display: table !important;
        width: 100% !important;
        max-width: 100% !important;
        font-size: clamp(5.9px, 1.78vw, 8px) !important;
        line-height: 1.24 !important;
        table-layout: fixed !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table tbody { display: table-row-group !important; }
    .vibe-tuvi-chart .vibe-tuvi-center-table tr { display: table-row !important; padding: 0 !important; }
    .vibe-tuvi-chart .vibe-tuvi-center-table td {
        display: table-cell !important;
        padding: 0 clamp(1px, .6vw, 3px) !important;
        vertical-align: top !important;
        width: auto !important;
        font-weight: 600 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table td:first-child {
        width: 32% !important;
        white-space: nowrap !important;
        font-weight: 900 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table td:nth-child(2) { width: 34% !important; }
    .vibe-tuvi-chart .vibe-tuvi-center-table td:nth-child(3) {
        width: 34% !important;
        white-space: normal !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-center-branches {
        font-size: clamp(5.4px, 1.65vw, 7.5px) !important;
        line-height: 1 !important;
        color: #222 !important;
    }
    .vibe-tuvi-chart .br-hoi  { left: 3px !important; top: 2px !important; }
    .vibe-tuvi-chart .br-ty   { left: 3px !important; top: 42% !important; transform: none !important; }
    .vibe-tuvi-chart .br-suu  { left: 4px !important; bottom: 18% !important; top: auto !important; transform: none !important; }
    .vibe-tuvi-chart .br-dan  { left: 4px !important; right: auto !important; bottom: 2px !important; top: auto !important; }
    .vibe-tuvi-chart .br-mao  { left: 24% !important; bottom: 2px !important; right: auto !important; top: auto !important; }
    .vibe-tuvi-chart .br-thin { right: 30% !important; bottom: 2px !important; }
    .vibe-tuvi-chart .br-ti   { right: 4px !important; bottom: 2px !important; }
    .vibe-tuvi-chart .br-ngo  { right: 13% !important; bottom: 18% !important; }
    .vibe-tuvi-chart .br-mui  { right: 3px !important; top: 42% !important; bottom: auto !important; left: auto !important; transform: none !important; }
    .vibe-tuvi-chart .br-than { right: 3px !important; top: 2px !important; left: auto !important; bottom: auto !important; }
    .vibe-tuvi-chart .br-dau  { right: 31% !important; top: 2px !important; left: auto !important; bottom: auto !important; }
    .vibe-tuvi-chart .br-tuat { left: 24% !important; top: 2px !important; }

    .vibe-tuvi-chart .vibe-tuvi-center-seal {
        position: absolute !important;
        right: clamp(7px, 6.3vw, 24px) !important;
        bottom: clamp(17px, 8vw, 35px) !important;
        display: block !important;
        margin: 0 !important;
        width: clamp(20px, 8vw, 34px) !important;
        height: clamp(20px, 8vw, 34px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-seal--text {
        font-size: clamp(13px, 5.2vw, 22px) !important;
        line-height: 1 !important;
        border-width: 2px !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-palace-topline {
        min-height: clamp(11px, 3.3vw, 17px) !important;
        font-size: var(--vibe-tuvi-mobile-small) !important;
        line-height: 1.05 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace-canabbr,
    .vibe-tuvi-chart .vibe-tuvi-palace-element,
    .vibe-tuvi-chart .vibe-tuvi-palace-thang,
    .vibe-tuvi-chart .vibe-tuvi-palace-mirror {
        font-size: var(--vibe-tuvi-mobile-small) !important;
        line-height: 1.08 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace-age {
        font-size: var(--vibe-tuvi-mobile-normal) !important;
        line-height: 1 !important;
        font-weight: 900 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace-heading {
        min-height: clamp(12px, 3.4vw, 17px) !important;
        gap: 1px !important;
        align-items: flex-start !important;
        justify-content: center !important;
        margin-top: 0 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace-name {
        font-size: var(--vibe-tuvi-mobile-normal) !important;
        line-height: 1.05 !important;
        font-weight: 900 !important;
        letter-spacing: -.05px !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace-stars,
    .vibe-tuvi-chart .vibe-tuvi-star {
        font-size: var(--vibe-tuvi-mobile-tiny) !important;
        line-height: 1.12 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-star {
        margin-bottom: clamp(0px, .35vw, 1px) !important;
        letter-spacing: -.12px !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-star-line {
        margin-bottom: clamp(0px, .45vw, 2px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-star--main {
        font-size: var(--vibe-tuvi-mobile-main) !important;
        line-height: 1.08 !important;

    }
    .vibe-tuvi-chart .vibe-tuvi-star em {
        font-size: var(--vibe-tuvi-mobile-tiny) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-star-columns {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        column-gap: clamp(2px, 1.2vw, 6px) !important;
        text-align: left !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace-footer {
        left: 3px !important;
        right: 3px !important;
        bottom: 2px !important;
        font-size: clamp(5px, 1.45vw, 7px) !important;
        line-height: 1.02 !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-special-marker {
        width: clamp(39px, 13vw, 58px) !important;
        height: clamp(10px, 3vw, 15px) !important;
        line-height: clamp(10px, 3vw, 15px) !important;
        font-size: clamp(6px, 1.95vw, 8.5px) !important;
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
        background: #000 !important;
        color: #fff !important;
        z-index: 30 !important;
        box-shadow: 0 0 0 1px #000 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-special-marker--tuan-triet { width: clamp(52px, 17vw, 74px) !important; }
    .vibe-tuvi-chart .vibe-tuvi-special-marker--top { top: -1px !important; }
    .vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { bottom: -8px !important; }

    .vibe-tuvi-chart-legend {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: clamp(16px, 5vw, 24px) !important;
        min-height: clamp(16px, 5vw, 24px) !important;
        padding: clamp(2px, .9vw, 4px) clamp(3px, 1.2vw, 6px) !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: clamp(2px, 1vw, 5px) !important;
        font-size: clamp(5.2px, 1.65vw, 7.6px) !important;
        line-height: 1.1 !important;
        border-top: 1px solid #111 !important;
        background: #fffcf5 !important;
        zoom: 1 !important;
    }
    .vibe-tuvi-dot {
        width: clamp(5px, 1.6vw, 8px) !important;
        height: clamp(5px, 1.6vw, 8px) !important;
        margin-right: 1px !important;
        vertical-align: -1px !important;
    }
    .vibe-tuvi-legend-id {
        width: auto !important;
        margin-left: auto !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    .vibe-tuvi-tuhoa-summary,
    .vibe-tuvi-ai-panel,
    .vibe-tuvi-credit {
        width: 100% !important;
        max-width: 100% !important;
        zoom: 1 !important;
    }
}

@media (max-width: 380px) {
    .vibe-tuvi-chart {
        --vibe-tuvi-mobile-tiny: 5px;
        --vibe-tuvi-mobile-small: 5.4px;
        --vibe-tuvi-mobile-normal: 5.9px;
        --vibe-tuvi-mobile-main: 6.3px;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table {
        font-size: 5.5px !important;
        line-height: 1.2 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-title {
        font-size: 13px !important;
    }
}

@media (max-width: 520px) {
    .vibe-tuvi-chart .vibe-tuvi-board {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

        gap: 0 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center {
        grid-column: 2 / 4 !important;
        grid-row: 2 / 4 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table,
    .vibe-tuvi-chart .vibe-tuvi-center-table tbody,
    .vibe-tuvi-chart .vibe-tuvi-center-table tr,
    .vibe-tuvi-chart .vibe-tuvi-center-table td {
        display: revert-layer !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table { display: table !important; }
    .vibe-tuvi-chart .vibe-tuvi-center-table tbody { display: table-row-group !important; }
    .vibe-tuvi-chart .vibe-tuvi-center-table tr { display: table-row !important; }
    .vibe-tuvi-chart .vibe-tuvi-center-table td { display: table-cell !important; }
}

@media (max-width: 520px) {
    .vibe-tuvi-chart .vibe-tuvi-center-table {
        width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
        font-size: 5.6px !important;
        line-height: 1.2 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table tr {
        padding: 0 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table td {
        width: auto !important;
        padding: 0 1px !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table td:first-child {
        width: 32% !important;
        white-space: nowrap !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table td:nth-child(2) { width: 34% !important; }
    .vibe-tuvi-chart .vibe-tuvi-center-table td:nth-child(3) { width: 34% !important; }
}

.vibe-tuvi-form-luxury {
    position: relative;
    max-width: 720px;
    margin: 0 auto 28px;
    padding: 40px 36px 36px;
    border-radius: 28px;
    background: rgb(238 249 243 / 97%);
    box-shadow: 0 12px 24px rgba(50,150,110,.32);
    border: 1px solid rgba(255, 255, 255, .6);
}

.vibe-tuvi-form-luxury .vibe-tuvi-panel-header {
    background: none;
    padding: 0 0 6px;
    text-align: center;
}

.vibe-tuvi-form-luxury .vibe-tuvi-panel-header h2 {
    margin: 0;
    color: #2b2b2b;
    font-size: 30px;
    font-weight: 800;
    text-transform: none;
    letter-spacing: 0;
}

.vibe-tuvi-form-luxury .vibe-tuvi-panel-header::after {
    content: "Khám phá vận mệnh - định hướng tương lai";
    display: block;
    margin-top: 8px;
    color: #6b6b6b;
    font-size: 15px;
    font-weight: 400;
}

.vibe-tuvi-form-luxury .vibe-tuvi-form {
    padding: 24px 0 0;
}

.vibe-tuvi-form-luxury .vibe-tuvi-label {
    display: none;
}

.vibe-tuvi-form-luxury .vibe-tuvi-form-row {
    display: block;
    margin-bottom: 16px;
}

.vibe-tuvi-form-luxury .vibe-tuvi-control {
    width: 100%;
}

.vibe-tuvi-form-luxury .vibe-tuvi-inline {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
}

.vibe-tuvi-form-luxury .vibe-tuvi-row-time .vibe-tuvi-inline {
    grid-template-columns: 1fr 1fr auto;
}

.vibe-tuvi-form-luxury .vibe-tuvi-row-watch .vibe-tuvi-inline {
    grid-template-columns: 1fr 1fr;
}

.vibe-tuvi-form-luxury .vibe-tuvi-row-gender .vibe-tuvi-inline,
.vibe-tuvi-form-luxury .vibe-tuvi-row-calendar .vibe-tuvi-inline,
.vibe-tuvi-form-luxury .vibe-tuvi-row-style .vibe-tuvi-inline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    background: #fff;
    border-radius: 16px;
    padding: 14px 20px;
    box-shadow: 0 2px 10px rgba(120, 72, 30, .06);
}

.vibe-tuvi-form-luxury .vibe-tuvi-control select,
.vibe-tuvi-form-luxury .vibe-tuvi-control input[type="text"] {
    width: 100%;
    min-height: 56px;
    padding: 14px 18px;
    border: none;
    border-radius: 16px;
    background: #ffffff;
    color: #2b2b2b;
    font-size: 15px;
    font-weight: 500;
    box-shadow: 0 2px 10px rgba(120, 72, 30, .06);
    appearance: none;
    -webkit-appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, #a9a9a9 50%),
        linear-gradient(135deg, #a9a9a9 50%, transparent 50%);
    background-position:
        calc(100% - 20px) 52%,
        calc(100% - 14px) 52%;
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}

.vibe-tuvi-form-luxury .vibe-tuvi-control input[type="text"] {
    background-image: none;
}

.vibe-tuvi-form-luxury .vibe-tuvi-control input::placeholder {
    color: #9a9a9a;
}

.vibe-tuvi-form-luxury .vibe-tuvi-control select:focus,
.vibe-tuvi-form-luxury .vibe-tuvi-control input[type="text"]:focus {
    outline: none;
    box-shadow: 0 12px 24px rgba(50,150,110,.32);
}

.vibe-tuvi-form-luxury .vibe-tuvi-hour-label {
    display: none;
}

.vibe-tuvi-form-luxury .vibe-tuvi-radio,
.vibe-tuvi-form-luxury .vibe-tuvi-checkbox {
    gap: 8px;
    font-size: 15px;
    font-weight: 500;
    color: #2b2b2b;
}

.vibe-tuvi-form-luxury .vibe-tuvi-radio input,
.vibe-tuvi-form-luxury .vibe-tuvi-checkbox input {
    width: 18px;
    height: 18px;
    accent-color: #2f9370;
}

.vibe-tuvi-form-luxury .vibe-tuvi-help {
    display: block;
    margin-top: 6px;
    color: #8a8a8a;
    font-size: 12px;
    line-height: 1.35;
}

.vibe-tuvi-form-luxury .vibe-tuvi-row-option {
    background: #fff;
    border-radius: 16px;
    padding: 14px 20px;
    box-shadow: 0 2px 10px rgba(120, 72, 30, .06);
}

.vibe-tuvi-form-luxury .vibe-tuvi-row-school .vibe-tuvi-control {
    background: #fff;
    border-radius: 16px;
    padding: 6px 0;
}

.vibe-tuvi-form-luxury .vibe-tuvi-row-school select {
    box-shadow: none;
}

.vibe-tuvi-form-luxury .vibe-tuvi-row-school .vibe-tuvi-help {
    padding: 0 20px 10px;
}

.vibe-tuvi-form-luxury .vibe-tuvi-row-submit {
    margin-top: 26px;
    margin-bottom: 0;
}

.vibe-tuvi-form-luxury .vibe-tuvi-submit {
    width: 100%;
    min-height: 58px;
    padding: 14px 30px;
    border-radius: 16px;
    border: none;
    background: linear-gradient(135deg,#4bbf94,#2f9370);
    color: #fff;
    font-family: inherit;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .3px;
    text-transform: none;
    text-shadow: none;
    box-shadow: 0 12px 24px rgba(50,150,110,.32);
}

.vibe-tuvi-form-luxury .vibe-tuvi-submit:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
}

.vibe-tuvi-form-luxury .vibe-tuvi-submit:active {
    transform: translateY(1px) scale(.99);
}

@media (max-width: 640px) {
    .vibe-tuvi-panel.vibe-tuvi-form-luxury {
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding: 28px 20px 24px;
        border-radius: 20px;
    }

    .vibe-tuvi-form-luxury .vibe-tuvi-panel-header h2 {
        font-size: 24px;
    }

    .vibe-tuvi-form-luxury .vibe-tuvi-form {
        padding-top: 18px;
    }

    .vibe-tuvi-form-luxury .vibe-tuvi-row-birth .vibe-tuvi-inline {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 8px;
    }

    .vibe-tuvi-form-luxury .vibe-tuvi-row-time .vibe-tuvi-inline,
    .vibe-tuvi-form-luxury .vibe-tuvi-row-watch .vibe-tuvi-inline {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .vibe-tuvi-form-luxury .vibe-tuvi-control select,
    .vibe-tuvi-form-luxury .vibe-tuvi-control input[type="text"] {
        min-height: 50px;
        font-size: 14px;
    }

    .vibe-tuvi-form-luxury .vibe-tuvi-submit {
        min-height: 52px;
        font-size: 16px;
    }
}

.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line.is-luc-hop {
    display: none !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-source {
    background: #fff2cf !important;
    outline: 2px solid rgba(255, 145, 0, .92) !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-tamhop {
    background: #f7effb !important;
    outline: 2px solid rgba(145, 72, 154, .70) !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace.is-chieu-xung {
    background: #ffece8 !important;
    outline: 2px solid rgba(255, 73, 52, .72) !important;
}
.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line.is-tam-hop {
    stroke-width: 1.55 !important;
    opacity: .78 !important;
}
.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line.is-xung {
    stroke-width: 1.65 !important;
    opacity: .82 !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-chieu-lines {
    overflow: visible !important;
}
.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line {
    vector-effect: non-scaling-stroke;
    stroke-linecap: round !important;
}
.vibe-tuvi-chart .vibe-tuvi-chieu-svg-line.is-tam-base {
    opacity: .58 !important;
}

.vibe-tuvi-chart--bw {
    background: #ffffff !important;
    color: #000 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-board {
    background: #000 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-palace,
.vibe-tuvi-chart--bw .vibe-tuvi-center {
    background: #ffffff !important;
    border: 1px solid #000 !important;
    box-shadow: none !important;
    outline: none !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-palace:hover {
    background: #f5f5f5 !important;
}

.vibe-tuvi-chart--bw .vibe-tuvi-palace-name,
.vibe-tuvi-chart--bw .vibe-tuvi-palace-canabbr,
.vibe-tuvi-chart--bw .vibe-tuvi-palace-age,
.vibe-tuvi-chart--bw .vibe-tuvi-palace-thang,
.vibe-tuvi-chart--bw .vibe-tuvi-palace-element,
.vibe-tuvi-chart--bw .vibe-tuvi-el-kim,
.vibe-tuvi-chart--bw .vibe-tuvi-el-moc,
.vibe-tuvi-chart--bw .vibe-tuvi-el-thuy,
.vibe-tuvi-chart--bw .vibe-tuvi-el-hoa,
.vibe-tuvi-chart--bw .vibe-tuvi-el-tho,
.vibe-tuvi-chart--bw .vibe-tuvi-star--main,
.vibe-tuvi-chart--bw .vibe-tuvi-star--good,
.vibe-tuvi-chart--bw .vibe-tuvi-star--bad,
.vibe-tuvi-chart--bw .vibe-tuvi-star--neutral,
.vibe-tuvi-chart--bw .vibe-tuvi-star-color-red,
.vibe-tuvi-chart--bw .vibe-tuvi-star-color-orange,
.vibe-tuvi-chart--bw .vibe-tuvi-star-color-green,
.vibe-tuvi-chart--bw .vibe-tuvi-star-color-gray,
.vibe-tuvi-chart--bw .vibe-tuvi-star-color-grey,
.vibe-tuvi-chart--bw .vibe-tuvi-star-color-black,
.vibe-tuvi-chart--bw .vibe-tuvi-star-color-blue,
.vibe-tuvi-chart--bw .vibe-tuvi-chieu-line,
.vibe-tuvi-chart--bw .vibe-tuvi-palace-footer span,
.vibe-tuvi-chart--bw .vibe-tuvi-center-branches .br,
.vibe-tuvi-chart--bw .vibe-tuvi-center-brand,
.vibe-tuvi-chart--bw .vibe-tuvi-center-hotline,
.vibe-tuvi-chart--bw .vibe-tuvi-bm-main,
.vibe-tuvi-chart--bw .vibe-tuvi-bm-relation,
.vibe-tuvi-chart--bw .vibe-tuvi-center table,
.vibe-tuvi-chart--bw .vibe-tuvi-center table td,
.vibe-tuvi-chart--bw .vibe-tuvi-credit {
    color: #000 !important;
}

.vibe-tuvi-chart--bw .vibe-tuvi-center-url {
    color: #000 !important;
    text-decoration: underline !important;
}

.vibe-tuvi-chart--bw .hoa-loc {
    color: #000 !important;
    font-weight: 800 !important;
    text-decoration: underline solid !important;
}
.vibe-tuvi-chart--bw .hoa-quyen {
    color: #000 !important;
    font-weight: 800 !important;
    text-decoration: underline double !important;
}
.vibe-tuvi-chart--bw .hoa-khoa {
    color: #000 !important;
    font-weight: 800 !important;
    text-decoration: underline dotted !important;
}
.vibe-tuvi-chart--bw .hoa-ky {
    color: #000 !important;
    font-weight: 800 !important;
    text-decoration: overline solid !important;
}

.vibe-tuvi-chart--bw .vibe-tuvi-star--main {
    font-weight: 900 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-star--good {
    font-weight: 400 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-star--bad {
    font-weight: 400 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-star--neutral {
    font-weight: 400 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-star--has-state {
    font-weight: 800 !important;
}

.vibe-tuvi-chart--bw .vibe-tuvi-dot {
    background: #ffffff !important;
    border: 1px solid #000 !important;
}

.vibe-tuvi-chart--bw .vibe-tuvi-palace.is-menh::after,
.vibe-tuvi-chart--bw .vibe-tuvi-palace.is-than::after {
    background: #000 !important;
}

.vibe-tuvi-chart--bw .vibe-tuvi-palace.is-chieu-source {
    background: #e9e9e9 !important;
    outline: 2px solid #000 !important;
    box-shadow: none !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-palace.is-chieu-tamhop {
    background: #f4f4f4 !important;
    outline: 2px dashed #000 !important;
    box-shadow: none !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-palace.is-chieu-xung {
    background: #f9f9f9 !important;
    outline: 2px dotted #000 !important;
    box-shadow: none !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-palace.is-chieu-luchop {
    box-shadow: inset 0 0 0 2px #000 !important;
}

.vibe-tuvi-chart--bw .vibe-tuvi-chieu-svg-line {
    stroke: #000 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-chieu-svg-line.is-tam-hop {
    stroke: rgba(0, 0, 0, .75) !important;
    stroke-dasharray: none !important;
    opacity: 1 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-chieu-svg-line.is-xung {
    stroke: rgba(0, 0, 0, .85) !important;
    stroke-dasharray: 5 4 !important;
    opacity: 1 !important;
}
.vibe-tuvi-chart--bw .vibe-tuvi-chieu-svg-line.is-luc-hop {
    stroke: rgba(0, 0, 0, .55) !important;
    stroke-dasharray: 2 3 !important;
}

.vibe-tuvi-chart--bw .vibe-tuvi-special-marker {
    background: #000 !important;
    color: #fff !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace {
    overflow: visible !important;
    align-self: stretch !important;
}

@media (min-width: 769px) {
    .vibe-tuvi-chart .vibe-tuvi-center {
        height: auto !important;
        min-height: 432px !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-board {
        grid-template-rows: repeat(4, minmax(216px, auto)) !important;
        align-items: stretch !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace {
        height: auto !important;
        min-height: 216px !important;
        padding-bottom: 14px !important;
    }
}

@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-palace {

        padding-bottom: 6px !important;
    }
}
@media (max-width: 520px) {
    .vibe-tuvi-chart .vibe-tuvi-board {
        grid-template-rows: repeat(4, minmax(var(--vibe-tuvi-mobile-cell-h, 150px), auto)) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace {
        height: auto !important;
        min-height: var(--vibe-tuvi-mobile-cell-h, 150px) !important;
        padding-bottom: 6px !important;
    }
}
@media print {
    .vibe-tuvi-chart .vibe-tuvi-board {
        grid-template-rows: repeat(4, minmax(216px, auto)) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-palace {
        height: auto !important;
        min-height: 216px !important;
    }
}
.vibe-tuvi-chart .vibe-tuvi-palace-footer {
    position: static !important;
    display: flex !important;
    justify-content: space-between !important;
    gap: 4px !important;
    margin-top: 4px !important;
    padding-top: 3px !important;
    border-top: 1px solid var(--vibe-tuvi-border, #000) !important;
}
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-palace-footer {
        margin-top: 2px !important;
        padding-top: 2px !important;
    }
}

.vibe-tuvi-chart .vibe-tuvi-palace-stars {
    margin-bottom: 4px !important;
}

@media print {
    .vibe-tuvi-chart--bw {
        border-color: #000 !important;
    }
}

.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw,
.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw *,
.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw *::before,
.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw *::after {
    color: #000 !important;
    -webkit-text-fill-color: #000 !important;
}

.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw .hoa-loc {
    text-decoration: underline solid !important;
    font-weight: 800 !important;
}
.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw .hoa-quyen {
    text-decoration: underline double !important;
    font-weight: 800 !important;
}
.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw .hoa-khoa {
    text-decoration: underline dotted !important;
    font-weight: 800 !important;
}
.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw .hoa-ky {
    text-decoration: overline solid !important;
    font-weight: 800 !important;
}

.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw .vibe-tuvi-special-marker,
.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw.vibe-tuvi-chart--bw .vibe-tuvi-special-marker * {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

.vibe-tuvi-xu-wrap {
    margin-top: 14px;
    padding: 14px 18px;
    background: #fffbf0;
    border: 1px solid #f0c040;
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.6;
}

.vibe-tuvi-xu-info {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.vibe-tuvi-xu-balance-lbl {
    color: #666;
}

.vibe-tuvi-xu-balance-val {
    color: #c0831a;
    font-size: 15px;
}

.vibe-tuvi-xu-deposit-lnk {
    color: #087bf5;
    text-decoration: underline;
    font-size: 13px;
    margin-left: 6px;
}

.vibe-tuvi-xu-deposit-lnk:hover {
    color: #0056cc;
}

.vibe-tuvi-xu-buy-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 20px;
    background: linear-gradient(135deg, #f7c948 0%, #e6a817 100%);
    color: #5a3600;
    font-weight: 700;
    font-size: 14px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: opacity .2s, transform .1s;
    box-shadow: 0 2px 6px rgba(230,168,23,.35);
}

.vibe-tuvi-xu-buy-btn:hover  { opacity: .9; transform: translateY(-1px); }
.vibe-tuvi-xu-buy-btn:active { transform: translateY(0); opacity: 1; }
.vibe-tuvi-xu-buy-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }

.vibe-tuvi-xu-msg {
    margin-top: 8px;
    padding: 7px 11px;
    border-radius: 6px;
    font-size: 13px;
}

.vibe-tuvi-xu-msg--info {
    background: #e8f4fd;
    color: #0056cc;
    border-left: 3px solid #087bf5;
}

.vibe-tuvi-xu-msg--error {
    background: #fdecea;
    color: #c0392b;
    border-left: 3px solid #e74c3c;
}

.vibe-tuvi-xu-notice {
    color: #666;
    font-style: italic;
    margin: 0;
}

.vibe-tuvi-chart [data-tooltip] {
    cursor: help;
    -webkit-tap-highlight-color: transparent;
}

.vibe-tuvi-chart:not([data-hide-annot="1"]) [data-tooltip] {
    position: relative;
    text-decoration-line: underline;
    text-decoration-style: dotted;
    text-decoration-color: #d4a017;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 2px;
    border-radius: 2px;
    transition: background-color 0.15s ease;
}

.vibe-tuvi-chart:not([data-hide-annot="1"]) [data-tooltip]:hover,
.vibe-tuvi-chart:not([data-hide-annot="1"]) [data-tooltip]:focus-visible {
    background-color: rgba(255, 224, 102, 0.45);
}

.vibe-tuvi-chart[data-hide-annot="1"] [data-tooltip] {
    text-decoration: none;
    cursor: default;
    justify-content: center;
}

.vibe-tuvi-annot-bubble {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 50;
    max-width: 220px;
    width: max-content;
    background: #ffe066;
    color: #2b2200;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.3;
    padding: 6px 10px;
    border-radius: 6px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.22);
    pointer-events: none;
    opacity: 0;
    transform: translateY(2px);
    transition: opacity 0.12s ease, transform 0.12s ease;
    white-space: nowrap;
}

.vibe-tuvi-annot-bubble.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.vibe-tuvi-annot-bubble::after {
    content: '';
    position: absolute;
    left: var(--vibe-annot-arrow-left, 50%);
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
}

.vibe-tuvi-annot-bubble--up::after {
    bottom: -6px;
    border-top: 6px solid #ffe066;
}

.vibe-tuvi-annot-bubble--down::after {
    top: -6px;
    border-bottom: 6px solid #ffe066;
}

.vibe-tuvi-chart--bw .vibe-tuvi-annot-bubble {
    background: #fff2b8;
    color: #111;
}

.vibe-tuvi-chart--bw .vibe-tuvi-annot-bubble--up::after { border-top-color: #fff2b8; }
.vibe-tuvi-chart--bw .vibe-tuvi-annot-bubble--down::after { border-bottom-color: #fff2b8; }

@media print {
    .vibe-tuvi-annot-bubble,
    .vibe-tuvi-chart [data-tooltip] {
        text-decoration: none !important;
        background: none !important;
    }
    .vibe-tuvi-annot-bubble { display: none !important; }
}

.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star-color-kim  { color: var(--vibe-color-kim)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star-color-moc  { color: var(--vibe-color-moc)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star-color-thuy { color: var(--vibe-color-thuy) !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star-color-hoa  { color: var(--vibe-color-hoa)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star-color-tho  { color: var(--vibe-color-tho)  !important; }

.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star.hoa-loc   { color: var(--vibe-color-moc)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star.hoa-quyen { color: var(--vibe-color-moc)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star.hoa-khoa  { color: var(--vibe-color-moc)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-star.hoa-ky    { color: var(--vibe-color-thuy) !important; }

.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-kim .vibe-tuvi-palace-name  { color: var(--vibe-color-kim)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-moc .vibe-tuvi-palace-name  { color: var(--vibe-color-moc)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-thuy .vibe-tuvi-palace-name { color: var(--vibe-color-thuy) !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-hoa .vibe-tuvi-palace-name  { color: var(--vibe-color-hoa)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-tho .vibe-tuvi-palace-name  { color: var(--vibe-color-tho)  !important; }

.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace.is-than .vibe-tuvi-palace-name { color: inherit !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-kim.is-than .vibe-tuvi-palace-name  { color: var(--vibe-color-kim)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-moc.is-than .vibe-tuvi-palace-name  { color: var(--vibe-color-moc)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-thuy.is-than .vibe-tuvi-palace-name { color: var(--vibe-color-thuy) !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-hoa.is-than .vibe-tuvi-palace-name  { color: var(--vibe-color-hoa)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-tho.is-than .vibe-tuvi-palace-name  { color: var(--vibe-color-tho)  !important; }

.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-kim.is-menh .vibe-tuvi-palace-name  { color: var(--vibe-color-kim)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-moc.is-menh .vibe-tuvi-palace-name  { color: var(--vibe-color-moc)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-thuy.is-menh .vibe-tuvi-palace-name { color: var(--vibe-color-thuy) !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-hoa.is-menh .vibe-tuvi-palace-name  { color: var(--vibe-color-hoa)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-tho.is-menh .vibe-tuvi-palace-name  { color: var(--vibe-color-tho)  !important; }

.vibe-tuvi-chart .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-kim .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-moc .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-thuy .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-hoa .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-tho .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-kim.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-moc.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-thuy.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-hoa.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-tho.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-kim.is-menh .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-moc.is-menh .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-thuy.is-menh .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-hoa.is-menh .vibe-tuvi-palace-name,
.vibe-tuvi-chart .vibe-tuvi-palace-el-tho.is-menh .vibe-tuvi-palace-name {
    color: #000 !important;
}

.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-kim .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-moc .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-thuy .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-hoa .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-tho .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-kim.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-moc.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-thuy.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-hoa.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-tho.is-than .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-kim.is-menh .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-moc.is-menh .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-thuy.is-menh .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-hoa.is-menh .vibe-tuvi-palace-name,
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-tho.is-menh .vibe-tuvi-palace-name {
    color: #000 !important;
}

.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-kim .vibe-tuvi-palace-canabbr  { color: var(--vibe-color-kim)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-moc .vibe-tuvi-palace-canabbr  { color: var(--vibe-color-moc)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-thuy .vibe-tuvi-palace-canabbr { color: var(--vibe-color-thuy) !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-hoa .vibe-tuvi-palace-canabbr  { color: var(--vibe-color-hoa)  !important; }
.vibe-tuvi-chart:not(.vibe-tuvi-chart--bw) .vibe-tuvi-palace-el-tho .vibe-tuvi-palace-canabbr  { color: var(--vibe-color-tho)  !important; }

.vibe-tuvi-chart .vibe-tuvi-palace-element {
    display: none !important;
}

@media (min-width: 761px) {

.vibe-tuvi-chart .vibe-tuvi-star--main {
    font-size: 17px !important;
    line-height: 1.22 !important;
}

.vibe-tuvi-chart .vibe-tuvi-star-columns .vibe-tuvi-star {
    display: inline-block !important;
    white-space: nowrap !important;
    font-size: 10.5px !important;
    letter-spacing: -.15px !important;
    margin: 0 5px 4px 0 !important;
    max-width: 100% !important;
}

.vibe-tuvi-chart .vibe-tuvi-star-columns > div:nth-child(2) .vibe-tuvi-star {
    margin: 0 0 4px 5px !important;
}
.vibe-tuvi-chart .vibe-tuvi-star-columns .vibe-tuvi-star em {
    white-space: nowrap !important;
    font-size: .88em !important;
    margin-left: 1px !important;
}

.vibe-tuvi-chart .vibe-tuvi-star-columns,
.vibe-tuvi-chart .vibe-tuvi-star-columns > div {
    overflow: visible !important;
}

.vibe-tuvi-chart .vibe-tuvi-star-line--main {
    margin-bottom: 8px !important;
}
.vibe-tuvi-chart .vibe-tuvi-star-columns {
    margin-top: 4px !important;
}

}

@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-star-columns .vibe-tuvi-star {
        display: inline-block !important;
        white-space: normal !important;
        max-width: 100% !important;
        margin: 0 2px 2px 0 !important;
        overflow-wrap: break-word !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-star-columns > div:nth-child(2) .vibe-tuvi-star {
        margin: 0 0 2px 2px !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-star-columns,
    .vibe-tuvi-chart .vibe-tuvi-star-columns > div,
    .vibe-tuvi-chart .vibe-tuvi-palace-stars {
        overflow: hidden !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-star--main {
        font-weight: 900 !important;
    }
}

.vibe-tuvi-chart,
.vibe-tuvi-chart .vibe-tuvi-palace,
.vibe-tuvi-chart .vibe-tuvi-center {
    border-radius: 0 !important;
}

.vibe-tuvi-chart {
    border: 1px solid #222 !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace,
.vibe-tuvi-chart .vibe-tuvi-center {
    border: 1px solid #222 !important;
    box-shadow: none !important;
}

.vibe-tuvi-chart .vibe-tuvi-palace.is-menh,
.vibe-tuvi-chart .vibe-tuvi-palace.is-than {
    border-radius: 0 !important;
    border-color: #111 !important;
}

.vibe-tuvi-chart .vibe-tuvi-info-list {
    border: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    font-size: 12px !important;
}

.vibe-tuvi-chart .vibe-tuvi-info-row {
    padding: 4px 2px !important;
    border-bottom: none !important;
    background: transparent !important;
    gap: 8px !important;
    line-height: 1.25 !important;
}

.vibe-tuvi-chart .vibe-tuvi-info-row:nth-child(even) {
    background: transparent !important;
}

.vibe-tuvi-chart .vibe-tuvi-info-label {
    flex: 0 0 78px !important;
    font-weight: 400 !important;
    color: #222 !important;
    font-size: 12px !important;
    white-space: nowrap !important;
}

.vibe-tuvi-chart .vibe-tuvi-info-value,
.vibe-tuvi-chart .vibe-tuvi-info-value-a,
.vibe-tuvi-chart .vibe-tuvi-info-value-b {
    font-weight: 700 !important;
    color: #111 !important;
    font-size: 12px !important;
}

.vibe-tuvi-chart .vibe-tuvi-info-value-a {
    flex: 0 0 42% !important;
}

.vibe-tuvi-chart .vibe-tuvi-info-list .vibe-tuvi-bm-main {
    font-weight: 700 !important;
}

.vibe-tuvi-chart .vibe-tuvi-info-list .vibe-tuvi-bm-relation {
    font-weight: 500 !important;
    color: #555 !important;
    font-size: 10.5px !important;
}

.vibe-tuvi-chart .vibe-tuvi-center-title {
    font-size: 18px !important;
    letter-spacing: 0.5px !important;
    margin: 0 0 2px !important;
}

@media (min-width: 761px) {
    .vibe-tuvi-chart .vibe-tuvi-info-list,
    .vibe-tuvi-chart .vibe-tuvi-info-label,
    .vibe-tuvi-chart .vibe-tuvi-info-value,
    .vibe-tuvi-chart .vibe-tuvi-info-value-a,
    .vibe-tuvi-chart .vibe-tuvi-info-value-b {
        font-size: 12.5px !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-info-label {
        flex: 0 0 86px !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-info-row {
        padding: 5px 2px !important;
        gap: 10px !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-title {
        font-size: 20px !important;
    }
}

@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-info-row {
        padding: 3px 2px !important;

    }
}

@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-info-list {
        font-size: var(--vibe-tuvi-mobile-normal, clamp(6.2px, 1.9vw, 9px)) !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-info-row {
        display: flex !important;
        align-items: flex-start !important;
        flex-wrap: nowrap !important;
        gap: clamp(3px, 1.6vw, 6px) !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-info-label {
        flex: 0 0 30% !important;
        min-width: 0 !important;
        font-size: var(--vibe-tuvi-mobile-normal, clamp(6.2px, 1.9vw, 9px)) !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-info-value {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        font-size: var(--vibe-tuvi-mobile-normal, clamp(6.2px, 1.9vw, 9px)) !important;

        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-info-value--split {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: baseline !important;
        gap: 0 6px !important;
        min-width: 0 !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-info-value-a {
        flex: 0 0 auto !important;
        min-width: 0 !important;
        white-space: nowrap !important;
        font-size: var(--vibe-tuvi-mobile-normal, clamp(6.2px, 1.9vw, 9px)) !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-info-value-b {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        white-space: nowrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        font-size: var(--vibe-tuvi-mobile-normal, clamp(6.2px, 1.9vw, 9px)) !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-info-list .vibe-tuvi-bm-relation {
        font-size: var(--vibe-tuvi-mobile-small, clamp(5.8px, 1.7vw, 8px)) !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 380px) {
    .vibe-tuvi-chart .vibe-tuvi-info-label {
        flex: 0 0 26% !important;
    }
}

@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-board {
        grid-template-rows: repeat(4, minmax(var(--vibe-tuvi-mobile-cell-h, 150px), auto)) !important;
        align-items: stretch !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-center {
        height: auto !important;
        min-height: var(--vibe-tuvi-mobile-center-h, 200px) !important;
        overflow: visible !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-center-inner {
        height: auto !important;
        min-height: 100% !important;

        padding-bottom: clamp(46px, 16vw, 60px) !important;
        overflow: visible !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-palace {
        height: auto !important;
        min-height: var(--vibe-tuvi-mobile-cell-h, 150px) !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-center-seal,
    .vibe-tuvi-chart .vibe-tuvi-center-seal--text {
        bottom: clamp(10px, 4vw, 18px) !important;
    }
}

@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-special-marker--right {
        left: auto !important;
        right: calc(clamp(39px, 13vw, 58px) / -2) !important;
        top: 50% !important;
        bottom: auto !important;
        transform: translateY(-50%) rotate(90deg) !important;
        transform-origin: center !important;
    }

    .vibe-tuvi-chart .vibe-tuvi-special-marker--right.vibe-tuvi-special-marker--tuan-triet {
        right: calc(clamp(52px, 17vw, 74px) / -2) !important;
    }
}

/* Compact Tuần/Triệt badge: keep label readable without oversized background. */
.vibe-tuvi-chart .vibe-tuvi-special-marker {
    width: clamp(36px, 9vw, 56px) !important;
    height: clamp(12px, 2vw, 16px) !important;
    line-height: clamp(13px, 2.2vw, 18px) !important;
    font-size: clamp(6.5px, 1.35vw, 10.5px) !important;
    padding: 0 1px !important;
}
.vibe-tuvi-chart .vibe-tuvi-special-marker--tuan-triet {
    width: clamp(44px, 12vw, 70px) !important;
}
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-special-marker {
        width: clamp(30px, 9.5vw, 45px) !important;
        height: clamp(8px, 2.2vw, 12px) !important;
        line-height: clamp(9px, 2.5vw, 13px) !important;
        font-size: clamp(5.2px, 1.45vw, 7px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-special-marker--tuan-triet {
        width: clamp(38px, 13vw, 58px) !important;
    }
}

/* Align the right-edge Triệt badge with the palace border. */
.vibe-tuvi-chart .vibe-tuvi-special-marker--right {
    right: -32px !important;
}
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-special-marker--right {
        right: calc((clamp(39px, 13vw, 58px) / -2) + clamp(3px, 1.5vw, 6px)) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-special-marker--right.vibe-tuvi-special-marker--tuan-triet {
        right: calc((clamp(52px, 17vw, 74px) / -2) + clamp(3px, 1.5vw, 6px)) !important;
    }
}

/* Mobile center panel: improve readability while keeping the chart grid intact. */
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-center-brand {
        font-size: clamp(7px, 2.3vw, 10px) !important;
        line-height: 1.08 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-url {
        font-size: clamp(8px, 2.65vw, 11px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-hotline {
        font-size: clamp(6.5px, 2vw, 9px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-hotline strong {
        font-size: clamp(7.5px, 2.35vw, 10px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-title {
        font-size: clamp(15px, 4.8vw, 20px) !important;
        margin-top: clamp(5px, 2.1vw, 8px) !important;
        margin-bottom: clamp(5px, 2.1vw, 8px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table {
        font-size: clamp(6.8px, 2.05vw, 9px) !important;
        line-height: 1.26 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-table td {
        padding-left: clamp(2px, .7vw, 3px) !important;
        padding-right: clamp(2px, .7vw, 3px) !important;
    }
}

@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-info-list {
        font-size: clamp(6.8px, 2.05vw, 9px) !important;
        line-height: 1.26 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-info-label,
    .vibe-tuvi-chart .vibe-tuvi-info-value {
        font-size: inherit !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-info-value-a,
    .vibe-tuvi-chart .vibe-tuvi-info-value-b {
        font-size: inherit !important;
    }
}

/* Mobile chart balance: keep the center panel compact so side palaces
   do not stretch into oversized empty areas. */
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-center-inner {
        padding: clamp(3px, 1.2vw, 6px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-brand {
        margin-top: 0 !important;
        margin-bottom: clamp(2px, 1vw, 4px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-url,
    .vibe-tuvi-chart .vibe-tuvi-center-hotline {
        margin-top: clamp(1px, .6vw, 3px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-title {
        margin-top: clamp(3px, 1.4vw, 6px) !important;
        margin-bottom: clamp(3px, 1.4vw, 6px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-info-list {
        gap: 0 !important;
        line-height: 1.12 !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-info-row {
        min-height: 0 !important;
        margin: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* Hide the decorative branch labels around the center of the chart. */
.vibe-tuvi-chart .vibe-tuvi-center-branches {
    display: none !important;
}
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-center-brand {
        font-size: clamp(6.5px, 2.05vw, 9px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-url {
        font-size: clamp(7px, 2.35vw, 10px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-hotline {
        font-size: clamp(5.8px, 1.75vw, 8px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-hotline strong {
        font-size: clamp(6.8px, 2.1vw, 9px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-center-title {
        font-size: clamp(13px, 4.2vw, 18px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-info-list {
        font-size: clamp(6.1px, 1.8vw, 8px) !important;
        line-height: 1.1 !important;
    }
}

/* Final edge alignment: center the right-edge Triệt badge on the border line. */
.vibe-tuvi-chart .vibe-tuvi-special-marker--right {
    right: -29px !important;
}
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-special-marker--right {
        right: calc(clamp(39px, 13vw, 58px) / -2) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-special-marker--right.vibe-tuvi-special-marker--tuan-triet {
        right: calc(clamp(52px, 17vw, 74px) / -2) !important;
    }
}

/* Palace labels stay smaller than primary stars on every screen size. */
.vibe-tuvi-chart .vibe-tuvi-palace-name {
    font-size: clamp(10px, 1.15vw, 14px) !important;
}
.vibe-tuvi-chart .vibe-tuvi-star--main {
    font-size: clamp(12px, 1.35vw, 16px) !important;
}
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-palace-name {
        font-size: clamp(5px, 1.35vw, 7px) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-star--main {
        font-size: clamp(6px, 1.75vw, 9px) !important;
    }
}

/* Right-edge marker is horizontal and centered on the palace border. */
.vibe-tuvi-chart .vibe-tuvi-special-marker--right {
    top: 50% !important;
    bottom: auto !important;
    right: -29px !important;
    left: auto !important;
    transform: translateY(-50%) !important;
}
@media (max-width: 760px) {
    .vibe-tuvi-chart .vibe-tuvi-special-marker--right {
        right: calc(clamp(39px, 13vw, 58px) / -2) !important;
        transform: translateY(-50%) !important;
    }
    .vibe-tuvi-chart .vibe-tuvi-special-marker--right.vibe-tuvi-special-marker--tuan-triet {
        right: calc(clamp(52px, 17vw, 74px) / -2) !important;
    }
}


/* Saved chart image viewer */
.vibe-tuvi-view-jpg-btn:disabled{opacity:.55;cursor:not-allowed;}
.vibe-tuvi-chart-image-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.78);}
.vibe-tuvi-chart-image-backdrop{position:absolute;inset:0;}
.vibe-tuvi-chart-image-dialog{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;max-width:min(96vw,1400px);max-height:96vh;padding:12px;border-radius:12px;background:#fff;box-shadow:0 24px 80px rgba(0,0,0,.4);}
.vibe-tuvi-chart-image-dialog img{display:block;max-width:calc(96vw - 48px);max-height:calc(96vh - 48px);width:auto;height:auto;object-fit:contain;}
.vibe-tuvi-chart-image-close{position:absolute;top:-14px;right:-14px;width:36px;height:36px;border:0;border-radius:50%;background:#111827;color:#fff;font-size:26px;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.25);}
@media(max-width:760px){.vibe-tuvi-chart-image-modal{padding:10px}.vibe-tuvi-chart-image-dialog{max-width:98vw;max-height:98vh;padding:6px}.vibe-tuvi-chart-image-dialog img{max-width:calc(98vw - 24px);max-height:calc(98vh - 24px)}.vibe-tuvi-chart-image-close{top:-10px;right:-8px}}


/* Tuần/Triệt: retain vertical 90-degree marker orientation */
.vibe-tuvi-chart .vibe-tuvi-special-marker--right { top:50% !important; bottom:auto !important; right:-29px !important; left:auto !important; transform:translateY(-50%) rotate(90deg) !important; transform-origin:center center !important; }
.vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { left:50% !important; right:auto !important; bottom:-8px !important; top:auto !important; transform:translateX(-50%) rotate(90deg) !important; transform-origin:center center !important; }
@media (max-width:760px) { .vibe-tuvi-chart .vibe-tuvi-special-marker--right { right:calc(clamp(52px,17vw,74px) / -2) !important; transform:translateY(-50%) rotate(90deg) !important; } .vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { bottom:-8px !important; transform:translateX(-50%) rotate(90deg) !important; } }


/* Marker orientation follows its edge: right-edge vertical, top/bottom-edge horizontal. */
.vibe-tuvi-chart .vibe-tuvi-special-marker--right { transform: translateY(-50%) rotate(90deg) !important; }
.vibe-tuvi-chart .vibe-tuvi-special-marker--top,
.vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { transform: translateX(-50%) !important; }
@media (max-width:760px) {
 .vibe-tuvi-chart .vibe-tuvi-special-marker--right { transform: translateY(-50%) rotate(90deg) !important; }
 .vibe-tuvi-chart .vibe-tuvi-special-marker--top,
 .vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { transform: translateX(-50%) !important; }
}


/* Phone-specific centering: compensate for the rotated right marker box. */
@media (max-width:480px) {
 .vibe-tuvi-chart .vibe-tuvi-special-marker--right { right:-20px !important; }
 .vibe-tuvi-chart .vibe-tuvi-special-marker--top,
 .vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { bottom:-5px !important; }
}


/* Explicit edge-specific centering for every responsive breakpoint. */
.vibe-tuvi-chart .vibe-tuvi-special-marker--right { top:50% !important; bottom:auto !important; transform:translateY(-50%) rotate(90deg) !important; }
.vibe-tuvi-chart .vibe-tuvi-special-marker--top { top:-1px !important; bottom:auto !important; left:50% !important; transform:translateX(-50%) !important; }
.vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { top:auto !important; bottom:-10px !important; left:50% !important; transform:translateX(-50%) !important; }
@media (max-width:760px) { .vibe-tuvi-chart .vibe-tuvi-special-marker--right { top:50% !important; bottom:auto !important; transform:translateY(-50%) rotate(90deg) !important; } .vibe-tuvi-chart .vibe-tuvi-special-marker--top { top:-1px !important; bottom:auto !important; transform:translateX(-50%) !important; } .vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { top:auto !important; bottom:-8px !important; transform:translateX(-50%) !important; } }
@media (max-width:480px) { .vibe-tuvi-chart .vibe-tuvi-special-marker--right { right:-20px !important; } .vibe-tuvi-chart .vibe-tuvi-special-marker--top { top:-1px !important; bottom:auto !important; } .vibe-tuvi-chart .vibe-tuvi-special-marker--bottom { top:auto !important; bottom:-5px !important; } }


/* Surface Duo 540px: center the rotated right-edge marker on the palace border. */
@media (min-width:481px) and (max-width:760px) { .vibe-tuvi-special-marker--right { right: -23.5px !important; } }

@media (min-width:481px) and (max-width:760px) { .vibe-tuvi-chart .vibe-tuvi-special-marker--right { right: -23.5px !important; } }


/* Đồng nhất chữ phụ và giảm tên cung trên mọi thiết bị */
.vibe-tuvi-chart .vibe-tuvi-palace-canabbr,
.vibe-tuvi-chart .vibe-tuvi-palace-age,
.vibe-tuvi-chart .vibe-tuvi-palace-thang,
.vibe-tuvi-chart .vibe-tuvi-palace-mirror {
    font-size: 12px !important;
    line-height: 1.1 !important;
}
.vibe-tuvi-chart .vibe-tuvi-palace-name {
    font-size: 12px !important;
    line-height: 1.05 !important;
}

/* Đồng nhất chữ phụ 11px */
.vibe-tuvi-chart .vibe-tuvi-palace-canabbr,
.vibe-tuvi-chart .vibe-tuvi-palace-age,
.vibe-tuvi-chart .vibe-tuvi-palace-thang,
.vibe-tuvi-chart .vibe-tuvi-palace-mirror { font-size: 11px !important; }

/* Kích thước responsive cho chữ phụ của lá số */
.vibe-tuvi-chart .vibe-tuvi-palace-canabbr,
.vibe-tuvi-chart .vibe-tuvi-palace-age,
.vibe-tuvi-chart .vibe-tuvi-palace-thang,
.vibe-tuvi-chart .vibe-tuvi-palace-mirror { font-size: 12px !important; line-height: 1.1 !important; }
.vibe-tuvi-chart .vibe-tuvi-palace-name { font-size: 11px !important; line-height: 1.05 !important; }
@media (max-width: 1024px) {
 .vibe-tuvi-chart .vibe-tuvi-palace-canabbr, .vibe-tuvi-chart .vibe-tuvi-palace-age, .vibe-tuvi-chart .vibe-tuvi-palace-thang, .vibe-tuvi-chart .vibe-tuvi-palace-mirror { font-size: 10px !important; }
 .vibe-tuvi-chart .vibe-tuvi-palace-name { font-size: 9px !important; }
}
@media (max-width: 600px) {
 .vibe-tuvi-chart .vibe-tuvi-palace-canabbr, .vibe-tuvi-chart .vibe-tuvi-palace-age, .vibe-tuvi-chart .vibe-tuvi-palace-thang, .vibe-tuvi-chart .vibe-tuvi-palace-mirror { font-size: 8px !important; }
 .vibe-tuvi-chart .vibe-tuvi-palace-name { font-size: 7px !important; }
}

/* Tràng Sinh dùng chung kích thước responsive với chữ phụ */
.vibe-tuvi-chart [data-group="than"] { font-size: 12px !important; line-height: 1.1 !important; }
@media (max-width: 1024px) { .vibe-tuvi-chart [data-group="than"] { font-size: 10px !important; } }
@media (max-width: 600px) { .vibe-tuvi-chart [data-group="than"] { font-size: 8px !important; } }
.rt-envato-notice{box-sizing:border-box;width:calc(100% - 16px);max-width:1248px;margin:8px auto;padding:20px;border:1px solid #ffad32;border-radius:16px;background:#fff5e3;color:#171717}.rt-eavato-info{display:flex;gap:32px;align-items:flex-start}.rt-icon-wrapper{width:52px;height:52px;flex:0 0 52px;display:flex;align-items:center;justify-content:center;color:#f59e0b}.rt-icon-wrapper svg{display:block;width:52px!important;height:46px!important;max-width:none!important;overflow:visible;fill:currentColor;stroke:none}.rt-envato-title{margin:0 0 12px;font-size:28px;line-height:1.2;font-weight:700}.rt-envato-text{font-size:18px;line-height:1.55}@media(max-width:700px){.rt-envato-notice{width:calc(100% - 20px);margin:10px auto;padding:16px;border-radius:12px}.rt-eavato-info{gap:14px}.rt-icon-wrapper{width:38px;height:38px;flex-basis:38px}.rt-icon-wrapper svg{width:38px!important;height:34px!important}.rt-envato-title{font-size:18px}.rt-envato-text{font-size:14px}}
.vibe-home-trust{box-sizing:border-box;width:calc(100% - 12px);max-width:1248px;margin:18px auto;padding:38px 48px 48px;border-radius:12px;background:#2144ea;color:#fff;text-align:center;overflow:hidden}.vibe-home-trust h2{margin:0 auto 32px;color:#fff;font-size:40px;line-height:1.18;font-weight:700}.vibe-home-trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.vibe-home-trust-card{min-height:90px;display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:8px;background:#fff;color:#252525;text-align:left;font-size:17px;line-height:1.2}.vibe-home-trust-card b{font-weight:700}.vibe-home-trust-icon{width:48px;height:48px;flex:0 0 48px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:32px;font-weight:700;line-height:1}.vibe-home-trust-icon--green{color:#18a844}.vibe-home-trust-icon--red{color:#d34b4b}.vibe-home-trust-icon--lime{color:#08b52b;font-size:38px}.vibe-home-trust-icon--orange{color:#f6a400;font-size:28px;border:3px dotted currentColor}@media(max-width:900px){.vibe-home-trust{padding:30px 24px 34px}.vibe-home-trust h2{font-size:30px}.vibe-home-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.vibe-home-trust-card{font-size:14px;padding:12px}.vibe-home-trust-icon{width:38px;height:38px;flex-basis:38px;font-size:24px}}@media(max-width:600px){.vibe-home-trust{width:calc(100% - 20px);padding:26px 14px 28px}.vibe-home-trust h2{font-size:22px;line-height:1.25;margin-bottom:22px}.vibe-home-trust h2 br{display:none}.vibe-home-trust-grid{grid-template-columns:1fr;gap:10px}.vibe-home-trust-card{min-height:58px;font-size:14px}.vibe-home-trust-icon{width:34px;height:34px;flex-basis:34px}}
.vibe-home-modules{box-sizing:border-box;width:100%;max-width:1320px;margin:36px auto;padding:46px 10px 54px;background:#fff;color:#171717;text-align:center}.vibe-home-modules h2{margin:0;font-size:40px;line-height:1.18;font-weight:800}.vibe-home-modules-subtitle{margin:16px 0 42px;font-size:18px}.vibe-home-modules-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 30px}.vibe-home-module{min-height:230px;border-radius:10px;padding:30px 18px 22px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;box-sizing:border-box}.vibe-home-module h3{margin:12px 0 0;font-size:19px;line-height:1.2;font-weight:700}.vibe-home-module-art{display:flex;align-items:center;justify-content:center;width:100%;height:130px;font-size:46px;letter-spacing:8px;color:#253044}.vibe-home-module--pink{background:#fff0f0}.vibe-home-module--blue{background:#eef2ff}.vibe-home-module--green{background:#effff0}.vibe-home-module--purple{background:#f9edff}.vibe-home-module--cyan{background:#e8fbff}.vibe-home-module--cream{background:#fff5e7}.vibe-home-module--sky{background:#e8f8ff}.vibe-home-module--yellow{background:#fffde1}.vibe-home-modules-button{display:inline-block;margin-top:40px;padding:14px 30px;border-radius:28px;background:#000;color:#fff;text-decoration:none;font-size:15px;font-weight:600}.vibe-home-modules-button:hover{color:#fff;background:#222}@media(max-width:900px){.vibe-home-modules{padding:34px 14px}.vibe-home-modules h2{font-size:30px}.vibe-home-modules-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.vibe-home-module{min-height:190px}.vibe-home-module-art{height:105px;font-size:36px}.vibe-home-module h3{font-size:16px}}@media(max-width:600px){.vibe-home-modules{padding:28px 12px}.vibe-home-modules h2{font-size:23px}.vibe-home-modules-subtitle{font-size:14px;margin:12px 0 24px}.vibe-home-modules-grid{grid-template-columns:1fr;gap:12px}.vibe-home-module{min-height:150px}.vibe-home-module-art{height:75px;font-size:32px}.vibe-home-module h3{font-size:15px}.vibe-home-modules-button{margin-top:26px}}
.vibe-home-setup{box-sizing:border-box;width:calc(100% - 16px);max-width:1320px;margin:30px auto;padding:34px 40px;display:flex;align-items:center;gap:38px;border:2px solid #4a45ff;border-radius:16px;background:#fff;color:#1a1a1a;box-shadow:0 12px 28px rgba(67,64,255,.16)}.vibe-home-setup-icon{width:76px;height:76px;flex:0 0 76px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#4a45ff;color:#fff;font-size:42px}.vibe-home-setup-copy{flex:1}.vibe-home-setup-copy h2{margin:0 0 12px;font-size:28px;line-height:1.2;font-weight:800}.vibe-home-setup-copy p{margin:0;color:#5f6878;font-size:18px;line-height:1.5}.vibe-home-setup-points{display:flex;flex-wrap:wrap;gap:28px;margin-top:16px;font-size:16px}.vibe-home-setup-points span{color:#303743}.vibe-home-setup-points span::first-letter{color:#149447}.vibe-home-setup-action{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:180px}.vibe-home-setup-action a{display:inline-block;padding:16px 30px;border-radius:12px;background:#4a45ff;color:#fff;text-decoration:none;font-size:18px;font-weight:700;box-shadow:0 10px 20px rgba(74,69,255,.25)}.vibe-home-setup-action small{color:#697386;font-size:14px}@media(max-width:900px){.vibe-home-setup{padding:26px;gap:22px}.vibe-home-setup-copy h2{font-size:22px}.vibe-home-setup-copy p{font-size:16px}.vibe-home-setup-points{gap:12px;font-size:14px}.vibe-home-setup-action{min-width:145px}.vibe-home-setup-action a{padding:13px 20px;font-size:16px}}@media(max-width:600px){.vibe-home-setup{width:calc(100% - 20px);padding:22px 18px;display:grid;grid-template-columns:56px 1fr;gap:16px}.vibe-home-setup-icon{width:56px;height:56px;flex-basis:56px;font-size:30px;border-radius:12px}.vibe-home-setup-copy h2{font-size:19px}.vibe-home-setup-copy p{font-size:14px}.vibe-home-setup-points{display:block;margin-top:12px}.vibe-home-setup-points span{display:block;margin-top:7px}.vibe-home-setup-action{grid-column:1 / -1;align-items:flex-start}.vibe-home-setup-action a{font-size:15px;padding:12px 22px}}
.vibe-home-testimonials{box-sizing:border-box;width:100%;max-width:1320px;margin:54px auto 0;padding:52px 6px 70px;background:#fff;text-align:center;color:#15191d}.vibe-home-testimonials-kicker{font-size:14px;letter-spacing:.08em;margin-bottom:18px}.vibe-home-testimonials h2{margin:0 0 16px;font-size:40px;line-height:1.15;font-weight:800}.vibe-home-testimonials>p{margin:0 auto 36px;font-size:18px}.vibe-home-testimonials-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;text-align:left}.vibe-home-testimonials-grid article{min-height:280px;padding:32px 36px;border:1px solid #e1e4e8;border-radius:10px;box-shadow:0 4px 14px rgba(20,30,40,.04);display:flex;flex-direction:column;box-sizing:border-box}.vibe-home-stars{color:#f5a623;font-size:26px;letter-spacing:2px;margin-bottom:14px}.vibe-home-testimonials-grid h3{margin:0 0 12px;font-size:22px}.vibe-home-testimonials-grid article p{margin:0 0 28px;font-size:17px;line-height:1.55;color:#353a40}.vibe-home-testimonials-grid strong{margin-top:auto;font-size:15px}.vibe-home-testimonials-grid small{font-size:14px;margin-top:5px}@media(max-width:900px){.vibe-home-testimonials{padding:38px 14px 50px}.vibe-home-testimonials h2{font-size:30px}.vibe-home-testimonials-grid{grid-template-columns:1fr;gap:16px}.vibe-home-testimonials-grid article{min-height:220px;padding:24px}.vibe-home-testimonials>p{font-size:16px}}@media(max-width:600px){.vibe-home-testimonials{margin-top:32px;padding:30px 12px 40px}.vibe-home-testimonials h2{font-size:24px}.vibe-home-testimonials>p{font-size:14px}.vibe-home-stars{font-size:22px}}
#vibe-tuvi-home-form-frame{width:106%!important;margin-left:-3%;}
@media(max-width:600px){#vibe-tuvi-home-form-frame{width:110%!important;margin-left:-5%;}}
.vibe-tuvi-mission-unlock{margin-top:18px;padding:24px 28px;border:3px solid #9be3b5;border-radius:24px;background:#effff4;color:#17233d}.vibe-tuvi-mission-unlock[hidden]{display:none}.vibe-tuvi-mission-unlock h4{margin:0 0 12px;color:#168542;font-size:clamp(24px,3vw,42px);font-weight:800}.vibe-tuvi-mission-unlock p{margin:0 0 18px;font-size:clamp(16px,2vw,24px)}.vibe-tuvi-mission-get,.vibe-tuvi-mission-submit{border:2px solid #159b48;border-radius:22px;background:#fff;color:#17233d;font-weight:700;padding:15px 24px;font-size:clamp(16px,2vw,24px);cursor:pointer}.vibe-tuvi-mission-get{display:block;width:100%;margin-bottom:8px}.vibe-tuvi-mission-submit{background:#16a34a;color:#fff;min-width:180px}.vibe-tuvi-mission-code-row{display:flex;gap:16px;align-items:stretch}.vibe-tuvi-mission-code-input{flex:1;min-width:0;border:3px solid #dbe2ee;border-radius:22px;padding:15px 24px;font-size:clamp(16px,2vw,24px);text-transform:uppercase}.vibe-tuvi-mission-message{margin-top:10px;color:#168542;font-weight:600}.vibe-tuvi-mission-unlock button:disabled{opacity:.65;cursor:wait}@media(max-width:600px){.vibe-tuvi-mission-unlock{padding:18px;border-radius:18px}.vibe-tuvi-mission-code-row{flex-direction:column}.vibe-tuvi-mission-submit{width:100%}}

.vibe-tuvi-mission-task-detail{margin-top:14px;padding:14px;border:1px solid #b8e8c8;border-radius:12px;background:#f1fff5}.vibe-tuvi-mission-task-detail[hidden]{display:none}.vibe-tuvi-mission-task-head{display:flex;justify-content:space-between;gap:12px;align-items:center;color:#168542;font-size:18px}.vibe-tuvi-mission-countdown{color:#63708a;background:#f7fbff;border:1px solid #d9e3f2;border-radius:20px;padding:7px 12px;white-space:nowrap}.vibe-tuvi-mission-instructions{padding:12px;border:1px solid #dce4ef;border-radius:8px;background:#f8faff}.vibe-tuvi-mission-instructions img{max-width:100%;height:auto;display:block;margin:10px auto;border-radius:6px}.vibe-tuvi-mission-task-detail h5{margin:12px 0 7px}.vibe-tuvi-mission-step{display:flex;gap:10px;padding:12px;margin-top:10px;border:1px solid #dce4ef;border-radius:8px;background:#f8faff}.vibe-tuvi-mission-step>b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#3268ed;color:#fff;flex:none}
