
/* 17/10/2026: bong nut/tag trung tinh (khong dung mau nut cho bong) - bien chung --lna-bong-nut */
:root{--lna-bong-nut:0 1px 2px rgba(0,0,0,.10),0 2px 6px rgba(0,0,0,.08)}html[data-theme="dark"]{--lna-bong-nut:0 1px 2px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.35)}

:root{
  color-scheme:light;
  --bg:#F2F2F7;--card:#FFFFFF;--label:#000;--label2:#3A3A3C;--label3:rgba(60,60,67,.3);
  --sep:rgba(60,60,67,.29);--blue:#007AFF;--green:#34C759;--orange:#FF9500;--red:#FF3B30;--purple:#AF52DE;
  --fill:rgba(118,118,128,.12);--fill2:rgba(118,118,128,.2);--hl:#D1D1D6;
  /* 11/10/2026 15:34 anh Anh: chuẩn hoá bo góc kiểu iOS 26/27 — mọi nút/khối dùng chung 1 trong các biến này */
  --r-pill:999px;--r-circle:50%;--r-card:22px;--r-group:12px;--r-sheet:22px;--r-icon:7px;
  --ease:cubic-bezier(.32,.72,0,1);--spring:cubic-bezier(.34,1.36,.64,1);
  --sat:env(safe-area-inset-top);--sab:env(safe-area-inset-bottom);
  --glass:rgba(249,249,249,.8);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
html.mo{background:#000}
body{margin:0;font-family:-apple-system,"SF Pro Display","SF Pro Text",BlinkMacSystemFont,"Be Vietnam Pro",system-ui,sans-serif;color:var(--label);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.29;letter-spacing:-.41px}
a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit;letter-spacing:inherit}button{background:none;border:0;padding:0;cursor:pointer}
svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
svg.f{fill:currentColor;stroke:none}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}
@media(min-width:700px){.wrap{padding:0 24px}}
.desk-side,.desk-main{display:contents}

/* ===== trang nền (co lại khi mở sheet) ===== */
#page{background:var(--bg);min-height:100vh;transform-origin:50% 0;transition:transform .45s var(--ease),border-radius .45s var(--ease);padding-bottom:calc(112px + var(--sab))}

