/* ===== VULUXURY — TRỢ LÝ (cho web chưa có sẵn CSS này) ===== */
.vlx-fab{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:1600;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.vlx-fab-toggle{width:60px;height:60px;border-radius:50%;border:none;cursor:pointer;background:var(--coral,#E07A5F);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(224,122,95,.5);position:relative;transition:background .25s}
.vlx-fab.open .vlx-fab-toggle{background:var(--navy,#0E5A60)}
.vlx-fab-toggle svg{width:28px;height:28px;fill:#fff}
.vlx-fab-toggle .ic-x{display:none}
.vlx-fab.open .vlx-fab-toggle .ic-chat{display:none}
.vlx-fab.open .vlx-fab-toggle .ic-x{display:block}
/* vòng sóng thu hút (chỉ khi đang đóng) */
.vlx-fab-toggle::before,.vlx-fab-toggle::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--coral,#E07A5F);animation:vlxRing 2.4s ease-out infinite}
.vlx-fab-toggle::after{animation-delay:1.2s}
.vlx-fab.open .vlx-fab-toggle::before,.vlx-fab.open .vlx-fab-toggle::after{display:none}
@keyframes vlxRing{0%{transform:scale(1);opacity:.65}100%{transform:scale(1.85);opacity:0}}
@media(max-width:1180px){.vlx-fab{right:14px;bottom:calc(84px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.vlx-fab-toggle::before,.vlx-fab-toggle::after{display:none}}
/* Khung chat */
.vlx-chat{position:absolute;bottom:74px;right:0;width:330px;max-width:calc(100vw - 28px);background:#fff;border-radius:16px;box-shadow:0 18px 50px rgba(10,42,74,.32);overflow:hidden;transform:translateY(16px) scale(.96);transform-origin:bottom right;opacity:0;pointer-events:none;transition:transform .25s cubic-bezier(.2,.9,.3,1.2),opacity .2s}
.vlx-fab.open .vlx-chat{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.vlx-chat-hd{background:var(--navy,#0E5A60);color:#fff;padding:14px 16px;display:flex;align-items:center;gap:10px}
.vlx-chat-hd .av{width:38px;height:38px;border-radius:50%;background:var(--gold,#C9A84C);color:var(--navy,#0E5A60);display:flex;align-items:center;justify-content:center;font-weight:800;flex:none;font-family:var(--display);font-size:1.15rem}
.vlx-chat-hd .ti{display:flex;flex-direction:column;line-height:1.25;font-family:var(--body,inherit)}
.vlx-chat-hd .ti b{font-size:.95rem;font-weight:700}
.vlx-chat-hd .ti .sub{font-size:.72rem;opacity:.9}
.vlx-chat-hd .dot{width:8px;height:8px;border-radius:50%;background:#1D9E75;display:inline-block;margin-right:4px;vertical-align:middle}
.vlx-chat-body{padding:14px;max-height:46vh;overflow-y:auto;background:var(--cream,#F4FBFA);display:flex;flex-direction:column;gap:9px}
.vlx-msg{max-width:86%;padding:9px 12px;border-radius:13px;font-size:.83rem;line-height:1.5}
.vlx-msg.bot{background:#fff;color:var(--ink,#16323A);border:1px solid var(--line,#DDEBEA);border-bottom-left-radius:4px;align-self:flex-start;box-shadow:0 2px 8px rgba(10,42,74,.05)}
.vlx-msg.me{background:var(--navy,#0E5A60);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.vlx-msg .mcta{display:inline-flex;align-items:center;gap:6px;margin-top:8px;background:var(--coral,#E07A5F);color:#fff;font-weight:700;font-size:.78rem;padding:7px 12px;border-radius:9px;text-decoration:none}
.vlx-msg .mlink{display:inline-block;margin-top:6px;color:var(--teal,#147B81);font-weight:700;font-size:.78rem;text-decoration:underline}
.vlx-chips{display:flex;flex-wrap:wrap;gap:7px;padding:0 14px 12px;background:var(--cream,#F4FBFA);max-height:220px;overflow-y:auto}
.vlx-chip{background:#fff;border:1px solid var(--line,#DDEBEA);color:var(--navy,#0E5A60);font-weight:600;font-size:.78rem;padding:7px 11px;border-radius:999px;cursor:pointer;transition:.15s;text-align:left;font-family:var(--body,inherit)}
.vlx-chip:hover{background:var(--navy,#0E5A60);color:#fff;border-color:var(--navy,#0E5A60)}
.vlx-chat-ft{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--line,#DDEBEA);background:#fff}
.vlx-chat-ft a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:700;font-size:.78rem;padding:9px;border-radius:10px;color:#fff;text-decoration:none}
.vlx-chat-ft svg{width:15px;height:15px;fill:#fff}
.vlx-chat-ft .vlx-zalo{background:var(--zalo,#06C755)}
.vlx-chat-ft .vlx-call{background:var(--coral,#E07A5F)}
.vlx-chat-ft .vlx-mess{background:linear-gradient(135deg,#0099FF,#A033FF,#FF5280,#FF7061)}
@media(max-width:480px){.vlx-chat{width:calc(100vw - 28px)}}
[data-theme="dark"] .vlx-chat{background:#0f3038}
[data-theme="dark"] .vlx-msg.bot{background:#123b42;color:#eaf6f4;border-color:rgba(201,168,76,.2)}
[data-theme="dark"] .vlx-chip{background:#123b42;color:#eaf6f4;border-color:rgba(201,168,76,.2)}
/* Ô tìm câu hỏi trong trợ lý + ghi chú */
.vlx-ask{padding:10px 14px 8px;background:var(--cream,#F4FBFA)}
.vlx-ask input{width:100%;box-sizing:border-box;border:1px solid var(--line,#DDEBEA);border-radius:999px;padding:9px 14px;font-family:var(--body,inherit);font-size:.82rem;color:var(--ink,#16323A);background:#fff;outline:none}
.vlx-ask input:focus{border-color:var(--gold,#C9A84C)}
.vlx-note{width:100%;font-size:.72rem;color:var(--muted,#3A555C);margin:2px 0 4px}
[data-theme="dark"] .vlx-ask{background:#0f3038}
[data-theme="dark"] .vlx-ask input{background:#123b42;color:#eaf6f4;border-color:rgba(201,168,76,.2)}

/* ===== TÌM KIẾM MẠNH — bảng gợi ý (vlx-tim-kiem.js) ===== */
.vlx-sg{position:absolute;z-index:9999;display:none;background:#fff;border:1px solid var(--line,#DDEBEA);border-radius:14px;
  box-shadow:0 18px 48px rgba(14,90,96,.16);overflow:hidden;font-family:var(--body,inherit)}
.vlx-sg.open{display:block}
.vlx-sg .sg-in{max-height:min(70vh,460px);overflow:auto;-webkit-overflow-scrolling:touch}
.vlx-sg .sg-sec{padding:10px 14px 6px;font-size:.68rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted,#3A555C);background:var(--cream,#F4FBFA)}
.vlx-sg .sg-row{display:flex;align-items:center;gap:10px;width:100%;padding:9px 14px;border:0;background:none;text-align:left;
  font:inherit;font-size:.86rem;color:var(--ink,#16323A);cursor:pointer;text-decoration:none;border-bottom:1px solid #f1f7f6}
.vlx-sg .sg-row:last-child{border-bottom:0}
.vlx-sg .sg-row:hover,.vlx-sg .sg-row.on{background:var(--cream,#F4FBFA)}
.vlx-sg .sg-row mark{background:#fdf3d4;color:inherit;padding:0 1px;border-radius:2px;font-weight:700}
.vlx-sg .sg-ic{width:22px;flex:0 0 22px;text-align:center;opacity:.75}
.vlx-sg .sg-villa img,.vlx-sg .sg-villa .ph{width:52px;height:40px;flex:0 0 52px;border-radius:8px;object-fit:cover;background:#e9eff0;display:block}
.vlx-sg .sg-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.vlx-sg .sg-tx b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vlx-sg .sg-tx small{font-size:.72rem;color:var(--muted,#3A555C)}
.vlx-sg .sg-pr{flex:0 0 auto;font-size:.78rem;font-weight:700;color:var(--coral,#E07A5F);white-space:nowrap}
.vlx-sg .sg-all{justify-content:center;color:var(--teal,#147B81);font-weight:600;font-size:.82rem}
.vlx-sg .sg-note{padding:8px 14px;font-size:.76rem;color:var(--muted,#3A555C);background:#fffaf0;border-bottom:1px solid var(--line,#DDEBEA)}
.vlx-sg .sg-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line,#DDEBEA)}
.vlx-sg .sg-chip{display:inline-block;padding:3px 10px;border:1px solid var(--line,#DDEBEA);border-radius:999px;background:var(--cream,#F4FBFA);
  font-size:.72rem;font-weight:600;color:var(--teal,#147B81);cursor:pointer}
.vlx-sg .sg-empty{padding:18px 16px;font-size:.85rem;color:var(--muted,#3A555C);line-height:1.6}
.vlx-sg .sg-empty b{display:block;color:var(--ink,#16323A);font-size:.92rem;margin-bottom:4px}
.vlx-sg .sg-sug{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.vlx-sg .sg-zalo{display:inline-block;margin-top:12px;padding:8px 14px;border-radius:999px;background:var(--zalo,#06C755);color:#fff;
  font-size:.8rem;font-weight:700;text-decoration:none}
.vlx-sg .sg-x{position:absolute;top:8px;right:10px;width:32px;height:32px;border:0;border-radius:50%;background:var(--cream,#F4FBFA);
  color:var(--ink,#16323A);font-size:1rem;cursor:pointer;line-height:1}
/* Mobile: mở toàn màn cho dễ thao tác */
@media(max-width:560px){
  .vlx-sg.mob{position:fixed!important;inset:0;width:100%!important;height:100%;border-radius:0;border:0;padding-top:52px}
  .vlx-sg.mob .sg-in{max-height:calc(100vh - 52px)}
  .vlx-sg.mob .sg-row{padding:12px 14px;font-size:.9rem}
}

/* ===== Nút ✕ xoá nhanh trong ô tìm + khung xương lúc đang tải ===== */
.vlx-hasx{position:relative}
.vlx-hasx .vlx-clr{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:none;
  width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#e4eeed;color:var(--muted,#3A555C);
  font-size:.72rem;line-height:22px;text-align:center;cursor:pointer;z-index:3}
.vlx-hasx .vlx-clr:hover{background:var(--coral,#E07A5F);color:#fff}
.vlx-hasx.on .vlx-clr{display:block}
.vlx-hasx input[type=search]{padding-right:30px}
.vlx-hasx input[type=search]::-webkit-search-cancel-button{display:none}  /* ẩn ✕ mặc định của trình duyệt */
.vlx-sg .sg-sk{cursor:default;pointer-events:none}
.vlx-sg .sk{display:block;border-radius:6px;background:linear-gradient(90deg,#eef4f3 25%,#f7fbfa 50%,#eef4f3 75%);
  background-size:200% 100%;animation:vlxSk 1.1s linear infinite}
.vlx-sg .sk-img{width:52px;height:40px;flex:0 0 52px;border-radius:8px}
.vlx-sg .sk-l1{height:11px;width:62%}
.vlx-sg .sk-l2{height:9px;width:38%;margin-top:6px}
@keyframes vlxSk{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.vlx-sg .sk{animation:none}}


/* Nút hiện lại câu hỏi đã xem trong trợ lý */
.vlx-chip-lai{background:var(--cream,#F4FBFA)!important;border-style:dashed!important;color:var(--muted,#3A555C)!important;font-weight:600}
.vlx-chip-lai:hover{background:var(--teal,#147B81)!important;color:#fff!important;border-color:var(--teal,#147B81)!important}

