:root{
  --bg:#f4f6fb; --card:#ffffff; --ink:#0f1e2e; --muted:#5b6b82;
  --line:#e5eaf2; --brand:#0b6b4f; --brand-ink:#ffffff;
  --accent:#f59e0b; --up:#0b6b4f; --chip:#eef4ff;
  --radius:16px; --shadow:0 8px 28px rgba(15,30,46,.08);
  --font: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
button,input,select{font-family:var(--font)}
main.container{flex:1;width:100%}
a{color:inherit}
.container{max-width:1080px;margin:0 auto;padding:0 16px}
.muted{color:var(--muted)} .small{font-size:.88rem}

/* Topbar */
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#0b6b4f,#12a37a);color:#fff;font-weight:800;font-size:22px}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-text small{color:var(--muted);font-size:.78rem}
.pill-live{display:inline-flex;align-items:center;gap:8px;background:#e9f7ef;border:1px solid #c9ecd8;color:#0b6b4f;border-radius:999px;padding:7px 12px;font-size:.85rem}
.pill-live i{width:8px;height:8px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.18);animation:pulse 1.8s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(22,163,74,.08)}}

/* Hero */
.hero{display:grid;grid-template-columns:1.6fr .9fr;gap:16px;margin:20px 0 14px}
.hero h1{margin:.2em 0;font-size:clamp(1.5rem,3.4vw,2.3rem);letter-spacing:0;line-height:1.4}
.hl{background:linear-gradient(135deg,#0b6b4f,#d97706);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block;padding:.08em 0}
.hero-copy p{margin:0 0 12px}
.stats{display:flex;gap:10px;flex-wrap:wrap}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 14px;min-width:120px;box-shadow:var(--shadow)}
.stat b{font-size:1.25rem;color:var(--brand)}
.stat span{display:block;color:var(--muted);font-size:.8rem}
.hero-card{background:linear-gradient(180deg,#0f2f26,#0b6b4f);color:#eafff4;border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.hero-card-head{font-weight:700;margin-bottom:8px}
.hero-card ul{margin:0;padding-left:18px;font-size:.92rem}
.hero-card b{color:#ffe9b0}

/* Toolbar */
.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:8px 0 4px}
.search{flex:1;min-width:240px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 14px;box-shadow:var(--shadow)}
.search input{border:0;outline:0;width:100%;font-size:1rem;background:transparent;font-family:inherit}

/* Bank list — editorial rows like reference (desktop + mobile) */
.bank-list{display:grid;gap:12px;margin:10px 0 20px}
.bank-row{display:grid;grid-template-columns:72px minmax(0,1fr) 150px 150px 28px;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 20px 14px 14px;min-height:84px;box-shadow:0 2px 10px rgba(15,30,46,.05);text-decoration:none;color:inherit;transition:box-shadow .15s,transform .12s}
.bank-row:hover{box-shadow:0 8px 28px rgba(15,30,46,.1);transform:translateY(-1px)}
.bank-logo{width:64px;height:64px;border:1px solid var(--line);border-radius:12px;background:#fff;display:grid;place-items:center;font-weight:800;font-size:.95rem;letter-spacing:.02em;flex-shrink:0;overflow:hidden;text-align:center;line-height:1.4;padding:4px}
.bank-logo.l78{font-size:.78rem}
.bank-logo.l9{font-size:.66rem}
/* Icon vuong local: anh che kin o, chu fallback nam duoi lo ra khi anh loi */
.bank-logo.has-icon{padding:0;position:relative}
.bank-logo.has-icon .bank-logo-fallback{position:absolute;inset:0;display:grid;place-items:center;background:#fff;padding:0 4px}
.bank-logo.has-icon img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.bank-main{min-width:0;display:flex;flex-direction:column;gap:2px;justify-content:center}
.bank-name{font-weight:700;font-size:1rem;color:#16233a;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bank-sub{color:var(--muted);font-size:.83rem;line-height:1.5;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bank-count-m{display:none;color:var(--muted);font-size:.82rem;margin-top:2px}
.bank-count-m svg{vertical-align:-3px}
.bank-posts{display:flex;flex-direction:row;align-items:center;gap:9px;border-left:1px solid var(--line);padding-left:20px;min-width:0}
.bank-posts svg{flex-shrink:0;display:block}
.bp-text{display:flex;flex-direction:column;line-height:1.4}
.bp-num{font-weight:700;font-size:.95rem;color:#16233a}
.bp-label{color:var(--muted);font-size:.8rem}
.bank-rate{display:flex;flex-direction:column;justify-content:center;gap:1px;border-left:1px solid var(--line);padding-left:20px}
.r-num{font-weight:800;font-size:1.3rem;color:#0d9d6c;line-height:1.4}
.r-label{color:var(--muted);font-size:.8rem}
.bank-go{color:#8fa0b8;font-size:1.5rem;line-height:1;text-align:right;font-weight:300}
.btn{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:10px 16px;text-decoration:none;font-weight:700;font-size:.92rem;border:1px solid transparent;cursor:pointer}
.btn.primary{background:var(--brand);color:var(--brand-ink)}
.btn.accent{background:#fff7e6;border-color:#f5d48a;color:#8a5a00}
.btn.ghost{background:#fff;border-color:var(--line)}
.btn.tel{background:#0ea5e9;color:#fff}

/* ===== Detail page ===== */
.crumb{margin:16px 0 12px;color:var(--muted);font-size:.88rem;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.crumb a{color:#3b82f6;text-decoration:none}
.crumb b{color:var(--ink);font-weight:700}
.d-hero-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 20px 16px 16px;box-shadow:0 2px 10px rgba(15,30,46,.05)}
.bank-logo.big{width:68px;height:68px;font-size:1rem}
.d-hero-main{min-width:0}
.d-hero-main h1{margin:0;font-size:1.3rem;color:#16233a;letter-spacing:0;line-height:1.45}
.d-hero-sub{color:var(--muted);font-size:.87rem;line-height:1.5;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.d-hero-count{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.85rem;margin-top:4px}
.d-hero-rate{background:#e9f8f0;border-radius:10px;padding:10px 18px;text-align:right;display:flex;flex-direction:column;gap:2px}
.d-hero-rate .lbl{font-size:.72rem;color:#0b6b4f;font-weight:600}
.d-hero-rate .val{font-size:1.5rem;font-weight:800;color:#0d9d6c;line-height:1.4}
.d-hero-rate .val small{font-size:.8rem;font-weight:600;color:#0b6b4f}

/* Filters */
.d-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 6px}
.d-select{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 8px rgba(15,30,46,.05)}
.d-select select{appearance:none;border:0;background:transparent;color:#3b82f6;font-weight:600;font-size:.88rem;padding:10px 30px 10px 14px;outline:0;cursor:pointer;font-family:inherit}
.d-select::after{content:"⌄";position:absolute;right:12px;top:50%;transform:translateY(-60%);color:#8fa0b8;font-size:.85rem;pointer-events:none}
.d-search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;box-shadow:0 2px 8px rgba(15,30,46,.05)}
.d-search input{border:0;outline:0;width:100%;font-size:.9rem;background:transparent;font-family:inherit}
.d-search svg{flex-shrink:0}

/* Sale cards */
.sale-list{display:grid;gap:12px;margin:8px 0 20px}
.sale-card{display:grid;grid-template-columns:128px minmax(0,1fr) 210px;gap:16px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px 16px 16px 20px;box-shadow:0 2px 10px rgba(15,30,46,.05)}
.sale-card.top{border-color:#34c98e;background:linear-gradient(0deg,#fbfffd,#fff)}
.sale-rate{display:flex;flex-direction:column;justify-content:flex-start;gap:1px;padding-top:2px}
.sr-num{font-size:1.35rem;font-weight:800;color:#0d9d6c;line-height:1.4;white-space:nowrap}
.sr-label{color:var(--muted);font-size:.82rem}
.sr-badge{display:inline-block;margin-top:8px;background:#e9f8f0;color:#0b6b4f;font-size:.72rem;font-weight:700;border-radius:7px;padding:4px 8px;white-space:nowrap}
.sale-main{min-width:0;display:flex;flex-direction:column}
.sale-time{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--muted);font-size:.8rem;white-space:nowrap}
.sale-text{margin:0 0 4px;font-size:.92rem;color:#24344d;overflow-wrap:anywhere;word-break:break-word;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.sale-text.expanded{display:block;-webkit-line-clamp:unset;overflow:visible}
.sale-toggle{background:none;border:0;color:#1a73e8;font-weight:600;font-size:.85rem;cursor:pointer;padding:0;margin:0 0 10px;font-family:inherit;align-self:flex-start}
.sale-toggle:hover{text-decoration:underline}
.sale-toggle[hidden]{display:none}
.sale-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sale-phone{display:inline-flex;align-items:center;gap:7px;font-weight:800;color:#16233a;text-decoration:none;font-size:.95rem;margin-top:auto;padding-top:10px}
.sale-phone svg{color:#3b82f6}
.sale-phone.is-masked{background:none;border:0;cursor:pointer;font-family:inherit;padding-left:0}
.sale-phone.is-masked:hover .reveal-hint{text-decoration:underline}
.reveal-hint{font-weight:600;font-size:.78rem;color:#1a73e8;background:#e8f0fe;border-radius:6px;padding:2px 8px;white-space:nowrap}
.btn-call:disabled,.btn-zalo:disabled{opacity:.45;cursor:not-allowed;font-family:inherit;border:0}
.sale-side{min-width:0;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:12px;text-align:right}
.sale-cta{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:150px}
.btn-call,.btn-zalo{display:flex;align-items:center;justify-content:center;gap:7px;border-radius:9px;padding:9px 16px;font-weight:700;font-size:.85rem;line-height:1.5;text-decoration:none;color:#fff;white-space:nowrap;width:100%;box-sizing:border-box}
.btn-call{background:#0d9d6c}
.btn-zalo{background:#1a73e8}

.section-title{margin:22px 0 10px;font-size:1.2rem}
.center-more{display:flex;justify-content:center;margin:2px 0 22px}
.post-list{display:grid;gap:12px}
.post{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.post-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.post-head b{font-size:1rem}
.post-head time{color:var(--muted);font-size:.83rem}
.post p{margin:10px 0}
.post-cta{display:flex;gap:8px;flex-wrap:wrap}
.bank-list.compact .bank-row{padding:10px 14px 10px 10px;min-height:72px}
.bank-list.compact .r-num{font-size:1.15rem}
.disclaimer{background:#fffbeb;border:1px solid #f5d48a;border-radius:16px;padding:14px 16px;margin:18px 0}
.disclaimer h3{margin:0 0 6px}
.ads{border:1.5px dashed #b6c2d6;border-radius:12px;padding:14px;text-align:center;color:var(--muted);margin:12px 0}
.footer{border-top:1px solid var(--line);background:#fff;margin-top:20px}
.footer-inner{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:16px;font-size:.88rem}
.empty{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;text-align:center;color:var(--muted)}

@media (max-width:760px){
  /* Topbar mobile sieu gon: 1 hang, brand + pill khong wrap */
  .topbar-inner{padding:10px 12px;gap:8px}
  .brand{gap:8px;min-width:0;flex-shrink:1}
  .brand-mark{width:32px;height:32px;font-size:18px;border-radius:10px;flex-shrink:0}
  .brand-text{min-width:0}
  .brand-text strong{font-size:.95rem;white-space:nowrap}
  .brand-text small{display:none}
  .topnav{flex-shrink:0}
  .pill-live{white-space:nowrap;flex-shrink:0;font-size:.75rem;padding:6px 10px;gap:6px;max-width:62vw;overflow:hidden;text-overflow:ellipsis}
  .pill-live i{width:7px;height:7px;flex-shrink:0}
  .pill-live b{font-weight:700;white-space:nowrap}
  .hero{grid-template-columns:1fr}
  .bank-row{grid-template-columns:60px minmax(0,1fr) auto;gap:12px;padding:12px;min-height:76px}
  .bank-logo{width:52px;height:52px;font-size:.8rem;border-radius:12px}
  .bank-logo.l78{font-size:.62rem}
  .bank-logo.l9{font-size:.55rem}
  .bank-name{font-size:.95rem;white-space:normal}
  .bank-sub{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.8rem}
  .bank-count-m{display:block}
  .bank-posts,.bank-go{display:none}
  .bank-rate{border-left:0;padding-left:0;background:#e3f5ec;border-radius:10px;padding:8px 12px;text-align:center;min-width:86px}
  .r-num{font-size:1.05rem}
  .r-label{font-size:.75rem}
  .bank-hero{grid-template-columns:1fr}
  /* Detail mobile */
  .d-hero-card{grid-template-columns:60px minmax(0,1fr);padding:14px}
  .bank-logo.big{width:56px;height:56px;font-size:.85rem}
  .d-hero-main h1{font-size:1.1rem}
  .d-hero-rate{grid-column:1/-1;flex-direction:row;align-items:baseline;justify-content:space-between;text-align:left}
  .d-hero-rate .val{font-size:1.25rem}
  .d-search{flex-basis:100%}
  .sale-card{grid-template-columns:minmax(0,1fr);padding:14px}
  .sale-rate{flex-direction:row;align-items:baseline;gap:5px;flex-wrap:wrap}
  .sr-num{font-size:1.2rem}
  .sr-badge{margin-top:0}
  .sale-main{grid-column:1/-1;grid-row:2}
  .sale-side{grid-column:1/-1;grid-row:3;border-left:0;padding-left:0;align-items:stretch;text-align:left}
  .sale-time{justify-content:flex-start;align-self:flex-start}
  .sale-foot{flex-direction:column;align-items:stretch}
  .sale-cta{display:flex;flex-direction:row;width:100%}
  .btn-call,.btn-zalo{flex:1;justify-content:center}
}

@media (max-width:380px){
  .topbar-inner{padding:8px 10px;gap:6px}
  .pill-live{font-size:.7rem;padding:5px 8px;gap:5px}
  .brand-text strong{font-size:.88rem}
}