/* ===== thanh điều hướng: trong suốt ở đầu trang, kính mờ + tiêu đề inline khi cuộn ===== */
.nb{position:fixed;top:0;left:0;right:0;z-index:30;padding-top:var(--sat);--p:0;transform-origin:50% 0;transition:transform .45s var(--ease)}
.nb::before{content:"";position:absolute;inset:0;background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);opacity:var(--p)}
.nb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;transform:scaleY(.5);transform-origin:0 100%;background:var(--sep);opacity:var(--p)}
.nb-in{position:relative;z-index:1;height:44px;max-width:1100px;margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:flex-end}
@media(min-width:700px){.nb-in{padding:0 24px}}
.nb-t{position:absolute;left:16px;right:16px;text-align:center;font-size:17px;font-weight:600;line-height:44px;opacity:var(--p);transform:translateY(calc((1 - var(--p)) * 6px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
html.mo .nb{border-radius:var(--r-sheet) var(--r-sheet) 0 0;overflow:hidden}

/* ===== Large Title ===== */
.lt-w{padding-top:calc(44px + var(--sat))}
.lt{margin:0;padding:3px 0 0;font-size:clamp(22px,6.4vw,28px);line-height:1.18;font-weight:700;letter-spacing:.4px;white-space:nowrap;transform-origin:0 50%;will-change:transform}
.lt-ct{margin:5px 0 0;font-size:15px;line-height:19px;font-weight:700;color:var(--label);letter-spacing:-.24px}
.lt-ct a{color:#1E7B34}
.lt-sub{margin:3px 0 0;font-size:13px;line-height:18px;font-weight:500;color:var(--label2);letter-spacing:-.08px}

/* ===== tìm kiếm ===== */
.srow{display:flex;align-items:center;gap:10px;margin-top:14px}
.sf{flex:1;min-width:0;height:36px;border-radius:var(--r-pill);background:var(--fill);display:flex;align-items:center;gap:6px;padding:0 8px;color:var(--label2)}
.sf svg{width:18px;height:18px}
.sf input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:17px;color:var(--label);height:36px;padding:0;-webkit-appearance:none;appearance:none}
.sf input::placeholder{color:rgba(60,60,67,.5)}
.sf input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.sclr{display:none;color:rgba(60,60,67,.45)}.sclr svg{width:18px;height:18px}
.sf.co .sclr{display:grid}
.fb{position:relative;display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 12px;border-radius:var(--r-pill);background:var(--fill);color:var(--blue);font-size:15px;font-weight:600;letter-spacing:-.24px;white-space:nowrap;transition:transform .3s var(--spring),opacity .2s,background .2s}
.fb svg{width:19px;height:19px;stroke-width:2}
.fb:active{transform:scale(.94);opacity:.8}
.fb.on{background:rgba(0,122,255,.16)}
.fb .s2{display:none}.fb.on .s1{display:none}.fb.on .s2{display:block}
.huy{color:var(--blue);font-size:17px;white-space:nowrap;display:none;padding:0 2px}
body.typing .huy{display:block}body.typing .fb{display:none}

/* ===== segmented control ===== */
.seg{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;height:32px;padding:2px;border-radius:var(--r-pill);background:var(--fill);margin-top:12px;user-select:none;-webkit-user-select:none}
.seg .th{position:absolute;top:2px;bottom:2px;left:2px;border-radius:var(--r-pill);background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.12),0 3px 1px rgba(0,0,0,.04),0 0 0 .5px rgba(0,0,0,.04);transition:transform .35s var(--ease)}
.seg button{position:relative;z-index:1;font-size:14px;font-weight:500;letter-spacing:-.15px;color:var(--label);border-radius:var(--r-pill);transition:font-weight .2s}
.seg button.on{font-weight:600}
.seg button+button::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:1px;transform:scaleX(.5);background:rgba(60,60,67,.18);transition:opacity .2s}
.seg button.on::before,.seg button.on+button::before{opacity:0}

/* ===== chip quận ===== */
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:14px -16px 0;padding:0 16px 2px;scroll-padding:0 16px}
.chips::-webkit-scrollbar{display:none}
@media(min-width:700px){.chips{margin:14px -24px 0;padding:0 24px 2px}}
.chip{flex:none;height:34px;padding:0 14px;border-radius:var(--r-pill);background:var(--fill);color:var(--label);font-size:15px;font-weight:500;letter-spacing:-.24px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;transition:background .25s var(--ease),color .25s var(--ease),transform .3s var(--spring)}
.chip small{font-size:13px;font-weight:400;color:var(--label2);transition:color .25s}
.chip:active{transform:scale(.94)}
.chip.on{background:var(--blue);color:#fff}.chip.on small{color:rgba(255,255,255,.75)}

/* ===== hàng điều khiển ===== */
.ctl{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px;gap:12px}
.ctl h2{margin:0;font-size:17px;font-weight:600;line-height:22px}
.sortb{display:inline-flex;align-items:center;gap:3px;color:var(--blue);font-size:17px;line-height:22px;padding:4px 0;transition:opacity .2s}
.sortb svg{width:15px;height:15px;stroke-width:2.4}
.sortb:active{opacity:.4}

/* ===== thẻ căn kiểu App Store ===== */
.grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:700px){.grid{grid-template-columns:repeat(2,1fr);gap:20px}}
@media(min-width:1060px){.grid{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--card);border-radius:var(--r-card);overflow:hidden;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04),0 6px 20px rgba(0,0,0,.05);transition:transform .5s var(--spring),box-shadow .3s var(--ease);-webkit-user-select:none;user-select:none;isolation:isolate}
.card:active{transform:scale(.97);transition-duration:.18s;transition-timing-function:var(--ease)}
@media(hover:hover){.card:hover{box-shadow:0 1px 2px rgba(0,0,0,.05),0 12px 32px rgba(0,0,0,.09)}}
.cb{padding:12px 16px 16px}
.cap{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.2px;text-transform:uppercase;color:var(--label2)}
.tag{display:inline-block;text-transform:none;letter-spacing:0;font-size:12px;line-height:16px;font-weight:600;color:#fff;background:var(--red);border-radius:var(--r-pill);padding:2px 8px}
.tag.hq{background:var(--orange)}
.ct{margin:4px 0 0;font-size:17px;line-height:22px;font-weight:600;letter-spacing:-.41px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cp{margin-top:6px;font-size:22px;line-height:28px;font-weight:700;letter-spacing:.35px}
.cp small{font-size:15px;font-weight:400;color:var(--label2);letter-spacing:-.24px}
.cp .tu{font-size:15px;font-weight:500;color:var(--label2);margin-right:4px;letter-spacing:-.24px}
.cp.tl{font-size:20px;letter-spacing:.38px}
.cs{margin-top:2px;font-size:15px;line-height:20px;color:var(--label2);letter-spacing:-.24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gsn{margin-top:6px;font-size:13px;line-height:18px;font-weight:600;color:#C93400}

/* ảnh 4:3 (sheet chi tiết); .ph16 = thẻ danh sách + Cùng phân khúc, 16:9 cho gọn */
.ph{position:relative;aspect-ratio:4/3;background:#E5E5EA;overflow:hidden}
.ph.ph16{aspect-ratio:16/9}
.sl{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.sl::-webkit-scrollbar{display:none}
.sl img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start;display:block;background:#E5E5EA}
.glab{position:absolute;left:10px;top:10px;z-index:2;font-size:11px;line-height:13px;font-weight:600;letter-spacing:.06px;color:#000;padding:4px 9px;border-radius:var(--r-pill);background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(12px) saturate(180%);backdrop-filter:blur(12px) saturate(180%);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.6),0 1px 4px rgba(0,0,0,.12);pointer-events:none}
.dots{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:2;display:flex;gap:8px;padding:6px 9px;border-radius:var(--r-pill);background:rgba(0,0,0,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}
.dots i{width:7px;height:7px;border-radius:var(--r-circle);background:rgba(255,255,255,.5);transition:background .25s}
.dots i.on{background:#fff}
.nv{position:absolute;top:50%;margin-top:-16px;z-index:2;width:32px;height:32px;border-radius:var(--r-circle);display:none;place-items:center;color:#000;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 6px rgba(0,0,0,.15)}
.nv svg{width:15px;height:15px;stroke-width:2.6}.nv.l{left:10px}.nv.r{right:10px}
@media(hover:hover){.ph:hover .nv{display:grid}}
/* căn chưa có ảnh: gradient pastel theo quận + tên phố */
.ph0{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 22px;color:#fff}
.ph0::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 120%,rgba(0,0,0,.16),transparent 60%);pointer-events:none}
.ph0 b{position:relative;z-index:1;font-size:28px;line-height:34px;font-weight:700;letter-spacing:.36px;text-shadow:0 1px 12px rgba(0,0,0,.18);text-wrap:balance}
.ph0 span{position:relative;z-index:1;margin-top:6px;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;opacity:.9}

.ph.co-tg::after{content:"";position:absolute;left:0;right:0;bottom:0;height:50%;background:linear-gradient(to top,rgba(0,0,0,.42),rgba(0,0,0,.12) 55%,transparent);pointer-events:none;z-index:1}
@media(max-width:699px){.ph.co-tg .tgs{right:57px}}/* 12/10/2026: 4 tag -> hàng tag chừa cột icon mép phải, dài thì xuống dòng (không chui dưới nút Gọi) */
.ph0 .tgs .tg{margin-top:0}/* 12/10/2026: tag xuống dòng 2 trên thẻ không ảnh không bị .ph0 span đẩy lệch/cắt */
.ph0.co-tg::after{height:45%;background:linear-gradient(to top,rgba(0,0,0,.22),transparent)}
/* 11/10/2026 anh Anh: hàng TAG capsule đặc màu đè mép dưới trái ảnh (Cho thuê/Sang nhượng · ngày lên kho · quận); nhãn "Ảnh đường phố minh hoạ" lên góc trên phải */
.card .glab{left:auto;right:10px}
.card .dots{top:12px;bottom:auto;left:10px;transform:none}
.tgs{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.ph .tgs{position:absolute;left:10px;right:10px;bottom:10px;z-index:3;pointer-events:none;max-height:60px;overflow:hidden}
/* 11/10/2026 15:16 anh Anh: thống nhất mọi tag chữ TRẮNG, nền đặc tương phản ≥4.5:1 (đã tính bằng script) */
.tg{display:inline-flex;align-items:center;height:25px;padding:0 9px;border-radius:var(--r-pill);font-size:13px;line-height:1;font-weight:700;letter-spacing:-.08px;color:#fff;white-space:nowrap}
.tg.thue{background:#0062D6}.tg.sn{background:#D64B00}
.tg.hn{background:#DE1F17}.tg.hq{background:#D9145E}.tg.cu{background:#4A4A4F}
.tg.q{background:#9035C4;font-weight:800}
.tg.xm{background:#15873C}.tg.cxm{background:#A66A00}/* 12/10/2026: cùng mã màu tag xác minh kho nội bộ */
/* 11/10/2026 21:12 anh Anh: "tag có viền nên không sắc nét, màu chưa tươi" -> tag = khối màu ĐẶC, KHÔNG viền/bóng/viền mờ,
   bảng màu tươi chung 2 web (cùng nội dung = cùng mã với /khonhathue). Bản trước: template_test.html.bak_20261011_tagnet */
.tg{border:0;outline:0;box-shadow:none;text-shadow:none;opacity:1;-webkit-backdrop-filter:none;backdrop-filter:none;background-clip:border-box}
@media(max-width:380px){.tgs{gap:4px}.tg{font-size:12.5px;padding:0 8px}}
.dtg .tg{height:27px;font-size:13.5px;padding:0 10px}
.dh .dtg+h3{margin-top:10px}

.more{display:flex;justify-content:center;margin:20px 0 0}
.more button{width:100%;max-width:420px;height:50px;border-radius:var(--r-pill);background:var(--card);color:var(--blue);font-size:17px;font-weight:400;transition:background .15s}
.more button:active{background:var(--hl)}
/* trống (ContentUnavailableView) */
.empty{grid-column:1/-1;text-align:center;padding:48px 24px 40px;color:var(--label2)}
.empty svg{width:56px;height:56px;color:var(--label3);stroke-width:1.6}
.empty h3{margin:12px 0 6px;font-size:22px;line-height:28px;font-weight:700;color:var(--label);letter-spacing:.35px}
.empty p{margin:0 auto;max-width:320px;font-size:15px;line-height:20px}
.empty button{margin-top:16px;color:var(--blue);font-size:17px}

/* ===== khối inset cuối trang ===== */
.cta{margin:36px 0 0;background:var(--card);border-radius:var(--r-card);padding:20px 16px 16px;text-align:center}
.cta .ic{width:52px;height:52px;border-radius:var(--r-group);margin:0 auto 12px;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#5AC8FA,#007AFF)}
.cta .ic svg{width:28px;height:28px;stroke-width:2.2}
.cta h3{margin:0;font-size:22px;line-height:28px;font-weight:700;letter-spacing:.35px}
.cta p{margin:6px auto 16px;max-width:460px;font-size:15px;line-height:20px;color:var(--label2);letter-spacing:-.24px}
.bigb{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:50px;border-radius:var(--r-pill);font-size:17px;font-weight:600;color:#fff;transition:filter .15s,transform .3s var(--spring)}
.bigb:active{filter:brightness(.85);transform:scale(.98)}
.bigb svg{width:19px;height:19px}
.b-goi{background:var(--green)}.b-blue{background:var(--blue)}
.cta .two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.subb{display:flex;align-items:center;justify-content:center;gap:6px;height:36px;border-radius:var(--r-pill);color:#fff;font-size:15px;font-weight:600;letter-spacing:-.24px;transition:filter .15s}
.subb:active{filter:brightness(.88)}
.subb-sms{background:var(--green)}.subb-zalo{background:var(--blue)}
.foot{padding:12px 16px 0;font-size:13px;line-height:18px;color:var(--label2);letter-spacing:-.08px}
.foot a{color:var(--blue)}
.foot+.foot{padding-top:10px}

/* ===== cột liên hệ nổi Gọi · Zalo · SMS: xem khối ICON6 bên dưới ===== */
body.typing .dock,body.typing .lendau,body.an-dock .dock{opacity:0;pointer-events:none;transform:translateY(20px)}
/* nút về đầu trang: kính mờ, chevron.up */
.lendau{position:fixed;right:16px;bottom:calc(12px + var(--sab) + 60px + 12px);z-index:65;width:44px;height:44px;border-radius:var(--r-circle);display:grid;place-items:center;color:#1C1C1E;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);box-shadow:inset 0 0 0 .5px rgba(255,255,255,.8),0 0 0 .5px rgba(0,0,0,.06),0 6px 20px rgba(0,0,0,.14);opacity:0;visibility:hidden;transform:scale(.6);transition:opacity .25s var(--ease),transform .4s var(--spring),visibility .25s}
.lendau svg{width:20px;height:20px;stroke-width:2.6}
.lendau.hien{opacity:1;visibility:visible;transform:none}
.lendau:active{transform:scale(.88)}
html.mo .lendau{opacity:0;visibility:hidden}
@media(min-width:900px){.lendau{right:max(24px,calc(50% - 530px))}}

/* ===== sheet iOS ===== */
.dim{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s}
.dim.show{opacity:1;visibility:visible}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:60;max-width:760px;margin:0 auto;background:var(--bg);border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:0 -1px 0 rgba(0,0,0,.04),0 -8px 40px rgba(0,0,0,.12);transform:translateY(105%);visibility:hidden;transition:transform .45s var(--ease),visibility 0s .45s;display:flex;flex-direction:column;overflow:hidden}
.sheet.show{transform:none;visibility:visible;transition:transform .45s var(--ease),visibility 0s}
.sheet.keo{transition:none}
.sheet.full{top:calc(var(--sat) + 22px)}
.sheet.auto{max-height:calc(100% - var(--sat) - 22px)}
.grab{position:absolute;top:5px;left:50%;margin-left:-18px;width:36px;height:5px;border-radius:var(--r-pill);background:rgba(60,60,67,.3);z-index:6;pointer-events:none}
.sheet.anh .grab{background:rgba(255,255,255,.75);box-shadow:0 0 4px rgba(0,0,0,.2)}
.ss{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow-anchor:none}
/* 11/10/2026 14:25 anh Anh: nút đóng nổi bật hơn — tròn nền tối ĐẶC, viền trắng mảnh, X trắng đậm, bám góc trên */
.sx{position:absolute;top:12px;right:12px;z-index:7;width:38px;height:38px;border-radius:var(--r-circle);display:grid;place-items:center;color:#fff;background:#1C1C1E;border:1.5px solid rgba(255,255,255,.9);box-shadow:0 3px 10px rgba(0,0,0,.35);transition:transform .3s var(--spring)}
.sx svg{width:16px;height:16px;stroke-width:2.6}
.sx:active{transform:scale(.86)}
/* nút đóng sheet lọc (cùng kiểu, chỉ lệch vị trí cho khớp thanh tiêu đề) */
.sx.g{top:12px;right:16px}
@media(min-width:780px){.sheet.full{top:calc(var(--sat) + 28px)}}

/* nội dung chi tiết */
.dh{padding:16px 16px 0}
.dh .cap{font-size:13px;line-height:18px}
.dh h3{margin:6px 0 0;font-size:24px;line-height:30px;font-weight:700;letter-spacing:.3px}
.dloc{margin-top:4px;font-size:15px;line-height:20px;color:var(--label2);letter-spacing:-.24px}
/* 11/10/2026 15:28 anh Anh: giá trong sheet chi tiết to quá -> giảm ~18% (thẻ danh sách giữ nguyên) */
.dp{margin-top:10px;font-size:23px;line-height:28px;font-weight:700;letter-spacing:.3px}
.dp small{font-size:14px;font-weight:400;color:var(--label2);letter-spacing:-.34px}
.dp .tu{font-size:14px;font-weight:500;color:var(--label2);margin-right:4px;letter-spacing:-.34px}
.dp .lbl{display:block;font-size:13px;line-height:18px;font-weight:400;color:var(--label2);letter-spacing:-.08px}
.gsnb{margin:12px 16px 0;padding:12px 14px;border-radius:var(--r-group);background:rgba(255,149,0,.13);color:#A33A00;font-size:15px;line-height:20px;font-weight:500;letter-spacing:-.24px}
.gsnb a{color:var(--blue);font-weight:600;white-space:nowrap}
/* inset grouped list */
.ig{margin:0 16px}
.igh{margin:30px 0 0;padding:0 16px 7px;font-size:13px;line-height:18px;font-weight:600;letter-spacing:-.08px;text-transform:uppercase;color:var(--label2)}
.igb{background:var(--card);border-radius:var(--r-group);overflow:hidden}
.igf{padding:7px 16px 0;font-size:13px;line-height:18px;color:var(--label2);letter-spacing:-.08px}
.igf a{color:var(--blue)}
.row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:11px 16px;font-size:17px;line-height:22px}
.row+.row::before{content:"";position:absolute;top:0;left:16px;right:0;height:1px;transform:scaleY(.5);transform-origin:0 0;background:var(--sep)}
.row.ic+.row.ic::before{left:58px}
.row .v{color:var(--label2);text-align:right;min-width:0}
.row .v.dam{color:var(--label);font-weight:600}
.row .v.cam{color:#C93400;font-weight:500}
.row .v a{color:var(--blue)}
.row.lk{transition:background .15s}.row.lk:active{background:var(--hl)}
.row .l{display:flex;align-items:center;gap:12px;min-width:0}
.row .chev{color:var(--label3);width:14px;height:14px;stroke-width:2.6}
.row .sq{width:30px;height:30px;border-radius:var(--r-icon);display:grid;place-items:center;color:#fff;flex:none}
.row .sq svg{width:18px;height:18px}
.row.tx{display:block;line-height:22px}
.desc p{margin:0 0 10px}.desc p:last-child{margin-bottom:0} /* 11/10 17:27 mô tả chia đoạn */
.desc{white-space:normal;padding:11px 16px 12px;font-size:17px;line-height:23px;letter-spacing:-.41px}
.desc a{color:var(--blue);white-space:nowrap}
.nbt{display:flex;align-items:flex-start;gap:12px;justify-content:flex-start}
.nbt svg{width:22px;height:22px;color:var(--green);margin-top:0}
.ptags{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}
.ptags span{height:32px;display:inline-flex;align-items:center;padding:0 13px;border-radius:var(--r-pill);background:var(--fill);font-size:15px;letter-spacing:-.24px}
.map{position:relative;aspect-ratio:4/3;background:#E5E5EA}
.map iframe{width:100%;height:100%;border:0;display:block}
.map .vung{position:absolute;left:50%;top:50%;width:224px;height:224px;margin:-112px 0 0 -112px;border-radius:var(--r-circle);background:rgba(255,214,10,.14);border:3px solid #FFD60A;box-shadow:0 0 0 1px rgba(0,0,0,.35),inset 0 0 0 1px rgba(0,0,0,.25);pointer-events:none} /* 10/10 anh Anh: vệ tinh + vòng vàng; z=15 ~4,46m/px -> 224px ≈ 1km */
.tth{display:flex;align-items:baseline;justify-content:space-between;margin:36px 16px 12px}
.tth h4{margin:0;font-size:22px;line-height:28px;font-weight:700;letter-spacing:.35px}
.tth span{font-size:15px;color:var(--label2)}
.ttg{padding:0 16px}
@media(min-width:600px){.ttg{grid-template-columns:repeat(2,1fr)}}
.dend{height:calc(100px + var(--sab))}

/* sheet lọc */
.shd{position:relative;flex:none;height:58px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:600}
.fbody{padding-bottom:8px}
.fbody .ig:first-child .igh{margin-top:4px}
.fbody .seg{margin:0}
/* 11/10/2026 15:25 anh Anh: BỎ HẲN kiểu thu gọn (accordion 13:39/13:55) — mọi nhóm lọc luôn hiện, kể cả Quận */
.rhead{display:flex;justify-content:space-between;align-items:baseline;padding:11px 16px 0;font-size:17px}
.rhead b{font-weight:400;color:var(--blue)}
/* 13:55: chip chọn nhanh giá/diện tích/mặt tiền cuộn ngang 1 dòng cho gọn thay vì xuống nhiều dòng
   (dùng .opts.ohz để thắng độ ưu tiên so với .opts{flex-wrap:wrap} định nghĩa ở dưới) */
.opts.ohz{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.opts.ohz::-webkit-scrollbar{display:none}
.opts.ohz button{flex:0 0 auto}
.rg{position:relative;height:44px;margin:4px 30px 0;touch-action:pan-y;cursor:default;user-select:none;-webkit-user-select:none}
.rg .tr{position:absolute;left:-14px;right:-14px;top:20px;height:4px;border-radius:var(--r-pill);background:rgba(120,120,128,.2)}
.rg .fi{position:absolute;top:20px;height:4px;border-radius:var(--r-pill);background:var(--blue)}
.rg .kn{position:absolute;top:8px;width:28px;height:28px;margin-left:-14px;border-radius:var(--r-circle);background:#fff;box-shadow:0 .5px 4px rgba(0,0,0,.12),0 6px 13px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.04);touch-action:none;outline:0;cursor:grab;transition:transform .25s var(--spring)}
.rg .kn::before{content:"";position:absolute;inset:-8px;border-radius:var(--r-circle)} /* 11/10: vùng chạm 44px quanh nút cho dễ bắt trên điện thoại */
.rg .kn.kg,.rg .kn:focus-visible{transform:scale(1.12)}
.rg .kn.kg{cursor:grabbing} /* 11/10: đổi .act -> .kg vì trùng class thanh nút .act ở đáy trang nội bộ làm nút bị kéo giãn */
.rgs{display:flex;justify-content:space-between;padding:0 16px 10px;font-size:13px;color:var(--label2);letter-spacing:-.08px}
.opts{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}
.opts button{height:34px;padding:0 14px;border-radius:var(--r-pill);background:var(--fill);font-size:15px;font-weight:500;letter-spacing:-.24px;transition:background .2s var(--ease),color .2s,transform .3s var(--spring)}
.opts button:active{transform:scale(.94)}
.opts button.on{background:var(--blue);color:#fff}
.seg.opts{display:grid;padding:2px;gap:0;flex-wrap:nowrap}
.seg.opts button{height:auto;padding:0;border-radius:var(--r-pill);background:transparent;color:var(--label);font-size:14px}
.seg.opts button.on{background:transparent;color:var(--label)}
.seg.opts button:active{transform:none}
.hr{height:1px;transform:scaleY(.5);background:var(--sep);margin-left:16px}
.ffoot{flex:none;padding:12px 16px calc(12px + var(--sab));background:rgba(242,242,247,.86);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);box-shadow:0 -.5px 0 var(--sep)}
.ffoot .xoa{display:block;width:100%;height:44px;margin-top:4px;color:var(--red);font-size:17px}
.ffoot .xoa:active{opacity:.4}

/* sheet liên hệ */
.lh{text-align:center;padding:26px 16px 0}
.lh img{width:84px;height:84px;border-radius:var(--r-circle);display:block;margin:0 auto;box-shadow:0 0 0 .5px rgba(0,0,0,.1),0 4px 14px rgba(0,0,0,.1)}
.lh h3{margin:12px 0 2px;font-size:22px;line-height:28px;font-weight:700;letter-spacing:.35px}
.lh p{margin:0;font-size:15px;color:var(--label2);letter-spacing:-.24px}
.lhpad{height:calc(24px + var(--sab))}

/* menu sắp xếp (popup kiểu iOS) */
.menu{position:fixed;z-index:80;min-width:250px;border-radius:var(--r-card);overflow:hidden;background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(30px) saturate(190%);backdrop-filter:blur(30px) saturate(190%);box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 12px 44px rgba(0,0,0,.2);transform-origin:100% 0;transform:scale(.6);opacity:0;visibility:hidden;transition:transform .35s var(--spring),opacity .2s var(--ease),visibility 0s .35s}
.menu.show{transform:none;opacity:1;visibility:visible;transition:transform .45s var(--spring),opacity .2s var(--ease),visibility 0s}
.menu button{position:relative;display:flex;align-items:center;gap:10px;width:100%;height:44px;padding:0 16px 0 14px;font-size:17px;text-align:left;transition:background .1s}
.menu button+button::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;transform:scaleY(.5);background:rgba(60,60,67,.29)}
.menu button:active{background:rgba(0,0,0,.08)}
.menu button svg{width:17px;height:17px;stroke-width:2.6;visibility:hidden}
.menu button.on svg{visibility:visible}
.mcatch{position:fixed;inset:0;z-index:79;display:none}.mcatch.show{display:block}

/* xem ảnh to (kiểu Photos) */
.lb{position:fixed;inset:0;z-index:100;background:#000;display:none;flex-direction:column}
.lb.show{display:flex;animation:fade .25s var(--ease)}
.lb .sl{flex:1;height:auto}
.lb .sl img{object-fit:contain;background:transparent}
.lbh{display:flex;justify-content:space-between;align-items:center;padding:calc(10px + var(--sat)) 14px 10px;color:#fff;font-size:15px;font-weight:600}
.lbx{width:34px;height:34px;border-radius:var(--r-circle);display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.lbx svg{width:15px;height:15px;stroke-width:3}
.lbc{padding:10px 16px calc(16px + var(--sab));color:#D1D1D6;font-size:13px;text-align:center;min-height:40px}
.lb .nv{display:none;background:rgba(255,255,255,.18);color:#fff}
.lb .nv.l{left:16px}.lb .nv.r{right:16px}
@media(hover:hover){.lb .nv{display:grid}}
@keyframes fade{from{opacity:0}to{opacity:1}}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}html.mo #page,html.mo .nb{transform:none!important}}
.fbx{color:var(--red);margin-left:6px}.fbx svg{width:15px;height:15px;stroke-width:2.6} /* 11/10 17:40 anh Anh: nút Bỏ lọc cạnh nút Lọc ở đầu trang */

/* ======================================================================================================
   LIQUID GLASS (iOS 27) — 11/10/2026 21:15 anh Anh: "hiệu ứng gương, trong vắt". CHỈ trang thử /testwebthue.
   - backdrop-filter CHỈ cho lớp nổi: thanh đầu trang, dock Gọi/Zalo/SMS, nút về đầu, nút X, sheet, menu,
     nhãn/chấm ảnh trong sheet chi tiết. Thẻ căn (~800) giữ nền trắng đặc, nhãn/chấm trên thẻ = kính giả (không blur).
   - TAG (.tg): 21:40 làm lại thành capsule kính nhuộm màu (giả lập, không blur) — xem khối "TAG" bên dưới.
   ====================================================================================================== */
:root{
  --bg:#F1F3F9;
  --gblur:blur(26px) saturate(185%);
  --rim:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.4) 34%,rgba(255,255,255,.1) 62%,rgba(255,255,255,.6));
  --spring-s:cubic-bezier(.2,1.12,.32,1);
}
html{background:var(--bg)}
/* nền pastel rất nhẹ để kính lộ rõ (khối 1600px lặp, mỗi vệt màu tắt hẳn trước mép khối -> không lộ đường nối) */
#page{overflow-x:clip;background:
  radial-gradient(85% 340px at 0 320px,rgba(110,160,255,.22),transparent 72%) 0 0/100% 1600px repeat-y,
  radial-gradient(80% 380px at 100% 880px,rgba(255,150,200,.17),transparent 72%) 0 0/100% 1600px repeat-y,
  radial-gradient(75% 260px at 25% 1330px,rgba(100,212,192,.17),transparent 72%) 0 0/100% 1600px repeat-y,
  var(--bg)}
/* viền sáng phản chiếu dùng chung: dải gradient trắng -> trong suốt 1px theo mép bo góc */
.dock::after,.lendau::after,.sx::after,.glab::after,.dots::after,.sheet::after,.menu::after,.nv::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--rim);pointer-events:none;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}

/* ----- thanh đầu trang: tiêu đề inline (nb) + khối dính .dinh (ô tìm, Lọc / Bỏ lọc, chip quận) = MỘT tấm kính ----- */
.nb{--q:0}
.nb::before{opacity:calc(var(--p) * (1 - var(--q)));background:rgba(255,255,255,.45);-webkit-backdrop-filter:var(--gblur);backdrop-filter:var(--gblur)}
.nb::after{opacity:calc(var(--p) * (1 - var(--q)))}
.nb-t{font-weight:700;color:#000}
.dinh{position:sticky;top:calc(44px + var(--sat));z-index:29;margin-top:6px;padding:8px 0 4px;--q:0}
.dinh::before{content:"";position:absolute;z-index:-1;top:calc(-44px - var(--sat));bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);pointer-events:none;opacity:var(--q);
  background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.44));-webkit-backdrop-filter:var(--gblur);backdrop-filter:var(--gblur);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 0 rgba(0,0,0,.06),0 14px 30px -16px rgba(0,0,0,.272)}
.dinh::after{content:"";position:absolute;left:calc(50% - 50vw);right:calc(50% - 50vw);bottom:0;height:1px;pointer-events:none;opacity:var(--q);
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,1) 16%,rgba(255,255,255,1) 84%,rgba(255,255,255,0))}
.dinh .srow{margin-top:0}
.sf{height:40px;background:rgba(255,255,255,.72);color:#3A3A3C;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.068),inset 0 1px 2px rgba(0,0,0,.051),0 1px 0 rgba(255,255,255,.9)}
.sf input{height:40px}
.sf input::placeholder{color:rgba(60,60,67,.68)}
.fb{height:40px;padding:0 12px;background:rgba(255,255,255,.72);color:#0062D6;font-weight:700;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.068),inset 0 1px 0 rgba(255,255,255,.95),0 2px 8px rgba(0,0,0,.068);transition:transform .45s var(--spring),background .2s,box-shadow .2s}
.fb:active{transform:scale(.94);opacity:1;transition-duration:.12s}
.fb.on{background:rgba(214,232,255,.85);box-shadow:inset 0 0 0 1px rgba(0,98,214,.28),inset 0 1px 0 rgba(255,255,255,.9),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
.fbx{color:#D70015;margin-left:0}
.srow{gap:8px}
.huy{color:#0062D6;font-weight:600}
.dinh .chips{margin:10px -16px 0;padding:2px 16px 8px}
@media(min-width:700px){.dinh .chips{margin:10px -24px 0;padding:2px 24px 8px}}
.chip{height:36px;background:rgba(255,255,255,.66);color:#000;font-weight:600;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.076),inset 0 1px 0 rgba(255,255,255,.95);transition:background .25s var(--ease),color .25s var(--ease),transform .45s var(--spring),box-shadow .25s}
.chip small{color:#48484A;font-weight:500}
.chip:active{transform:scale(.94);transition-duration:.12s}
.chip.on{background:linear-gradient(180deg,#2C8DFF,#0A6CF0);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.12),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
.chip.on small{color:rgba(255,255,255,.88)}
/* segmented control (ngoài thanh dính): rãnh kính sữa, ô trắng bóng */
.seg{margin-top:12px;height:34px;background:rgba(255,255,255,.5);box-shadow:inset 0 0 0 .5px rgba(0,0,0,.068),inset 0 1px 2px rgba(0,0,0,.043)}
.seg .th{box-shadow:0 3px 10px rgba(0,0,0,.102),0 1px 2px rgba(0,0,0,.051),inset 0 1px 0 #fff,0 0 0 .5px rgba(0,0,0,.043);transition:transform .5s var(--spring)}
.seg button{font-weight:600;color:#1C1C1E}
.fbody .seg{background:rgba(118,118,128,.12);box-shadow:none}
.sortb{color:#0062D6;font-weight:600}

/* ----- thẻ căn: nền trắng ĐẶC (dễ đọc), viền sáng mảnh + bóng mềm; không blur ----- */
.card{position:relative;box-shadow:0 0 0 .5px rgba(0,0,0,.051),0 1px 2px rgba(0,0,0,.034),0 12px 28px -10px rgba(0,0,0,.136)}
.card::after{content:"";position:absolute;inset:0;z-index:5;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),inset 0 1px 0 rgba(255,255,255,.9)}
@media(hover:hover){.card:hover{box-shadow:0 0 0 .5px rgba(0,0,0,.06),0 2px 4px rgba(0,0,0,.043),0 18px 40px -12px rgba(0,0,0,.204)}}
.more button{background:rgba(255,255,255,.8);color:#0062D6;font-weight:600;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.068),inset 0 1px 0 #fff,0 6px 18px -8px rgba(0,0,0,.17)}
.cta{box-shadow:0 0 0 .5px rgba(0,0,0,.051),0 12px 28px -12px rgba(0,0,0,.136)}

/* ----- nhãn "Ảnh đường phố minh họa" + chấm phân trang: kính tròn. Trong sheet chi tiết = kính thật (blur);
   trên thẻ danh sách = kính giả (không blur, để cuộn 800 căn vẫn mượt) ----- */
.glab{font-size:12px;line-height:14px;font-weight:700;color:#000;padding:5px 10px;background:rgba(255,255,255,.5);-webkit-backdrop-filter:blur(16px) saturate(190%);backdrop-filter:blur(16px) saturate(190%);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 2px 10px rgba(0,0,0,.18)}
.dots{background:rgba(20,20,24,.26);-webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 8px rgba(0,0,0,.18)}
.dots i{background:rgba(255,255,255,.55);box-shadow:0 0 2px rgba(0,0,0,.25)}
.card .glab{background:rgba(255,255,255,.8);-webkit-backdrop-filter:none;backdrop-filter:none}
.card .dots{background:rgba(20,20,24,.42);-webkit-backdrop-filter:none;backdrop-filter:none}
.nv{background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(16px) saturate(190%);backdrop-filter:blur(16px) saturate(190%);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 2px 10px rgba(0,0,0,.18)}
.card .nv{background:rgba(255,255,255,.85);-webkit-backdrop-filter:none;backdrop-filter:none}

/*NUT3*/
/* ----- 3 nút nổi Gọi · Zalo · SMS — lần 3 (11/10/2026 21:50) anh Anh: "vẫn không đạt, nền 3 nút có viền quá dày".
   Theo ảnh iOS 26 thật (newsroom: thanh tab app Điện thoại, nút camera màn khoá): BỎ khay chung + vòng viền dày; mỗi nút là một
   capsule kính nhuộm màu (glassProminent) nổi riêng, cách nhau 9px: màu trong mờ .86 + blur/saturate, mặt phẳng mịn, chỉ 1 sợi sáng
   mảnh ở mép (sáng hơn góc trên-trái), ánh khúc xạ rất mềm mép trong (như nút camera màn khoá), bóng đổ rộng nhạt.
   Đã thử 3 phương án (A rời phẳng, B khay kính chung chỉ hairline, C = A + khúc xạ mép trong) -> chọn C. Chạm: phồng 1.04 + sáng lên, lò xo. Bản trước: template_kinh.html.bak_20261011_kinh3 ----- */
.gp{position:relative;isolation:isolate;height:50px;gap:7px;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;font-size:17px;font-weight:600;letter-spacing:-.4px;text-shadow:none;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 40%),rgba(var(--t),.86);
  -webkit-backdrop-filter:blur(18px) saturate(190%);backdrop-filter:blur(18px) saturate(190%);
  box-shadow:inset 0 0 12px rgba(255,255,255,.13),0 6px 20px rgba(0,0,0,.15),0 1px 3px rgba(0,0,0,.07);
  transition:transform .6s cubic-bezier(.28,1.6,.5,1),filter .3s var(--ease),box-shadow .3s var(--ease)}
.gp::before,.gc::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:.75px;
  background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(255,255,255,.22) 28%,rgba(255,255,255,.07) 55%,rgba(255,255,255,.1) 78%,rgba(255,255,255,.28));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
.gp::after,.gc::after{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  background:radial-gradient(80% 130% at 50% 40%,rgba(255,255,255,.3),rgba(255,255,255,0) 70%);transition:opacity .4s var(--ease)}
.gp:active{transform:scale(1.04);filter:brightness(1.08);box-shadow:inset 0 0 14px rgba(255,255,255,.2),0 10px 26px rgba(0,0,0,.18),0 2px 4px rgba(0,0,0,.07);transition-duration:.4s}
.gp:active::after{opacity:1;transition-duration:.15s}
/*/NUT3*/
/*ICON6*/
/* ----- 11/10/2026 22:29 anh Anh: "3 nút icon không đạt, không giống bản gốc. Chuyển cả 4 nút sang bên phải".
   Cột 4 nút ở GÓC DƯỚI BÊN PHẢI (từ trên xuống: lên đầu trang · Gọi · Zalo · SMS), cách mép phải 15px + safe-area.
   Icon 52px, khung squircle góc liên tục của icon Apple (clip trong SVG). Điện thoại/Tin nhắn: dựng lại theo ảnh icon iOS 26 thật
   (Wikimedia "Phone 2025 logo" / "Messages 2025 logo"): glyph lấy theo đường viền ảnh gốc, màu nền/glyph/viền sáng lấy mẫu pixel.
   Zalo: nền + bong bóng theo icon Zalo trên App Store (tràn mép), chữ "Zalo" = path vector gốc (Wikimedia Icon_of_Zalo.svg).
   Bản so sánh: output/web_anh_duong_kiemtra/icon_sosanh.png. Bản trước: template_kinh.html.bak_20261011_kinh6 ----- */
.dock{--ic:52px;--icg:12px;position:fixed;left:auto;right:calc(15px + env(safe-area-inset-right));bottom:calc(14px + var(--sab));z-index:70;width:var(--ic);max-width:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:var(--icg);background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;border-radius:0;transition:transform .35s var(--ease),opacity .25s}
.dock::after{content:none}
.dock .ai{position:relative;display:block;width:var(--ic);height:var(--ic);border-radius:22.4%;-webkit-tap-highlight-color:transparent;
  filter:drop-shadow(0 4px 9px rgba(0,0,0,.16)) drop-shadow(0 1px 2px rgba(0,0,0,.12));
  transition:transform .55s cubic-bezier(.3,1.75,.45,1),filter .2s}
.dock .ai:active{transform:scale(.92);filter:drop-shadow(0 2px 5px rgba(0,0,0,.16)) brightness(.94);transition:transform .12s ease-out,filter .12s}
.sqi{position:absolute;inset:0;display:block}
.sqi svg{position:absolute;inset:0;width:100%;height:100%;stroke:none;fill:none;overflow:hidden}
/* nút lên đầu trang: cùng cột, nằm TRÊN 3 icon (vị trí cố định -> ẩn/hiện không làm 3 icon nhảy); kính trong, cùng khung squircle */
.lendau{left:auto;right:calc(15px + env(safe-area-inset-right));bottom:calc(14px + var(--sab) + 3 * (52px + 12px));width:52px;height:52px;border-radius:22.4%}
.lendau svg{width:24px;height:24px;stroke-width:2.6}
.lendau:active{transform:scale(.92);transition:transform .12s ease-out}
@media(min-width:900px){.lendau{right:calc(15px + env(safe-area-inset-right))}}
/* 17/10/2026 anh Anh: cột nút nổi tự ẩn khi cuộn -> KHÔNG chừa đệm cho cột nút nữa (trước: #page 272px, .dend 200px) */
#page{padding-bottom:calc(28px + var(--sab))}
/*/ICON6*/

/* ----- TAG — 11/10/2026 21:40 anh Anh: "các tag cũng không đạt" -> capsule kính nhuộm màu kiểu iOS 26 (tinted glass):
   giữ nhóm màu tươi đậm như cũ (xanh dương/cam/đỏ/hồng/xám/tím, khớp kho nội bộ), thêm độ cong thủy tinh: sáng nhẹ góc trên-trái,
   vệt sáng mảnh mép trên, ánh sáng dồn mép dưới, bóng gọn sát chân. KHÔNG viền xám, KHÔNG quầng mờ quanh chữ, chữ trắng đậm.
   KHÔNG backdrop-filter (800+ thẻ, cuộn phải mượt) -> toàn bộ là gradient + inset. ----- */
.tg{position:relative;font-weight:700;color:#fff;text-shadow:none;
  background:radial-gradient(90% 120% at 22% -25%,rgba(255,255,255,.42),rgba(255,255,255,0) 62%),
    linear-gradient(180deg,var(--g1),var(--g2) 55%,var(--g3));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(255,255,255,.16),inset 0 -4px 7px -4px rgba(255,255,255,.28),
    0 1px 1.5px rgba(0,0,0,.24),0 3px 7px -2px rgba(0,0,0,.22)}
.tg.thue{--g1:#2F87F7;--g2:#0062D6;--g3:#0050B4}
.tg.sn{--g1:#F26A20;--g2:#D64B00;--g3:#B53D00}
.tg.hn{--g1:#F5453C;--g2:#DE1F17;--g3:#BC160F}
.tg.hq{--g1:#F03B80;--g2:#D9145E;--g3:#B60E4D}
.tg.cu{--g1:#6C6C73;--g2:#4A4A4F;--g3:#38383C}
.tg.q{--g1:#A85BDA;--g2:#9035C4;--g3:#7626A8}
.tg.xm{--g1:#2FA65A;--g2:#15873C;--g3:#0F6B2F}
.tg.cxm{--g1:#C2861F;--g2:#A66A00;--g3:#855400}
/* 12/10/2026 08:58 anh Anh: "tag nhỏ lại chút để cùng 1 dòng" -> 1 hàng, không xuống dòng; tràn thì tag quận co lại có "…" */
.tgs{flex-wrap:nowrap!important;gap:4px!important}
.ph .tgs{max-height:none}
.tg{height:21px!important;padding:0 6px!important;font-size:10.5px!important;letter-spacing:-.2px!important;flex:0 0 auto;max-width:100%}
@media(max-width:699px){.ph.co-tg .tgs{right:10px!important}}/* 1 dòng: dùng hết bề ngang ảnh */
.tg.q{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;display:inline-block!important;line-height:21px}
.dtg .tg{height:23px!important;font-size:12px!important;padding:0 8px!important}

/* ----- nút về đầu trang: kính tròn ----- */
.lendau{color:#000;background:rgba(255,255,255,.42);-webkit-backdrop-filter:blur(22px) saturate(200%);backdrop-filter:blur(22px) saturate(200%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 0 0 .5px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.17);transition:opacity .25s var(--ease),transform .5s var(--spring),visibility .25s}
.lendau:active{transform:scale(.9);transition-duration:.1s}

/* ----- nút X: kính tròn ám tối (rõ trên ảnh sáng lẫn tối), X trắng đậm, viền sáng ----- */
.sx{border:0;background:rgba(28,28,32,.5);-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 4px 14px rgba(0,0,0,.3);transition:transform .45s var(--spring)}
.sx svg{stroke-width:2.8;filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}
.sx:active{transform:scale(.86);transition-duration:.1s}

/* ----- sheet (chi tiết + lọc): kính mờ trong, bo góc 32px, tay nắm, mở kiểu lò xo -----
   bottom:-40px + padding-bottom:40px: phần đệm dưới mép màn hình để nhịp lò xo vượt lên không hở đáy */
.dim{background:rgba(0,0,0,.3)}
.sheet{bottom:-40px;padding-bottom:40px;border-radius:32px 32px 0 0;background:rgba(244,245,250,.78);-webkit-backdrop-filter:blur(32px) saturate(180%);backdrop-filter:blur(32px) saturate(180%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 -12px 44px rgba(0,0,0,.136);transition:transform .38s var(--ease),visibility 0s .38s}
.sheet.show{transition:transform .62s var(--spring-s),visibility 0s}
.sheet.keo{transition:none}
.sheet.auto{max-height:calc(100% - var(--sat) - 22px + 40px)}
.sheet::after{z-index:8}
.grab{top:6px;width:40px;margin-left:-20px;background:rgba(60,60,67,.3)}
.sheet.anh .grab{background:rgba(255,255,255,.85);box-shadow:0 0 6px rgba(0,0,0,.25)}
.igb{background:#fff;box-shadow:0 0 0 .5px rgba(0,0,0,.043),0 6px 18px -10px rgba(0,0,0,.119)}
.igh{color:#3A3A3C}
.shd{font-weight:700}
.ffoot{background:rgba(250,250,253,.62);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 -.5px 0 rgba(0,0,0,.085)}
/* 11/10/2026 22:05 anh Anh: "nút Áp dụng ở phần lọc chưa đạt" -> bỏ dải bóng kiểu thạch; Áp dụng + Xoá lọc dùng CHUNG ngôn ngữ
   với 3 nút nổi (khối NUT3 ở trên): Áp dụng = capsule kính nhuộm xanh #0A84FF (glassProminent), Xoá lọc = capsule kính trong.
   Hai nút cùng 1 hàng, cao 50px. Bản trước: template_kinh.html.bak_20261011_kinh4 */
.ffoot{display:flex;gap:10px;align-items:center}
.ffoot .bigb.gp{--t:10,132,255;flex:1;min-width:0;white-space:nowrap;overflow:visible}
.ffoot .xoa.gc{position:relative;isolation:isolate;flex:none;display:flex;align-items:center;justify-content:center;width:auto;height:50px;margin:0;padding:0 20px;border-radius:var(--r-pill);
  color:#D70015;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;font-size:17px;font-weight:600;letter-spacing:-.4px;white-space:nowrap;
  background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0) 45%),rgba(255,255,255,.5);
  -webkit-backdrop-filter:blur(18px) saturate(190%);backdrop-filter:blur(18px) saturate(190%);
  box-shadow:inset 0 0 12px rgba(255,255,255,.5),0 6px 20px rgba(0,0,0,.08),0 1px 3px rgba(0,0,0,.05);
  transition:transform .6s cubic-bezier(.28,1.6,.5,1),filter .3s var(--ease),box-shadow .3s var(--ease)}
/* 11/10/2026 22:29 anh Anh: "nút Áp dụng để màu đậm như màu của 1 số nút phần bên trên" -> khối xanh ĐẶC, đúng mã của chip quận đang chọn
   (.chip.on: gradient #2C8DFF -> #0A6CF0 + cùng bóng), chữ trắng đậm, capsule 50px; bỏ kiểu kính trong mờ. Xoá lọc giữ nguyên kính trong chữ đỏ. */
.ffoot .bigb.gp#fapply{background:linear-gradient(180deg,#2C8DFF,#0A6CF0);-webkit-backdrop-filter:none;backdrop-filter:none;color:#fff;font-weight:700;height:50px;border-radius:var(--r-pill);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.12),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
.ffoot .bigb.gp#fapply::before{content:none}
.ffoot .bigb.gp#fapply:active{transform:scale(.97);filter:brightness(.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(0,0,0,.12),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08));transition-duration:.12s}
.ffoot .xoa.gc::before{background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(255,255,255,.5) 30%,rgba(20,30,70,.08) 60%,rgba(255,255,255,.7))}
.ffoot .xoa.gc:active{opacity:1;transform:scale(1.04);filter:brightness(1.06);box-shadow:inset 0 0 14px rgba(255,255,255,.7),0 10px 26px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.05);transition-duration:.4s}
.ffoot .xoa.gc:active::after{opacity:1;transition-duration:.15s}
.opts button{font-weight:600}
.opts button.on{background:linear-gradient(180deg,#2C8DFF,#0A6CF0);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
.rg .fi{background:linear-gradient(90deg,#2C8DFF,#0A6CF0)}
.rg .kn{background:linear-gradient(180deg,#fff,#F4F6FB);box-shadow:inset 0 1px 0 #fff,0 0 0 .5px rgba(0,0,0,.068),0 2px 6px rgba(0,0,0,.136),0 8px 16px rgba(0,0,0,.102)}
.rhead b{color:#0062D6;font-weight:600}

/* ----- menu sắp xếp: kính ----- */
.menu{background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(30px) saturate(200%);backdrop-filter:blur(30px) saturate(200%);border-radius:24px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 0 0 .5px rgba(0,0,0,.068),0 16px 48px rgba(0,0,0,.187)}

/* ----- 11/10/2026 22:05 anh Anh: "kéo xuống thì dòng tìm kiếm, lọc tự ẩn, kéo lên mới hiện; thẻ tổng từng quận vẫn ở đó".
   body.an-tim (JS capAn): thanh tiêu đề inline + hàng ô tìm/Lọc/Bỏ lọc trượt lên & mờ đi; khối .dinh trượt lên đúng --an px
   để hàng chip quận dính sát đỉnh (chừa safe-area). Kính của .dinh kéo dài lên trên nên không hở khoảng trống. ----- */
.dinh{transition:transform .25s ease}
.dinh .srow{transition:opacity .25s ease}
html:not(.mo) .nb{transition:transform .25s ease,opacity .25s ease}
body.an-tim .dinh{transform:translateY(calc(-1 * var(--an,96px)))}
body.an-tim .dinh .srow{opacity:0;pointer-events:none}
body.an-tim .nb{transform:translateY(-100%);opacity:0;pointer-events:none}
/* sửa chữ chồng chữ: Large Title + dòng "Lưu Ngọc Anh · SĐT" + dòng số mặt bằng bị che dần bằng mask đúng tại mép dưới thanh tiêu đề
   (--mk do capNb tính), nên không còn chữ nào lọt vào vùng tiêu đề inline ở bất kỳ vị trí cuộn nào */
.lt-w{-webkit-mask-image:linear-gradient(180deg,transparent var(--mk,0px),#000 calc(var(--mk,0px) + 18px));mask-image:linear-gradient(180deg,transparent var(--mk,0px),#000 calc(var(--mk,0px) + 18px))}

/* trình duyệt không có backdrop-filter: tăng độ đục để chữ vẫn rõ */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .nb::before,.dinh::before,.lendau,.menu,.ffoot{background:rgba(248,248,252,.96)}.gp:not(#fapply){background:rgb(var(--t))}.gc{background:rgba(255,255,255,.92)}.sheet{background:#F2F2F7}.sx{background:rgba(28,28,32,.85)}.glab{background:rgba(255,255,255,.9)}}
@media(prefers-reduced-motion:reduce){.sheet,.sheet.show{transition-duration:.001ms!important}}
/* 12/10/2026 anh Anh: hàng segmented Xác minh ngay dưới hàng Hình thức, cùng kiểu/cỡ, khe 8px */
#segxm{margin-top:8px}
/* ảnh thứ 2,3 trên thẻ danh sách chỉ tải khi khách vuốt/bấm mũi tên (data-src) -> chưa có src thì ẩn, lộ nền xám của khung ảnh */
.sl img:not([src]){visibility:hidden}

/* 12/10/2026 anh Anh: bản desktop riêng cho /testwebthue.
   Giữ ngôn ngữ iOS/Liquid Glass nhưng không dùng bố cục mobile phóng to:
   trái = bảng lọc kính cố định, phải = danh sách card lớn, thoáng và dễ scan trên màn hình máy tính. */
@media(min-width:1120px){
  :root{--desk-gap:28px;--desk-side:370px}
  body{font-size:16px;background:
    radial-gradient(780px 420px at 8% 0,rgba(90,200,250,.22),transparent 62%),
    radial-gradient(760px 460px at 92% 10%,rgba(255,149,0,.13),transparent 66%),
    radial-gradient(900px 520px at 60% 100%,rgba(175,82,222,.12),transparent 70%),
    var(--bg)}
  #page{padding-bottom:28px;background:transparent}
  .nb{display:none}
  .wrap{max-width:1520px;display:grid;grid-template-columns:var(--desk-side) minmax(0,1fr);gap:var(--desk-gap);align-items:start;padding:28px 32px 0}/* 17/10 11:11: bo dem day 70px (chua cho cot nut cu) */
  .desk-side{display:block;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;padding:24px;border-radius:34px;background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,255,255,.5));
    -webkit-backdrop-filter:blur(28px) saturate(190%);backdrop-filter:blur(28px) saturate(190%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 0 0 .5px rgba(0,0,0,.068),0 28px 70px -42px rgba(0,0,0,.468)}
  .desk-side::-webkit-scrollbar{width:0}
  .desk-main{display:block;min-width:0}
  .lt-w{padding-top:0;margin:0;-webkit-mask-image:none;mask-image:none}
  .lt{font-size:38px;line-height:1.04;letter-spacing:-.7px;white-space:normal;text-wrap:balance}
  .lt-ct{margin-top:12px;font-size:16px;line-height:21px;color:#1C1C1E}
  .lt-sub{margin-top:5px;font-size:14px;line-height:19px;color:#636366}
  .dinh{position:static;margin-top:22px;padding:0;transform:none!important;z-index:auto}
  .dinh::before,.dinh::after{display:none}
  .dinh .srow{opacity:1!important;pointer-events:auto!important;gap:10px;flex-wrap:wrap}
  .sf{height:46px;border-radius:18px;background:rgba(255,255,255,.78)}
  .dinh .sf{flex:1 0 100%}
  .sf input{height:46px;font-size:16px}
  .fb{height:46px;border-radius:18px;padding:0 14px;font-size:15px}
  .dinh .fb{flex:1;justify-content:center}
  .fbx{width:46px;justify-content:center;padding:0;color:#D70015}
  .dinh .fbx{flex:0 0 46px}
  .fbx svg{margin:0}
  .fbx{font-size:0;gap:0}
  .huy{font-size:16px}
  .dinh .chips{margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:9px;overflow:visible;scroll-padding:0}
  .chip{height:38px;padding:0 14px;font-size:15px;background:rgba(255,255,255,.72)}
  .chip small{font-size:13px}
  #seg,#segxm{height:42px;margin-top:14px;background:rgba(255,255,255,.55)}
  #seg button,#segxm button{font-size:15px}
  #segxm{margin-top:10px}
  .ctl{position:sticky;top:0;z-index:12;margin:0 0 18px;padding:10px 0 14px;background:linear-gradient(180deg,var(--bg) 72%,rgba(241,243,249,0))}
  .ctl h2{font-size:30px;line-height:36px;font-weight:800;letter-spacing:-.55px}
  .sortb{height:42px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 .5px rgba(0,0,0,.068),inset 0 1px 0 #fff,0 8px 22px -14px rgba(0,0,0,.383);font-size:16px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .card{border-radius:30px;box-shadow:0 0 0 .5px rgba(0,0,0,.051),0 2px 5px rgba(0,0,0,.034),0 20px 44px -22px rgba(0,0,0,.272)}
  @media(hover:hover){.card:hover{transform:translateY(-3px);box-shadow:0 0 0 .5px rgba(0,0,0,.068),0 5px 12px rgba(0,0,0,.051),0 30px 64px -28px rgba(0,0,0,.374)}}
  .ph.ph16{aspect-ratio:16/10}
  .cb{padding:16px 20px 20px}
  .ct{font-size:20px;line-height:27px;letter-spacing:-.55px}
  .cp{margin-top:8px;font-size:28px;line-height:34px;letter-spacing:-.35px}
  .cp small,.cp .tu{font-size:16px}
  .cs{margin-top:4px;font-size:16px;line-height:22px}
  .tg{height:23px!important;padding:0 8px!important;font-size:11.5px!important}
  .tg.q{line-height:23px}
  .glab{font-size:12.5px;padding:6px 11px}
  .more{margin-top:26px}
  .more button{height:54px;max-width:520px}
  .cta{margin-top:34px;padding:24px;border-radius:30px;text-align:left;display:grid;grid-template-columns:64px 1fr;gap:0 16px;align-items:center}
  .cta .ic{grid-row:1/4;margin:0;width:58px;height:58px}
  .cta h3{font-size:24px;line-height:30px}
  .cta p{margin:6px 0 18px;max-width:680px}
  .cta .bigb,.cta .two{grid-column:2}
  .foot{padding-left:0;padding-right:0;max-width:900px}
  .dock{--ic:50px;--icg:10px;right:22px}
  .lendau{right:22px;bottom:calc(14px + var(--sab) + 3 * (50px + 10px));width:50px;height:50px}
  body.an-tim .dinh,body.an-tim .nb{transform:none!important;opacity:1;pointer-events:auto}
}
@media(min-width:1680px){
  .wrap{max-width:1700px;grid-template-columns:390px minmax(0,1fr)}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* 13/10/2026 06:26 anh Anh: đang lọc (bất kỳ tiêu chí nào) -> nút Lọc nền CAM ĐẶC chữ đen đậm + viền phát sáng + huy hiệu số; vừa bật thì nhịp 2 lần.
   Bỏ lọc: nền đỏ đặc chữ trắng. Hết lọc -> về kiểu thường. Cùng kiểu web kho nội bộ (template_noibo.html 12/10). Bản trước: *.bak_20261013_loc */
#fopen.on{background:#FF9F0A;color:#000;font-weight:800;box-shadow:var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
#fopen .fbn{display:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#000;color:#FFB340;font-size:13px;line-height:20px;font-weight:800;text-align:center;letter-spacing:0}
#fopen.on .fbn{display:inline-block}
#fopen.on.nhip{animation:nhipLoc .85s ease-out 2}
@keyframes nhipLoc{0%{transform:scale(1);box-shadow:var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
  35%{transform:scale(1.09)}100%{transform:scale(1);box-shadow:var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}}
#boloc.on{background:#FF3B30;color:#fff;font-weight:700;box-shadow:var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}

/* ======================================================================================================
   /testduan (14/10/2026): thẻ DỰ ÁN thay cho thẻ mặt bằng — chủ đầu tư, tên dự án, giá/m² (nếu trang gốc có), vị trí,
   3 ô thông số (Số căn / Diện tích / ... đúng như thẻ trên /can-ho), tag màu đặc tươi (Đang mở bán · thương hiệu · quận).
   ====================================================================================================== */
.cb .cap{display:block;font-size:12px;line-height:16px;color:#636366;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp.lhg{font-size:17px;line-height:22px;font-weight:600;color:#0062D6;letter-spacing:-.3px}
.dp.lhg{font-size:18px;line-height:24px;font-weight:600;color:#0062D6;letter-spacing:-.3px}
.mg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}
.mg>div{min-width:0;padding:7px 9px 8px;border-radius:12px;background:linear-gradient(180deg,#F3F5FB,#EAEDF6);box-shadow:inset 0 0 0 .5px rgba(0,0,0,.051),inset 0 1px 0 #fff}
.mg small{display:block;font-size:10.5px;line-height:13px;font-weight:700;letter-spacing:.2px;text-transform:uppercase;color:#6B6B73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mg b{display:block;margin-top:2px;font-size:14px;line-height:18px;font-weight:700;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.2px}
.dcdt{margin-top:4px;font-size:15px;line-height:20px;font-weight:600;color:#3A3A3C;letter-spacing:-.24px}
.lkda{padding:0 16px;margin-top:16px}
.lkda .bigb{text-decoration:none}
.b-blue{background:linear-gradient(180deg,#2C8DFF,#0A6CF0);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.12),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
.cta .ic{background:linear-gradient(180deg,#FFD479,#E8A23B)}
.foot b{color:#1C1C1E}
.foot .lk a{white-space:nowrap}
/* ô thông số hẹp (cột icon mép phải) -> cho xuống dòng thay vì cắt "98–398 …" */
.mg>div{padding:7px 8px 8px}
.mg small,.mg b{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.mg b{font-size:13.5px;line-height:17px}
/* 17/10/2026 11:11 anh Anh: noi dung khong tranh cot nut noi nua -> bo le phai 58/74px chua cho icon Goi/Zalo/SMS trong sheet chi tiet */
@media(max-width:699px){#md .ttg{padding-right:16px}}
@media(min-width:1120px){.mg b{font-size:15px}.mg small{font-size:11px}}
/* ===== TAG NỔI KHỐI 16/10 17:09 anh Anh: mọi tag/nhãn nổi khối đồng bộ với nút: giữ màu riêng từng tag, thêm gradient nhẹ
   (sáng mép trên, sẫm mép dưới) + viền sáng mảnh + bóng đổ NHỎ (nhỏ hơn nút để còn phân biệt tag với nút).
   Chỉ box-shadow + lớp phủ tuyệt đối -> KHÔNG đổi chiều cao thẻ / không xuống dòng. Bản trước: *.bak_20261016_51_tag ===== */
.tg{box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 0 0 .5px rgba(255,255,255,.22),inset 0 -1px 0 rgba(0,0,0,.2),0 1px 1.5px rgba(0,0,0,.22),0 2px 5px -1px rgba(0,0,0,.204)!important}
/* nút Sáng/Tối dùng chung toàn site: tròn 36px, khối gradient xanh + viền sáng kính + bóng đổ (giống nút Sáng/Tối /khonhathue) */
.lna-th{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;min-width:36px;padding:0;margin:0;border:0;border-radius:50%;cursor:pointer;color:#fff;
  background:linear-gradient(180deg,#2C8DFF,#0A6CF0);-webkit-tap-highlight-color:transparent;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.18),inset 0 0 0 .5px rgba(255,255,255,.18),0 1px 2px rgba(0,0,0,.25),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08));
  transition:transform .2s cubic-bezier(.34,1.36,.64,1)}
.lna-th::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(90% 120% at 22% -25%,rgba(255,255,255,.32),rgba(255,255,255,0) 62%)}
.lna-th:active{transform:scale(.9)}
.lna-th svg{position:relative;width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lna-th .ic-sun,.lna-th .ic-moon{display:none}
html[data-theme="dark"] .lna-th .ic-sun{display:block}
html:not([data-theme="dark"]) .lna-th .ic-moon{display:block}
html[data-theme="dark"] .lna-th{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(0,0,0,.25),inset 0 0 0 .5px rgba(255,255,255,.18),0 3px 10px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.4)}

/* ===== GIAO DIỆN SÁNG/TỐI + NÚT NỔI KHỐI 16/10/2026 (anh Anh 17:11) — khối dùng chung cho /chothue, /, /can-ho (+ bản EN sinh lại).
   - Nút Sáng/Tối .lna-th ở thanh đầu trang (bên trái, không đè tiêu đề / nút VI|EN); mặc định SÁNG; khoá chung "lna_theme".
   - Mọi nút bấm = nổi khối: nút phụ/chưa chọn = kính nổi nhẹ (gradient trắng + viền sáng + bóng); nút màu nhận diện = khối gradient nổi rõ.
   - Quy tắc chung :where(...) độ ưu tiên 0 -> nút mới sau này chưa có kiểu riêng cũng tự có bóng nổi.
   - Chế độ Tối: html[data-theme="dark"] đổi biến màu + đè các nền kính trắng cứng. ===== */
:root{
  --nk-kinh:linear-gradient(180deg,#FFFFFF,#EEEFF4);
  --nk-kinh-trong:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.72));
  /* 02/11/2026: bóng nổi khối ĐỔI sang đúng số đo của thẻ Khách thuê/Khách mua (--kc-khoi/--kc-khoi-nho trong khach_cham.css,
     kiểu anh Anh đã khen) để web công khai cùng 1 kiểu bóng với Kho nội bộ/CRM. */
  --nk-bong-kinh:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -1px 0 rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.2),0 3px 6px rgba(0,0,0,.12);
  --nk-bong-khoi:inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(0,0,0,.12),0 2px 3px rgba(0,0,0,.18),0 6px 14px rgba(0,0,0,.14);
}
html[data-theme="dark"]{
  --nk-kinh:linear-gradient(180deg,#3E3E43,#2B2B2F);
  --nk-kinh-trong:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.05));
  --nk-bong-kinh:inset 0 1px 0 rgba(255,255,255,.24),inset 0 -1px 0 rgba(0,0,0,.35),0 1px 2px rgba(0,0,0,.6),0 3px 6px rgba(0,0,0,.45);
  --nk-bong-khoi:inset 0 1px 0 rgba(255,255,255,.26),inset 0 -1px 0 rgba(0,0,0,.40),0 2px 3px rgba(0,0,0,.55),0 6px 14px rgba(0,0,0,.50);
}
/* vị trí nút Sáng/Tối: góc trái thanh đầu trang; tiêu đề thu gọn chừa 2 bên để không đè nút */
.nb-in>.lna-th{margin-right:auto}
.nb-t{left:62px!important;right:96px!important}

/* (0) quy tắc chung: nút chưa có kiểu riêng tự có bóng nổi (độ ưu tiên 0, kiểu riêng luôn thắng) */
:where(button,[role=button],a.btn,summary,select):where(:not(.lna-th):not(.sclr):not(.huy):not(.nut-chu)){box-shadow:var(--nk-bong-kinh)}

/* (1) nút phụ / chưa chọn = kính nổi nhẹ */
.chip:not(.on),.sortb,.more button,#xem,.ffoot .xoa:not(.gc){background:var(--nk-kinh)!important;box-shadow:var(--nk-bong-kinh)!important}
/* 16/10/2026 19:14 anh Anh: nút Lọc / Bỏ lọc phải Y HỆT /khonhathue (trước đó khối này ghi đè .fb/.fb.on bằng !important nên mất màu cam/đỏ khi đang lọc).
   Lọc = viên kính sáng chữ/biểu tượng xanh; Bỏ lọc = viên kính sáng chữ đỏ có ×; đang lọc: Lọc cam phát sáng, Bỏ lọc đỏ phát sáng. Giá trị lấy từ getComputedStyle của /khonhathue. */
#fopen,#boloc{background:var(--nk-kinh)!important;box-shadow:var(--nk-bong-kinh)!important;font-weight:600!important;-webkit-backdrop-filter:blur(22px) saturate(1.85);backdrop-filter:blur(22px) saturate(1.85)}
#fopen{color:#007AFF!important}#boloc{color:#FF3B30!important}
#fopen.on{background:linear-gradient(180deg,#FFB340,#FF9500)!important;color:#000!important;font-weight:700!important;box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
#boloc.on{background:linear-gradient(180deg,#FF6A60,#E0261B)!important;color:#fff!important;font-weight:700!important;box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
#fopen .fbn{background:#fff!important;color:#B86A00!important}
#fopen:active,#boloc:active{transform:scale(.94);opacity:.8}
@media(max-width:1119px){#fopen,#boloc{height:36px!important}}
.chip.on{box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
.sortb{padding-left:12px!important;padding-right:10px!important;border-radius:999px!important;min-height:32px}
.seg button{margin:0 1px}
.seg button:not(.on){background:var(--nk-kinh-trong)!important;box-shadow:var(--nk-bong-kinh)!important}
.seg button.on{background:transparent!important;box-shadow:none!important}
.seg button::before{display:none!important}
.seg .th{box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
/* hàng liên kết trong nhóm (Mặt bằng cho thuê / Dự án…) = viên kính bấm được */
.igb>a.row.lk,.igb>.row.lk{margin:6px 8px;border-radius:14px;background:var(--nk-kinh);box-shadow:var(--nk-bong-kinh)}
.igb>.row.lk::before,.igb>.row.lk+.row.lk::before{display:none}

/* (2) nút màu nhận diện = khối gradient nổi rõ (giữ màu riêng) */
.bigb.b-goi,a.bigb.b-goi{background:linear-gradient(180deg,#3DDC66,#25B04A)!important;box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
.subb-sms{background:linear-gradient(180deg,#3DDC66,#25B04A)!important;box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
.subb-zalo{background:linear-gradient(180deg,#2C9BFF,#0A6CF0)!important;box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}

/* ===== CHẾ ĐỘ TỐI ===== */
html[data-theme="dark"]{color-scheme:dark;
  --bg:#000;--card:#1C1C1E;--label:#FFFFFF;--label2:rgba(235,235,245,.72);--label3:rgba(235,235,245,.36);
  --sep:rgba(84,84,88,.6);--blue:#0A84FF;--green:#30D158;--orange:#FF9F0A;--red:#FF453A;--purple:#BF5AF2;
  --fill:rgba(118,118,128,.24);--fill2:rgba(118,118,128,.32);--hl:#3A3A3C;--glass:rgba(22,22,24,.82)}
html[data-theme="dark"],html[data-theme="dark"] body,html[data-theme="dark"] #page{background:#000!important;color:#fff}
html[data-theme="dark"] .nb::before{background:rgba(22,22,24,.82)!important}
html[data-theme="dark"] .nb-t,html[data-theme="dark"] .lt,html[data-theme="dark"] h1,html[data-theme="dark"] h2,html[data-theme="dark"] h3{color:#fff}
html[data-theme="dark"] .lt-ct,html[data-theme="dark"] .lt-sub{color:rgba(235,235,245,.72)!important}
html[data-theme="dark"] .dinh::before{background:linear-gradient(180deg,rgba(18,18,20,.9),rgba(18,18,20,.78))!important}
html[data-theme="dark"] .dinh::after{background:linear-gradient(90deg,rgba(0,0,0,0),rgba(0,0,0,1) 16%,rgba(0,0,0,1) 84%,rgba(0,0,0,0))!important;opacity:.4}
html[data-theme="dark"] .ctl{background:linear-gradient(180deg,#000 72%,rgba(0,0,0,0))!important}
html[data-theme="dark"] .desk-side{background:linear-gradient(180deg,rgba(28,28,30,.92),rgba(28,28,30,.78))!important;box-shadow:inset 0 0 0 .5px rgba(255,255,255,.1)!important}
html[data-theme="dark"] .sf{background:rgba(118,118,128,.24)!important;color:rgba(235,235,245,.72)!important;box-shadow:inset 0 0 0 .5px rgba(255,255,255,.1)!important}
html[data-theme="dark"] .sf input{color:#fff}
html[data-theme="dark"] .sf input::placeholder{color:rgba(235,235,245,.5)}
html[data-theme="dark"] .sortb{color:#4BA3FF!important}
html[data-theme="dark"] #fopen{color:#0A84FF!important}html[data-theme="dark"] #boloc{color:#FF453A!important}
html[data-theme="dark"] #fopen.on{color:#000!important}html[data-theme="dark"] #boloc.on{color:#fff!important}
html[data-theme="dark"] #fopen .fbn{background:#000!important;color:#FFB340!important}
html[data-theme="dark"] .chip:not(.on){color:#fff!important}
html[data-theme="dark"] .chip small{color:rgba(235,235,245,.62)!important}
html[data-theme="dark"] .chip.on small{color:rgba(255,255,255,.88)!important}
html[data-theme="dark"] .seg,html[data-theme="dark"] #seg,html[data-theme="dark"] #segxm,html[data-theme="dark"] .fbody .seg{background:rgba(118,118,128,.24)!important}
html[data-theme="dark"] .seg button{color:#fff!important}
html[data-theme="dark"] .card,html[data-theme="dark"] .gc{background:#1C1C1E!important;color:#fff}
html[data-theme="dark"] .card::after,html[data-theme="dark"] .gc::before,html[data-theme="dark"] .gp::before{opacity:.25}
html[data-theme="dark"] .glab,html[data-theme="dark"] .card .glab{background:rgba(30,30,32,.82)!important;color:#fff!important}
html[data-theme="dark"] .nv,html[data-theme="dark"] .card .nv{background:rgba(44,44,46,.85)!important;color:#fff!important}
html[data-theme="dark"] .lendau{background:linear-gradient(180deg,rgba(72,72,76,.92),rgba(44,44,46,.9))!important;color:#fff!important;box-shadow:var(--nk-bong-kinh),0 6px 18px rgba(0,0,0,.5)!important}
html[data-theme="dark"] .sheet{background:#1C1C1E!important;color:#fff}
html[data-theme="dark"] .sheet.anh .grab,html[data-theme="dark"] .grab{background:rgba(235,235,245,.45)!important}
html[data-theme="dark"] .igb{background:#2C2C2E!important;color:#fff}
html[data-theme="dark"] .igh,html[data-theme="dark"] .igf{color:rgba(235,235,245,.65)!important}
html[data-theme="dark"] .ffoot{background:rgba(28,28,30,.92)!important}
html[data-theme="dark"] .menu{background:rgba(44,44,46,.94)!important;color:#fff}
html[data-theme="dark"] .rg .kn{background:linear-gradient(180deg,#F2F2F7,#D1D1D6)!important}
html[data-theme="dark"] .sx,html[data-theme="dark"] .sx.g{background:linear-gradient(180deg,rgba(72,72,76,.95),rgba(44,44,46,.92))!important;color:#fff!important;box-shadow:var(--nk-bong-kinh)!important}
html[data-theme="dark"] .more button,html[data-theme="dark"] #xem,html[data-theme="dark"] .ffoot .xoa{color:#fff}
html[data-theme="dark"] .ffoot .xoa.gc{background:linear-gradient(180deg,#3E3E43,#2B2B2F)!important;color:#FF6961!important}
html[data-theme="dark"] .row{color:#fff}
html[data-theme="dark"] .row .v,html[data-theme="dark"] .row .k,html[data-theme="dark"] .dp .lbl{color:rgba(235,235,245,.72)}
html[data-theme="dark"] a.row.lk{color:#fff}
html[data-theme="dark"] .ph0{background:#2C2C2E!important}
html[data-theme="dark"] .ph0 span,html[data-theme="dark"] .ph0 b{color:rgba(235,235,245,.72)}
html[data-theme="dark"] .ph{background-color:#2C2C2E!important}
html[data-theme="dark"] .seg .th{background:linear-gradient(180deg,#2C8DFF,#0A6CF0)!important}
html[data-theme="dark"] .seg button.on{color:#fff!important}
html[data-theme="dark"] .cap{color:rgba(235,235,245,.7)!important}
html[data-theme="dark"] .lock{background:rgba(10,132,255,.16)!important;color:#7CBBFF!important}
html[data-theme="dark"] .lock span{color:#9CCBFF!important}
html[data-theme="dark"] .dcdt{color:rgba(235,235,245,.78)!important}
html[data-theme="dark"] .rhead b{color:#4BA3FF!important}
html[data-theme="dark"] .rhead span,html[data-theme="dark"] .rlab,html[data-theme="dark"] .rg+div{color:rgba(235,235,245,.72)}
.ffoot .xoa{box-shadow:var(--nk-bong-kinh)!important}
.ffoot .xoa.gc{background:var(--nk-kinh)!important}
html[data-theme="dark"] .ffoot .xoa.gc{background:linear-gradient(180deg,#3E3E43,#2B2B2F)!important}
html[data-theme="dark"] .dock .d3,html[data-theme="dark"] #docksms{background:linear-gradient(180deg,#2FB457,#1E8E3E)!important}
html:not([data-theme="dark"]){color-scheme:only light}
html[data-theme="dark"] .bigb.b-goi,html[data-theme="dark"] a.bigb.b-goi,html[data-theme="dark"] .subb-sms,html[data-theme="dark"] .sxb a.btn-gold[href^="tel:"]{background:linear-gradient(180deg,#2DA44E,#1A7F37)!important}
html[data-theme="dark"] .mg>div{background:linear-gradient(180deg,#2C2C2E,#242426)!important;box-shadow:inset 0 0 0 .5px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.08)!important}
html[data-theme="dark"] .mg small,html[data-theme="dark"] .cb .cap{color:rgba(235,235,245,.66)!important}
html[data-theme="dark"] .mg b{color:#fff!important}
html[data-theme="dark"] .cp.lhg,html[data-theme="dark"] .dp.lhg{color:#4BA3FF!important}
/* 17/10/2026 11:11 CHE DO TOI /canho: chu trang tren nut/tag mau du tuong phan (>=4.5) - CHI o Toi, Sang giu nguyen. Ban truoc *.bak_20261017_toi_duan */
html[data-theme="dark"] .b-blue,html[data-theme="dark"] .bigb.b-blue,html[data-theme="dark"] .subb-zalo,html[data-theme="dark"] a.subb-zalo,html[data-theme="dark"] .chip.on,html[data-theme="dark"] .snav a[aria-current],html[data-theme="dark"] a.langsw{background:linear-gradient(180deg,#1A73E8,#0A58CA)!important;color:#fff!important}
html[data-theme="dark"] .bigb.b-goi,html[data-theme="dark"] a.bigb.b-goi,html[data-theme="dark"] .subb-sms,html[data-theme="dark"] a.subb-sms{background:linear-gradient(180deg,#23883F,#15692C)!important;color:#fff!important}
html[data-theme="dark"] .tg.sn{--g1:#C9551A;--g2:#B23E00;--g3:#953300;background-color:#B23E00}
html[data-theme="dark"] .tg.cxm{--g1:#A87418;--g2:#8F5B00;--g3:#734900;background-color:#8F5B00}
html[data-theme="dark"] .foot b,html[data-theme="dark"] .foot strong{color:#fff}
html[data-theme="dark"] .lt-ct a{color:#30D158}
/*HUY17*/
/* 17/10/2026 12:22 anh Anh: nut chu "Huy"/"Cancel" canh o tim (va moi nut chu thuan class .nut-chu) = kieu iOS: chu xanh tren nen trong suot,
   KHONG nen, KHONG vien, KHONG bong, khong hop; can giua doc voi o tim; vung cham >=44px. Loai khoi quy tac noi khoi chung. */
html:root .huy,html:root .nut-chu{background:none!important;background-image:none!important;box-shadow:none!important;border:0!important;border-radius:0!important;filter:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;outline:0;color:#007AFF!important;font-size:17px!important;font-weight:400!important;letter-spacing:-.4px;
  height:44px!important;min-width:44px;margin:-4px 0!important;padding:0 2px 0 6px!important;line-height:1!important;-webkit-tap-highlight-color:transparent;cursor:pointer}
html:root body.typing .huy{display:inline-flex!important;align-items:center;justify-content:center}
html:root .huy:active,html:root .nut-chu:active{opacity:.35;transform:none!important}
html:root[data-theme="dark"] .huy,html:root[data-theme="dark"] .nut-chu{color:#0A84FF!important}
/*/HUY17*/
/*LIENHE17*/
/* LIEN HE CHUAN 17/10/2026 (anh Anh 12:31): MOT mau duy nhat cho moi khoi lien he toan site = mau cuoi trang chu.
   The xanh la "Goi dien" CO SO 0898 010 292 ben trong (tel:) + nut Zalo (xanh duong) + nut SMS (xanh la). Moi khoi chi hien so 1 lan.
   Nguon: bds_listing/theme_chung/lien_he.css + lien_he.py -> chep vao template bang theme_chung/dong_bo_lien_he.py. */
html:root .lh-nut{font-size:17px;line-height:1.2;letter-spacing:-.3px;color:#fff;display:grid!important;grid-template-columns:minmax(0,1fr) 60px 60px;gap:8px;width:100%;max-width:460px;margin:16px auto 0;padding:0;text-align:left;box-sizing:border-box}
@media(min-width:700px){html:root .lh-nut{grid-template-columns:minmax(0,1fr) 72px 72px;gap:10px}}
html:root .lh-nut.trai{margin-left:0}
html:root .lh-nut a{position:relative;display:flex;align-items:center;min-height:60px;margin:0;padding:0;border:0;border-radius:18px;color:#fff!important;text-decoration:none!important;
  font-family:inherit;line-height:1.2;filter:none;-webkit-tap-highlight-color:transparent;transition:transform .3s cubic-bezier(.34,1.36,.64,1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.12),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
@media(min-width:700px){html:root .lh-nut a{min-height:66px}}
html:root .lh-nut a:active{transform:scale(.96)}
/* 31/10/2026: icon dac (phone.fill / bubble.left.fill / bong bong Zalo chu khoet rong), bo dong chu "Goi dien"; nut + mau giu nguyen */
html:root .lh-nut svg{width:24px;height:24px;flex:none;fill:currentColor;stroke:none}
html:root .lh-nut .lh-goi{gap:9px;font-size:17px;letter-spacing:-.3px;padding:0 12px;justify-content:center;background:linear-gradient(180deg,#3DD35F,#24A644)!important}
html:root .lh-nut .lh-goi span{display:flex;flex-direction:column;min-width:0}
html:root .lh-nut .lh-goi small{font-size:12.5px;line-height:1.2;font-weight:600;opacity:.92;letter-spacing:-.1px;color:#fff!important;text-transform:none}
html:root .lh-nut .lh-goi b{font-size:clamp(17px,5.1vw,21px);line-height:1.2;font-weight:700;letter-spacing:-.3px;white-space:nowrap;color:#fff!important}
html:root .lh-nut .lh-o{flex-direction:column;justify-content:center;gap:3px;font-size:12.5px;font-weight:600;letter-spacing:-.1px}
html:root .lh-nut .lh-zalo{background:linear-gradient(180deg,#2C8DFF,#0A6CF0)!important}
html:root .lh-nut .lh-sms{background:linear-gradient(180deg,#3DD35F,#24A644)!important}
html:root[data-theme="dark"] .lh-nut .lh-goi,html:root[data-theme="dark"] .lh-nut .lh-sms{background:linear-gradient(180deg,#23883F,#15692C)!important}
html:root[data-theme="dark"] .lh-nut .lh-zalo{background:linear-gradient(180deg,#1A73E8,#0A58CA)!important}
/* dong chu dan phia tren khoi (vd. "Lien he de nhan bang gia chi tiet") */
html:root .lh-dan{margin:14px 0 0;font-size:15px;line-height:1.45;font-weight:600;text-align:center;color:inherit}
html:root .lh-khoi{margin:12px 0}
/*/LIENHE17*/
/*NUTNOI17*/
/* NUT NOI CHUAN 17/10/2026 (anh Anh 10:39): mot kieu duy nhat cho moi trang = kieu trang chu.
   Cot 4 nut goc phai duoi (tren xuong): Ve dau trang, Goi, Zalo, SMS. Icon 52px (may tinh >=1120px: 50px), khe 12px (10px).
   Khong vien trang, khong quang mau/nhip sang quanh nut Goi, bong trung tinh. Dang cuon thi an, dung cuon 100ms thi hien lai
   (JS nut_noi.js them/bo class html.nn-cuon). Noi dung KHONG chua dem cho cot nut.
   Nguon: bds_listing/theme_chung/nut_noi.css -> chep vao template bang theme_chung/dong_bo_nut_noi.py (khong sua tay trong template). */
:root{--nn-ic:52px;--nn-g:12px;--nn-r:calc(15px + env(safe-area-inset-right));--nn-b:calc(14px + env(safe-area-inset-bottom));
  --nn-bong:drop-shadow(0 4px 9px rgba(0,0,0,.16)) drop-shadow(0 1px 2px rgba(0,0,0,.12))}
@media(min-width:1120px){:root{--nn-ic:50px;--nn-g:10px;--nn-r:22px}}
html:root .dock{--ic:var(--nn-ic);--icg:var(--nn-g);position:fixed!important;left:auto!important;top:auto!important;right:var(--nn-r)!important;bottom:var(--nn-b)!important;
  z-index:70!important;width:var(--nn-ic)!important;max-width:none!important;height:auto!important;margin:0!important;padding:0!important;
  display:flex!important;flex-direction:column!important;gap:var(--nn-g)!important;grid-template-columns:none!important;
  background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;border:0!important;border-radius:0!important;
  transition:opacity .15s ease,transform .2s ease,visibility .15s!important}
html:root .dock::before,html:root .dock::after,html:root .dock .ai::before,html:root .dock .ai::after,html:root .lendau::before,html:root .lendau::after{content:none!important;display:none!important;animation:none!important}
html:root .dock .ai,html:root body #docksms{position:relative!important;padding:0!important;display:block!important;width:var(--nn-ic)!important;height:var(--nn-ic)!important;border-radius:22.4%!important;
  background:none!important;box-shadow:none!important;filter:var(--nn-bong)!important;-webkit-tap-highlight-color:transparent;
  transition:transform .55s cubic-bezier(.3,1.75,.45,1),filter .2s!important}
html:root .dock .ai:active{transform:scale(.92)!important;filter:drop-shadow(0 2px 5px rgba(0,0,0,.16)) brightness(.94)!important;transition:transform .12s ease-out,filter .12s!important}
html:root .dock .sqi{position:absolute;inset:0;display:block}
html:root .dock .sqi svg{position:absolute;inset:0;width:100%;height:100%;stroke:none;fill:none;overflow:hidden}
/* nut ve dau trang: cung cot, nam tren 3 icon; o vuong bo goc nhu icon, mui ten len.
   17/10/2026 11:11 anh Anh: quay lai KIEU KINH MO cu (liquid glass): nen trong mo + backdrop-filter blur/saturate, vien sang manh,
   bong trung tinh nhe; Toi = kinh toi. Khong dung filter:drop-shadow (lam hong backdrop-filter). Ban truoc *.bak_20261017_toi_duan */
html:root .lendau{position:fixed!important;left:auto!important;top:auto!important;right:var(--nn-r)!important;bottom:calc(var(--nn-b) + 3 * (var(--nn-ic) + var(--nn-g)))!important;
  z-index:70!important;width:var(--nn-ic)!important;height:var(--nn-ic)!important;margin:0!important;padding:0!important;border:0!important;border-radius:22.4%!important;
  display:grid!important;place-items:center!important;cursor:pointer;-webkit-tap-highlight-color:transparent;
  color:#1C1C1E!important;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.5))!important;
  -webkit-backdrop-filter:blur(20px) saturate(180%)!important;backdrop-filter:blur(20px) saturate(180%)!important;
  box-shadow:inset 0 0 0 .5px rgba(255,255,255,.85),inset 0 1px 0 rgba(255,255,255,.95),0 0 0 .5px rgba(0,0,0,.07),0 6px 20px rgba(0,0,0,.14)!important;filter:none!important;
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(20px)!important;
  transition:opacity .15s ease,transform .2s ease,visibility .15s!important}
html:root .lendau svg{width:24px!important;height:24px!important;fill:none!important;stroke:currentColor!important;stroke-width:2.6!important;stroke-linecap:round;stroke-linejoin:round}
html:root .lendau.nn-hien{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
html:root .lendau.nn-hien:active{transform:scale(.92)!important;transition:transform .12s ease-out!important}
html:root[data-theme="dark"] .lendau{color:#fff!important;background:linear-gradient(180deg,rgba(84,84,90,.58),rgba(44,44,46,.5))!important;
  box-shadow:inset 0 0 0 .5px rgba(255,255,255,.2),inset 0 1px 0 rgba(255,255,255,.26),0 0 0 .5px rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.45)!important}
/* trinh duyet khong co backdrop-filter: tang do duc de mui ten van ro */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  html:root .lendau{background:rgba(248,248,252,.96)!important}html:root[data-theme="dark"] .lendau{background:rgba(44,44,46,.96)!important}}
/* trang khong co cot Goi/Zalo/SMS (vd. /khonhathue): nut ve dau xuong sat day */
html:root body:not(:has(.dock)) .lendau{bottom:var(--nn-b)!important}
/* dang cuon: an ca cot; dang go tim / mo bang loc: an nhu cu */
html:root.nn-cuon .dock,html:root.nn-cuon .lendau.nn-hien,html:root body.typing .dock,html:root body.an-dock .dock,html:root body.typing .lendau.nn-hien,html:root body.an-dock .lendau.nn-hien{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(20px)!important;transition:opacity .15s ease,transform .2s ease,visibility .15s!important}
@media(prefers-reduced-motion:reduce){html:root .dock,html:root .lendau{transition:none!important}}
/* 13:02 anh Anh: cot nut hien CA KHI dang mo cua so chi tiet (#sd); trang khong co cot Goi/Zalo/SMS (/khonhathue) thi an nut ve dau khi mo cua so nhu cu */
html:root.mo body:not(:has(.dock)) .lendau{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
/* nut Goi TOA SANG ~1s moi lan cot nut hien lai + luc tai trang (ngoai le co chu y: xung sang ngan roi tat, tinh = bong trung tinh) */
@property --nn-sang{syntax:'<number>';inherits:false;initial-value:0}
html:root .dock .ai-goi{filter:var(--nn-bong) drop-shadow(0 0 calc(var(--nn-sang) * 7px) rgba(52,199,89,calc(var(--nn-sang) * .8))) drop-shadow(0 0 calc(var(--nn-sang) * 18px) rgba(52,199,89,calc(var(--nn-sang) * .45)))!important}
html:root[data-theme="dark"] .dock .ai-goi{filter:var(--nn-bong) drop-shadow(0 0 calc(var(--nn-sang) * 9px) rgba(70,230,110,calc(var(--nn-sang) * .95))) drop-shadow(0 0 calc(var(--nn-sang) * 26px) rgba(48,209,88,calc(var(--nn-sang) * .7)))!important}
html:root.nn-sang .dock .ai-goi{animation:nn-toa 1s cubic-bezier(.3,.7,.4,1) 1}
@keyframes nn-toa{0%{--nn-sang:0;transform:scale(1)}20%{--nn-sang:1;transform:scale(1.07)}50%{--nn-sang:.85;transform:scale(1)}100%{--nn-sang:0;transform:scale(1)}}
@keyframes nn-toa-nhe{0%,100%{--nn-sang:0}50%{--nn-sang:.55}}
@media(prefers-reduced-motion:reduce){html:root.nn-sang .dock .ai-goi{animation:nn-toa-nhe 1s linear 1}}
/* CHU XUONG DONG — SUA 25/10/2026 (anh Anh 11:12: "chu van bi don sang trai").
   Truoc day 17/10 dat text-wrap:balance cho tieu de va text-wrap:pretty cho doan van.
   Tren Safari/iPhone (trinh duyet chinh cua anh) hai kieu nay TU RUT NGAN do dai dong:
   tieu de the can doi con ~40-60% be ngang, doan van cuoi trang xuong dong som —
   nhin ra man hinh dung la "chu bi don sang trai", chua het dong da xuong dong.
   Da sua rieng cho /crm + tab Khach thue /khonhathue ngay 20/10 (khach_cham_chot.css)
   nhung KHONG sua o nguon dung chung nay, nen cac trang khach (/, /chothue, /nhapho,
   /canho, ban EN) van loi -> nay tat han o day cho ca site.
   Dung !important vi vai trang con dat rieng .lt / .ph0 b / .hero .sub / .dh1 / .sxh h2
   {text-wrap:balance} voi do uu tien cao hon. */
:where(h1,h2,h3,h4,h5,.sh,.dh1,.lt,.ct,.kb b,.lqb b,.cb h3,.sxh h2,.ctab h3,.cta h3),
:where(p,li,dd,figcaption,.desc,.ds,.sp,.lead,.sub,.igf,.foot,.note,.cm,.kb small,.lqb span,.st small,.mbi p),
.lt,.ct,.ph0 b,.hero .sub,.dh1,.sxh h2,
.sxb .loc-item .lt,.sxb .spec-item .sl,.sxb .pc-label,.sxb .fp-type,.sxb .rc-type{
  text-wrap:wrap!important;text-wrap-style:auto!important}
:where(.tg,.chip,.fb,.sortb,.seg button,.opts button,.kgo,.kn,.langsw,.snav a,.subb,.badge,.lh-o,.b-xam,.moreb,.lhe-n){white-space:nowrap}
/*/NUTNOI17*/



/* 17/10/2026: bong nut/tag trung tinh (khong dung mau nut cho bong) - bien chung --lna-bong-nut */
:root{--lna-bong-nut:0 1px 2px rgba(0,0,0,.10),0 2px 6px rgba(0,0,0,.08)}html[data-theme="dark"]{--lna-bong-nut:0 1px 2px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.35)}
/* 15/10/2026: site switcher (trang_that.py) */
.snav-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 12px}
.snav{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:2px;border-radius:999px;background:rgba(118,118,128,.12);flex:1;max-width:440px;user-select:none;-webkit-user-select:none}
.snav a{position:relative;height:30px;display:grid;place-items:center;padding:0 13px;border-radius:999px;font-size:14px;font-weight:500;letter-spacing:-.15px;color:#000;white-space:nowrap;text-decoration:none;transition:transform .3s cubic-bezier(.34,1.36,.64,1),opacity .2s}
.snav a+a::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;transform:scaleX(.5);background:rgba(60,60,67,.18)}
.snav a[aria-current]{background:#fff;font-weight:600;box-shadow:0 3px 8px rgba(0,0,0,.12),0 3px 1px rgba(0,0,0,.04),0 0 0 .5px rgba(0,0,0,.04)}
.snav a[aria-current]::before,.snav a[aria-current]+a::before{opacity:0}
.snav a:not([aria-current]):active{transform:scale(.94);opacity:.6}
.snav-lang{display:none}
@media(min-width:1120px){.snav-row{margin:0 0 16px}.snav{max-width:none}.snav a{padding:0 8px;font-size:13.5px}.snav-lang{display:block;flex:none}}
/* 16/10/2026 17:11: site switcher raised (3D) + dark mode */
.snav a:not([aria-current]){margin:0 1px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.72));box-shadow:inset 0 1px 0 #fff,inset 0 0 0 .5px rgba(0,0,0,.111),0 2px 6px rgba(0,0,0,.136),0 1px 1.5px rgba(0,0,0,.119)}
.snav a::before{display:none}
.snav a[aria-current]{color:#fff;background:linear-gradient(180deg,#2C8DFF,#0A6CF0);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(0,0,0,.12),inset 0 0 0 .5px rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.14),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
html[data-theme="dark"] .snav{background:rgba(118,118,128,.24)}
html[data-theme="dark"] .snav a{color:#fff}
html[data-theme="dark"] .snav a:not([aria-current]){background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.05));box-shadow:inset 0 0 0 .5px rgba(255,255,255,.16),inset 0 1px 0 rgba(255,255,255,.24),0 2px 6px rgba(0,0,0,.5),0 1px 1.5px rgba(0,0,0,.4)}
html[data-theme="dark"] .snav a[aria-current]{box-shadow:inset 0 1px 0 rgba(255,255,255,.42),inset 0 -1px 0 rgba(0,0,0,.18),0 3px 9px rgba(0,0,0,.45)}
/* 17/10/2026: o dau = icon nha ve trang chu gioi thieu (cot hep 42px) */
.snav{grid-template-columns:42px}
.snav a.snav-home{padding:0}
.snav a.snav-home svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* 17/10/2026 10:39: thanh 3 mang chung (Nha pho / Cho thue / Can ho) + nut Trang chu RONG (icon + chu), vung cham 44px */
.snav{display:flex;align-items:stretch;flex:1 1 auto;max-width:none;padding:2px;min-width:0}
.snav a{flex:1 1 auto;display:flex;align-items:center;justify-content:center;height:40px;padding:0 9px;font-size:14.5px;min-width:0}
.snav a.snav-home{flex:0 0 auto;gap:5px;padding:0 12px 0 10px;font-weight:600}
.snav a.snav-home svg{width:19px;height:19px;stroke-width:2.1}
@media(max-width:374px){.snav a{padding:0 6px;font-size:13.5px}.snav a.snav-home{padding:0 9px 0 8px}}
@media(min-width:1120px){.snav-row{flex-wrap:wrap;row-gap:10px}.snav{flex:1 1 100%}.snav a{padding:0 7px;font-size:13.5px}.snav a.snav-home{padding:0 10px 0 8px}.snav-lang{margin-left:auto}}

/* 17/10/2026: bong nut/tag trung tinh (khong dung mau nut cho bong) - bien chung --lna-bong-nut */
:root{--lna-bong-nut:0 1px 2px rgba(0,0,0,.10),0 2px 6px rgba(0,0,0,.08)}html[data-theme="dark"]{--lna-bong-nut:0 1px 2px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.35)}
/* ======================================================================================================
   15/10/2026 — TRANG CHI TIẾT DỰ ÁN (/can-ho/du-an/<slug>/) giao diện iOS 27. Ghép SAU CSS của template_duan.html
   (build_chitiet_duan.py -> can-ho/assets/chitiet-ios27.css). Nội dung cũ giữ nguyên HTML, tạo kiểu lại ở đây.
   ====================================================================================================== */
body.dt{background:var(--bg)}
html{scroll-padding-top:calc(56px + var(--sat))}
.dtw{max-width:860px;margin:0 auto;padding:calc(44px + var(--sat)) 16px 0;display:block}
@media(min-width:700px){.dtw{padding-left:24px;padding-right:24px}}
@media(min-width:1120px){
  body.dt .nb{display:block}
  .dtw{max-width:980px;padding-top:calc(56px + var(--sat))}
}
/* thanh trên: nút quay lại "‹ Dự án" bên trái, tiêu đề hiện khi cuộn, VI|EN bên phải */
body.dt .nb-in{justify-content:space-between}
.nbk{position:relative;z-index:2;display:inline-flex;align-items:center;gap:1px;height:44px;margin-left:-8px;padding:0 8px 0 2px;color:#0062D6;font-size:17px;font-weight:500;letter-spacing:-.41px}
.nbk svg{width:24px;height:24px;stroke-width:2.4}
.nbk:active{opacity:.4}
body.dt .nb-t{left:96px;right:96px}
/* đường dẫn */
.bc{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 12px;font-size:13px;line-height:18px;color:var(--label2)}
.bc a{color:#0062D6}
.bc span:last-child{color:var(--label2)}
/* ảnh lớn */
.hro{position:relative;margin:0 -16px;aspect-ratio:4/3;overflow:hidden;background:#dfe3ec}
.hro img{width:100%;height:100%;object-fit:cover;display:block}
@media(min-width:700px){.hro{margin:0;border-radius:var(--r-card);aspect-ratio:16/9;box-shadow:0 0 0 .5px rgba(0,0,0,.051),0 18px 40px -16px rgba(0,0,0,.238)}}
/* tiêu đề */
.hdr{padding:18px 0 4px}
.eb{font-size:13px;line-height:18px;font-weight:600;letter-spacing:-.08px;text-transform:uppercase;color:#636366}
.dh1{margin:6px 0 0;font-size:clamp(28px,7.6vw,40px);line-height:1.12;font-weight:700;letter-spacing:-.2px;text-wrap:balance}
.dh1 em,.sxh h2 em{font-style:normal}
.sub{margin:8px 0 0;font-size:16px;line-height:22px;color:var(--label2);letter-spacing:-.3px}
.sts{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin-top:16px}
.st{background:#fff;border-radius:16px;padding:11px 12px 12px;box-shadow:0 0 0 .5px rgba(0,0,0,.043),0 6px 18px -10px rgba(0,0,0,.136)}
.st small{display:block;font-size:11px;line-height:14px;font-weight:600;letter-spacing:.2px;text-transform:uppercase;color:#636366}
.st b{display:block;margin-top:3px;font-size:20px;line-height:24px;font-weight:700;letter-spacing:-.3px;overflow-wrap:anywhere}
.hbt{display:grid;gap:10px;margin-top:16px}
@media(min-width:700px){.hbt{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
.b-xam{background:rgba(255,255,255,.8);color:#0062D6;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.068),0 6px 18px -8px rgba(0,0,0,.17)}
.badge{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;padding:4px 12px;border-radius:999px;background:#FF3B30;color:#fff;font-size:12px;line-height:16px;font-weight:700;letter-spacing:.2px}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff}
.dsx-note{margin-top:14px}
.note-ib{background:rgba(255,204,0,.13);border-radius:18px;padding:12px 14px;font-size:14px;line-height:20px;color:#3A3A3C}
.note-ib>div{display:flex!important;gap:10px!important;align-items:flex-start}
.note-ib>div>div:first-child{width:auto!important;height:auto!important;font-size:18px}
.note-ib strong{color:#000}
/* mục lục: chip ngang, dính dưới thanh trên */
.muc{position:sticky;top:calc(44px + var(--sat));z-index:20;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:18px -16px 0;padding:8px 16px;
  background:linear-gradient(180deg,rgba(241,243,249,.92),rgba(241,243,249,.78));-webkit-backdrop-filter:var(--gblur);backdrop-filter:var(--gblur)}
.muc::-webkit-scrollbar{display:none}
@media(min-width:700px){.muc{margin:18px -24px 0;padding:8px 24px}}
.muc .chip{height:34px;font-size:15px;text-decoration:none}
/* khối "Về trang thông tin này" */
.dtw .ig{margin:0}
.dtw .igh{margin-top:26px}
.mbi{display:flex;gap:12px;padding:14px 16px;font-size:15px;line-height:21px;color:var(--label2);letter-spacing:-.24px}
.mbi>svg{flex:none;width:24px;height:24px;color:#0062D6;margin-top:1px}
.mbi p{margin:0}.mbi p+p{margin-top:8px}
.mbi strong{color:var(--label);font-weight:600}

/* ===== mục nội dung ===== */
.dsx{margin-top:34px;scroll-margin-top:calc(100px + var(--sat))}
.sxh{padding:0 4px;margin-bottom:12px}
.sxh h2{margin:4px 0 0;font-size:24px;line-height:29px;font-weight:700;letter-spacing:.2px;text-wrap:balance}
.sxh h2 br{display:none}
.lead{margin:8px 0 0;font-size:15px;line-height:21px;color:var(--label2);letter-spacing:-.24px}
.lead strong{color:var(--label)}
.sxb{font-size:16px;line-height:1.55;letter-spacing:-.25px;color:#1C1C1E}
.sxb p{margin:0 0 12px}
.sxb a{color:#0062D6}
.sxb strong{font-weight:600;color:#000}
.sxb h3,.sxb h4,.sxb h5{margin:18px 0 8px;font-size:19px;line-height:24px;font-weight:700;letter-spacing:-.2px}
.sxb h5{font-size:16px}
.sxb sup{font-size:.6em}
/* khối chữ -> thẻ trắng bo góc */
.sxb .content-wrap,.sxb .intro-text,.sxb .two-col-text,.sxb .intro,.sxb .note-box,.sxb .reg-intro,.sxb .form-note,.sxb>p,.sxb>ul{
  background:#fff;border-radius:var(--r-card);padding:16px 18px;margin:0 0 12px;box-shadow:0 0 0 .5px rgba(0,0,0,.043),0 6px 18px -10px rgba(0,0,0,.119)}
.sxb .content-wrap>:last-child,.sxb .intro-text>:last-child,.sxb .two-col-text>:last-child{margin-bottom:0}
.sxb .content-wrap .content-wrap{box-shadow:none;padding:0;background:none}
.text-justify,.sxb p{text-align:left}
.intro-lead{font-size:17px!important;line-height:1.55!important}
/* danh sách -> hàng iOS có đường kẻ mảnh */
.sxb ul{list-style:none;padding:0;margin:0 0 12px}
.sxb ul li{position:relative;padding:11px 0 11px 18px;font-size:16px;line-height:22px}
.sxb ul li::before{content:"";position:absolute;left:2px;top:19px;width:6px;height:6px;border-radius:50%;background:#0A84FF;opacity:.85}
.sxb ul li+li{box-shadow:inset 0 .5px 0 rgba(60,60,67,.22)}
.sxb ul.info-list li,.sxb ul.phase-list li{padding-left:0}
.sxb ul.info-list li::before,.sxb ul.phase-list li::before,.sxb ul.amenity-list li::before,.sxb ul.amenity-indoor li::before{display:none}
.sxb .content-wrap ul,.sxb .intro-text ul{margin:4px 0 0}
.sxb .a-num{display:inline-block;min-width:26px;font-weight:700;color:#0062D6;font-variant-numeric:tabular-nums}
.sxb .amenity-cols,.sxb .amenity-indoor{display:grid;grid-template-columns:1fr;gap:0 28px}
@media(min-width:700px){.sxb .amenity-cols,.sxb .amenity-indoor{grid-template-columns:1fr 1fr}}
.sxb .amenity-list li,.sxb .amenity-indoor li{padding-left:0}
/* bảng thông tin nhãn / giá trị */
.sxb .info-table{background:#fff;border-radius:var(--r-card);padding:2px 18px;margin:0 0 12px;box-shadow:0 0 0 .5px rgba(0,0,0,.043),0 6px 18px -10px rgba(0,0,0,.119)}
.sxb .info-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;font-size:16px;line-height:22px}
.sxb .info-row+.info-row{box-shadow:inset 0 .5px 0 rgba(60,60,67,.22)}
.sxb .info-label{color:var(--label2);flex:0 0 40%}
.sxb .info-value{text-align:right;font-weight:600;min-width:0;overflow-wrap:anywhere}
.sxb .spec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0 0 12px}
.sxb .spec-item{background:#fff;border-radius:16px;padding:11px 12px}
.sxb .spec-item .sl{display:block;font-size:11px;font-weight:600;text-transform:uppercase;color:#636366}
.sxb .spec-item .sv{display:block;margin-top:3px;font-size:16px;font-weight:600}
/* ô số liệu / quỹ căn -> ô trắng */
.sxb .floor-plan-grid,.sxb .highlight-grid,.sxb .feature-grid,.sxb .policy-grid,.sxb .price-cards,.sxb .design-feats,.sxb .loc-grid,.sxb .phase-grid,.sxb .room-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 12px}
.sxb .phase-grid,.sxb .room-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.sxb .floor-plan-card,.sxb .highlight-item,.sxb .feature-card,.sxb .policy-card,.sxb .price-card,.sxb .design-feat,.sxb .loc-item,.sxb .phase-card,.sxb .room-card,.sxb .tier-item,.sxb .news-card,.sxb .plan-card{
  background:#fff;border-radius:18px;padding:14px;box-shadow:0 0 0 .5px rgba(0,0,0,.043),0 6px 18px -10px rgba(0,0,0,.136);min-width:0;overflow:hidden}
.sxb .fp-type,.sxb .pc-label,.sxb .phase-tag,.sxb .tier-eyebrow,.sxb .pct,.sxb .rc-type,.sxb .news-card-date{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.1px;text-transform:uppercase;color:#636366}
.sxb .fp-area,.sxb .highlight-num,.sxb .fc-num,.sxb .pc-num,.sxb .pcm,.sxb .pcf,.sxb .rc-area{margin-top:4px;font-size:22px;line-height:27px;font-weight:700;letter-spacing:-.3px;color:#000;overflow-wrap:anywhere}
.sxb .fp-note,.sxb .pc-desc,.sxb .rc-feat,.sxb .pc-cap{margin-top:4px;font-size:14px;line-height:19px;color:var(--label2)}
.sxb .highlight-item{font-size:14px;line-height:19px;color:var(--label2)}
.sxb .phase-tag{display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(10,132,255,.12);color:#0062D6;margin-bottom:8px}
.sxb .room-card,.sxb .news-card,.sxb .plan-card{padding:0}
.sxb .rc-body,.sxb .news-card-content{padding:12px 14px 14px}
.sxb .rc-img,.sxb .news-card-image img,.sxb .plan-card img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:0;display:block;margin:0}
.sxb .plan-card img{object-fit:contain;background:#f4f5f8}
.sxb .pc-cap{padding:8px 12px 12px;text-align:center}
.sxb .selling-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:#FF3B30;color:#fff;font-size:12px;font-weight:700;margin:0 0 10px}
/* bảng giá */
.sxb .price-table,.sxb .pay-schedule{background:#fff;border-radius:var(--r-card);padding:2px 16px;margin:0 0 12px;box-shadow:0 0 0 .5px rgba(0,0,0,.043),0 6px 18px -10px rgba(0,0,0,.119)}
.sxb .price-table-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px;padding:11px 0;font-size:15px;line-height:20px}
.sxb .price-table-row+.price-table-row{box-shadow:inset 0 .5px 0 rgba(60,60,67,.22)}
.sxb .price-table-row.head{font-size:12px;font-weight:600;text-transform:uppercase;color:#636366}
.sxb .pprice{font-weight:700;text-align:right}
.sxb .parea{color:var(--label2)}
.sxb .pay-stage{display:grid;grid-template-columns:1fr auto;gap:2px 14px;padding:12px 0}
.sxb .pay-stage+.pay-stage{box-shadow:inset 0 .5px 0 rgba(60,60,67,.22)}
.sxb .ps-label{font-weight:600}.sxb .ps-pct{font-weight:700;color:#0062D6;text-align:right}.sxb .ps-desc{grid-column:1/-1;color:var(--label2);font-size:14px}
.sxb .table-foot{font-size:13px;color:var(--label2);margin-top:8px}
.sxb .table-scroll{overflow-x:auto;border-radius:16px;background:#fff}
.sxb table{width:100%;border-collapse:collapse;font-size:15px}
.sxb th,.sxb td{padding:10px 12px;text-align:left;border-bottom:.5px solid rgba(60,60,67,.22)}
/* ảnh: bo góc, chú thích nhỏ; mọi nhóm ảnh -> lưới tự co */
.sxb img{max-width:100%;height:auto;display:block;border-radius:16px}
.sxb figure{margin:0 0 12px}
.sxb figcaption{margin-top:6px;font-size:13px;line-height:18px;color:var(--label2);text-align:center}
.sxb .full-image{margin:0 0 12px}
.sxb .full-image img{width:100%;border-radius:var(--r-card)}
.sxb .lg,.sxb .gallery-grid,.sxb .gallery-3,.sxb .gallery-row,.sxb .floor-plans,.sxb .unit-plans,.sxb .photo-strip,.sxb .plan-grid,.sxb .news-grid,.sxb .amenities-grid,.sxb .img-stack,.sxb .two-col{
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px;margin:0 0 12px;max-width:none!important}
.sxb .gallery-3,.sxb .unit-plans,.sxb .photo-strip,.sxb .amenities-grid,.sxb .lg,.sxb .gallery-grid,.sxb .gallery-row,.sxb .news-grid{grid-template-columns:repeat(auto-fill,minmax(min(46%,220px),1fr))}
.sxb .lg>figure figcaption,.sxb .gallery-row figcaption{font-size:12px;line-height:16px}
.sxb .two-col{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px;align-items:start}
.sxb .gallery-masonry{columns:2 220px;column-gap:10px;margin:0 0 12px}
.sxb .gallery-masonry>*{break-inside:avoid;margin:0 0 10px}
.sxb .gallery-item img,.sxb .unit-plan img,.sxb .floor-plan-item img,.sxb .photo-strip img{width:100%}
.sxb .gallery-item,.sxb .unit-plan,.sxb .floor-plan-item{margin:0}
.sxb .gallery-section-label{margin:14px 4px 8px;font-size:13px;font-weight:600;text-transform:uppercase;color:#636366;column-span:all}
.sxb .tiers{display:grid;gap:12px}
.sxb .tier-item h3{margin-top:4px}
.sxb .tier-render{margin:10px 0}
.sxb .amenity-item{position:relative;overflow:hidden;border-radius:16px;margin:0}
.sxb .amenity-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px}
.sxb .amenity-label{position:absolute;left:8px;right:8px;bottom:8px;padding:6px 10px;border-radius:12px;color:#000;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(14px) saturate(180%);backdrop-filter:blur(14px) saturate(180%)}
.sxb .amenity-label h4{margin:0;font-size:14px;line-height:18px}
.sxb .amenity-label small{display:block;font-size:11px;color:#3A3A3C}
.sxb .image-disclaimer-banner{font-size:13px;line-height:18px;color:var(--label2);background:rgba(255,204,0,.14);border-radius:14px;padding:10px 12px;margin:0 0 12px}
/* nút của giao diện cũ -> nút iOS */
.sxb .btn-gold,.sxb .btn,.sxb .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 20px;border-radius:999px;background:#0A84FF;color:#fff!important;font-size:16px;font-weight:600;text-decoration:none;text-align:center;line-height:1.25;box-shadow:var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))}
.sxb .btn-outline{background:rgba(255,255,255,.8);color:#0062D6!important;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.085)}
.sxb a.btn-gold[href^="tel:"]{background:var(--green)}
.sxb .center-action,.sxb [style*="text-align:center"]{text-align:center}
.sxb .btn-gold:active,.sxb .btn:active{filter:brightness(.88)}
/* ô hotline nhận bảng giá */
.sxb .price-hotline-box,.sxb .mini-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border-radius:var(--r-card);padding:14px 18px;margin:12px 0;box-shadow:0 0 0 .5px rgba(0,0,0,.043),0 6px 18px -10px rgba(0,0,0,.119)}
.sxb .price-hotline-label,.sxb .mini-cta-note{font-size:13px;font-weight:600;text-transform:uppercase;color:#636366}
.sxb .price-hotline-numbers a,.sxb .mini-cta-hotline a{font-size:22px;font-weight:700;color:#1E7B34;font-variant-numeric:tabular-nums}
.sxb .reg-wrap{display:grid;gap:12px}
/* liên hệ */
.lhe{margin-top:12px;background:#fff;border-radius:var(--r-card);padding:18px 16px 16px;text-align:center;box-shadow:0 0 0 .5px rgba(0,0,0,.051),0 12px 28px -12px rgba(0,0,0,.136)}
.lhe-n{font-size:13px;font-weight:600;text-transform:uppercase;color:#636366}
.lhe-so{display:block;margin:4px 0 14px;font-size:30px;line-height:36px;font-weight:700;color:#1E7B34;font-variant-numeric:tabular-nums;letter-spacing:.2px}
.lhe .two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.dsx-lh .sxb{text-align:left}
/* băng kêu gọi giữa trang */
.ctab{margin-top:34px;background:#fff;border-radius:var(--r-card);padding:20px 16px 16px;text-align:center;box-shadow:0 0 0 .5px rgba(0,0,0,.051),0 12px 28px -12px rgba(0,0,0,.136)}
.ctab .ic{width:52px;height:52px;border-radius:var(--r-group);margin:0 auto 10px;display:grid;place-items:center;color:#fff;background:linear-gradient(180deg,#5AC8FA,#007AFF)}
.ctab .ic svg{width:28px;height:28px;stroke-width:2.2}
.ctab h3{margin:4px 0 0;font-size:21px;line-height:26px;font-weight:700}
.ctab p{margin:6px auto 14px;max-width:520px;font-size:15px;line-height:20px;color:var(--label2)}
.ctab .bigb+.bigb{margin-top:10px}
/* dự án liên quan */
.lqg{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -16px;padding:2px 16px 14px}
.lqg::-webkit-scrollbar{display:none}
@media(min-width:700px){.lqg{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));overflow:visible;margin:0;padding:2px 0 14px}}
.lqc{flex:0 0 72%;max-width:280px;scroll-snap-align:start;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 0 0 .5px rgba(0,0,0,.051),0 8px 22px -12px rgba(0,0,0,.187);transition:transform .3s var(--spring)}
@media(min-width:700px){.lqc{max-width:none}}
.lqc:active{transform:scale(.97)}
.lqa{display:block;aspect-ratio:16/10;background:#dfe3ec}
.lqa img{width:100%;height:100%;object-fit:cover;display:block}
.lqb{display:block;padding:10px 12px 12px}
.lqb small{display:block;font-size:11px;font-weight:600;text-transform:uppercase;color:#636366;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lqb b{display:block;margin-top:2px;font-size:16px;line-height:21px}
.lqb span{display:block;margin-top:2px;font-size:13px;line-height:18px;color:var(--label2)}
.more .moreb{display:flex;align-items:center;justify-content:center;width:100%;max-width:420px;height:50px;border-radius:var(--r-pill);background:rgba(255,255,255,.8);color:#0062D6;font-size:17px;font-weight:600;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.068),inset 0 1px 0 #fff,0 6px 18px -8px rgba(0,0,0,.17)}
/* chân trang */
.chan{margin-top:30px;padding-bottom:10px}
.chan .foot{padding:10px 4px 0}
.chan .foot>div{margin-top:6px}
/* 17/10/2026: cột nút nổi tự ẩn khi cuộn -> bỏ lề phải chừa cho cột nút; thanh 3 mảng (Trang chủ · Nhà phố · Cho thuê · Căn hộ) trên đường dẫn */
.dtw .snav-row{margin:8px 0 4px;max-width:560px}
/* lớp trùng tên với template (.lt = tiêu đề lớn, .sl) -> trả về kiểu nội dung */
.sxb .lt,.sxb .sl{all:unset;display:block}
.sxb .loc-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.sxb .loc-item{display:flex;gap:12px;align-items:baseline;padding:12px 14px}
.sxb .loc-item .lk{flex:none;min-width:62px;font-size:17px;font-weight:700;color:#0062D6;white-space:nowrap}
.sxb .loc-item .lt{display:block;font-size:15px;line-height:20px;color:#1C1C1E}
.sxb .spec-item .sl{display:block;font-size:11px;font-weight:600;text-transform:uppercase;color:#636366}
/* tiêu đề phụ trong nội dung (block-head, eyebrow cũ) */
.sxb .eyebrow,.sxb .gallery-section-label{display:block;margin:0 4px 4px;font-size:13px;line-height:18px;font-weight:600;text-transform:uppercase;color:#636366}
.sxb .block-head{margin:22px 0 12px;text-align:left}
.sxb .block-head h3{margin:2px 4px 0;font-size:21px;line-height:26px}
.sxb .block-head .sub{margin:6px 4px 0;font-size:15px;line-height:21px;color:var(--label2)}
.sxb .feature-card h4,.sxb .phase-card h4{margin:6px 0 4px;font-size:17px;line-height:22px}
.sxb .feature-card p{margin:0;font-size:14px;line-height:19px;color:var(--label2)}
@media(min-width:1120px){.hro{aspect-ratio:2.1/1}}
/* ===== TAG NỔI KHỐI 16/10 17:09 anh Anh: mọi tag/nhãn nổi khối đồng bộ với nút: giữ màu riêng từng tag, thêm gradient nhẹ
   (sáng mép trên, sẫm mép dưới) + viền sáng mảnh + bóng đổ NHỎ (nhỏ hơn nút để còn phân biệt tag với nút).
   Chỉ box-shadow + lớp phủ tuyệt đối -> KHÔNG đổi chiều cao thẻ / không xuống dòng. Bản trước: *.bak_20261016_51_tag ===== */
.badge{position:relative;isolation:isolate;background:linear-gradient(180deg,#FF5A50,#FF3B30 55%,#D92B21);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 0 0 .5px rgba(255,255,255,.22),inset 0 -1px 0 rgba(0,0,0,.2),0 1px 1.5px rgba(0,0,0,.22),0 2px 5px -1px rgba(0,0,0,.204)}

/* ===== 16/10/2026 17:11 anh Anh: trang chi tiết dự án — nút nổi khối + nút Sáng/Tối + chế độ Tối (biến --nk-* lấy từ khối chung template_duan) ===== */
.dt .nb-in>.lna-th{margin:0 8px 0 auto}
.dt .nb-t{left:104px!important;right:150px!important}
.nbk,.bc a,.muc a.chip,.b-xam,.sxb .btn-outline,.more .moreb,.lhe-so{background:var(--nk-kinh)!important;box-shadow:var(--nk-bong-kinh)!important}
.nbk{border-radius:999px;padding:0 12px 0 8px;height:34px;display:inline-flex;align-items:center}
.bc a{display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:999px}
.lhe-so{display:inline-flex;align-items:center;justify-content:center;padding:4px 16px;border-radius:999px}
.b-blue,.sxb .btn-gold,.sxb .btn,.sxb .btn-primary{background:linear-gradient(180deg,#2C9BFF,#0A6CF0)!important;box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
.sxb a.btn-gold[href^="tel:"]{background:linear-gradient(180deg,#3DDC66,#25B04A)!important;box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
.lqc{box-shadow:var(--nk-bong-kinh),0 8px 22px -12px rgba(0,0,0,.187)!important}
html[data-theme="dark"] body.dt{background:#000}
html[data-theme="dark"] .hro,html[data-theme="dark"] .lqa{background:#2C2C2E}
html[data-theme="dark"] .st,html[data-theme="dark"] .lhe,html[data-theme="dark"] .ctab,html[data-theme="dark"] .lqc,
html[data-theme="dark"] .sxb .info-table,html[data-theme="dark"] .sxb .spec-item,html[data-theme="dark"] .sxb .price-table,html[data-theme="dark"] .sxb .pay-schedule,
html[data-theme="dark"] .sxb .table-scroll,html[data-theme="dark"] .sxb .price-hotline-box,html[data-theme="dark"] .sxb .mini-cta{background:#1C1C1E!important;color:#fff;box-shadow:0 0 0 .5px rgba(255,255,255,.1),0 8px 22px -12px rgba(0,0,0,.6)}
html[data-theme="dark"] .lqc{box-shadow:var(--nk-bong-kinh),0 8px 22px -12px rgba(0,0,0,.6)!important}
html[data-theme="dark"] .sxb,html[data-theme="dark"] .sxb .loc-item .lt,html[data-theme="dark"] .note-ib{color:rgba(235,235,245,.86)}
html[data-theme="dark"] .sxb strong,html[data-theme="dark"] .note-ib strong,html[data-theme="dark"] .sxb .fp-area,html[data-theme="dark"] .sxb .highlight-num,html[data-theme="dark"] .sxb .fc-num,
html[data-theme="dark"] .sxb .pc-num,html[data-theme="dark"] .sxb .pcm,html[data-theme="dark"] .sxb .pcf,html[data-theme="dark"] .sxb .rc-area,html[data-theme="dark"] .st b,html[data-theme="dark"] .dh1,html[data-theme="dark"] .lqb b{color:#fff}
html[data-theme="dark"] .st small,html[data-theme="dark"] .lqb small,html[data-theme="dark"] .lqb span,html[data-theme="dark"] .sub,html[data-theme="dark"] .eb,html[data-theme="dark"] .foot,html[data-theme="dark"] .bc,html[data-theme="dark"] .sxb .amenity-label small{color:rgba(235,235,245,.7)}
html[data-theme="dark"] .sxb .amenity-label{background:rgba(28,28,30,.78);color:#fff}
html[data-theme="dark"] .sxb .plan-card img{background:#2C2C2E}
html[data-theme="dark"] .sxb .phase-tag{background:rgba(10,132,255,.22);color:#7CBBFF}
html[data-theme="dark"] .b-xam,html[data-theme="dark"] .sxb .btn-outline,html[data-theme="dark"] .more .moreb,html[data-theme="dark"] .bc a,html[data-theme="dark"] .nbk,html[data-theme="dark"] .lhe-so{color:#4BA3FF!important}
html[data-theme="dark"] .muc a.chip{color:#fff!important}
html[data-theme="dark"] .sxb table,html[data-theme="dark"] .sxb th,html[data-theme="dark"] .sxb td{color:rgba(235,235,245,.86);border-color:rgba(84,84,88,.6)!important;background-color:transparent}
html[data-theme="dark"] .sxb a:not([class]){color:#4BA3FF}
.sxb a.news-card,a.news-card{box-shadow:var(--nk-bong-kinh),0 8px 22px -12px rgba(0,0,0,.187)!important}
a.phone-box-tm{background:linear-gradient(180deg,#3DDC66,#25B04A)!important;color:#fff!important;box-shadow:var(--nk-bong-khoi),var(--lna-bong-nut,0 1px 2px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.08))!important}
html[data-theme="dark"] a.phone-box-tm{background:linear-gradient(180deg,#2DA44E,#1A7F37)!important}
html[data-theme="dark"] a.news-card{background:#1C1C1E!important;color:#fff}
html[data-theme="dark"] .muc,html[data-theme="dark"] nav.muc{background:rgba(18,18,20,.88)!important;box-shadow:0 .5px 0 rgba(84,84,88,.6)!important}

/* ===== 17/10/2026 11:11 anh Anh: CHE DO TOI CHUAN trang chi tiet du an (/canho/du-an/<slug>/ + EN). Che do Sang giu nguyen.
   Moi khoi nen trang (the chu, o so lieu, mat bang, tien ich, gia, bang, form, chu thich) -> the kinh toi; chu sang du tuong phan (>=4.5:1);
   nut xanh duong/xanh la chu trang -> gradient dam hon CHI o Toi de chu trang du tuong phan. Ban truoc: *.bak_20261017_toi_duan ===== */
html[data-theme="dark"]{--dk-the:#1C1C1E;--dk-the2:#2C2C2E;--dk-vien:rgba(84,84,88,.6);--dk-chu:rgba(235,235,245,.86);--dk-chu2:rgba(235,235,245,.7);--dk-xanh:#4BA3FF;--dk-la:#30D158;
  --dk-bong-the:inset 0 .5px 0 rgba(255,255,255,.09),0 0 0 .5px rgba(255,255,255,.1),0 8px 22px -12px rgba(0,0,0,.6)}
html[data-theme="dark"] .sxb .content-wrap,html[data-theme="dark"] .sxb .intro-text,html[data-theme="dark"] .sxb .two-col-text,html[data-theme="dark"] .sxb .intro,
html[data-theme="dark"] .sxb .note-box,html[data-theme="dark"] .sxb .reg-intro,html[data-theme="dark"] .sxb .form-note,html[data-theme="dark"] .sxb>p,html[data-theme="dark"] .sxb>ul,
html[data-theme="dark"] .sxb .floor-plan-card,html[data-theme="dark"] .sxb .highlight-item,html[data-theme="dark"] .sxb .feature-card,html[data-theme="dark"] .sxb .policy-card,
html[data-theme="dark"] .sxb .price-card,html[data-theme="dark"] .sxb .design-feat,html[data-theme="dark"] .sxb .loc-item,html[data-theme="dark"] .sxb .phase-card,
html[data-theme="dark"] .sxb .room-card,html[data-theme="dark"] .sxb .tier-item,html[data-theme="dark"] .sxb .news-card,html[data-theme="dark"] .sxb .plan-card,
html[data-theme="dark"] .sxb .spec-item,html[data-theme="dark"] .sxb .info-table,html[data-theme="dark"] .sxb .price-table,html[data-theme="dark"] .sxb .pay-schedule,
html[data-theme="dark"] .sxb .table-scroll,html[data-theme="dark"] .sxb .price-hotline-box,html[data-theme="dark"] .sxb .mini-cta,html[data-theme="dark"] .sxb .table-foot,
html[data-theme="dark"] .sxb .interior-list,html[data-theme="dark"] .sxb .location-features,html[data-theme="dark"] .sxb .amenity-indoor,html[data-theme="dark"] .sxb form,
html[data-theme="dark"] .st,html[data-theme="dark"] .lhe,html[data-theme="dark"] .ctab,html[data-theme="dark"] a.news-card{
  background:var(--dk-the)!important;color:var(--dk-chu)!important;box-shadow:var(--dk-bong-the)!important}
html[data-theme="dark"] .sxb .content-wrap .content-wrap,html[data-theme="dark"] .sxb .content-wrap>ul,html[data-theme="dark"] .sxb .intro-text>ul,
html[data-theme="dark"] .sxb .content-wrap .table-foot,html[data-theme="dark"] .sxb .room-card .rc-body{background:none!important;box-shadow:none!important}
html[data-theme="dark"] .sxb .price-card.is-star,html[data-theme="dark"] .sxb .phase-card.is-featured{background:linear-gradient(180deg,#2C2C2E,#1C1C1E)!important;box-shadow:inset 0 0 0 1px rgba(75,163,255,.45),var(--dk-bong-the)!important}
/* chu */
html[data-theme="dark"] .sxb,html[data-theme="dark"] .sxb p,html[data-theme="dark"] .sxb li,html[data-theme="dark"] .sxb em,html[data-theme="dark"] .sxb td,html[data-theme="dark"] .sxb .loc-item .lt,html[data-theme="dark"] .note-ib{color:var(--dk-chu)!important}
html[data-theme="dark"] .sxb strong,html[data-theme="dark"] .sxb b,html[data-theme="dark"] .sxb h3,html[data-theme="dark"] .sxb h4,html[data-theme="dark"] .sxb h5,html[data-theme="dark"] .sxb th,
html[data-theme="dark"] .sxb .fp-area,html[data-theme="dark"] .sxb .highlight-num,html[data-theme="dark"] .sxb .fc-num,html[data-theme="dark"] .sxb .pc-num,html[data-theme="dark"] .sxb .pcm,
html[data-theme="dark"] .sxb .pcf,html[data-theme="dark"] .sxb .rc-area,html[data-theme="dark"] .sxb .pprice,html[data-theme="dark"] .sxb .ps-label,html[data-theme="dark"] .sxb .info-value,
html[data-theme="dark"] .sxh h2,html[data-theme="dark"] .ctab h3,html[data-theme="dark"] .chan b,html[data-theme="dark"] .foot b,html[data-theme="dark"] .foot strong,html[data-theme="dark"] .note-ib strong{color:#fff!important}
html[data-theme="dark"] .sxb .sl,html[data-theme="dark"] .sxb .spec-item .sl,html[data-theme="dark"] .sxb .price-hotline-label,html[data-theme="dark"] .sxb .mini-cta-note,html[data-theme="dark"] .lhe-n,
html[data-theme="dark"] .sxb .gallery-section-label,html[data-theme="dark"] .sxb .eyebrow,html[data-theme="dark"] .sxb .fp-type,html[data-theme="dark"] .sxb .pc-label,html[data-theme="dark"] .sxb .tier-eyebrow,
html[data-theme="dark"] .sxb .pct,html[data-theme="dark"] .sxb .rc-type,html[data-theme="dark"] .sxb .news-card-date,html[data-theme="dark"] .sxb .price-table-row.head,html[data-theme="dark"] .sxb .fp-note,
html[data-theme="dark"] .sxb .pc-desc,html[data-theme="dark"] .sxb .rc-feat,html[data-theme="dark"] .sxb .pc-cap,html[data-theme="dark"] .sxb figcaption,html[data-theme="dark"] .sxb .highlight-item,
html[data-theme="dark"] .sxb .highlight-item h4,html[data-theme="dark"] .sxb .feature-card p,html[data-theme="dark"] .sxb .ps-desc,html[data-theme="dark"] .sxb .table-foot,html[data-theme="dark"] .sxb .parea,
html[data-theme="dark"] .sxb .info-label,html[data-theme="dark"] .sxb .block-head .sub,html[data-theme="dark"] .lead,html[data-theme="dark"] .ctab p,html[data-theme="dark"] .mbi,
html[data-theme="dark"] .sxb .image-disclaimer-banner,html[data-theme="dark"] .sxb .amenity-label small,html[data-theme="dark"] .lqb span,html[data-theme="dark"] .lqb small{color:var(--dk-chu2)!important}
html[data-theme="dark"] .sxb .highlight-item .highlight-num,html[data-theme="dark"] .sxb .highlight-item strong{color:#fff!important}
html[data-theme="dark"] .sxb a:not([class]),html[data-theme="dark"] .sxb .a-num,html[data-theme="dark"] .sxb .ps-pct,html[data-theme="dark"] .sxb .loc-item .lk,html[data-theme="dark"] .mbi>svg{color:var(--dk-xanh)!important}
html[data-theme="dark"] .sxb .price-hotline-numbers a,html[data-theme="dark"] .sxb .mini-cta-hotline a{color:var(--dk-la)!important}
html[data-theme="dark"] .sxb .phase-tag{background:rgba(10,132,255,.24)!important;color:#9DCBFF!important}
html[data-theme="dark"] .sxb ul li+li,html[data-theme="dark"] .sxb .info-row+.info-row,html[data-theme="dark"] .sxb .price-table-row+.price-table-row,html[data-theme="dark"] .sxb .pay-stage+.pay-stage{box-shadow:inset 0 .5px 0 var(--dk-vien)}
html[data-theme="dark"] .sxb .note-ib,html[data-theme="dark"] .note-ib{background:rgba(255,204,0,.12)!important}
/* form dang ky */
html[data-theme="dark"] .sxb input,html[data-theme="dark"] .sxb select,html[data-theme="dark"] .sxb textarea{background:var(--dk-the2)!important;color:#fff!important;border-color:var(--dk-vien)!important;color-scheme:dark}
html[data-theme="dark"] .sxb input::placeholder,html[data-theme="dark"] .sxb textarea::placeholder{color:rgba(235,235,245,.6)!important}
html[data-theme="dark"] .sxb label{color:var(--dk-chu)!important}
/* nut mau chu trang: gradient dam hon o Toi (tuong phan chu >=4.5) */
html[data-theme="dark"] .b-blue,html[data-theme="dark"] .bigb.b-blue,html[data-theme="dark"] .sxb .btn-gold,html[data-theme="dark"] .sxb .btn,html[data-theme="dark"] .sxb .btn-primary,
html[data-theme="dark"] .subb-zalo,html[data-theme="dark"] a.subb-zalo,html[data-theme="dark"] .chip.on,html[data-theme="dark"] .snav a[aria-current],html[data-theme="dark"] a.langsw{background:linear-gradient(180deg,#1A73E8,#0A58CA)!important;color:#fff!important}
html[data-theme="dark"] .bigb.b-goi,html[data-theme="dark"] a.bigb.b-goi,html[data-theme="dark"] .subb-sms,html[data-theme="dark"] a.subb-sms,html[data-theme="dark"] .sxb a.btn-gold[href^="tel:"],html[data-theme="dark"] a.phone-box-tm{background:linear-gradient(180deg,#23883F,#15692C)!important;color:#fff!important}

/* 17/10/2026 13:02: .lt bi all:unset -> mat text-wrap; dat lai de khong de chu mo coi */
.sxb .loc-item .lt,.sxb .spec-item .sl{text-wrap:pretty}
.sxb .pc-label,.sxb .fp-type,.sxb .rc-type{text-wrap:balance}

/*NUTNOI17*/
/* NUT NOI CHUAN 17/10/2026 (anh Anh 10:39): mot kieu duy nhat cho moi trang = kieu trang chu.
   Cot 4 nut goc phai duoi (tren xuong): Ve dau trang, Goi, Zalo, SMS. Icon 52px (may tinh >=1120px: 50px), khe 12px (10px).
   Khong vien trang, khong quang mau/nhip sang quanh nut Goi, bong trung tinh. Dang cuon thi an, dung cuon 100ms thi hien lai
   (JS nut_noi.js them/bo class html.nn-cuon). Noi dung KHONG chua dem cho cot nut.
   Nguon: bds_listing/theme_chung/nut_noi.css -> chep vao template bang theme_chung/dong_bo_nut_noi.py (khong sua tay trong template). */
:root{--nn-ic:52px;--nn-g:12px;--nn-r:calc(15px + env(safe-area-inset-right));--nn-b:calc(14px + env(safe-area-inset-bottom));
  --nn-bong:drop-shadow(0 4px 9px rgba(0,0,0,.16)) drop-shadow(0 1px 2px rgba(0,0,0,.12))}
@media(min-width:1120px){:root{--nn-ic:50px;--nn-g:10px;--nn-r:22px}}
html:root .dock{--ic:var(--nn-ic);--icg:var(--nn-g);position:fixed!important;left:auto!important;top:auto!important;right:var(--nn-r)!important;bottom:var(--nn-b)!important;
  z-index:70!important;width:var(--nn-ic)!important;max-width:none!important;height:auto!important;margin:0!important;padding:0!important;
  display:flex!important;flex-direction:column!important;gap:var(--nn-g)!important;grid-template-columns:none!important;
  background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;border:0!important;border-radius:0!important;
  transition:opacity .15s ease,transform .2s ease,visibility .15s!important}
html:root .dock::before,html:root .dock::after,html:root .dock .ai::before,html:root .dock .ai::after,html:root .lendau::before,html:root .lendau::after{content:none!important;display:none!important;animation:none!important}
html:root .dock .ai,html:root body #docksms{position:relative!important;padding:0!important;display:block!important;width:var(--nn-ic)!important;height:var(--nn-ic)!important;border-radius:22.4%!important;
  background:none!important;box-shadow:none!important;filter:var(--nn-bong)!important;-webkit-tap-highlight-color:transparent;
  transition:transform .55s cubic-bezier(.3,1.75,.45,1),filter .2s!important}
html:root .dock .ai:active{transform:scale(.92)!important;filter:drop-shadow(0 2px 5px rgba(0,0,0,.16)) brightness(.94)!important;transition:transform .12s ease-out,filter .12s!important}
html:root .dock .sqi{position:absolute;inset:0;display:block}
html:root .dock .sqi svg{position:absolute;inset:0;width:100%;height:100%;stroke:none;fill:none;overflow:hidden}
/* nut ve dau trang: cung cot, nam tren 3 icon; o vuong bo goc nhu icon, mui ten len.
   17/10/2026 11:11 anh Anh: quay lai KIEU KINH MO cu (liquid glass): nen trong mo + backdrop-filter blur/saturate, vien sang manh,
   bong trung tinh nhe; Toi = kinh toi. Khong dung filter:drop-shadow (lam hong backdrop-filter). Ban truoc *.bak_20261017_toi_duan */
html:root .lendau{position:fixed!important;left:auto!important;top:auto!important;right:var(--nn-r)!important;bottom:calc(var(--nn-b) + 3 * (var(--nn-ic) + var(--nn-g)))!important;
  z-index:70!important;width:var(--nn-ic)!important;height:var(--nn-ic)!important;margin:0!important;padding:0!important;border:0!important;border-radius:22.4%!important;
  display:grid!important;place-items:center!important;cursor:pointer;-webkit-tap-highlight-color:transparent;
  color:#1C1C1E!important;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.5))!important;
  -webkit-backdrop-filter:blur(20px) saturate(180%)!important;backdrop-filter:blur(20px) saturate(180%)!important;
  box-shadow:inset 0 0 0 .5px rgba(255,255,255,.85),inset 0 1px 0 rgba(255,255,255,.95),0 0 0 .5px rgba(0,0,0,.07),0 6px 20px rgba(0,0,0,.14)!important;filter:none!important;
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(20px)!important;
  transition:opacity .15s ease,transform .2s ease,visibility .15s!important}
html:root .lendau svg{width:24px!important;height:24px!important;fill:none!important;stroke:currentColor!important;stroke-width:2.6!important;stroke-linecap:round;stroke-linejoin:round}
html:root .lendau.nn-hien{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
html:root .lendau.nn-hien:active{transform:scale(.92)!important;transition:transform .12s ease-out!important}
html:root[data-theme="dark"] .lendau{color:#fff!important;background:linear-gradient(180deg,rgba(84,84,90,.58),rgba(44,44,46,.5))!important;
  box-shadow:inset 0 0 0 .5px rgba(255,255,255,.2),inset 0 1px 0 rgba(255,255,255,.26),0 0 0 .5px rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.45)!important}
/* trinh duyet khong co backdrop-filter: tang do duc de mui ten van ro */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  html:root .lendau{background:rgba(248,248,252,.96)!important}html:root[data-theme="dark"] .lendau{background:rgba(44,44,46,.96)!important}}
/* trang khong co cot Goi/Zalo/SMS (vd. /khonhathue): nut ve dau xuong sat day */
html:root body:not(:has(.dock)) .lendau{bottom:var(--nn-b)!important}
/* dang cuon: an ca cot; dang go tim / mo bang loc: an nhu cu */
html:root.nn-cuon .dock,html:root.nn-cuon .lendau.nn-hien,html:root body.typing .dock,html:root body.an-dock .dock,html:root body.typing .lendau.nn-hien,html:root body.an-dock .lendau.nn-hien{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(20px)!important;transition:opacity .15s ease,transform .2s ease,visibility .15s!important}
@media(prefers-reduced-motion:reduce){html:root .dock,html:root .lendau{transition:none!important}}
/* 13:02 anh Anh: cot nut hien CA KHI dang mo cua so chi tiet (#sd); trang khong co cot Goi/Zalo/SMS (/khonhathue) thi an nut ve dau khi mo cua so nhu cu */
html:root.mo body:not(:has(.dock)) .lendau{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
/* nut Goi TOA SANG ~1s moi lan cot nut hien lai + luc tai trang (ngoai le co chu y: xung sang ngan roi tat, tinh = bong trung tinh) */
@property --nn-sang{syntax:'<number>';inherits:false;initial-value:0}
html:root .dock .ai-goi{filter:var(--nn-bong) drop-shadow(0 0 calc(var(--nn-sang) * 7px) rgba(52,199,89,calc(var(--nn-sang) * .8))) drop-shadow(0 0 calc(var(--nn-sang) * 18px) rgba(52,199,89,calc(var(--nn-sang) * .45)))!important}
html:root[data-theme="dark"] .dock .ai-goi{filter:var(--nn-bong) drop-shadow(0 0 calc(var(--nn-sang) * 9px) rgba(70,230,110,calc(var(--nn-sang) * .95))) drop-shadow(0 0 calc(var(--nn-sang) * 26px) rgba(48,209,88,calc(var(--nn-sang) * .7)))!important}
html:root.nn-sang .dock .ai-goi{animation:nn-toa 1s cubic-bezier(.3,.7,.4,1) 1}
@keyframes nn-toa{0%{--nn-sang:0;transform:scale(1)}20%{--nn-sang:1;transform:scale(1.07)}50%{--nn-sang:.85;transform:scale(1)}100%{--nn-sang:0;transform:scale(1)}}
@keyframes nn-toa-nhe{0%,100%{--nn-sang:0}50%{--nn-sang:.55}}
@media(prefers-reduced-motion:reduce){html:root.nn-sang .dock .ai-goi{animation:nn-toa-nhe 1s linear 1}}
/* CHU XUONG DONG — SUA 25/10/2026 (anh Anh 11:12: "chu van bi don sang trai").
   Truoc day 17/10 dat text-wrap:balance cho tieu de va text-wrap:pretty cho doan van.
   Tren Safari/iPhone (trinh duyet chinh cua anh) hai kieu nay TU RUT NGAN do dai dong:
   tieu de the can doi con ~40-60% be ngang, doan van cuoi trang xuong dong som —
   nhin ra man hinh dung la "chu bi don sang trai", chua het dong da xuong dong.
   Da sua rieng cho /crm + tab Khach thue /khonhathue ngay 20/10 (khach_cham_chot.css)
   nhung KHONG sua o nguon dung chung nay, nen cac trang khach (/, /chothue, /nhapho,
   /canho, ban EN) van loi -> nay tat han o day cho ca site.
   Dung !important vi vai trang con dat rieng .lt / .ph0 b / .hero .sub / .dh1 / .sxh h2
   {text-wrap:balance} voi do uu tien cao hon. */
:where(h1,h2,h3,h4,h5,.sh,.dh1,.lt,.ct,.kb b,.lqb b,.cb h3,.sxh h2,.ctab h3,.cta h3),
:where(p,li,dd,figcaption,.desc,.ds,.sp,.lead,.sub,.igf,.foot,.note,.cm,.kb small,.lqb span,.st small,.mbi p),
.lt,.ct,.ph0 b,.hero .sub,.dh1,.sxh h2,
.sxb .loc-item .lt,.sxb .spec-item .sl,.sxb .pc-label,.sxb .fp-type,.sxb .rc-type{
  text-wrap:wrap!important;text-wrap-style:auto!important}
:where(.tg,.chip,.fb,.sortb,.seg button,.opts button,.kgo,.kn,.langsw,.snav a,.subb,.badge,.lh-o,.b-xam,.moreb,.lhe-n){white-space:nowrap}
/*/NUTNOI17*/
