:root{--color-bg:#040720;--color-bg-2:#0a0f2e;--color-bg-3:#111636;--color-surface:#161d3f;--color-surface-2:#1e2650;--color-border:#1e293b;--color-border-light:#2a3555;--color-text-primary:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#64748b;--color-text-meta:#8b98ad;--color-primary:#1589ff;--color-primary-hover:#0e6de8;--color-primary-dim:rgba(21, 137, 255, .12);--color-primary-glow:rgba(21, 137, 255, .25);--color-success:#22c55e;--color-success-dim:rgba(34, 197, 94, .12);--color-warning:#f59e0b;--color-warning-dim:rgba(245, 158, 11, .12);--color-danger:#ef4444;--color-danger-dim:rgba(239, 68, 68, .12);--color-info:#38bdf8;--color-star:#f59e0b;--brand-red:#ff3b30;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Noto Sans JP","Noto Sans KR",Arial,sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:17px;--font-size-xl:20px;--font-size-2xl:24px;--line-height:1.55;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--space-3xl:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(0, 0, 0, .4);--shadow-md:0 4px 12px rgba(0, 0, 0, .5);--shadow-lg:0 8px 24px rgba(0, 0, 0, .6);--tab-bar-height:56px;--transition-fast:.15s ease;--transition-base:.2s ease}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--font-size-base);line-height:var(--line-height);color:var(--color-text-primary);background:var(--color-bg);min-height:100vh}a{color:var(--color-primary);text-decoration:none}img{max-width:100%;display:block}button{font-family:var(--font)}.app{max-width:768px;margin:0 auto;min-height:100vh;background:var(--color-bg);position:relative}.app-content{padding-bottom:calc(var(--tab-bar-height) + 24px)}.page-header{position:sticky;top:0;z-index:200;display:flex;align-items:center;gap:var(--space-md);padding:10px var(--space-lg);background:rgba(4,7,32,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.brand-wrap{order:0;margin-right:auto;display:flex;flex-direction:column;line-height:1.2}.brand{font-weight:700;color:var(--brand-red);font-size:20px;letter-spacing:-.5px}.brand-tagline{font-size:var(--font-size-xs);color:var(--color-text-muted)}.page-title{font-size:var(--font-size-md);font-weight:600;color:var(--color-text-primary);flex:1}.back-btn,.lang-btn{order:2;flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:0 0;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-full);transition:all var(--transition-fast);position:relative}.back-btn:hover,.lang-btn:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.back-btn svg,.lang-btn svg{width:22px;height:22px}.lang-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:150px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;display:none;z-index:300}.lang-menu.open{display:block}.lang-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:0 0;border:none;text-align:left;color:var(--color-text-secondary);font-size:var(--font-size-base);cursor:pointer}.lang-menu button:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.lang-menu button.active{color:var(--color-primary);background:var(--color-primary-dim)}.lang-menu .lang-code{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-left:auto}.page-hero{padding:var(--space-lg) var(--space-lg) var(--space-sm)}.page-hero h1{font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.5px;margin-bottom:var(--space-sm)}.page-hero .hero-intro{color:var(--color-text-secondary);font-size:var(--font-size-base)}.page-hero .hero-price{margin-top:var(--space-sm);color:var(--color-text-meta);font-size:var(--font-size-sm);display:flex;align-items:center;gap:6px}.area-chips{display:flex;gap:var(--space-sm);overflow-x:auto;padding:var(--space-sm) var(--space-lg);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-shrink:0}.area-chips::-webkit-scrollbar{display:none}.area-chip{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:5px 12px;cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.area-chip:hover{color:var(--color-text-primary);border-color:var(--color-border-light)}.area-chip.active{color:var(--color-primary);background:var(--color-primary-dim);border-color:rgba(21,137,255,.3)}.area-chip:active{transform:scale(.95)}.district-list{padding:var(--space-sm) var(--space-lg) var(--space-md);display:flex;flex-wrap:wrap;gap:var(--space-sm)}.area-search-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base);min-width:150px}.area-search-item:hover{border-color:var(--color-border-light);color:var(--color-text-primary)}.area-search-count{color:var(--color-text-muted);font-size:var(--font-size-xs);white-space:nowrap}.feed-section-title{padding:var(--space-md) var(--space-lg) var(--space-sm);font-size:var(--font-size-lg);font-weight:700;display:flex;align-items:center;gap:8px}.feed-count{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:400}.feed-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);padding:var(--space-xs) var(--space-sm) var(--space-sm)}@media (min-width:600px){.feed-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:900px){.feed-grid{grid-template-columns:repeat(4,1fr)}.app{max-width:1024px}}.listing-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:transform var(--transition-fast),border-color var(--transition-base)}.listing-card:hover{border-color:var(--color-border-light)}.card-thumb{position:relative;overflow:hidden;aspect-ratio:3/4;background:var(--color-bg-2)}.card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.listing-card:hover .card-thumb img{transform:scale(1.04)}.badge-priority{position:absolute;top:6px;left:6px;background:linear-gradient(135deg,#ff9500,#ff5e3a);color:#fff;font-size:10px;font-weight:800;letter-spacing:.5px;padding:2px 7px;border-radius:var(--radius-full);box-shadow:0 2px 6px rgba(255,94,58,.45)}.badge-video{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:var(--radius-full);background:rgba(4,7,32,.75);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;color:#fff}.badge-video svg{width:13px;height:13px}.badge-verified{position:absolute;bottom:6px;left:6px;display:inline-flex;align-items:center;gap:3px;background:rgba(4,7,32,.72);backdrop-filter:blur(4px);color:var(--color-success);font-size:10px;font-weight:600;padding:2px 7px;border-radius:var(--radius-full);border:1px solid rgba(34,197,94,.35)}.badge-verified svg{width:11px;height:11px}.card-body{padding:var(--space-sm) var(--space-sm) var(--space-xs);display:flex;flex-direction:column;gap:3px;flex:1}.card-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}.price-rating-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.card-price{color:var(--color-warning);font-weight:700;font-size:var(--font-size-md)}.card-stars{color:var(--color-star);font-size:var(--font-size-xs);letter-spacing:1px;white-space:nowrap}.card-location{display:flex;align-items:center;gap:4px;color:var(--color-text-muted);font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-location svg{width:12px;height:12px;flex-shrink:0}.card-stats{display:flex;gap:var(--space-sm);margin-top:2px}.stat-pill{display:inline-flex;align-items:center;gap:3px;color:var(--color-text-muted);font-size:10px}.stat-pill svg{width:11px;height:11px}.load-more-wrap{display:flex;justify-content:center;padding:var(--space-lg)}.load-more{background:var(--color-surface);border:1px solid var(--color-border-light);color:var(--color-text-secondary);border-radius:var(--radius-full);padding:10px 40px;font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.load-more:hover{color:var(--color-primary);border-color:rgba(21,137,255,.4);background:var(--color-primary-dim)}.tags-section{padding:var(--space-lg);border-top:1px solid var(--color-border)}.popular-tags-title{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-md)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg)}.tag-chip{color:var(--color-primary);font-size:var(--font-size-base)}.tag-chip .tag-name{text-decoration:underline;text-underline-offset:2px}.tag-chip .tag-count{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-left:2px}.faq-section{padding:var(--space-lg);border-top:1px solid var(--color-border)}.faq-title{font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--space-lg)}.faq-item{margin-bottom:var(--space-lg)}.faq-item h3{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.faq-item p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.site-footer{border-top:1px solid var(--color-border);padding:var(--space-xl) var(--space-lg);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.site-footer .footer-links{display:flex;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-sm)}.site-footer .footer-links a{color:var(--color-text-secondary)}.site-footer .footer-links a:hover{color:var(--color-primary)}.footer-telegram{margin-top:var(--space-sm);color:var(--color-info)}.tab-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:768px;z-index:100;display:flex;height:calc(var(--tab-bar-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0);background:rgba(10,15,46,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--color-border)}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:0 0;border:none;color:var(--color-text-muted);font-family:var(--font);font-size:var(--font-size-xs);font-weight:500;letter-spacing:.01em;cursor:pointer;padding:0;transition:color var(--transition-base)}.tab-btn svg{width:22px;height:22px;transition:transform var(--transition-fast)}.tab-btn.active{color:var(--color-primary)}.tab-btn.active svg{transform:translateY(-1px)}.detail-wrap{padding:var(--space-md) 0 var(--space-xl)}.detail-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:0 4px}.detail-gallery .g-main{grid-column:1/-1;position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius-md)}.detail-gallery .g-main img{width:100%;height:100%;object-fit:cover}.detail-gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius-sm);cursor:pointer}.detail-head{padding:var(--space-md) var(--space-lg) 0}.detail-head h1{font-size:var(--font-size-xl);font-weight:700;line-height:1.3}.detail-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.detail-price{color:var(--color-warning);font-weight:700;font-size:var(--font-size-lg)}.detail-loc{display:inline-flex;align-items:center;gap:4px;color:var(--color-text-muted);font-size:var(--font-size-sm)}.detail-loc svg{width:13px;height:13px}.detail-verified{display:inline-flex;align-items:center;gap:4px;color:var(--color-success);font-size:var(--font-size-sm);font-weight:600;background:var(--color-success-dim);padding:3px 10px;border-radius:var(--radius-full)}.detail-verified svg{width:13px;height:13px}.detail-actions{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);position:sticky;bottom:calc(var(--tab-bar-height) + 8px);z-index:50}.btn-call{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;font-weight:700;font-size:var(--font-size-md);border:none;border-radius:var(--radius-full);padding:13px;cursor:pointer;box-shadow:0 4px 16px rgba(34,197,94,.35);transition:transform var(--transition-fast);text-decoration:none}.btn-call:active{transform:scale(.97)}.btn-call svg{width:18px;height:18px}.btn-zalo{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--color-surface);border:1px solid var(--color-border-light);color:var(--color-text-primary);font-weight:600;font-size:var(--font-size-md);border-radius:var(--radius-full);padding:13px;cursor:pointer;text-decoration:none}.btn-zalo svg{width:18px;height:18px}.detail-section{padding:var(--space-md) var(--space-lg)}.detail-section h2{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-md)}.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.spec-item{display:flex;justify-content:space-between;gap:var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:9px 12px;font-size:var(--font-size-sm)}.spec-item .k{color:var(--color-text-muted)}.spec-item .v{color:var(--color-text-primary);font-weight:500;text-align:right}.service-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.service-tag{font-size:var(--font-size-sm);color:var(--color-info);background:rgba(56,189,248,.1);border:1px solid rgba(56,189,248,.25);border-radius:var(--radius-full);padding:4px 12px}.detail-desc{color:var(--color-text-secondary);font-size:var(--font-size-base);white-space:pre-line}.detail-phone-num{letter-spacing:1px}.empty-list{grid-column:1/-1;text-align:center;color:var(--color-text-muted);padding:var(--space-3xl) var(--space-lg);font-size:var(--font-size-base)}.reviews-summary{display:flex;align-items:center;gap:var(--space-md)}.reviews-count{color:var(--color-text-secondary);font-size:var(--font-size-base)}.reviews-none{color:var(--color-text-muted);font-size:var(--font-size-sm)}.toast{position:fixed;bottom:calc(var(--tab-bar-height) + 20px);left:50%;transform:translateX(-50%) translateY(20px);background:var(--color-surface-2);color:var(--color-text-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-full);padding:9px 20px;font-size:var(--font-size-sm);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:all var(--transition-base);z-index:400;white-space:nowrap}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.img-modal{position:fixed;inset:0;background:rgba(2,4,16,.92);z-index:500;display:none;align-items:center;justify-content:center;padding:20px;cursor:zoom-out}.img-modal.open{display:flex}.img-modal img{max-width:100%;max-height:90vh;border-radius:var(--radius-md)}