/* ══════════════════════════════════════════════════════════════════
   DANH BẠ DOANH NGHIỆP VIỆT NAM — /doanh-nghiep-vn
   ------------------------------------------------------------------
   Giá trị màu · cỡ chữ · khoảng cách lấy NGUYÊN từ harness đã duyệt (bản concept danh bạ).
   Mọi class mang tiền tố dv- và nằm dưới .dnvn: layout landing dùng Tailwind (có sẵn .container,
   .badge…) nên đặt tên trơn là đụng nhau.
   Header/footer là bản Tailwind dùng chung của site — chỉ phần thân trang theo harness.
   ══════════════════════════════════════════════════════════════════ */

/* Token khai cho CẢ hộp thoại + toast + thanh dính đáy mobile: các khối này nằm ngoài .dnvn. */
.dnvn, .dv-modal, .dv-toast, .dv-mobile-cta {
    --dv-ink: #162d34;
    --dv-text: #34484d;
    --dv-muted: #718287;
    --dv-brand: #15586a;
    --dv-brand-dark: #104a5a;
    --dv-teal: #167c77;
    --dv-surface: #fff;
    --dv-bg: #f7f9f8;
    --dv-border: #e5ecea;
    --dv-mint: #e4f3ee;
    --dv-shadow: 0 8px 30px rgba(20, 63, 67, .06);
}
.dnvn {
    --dv-ink: #162d34;
    --dv-text: #34484d;
    --dv-muted: #718287;
    --dv-brand: #15586a;
    --dv-brand-dark: #104a5a;
    --dv-teal: #167c77;
    --dv-surface: #fff;
    --dv-bg: #f7f9f8;
    --dv-border: #e5ecea;
    --dv-mint: #e4f3ee;
    --dv-shadow: 0 8px 30px rgba(20, 63, 67, .06);
    background: var(--dv-bg);
    color: var(--dv-ink);
    font-family: 'Be Vietnam Pro', system-ui, -apple-system, sans-serif;
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
}
.dnvn *, .dv-modal *, .dv-toast { box-sizing: border-box; }
.dnvn button, .dnvn input, .dnvn select, .dnvn textarea,
.dv-modal button, .dv-modal input, .dv-modal textarea { font: inherit; }
.dnvn button, .dv-modal button { cursor: pointer; }
.dnvn a, .dv-modal a { text-decoration: none; }
.dnvn :is(button, input, select, textarea, a):focus-visible,
.dv-modal :is(button, input, select, textarea, a):focus-visible { outline: 3px solid #8fcebd; outline-offset: 2px; }
.dnvn h1, .dnvn h2, .dnvn h3, .dv-modal h2, .dv-modal h3 { font-family: inherit; color: inherit; }

/* Header dùng chung (nằm NGOÀI .dnvn): `.vne-v3 a { color: inherit }` (0,1,1) thắng `.vn-btn { color: var(--_fg) }` (0,1,0)
   nên chữ nút "Bắt đầu" ra màu chữ thân trang thay vì trắng. Trang chủ / cơ hội hợp tác vá bằng `body.home-inter a.vn-btn`
   (css/home-v3/index.css) — trang này không có lớp đó. --_fg do từng biến thể nút khai (primary = trắng). */
.vne-v3 a.vn-btn { color: var(--_fg); }

.dv-icon { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.dv-icon.i-sm { width: 15px; height: 15px; }
.dv-icon.i-lg { width: 22px; height: 22px; }

.dv-container { width: min(1240px, calc(100% - 56px)); margin: auto; }

/* ── Hero ─────────────────────────────────────────────────────────── */
.dv-hero { overflow: hidden; position: relative; background: radial-gradient(circle at 88% 18%, #e2f3ef 0, transparent 30%), linear-gradient(160deg, #fafcfb 5%, #f2f7f6 100%); border-bottom: 1px solid #e7eeeb; }
.dv-hero::after { content: ''; position: absolute; width: 310px; height: 310px; border: 1px solid rgba(29, 129, 122, .10); border-radius: 50%; top: -135px; right: 4%; box-shadow: 0 0 0 45px rgba(28, 145, 127, .028), 0 0 0 90px rgba(28, 145, 127, .026); pointer-events: none; }
.dv-hero .dv-container { padding: 40px 0 36px; position: relative; z-index: 1; }
.dv-crumb { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: #678b8a; margin-bottom: 16px; }
.dv-crumb a { color: inherit; white-space: nowrap; }
.dv-crumb a:hover { color: var(--dv-brand); }
.dv-crumb strong { color: var(--dv-brand); font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dv-headline { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 23px; }
.dnvn h1.dv-title { margin: 0 0 10px; font-size: clamp(27px, 3.1vw, 40px); letter-spacing: -1.9px; font-weight: 800; line-height: 1.28; }
.dv-lead { margin: 0; color: #667b80; line-height: 1.75; font-size: 13px; }

.dv-assure { list-style: none; margin: 0; padding: 14px 18px; display: flex; flex-direction: column; gap: 9px; background: rgba(255, 255, 255, .62); border: 1px solid #dbece7; border-radius: 14px; }
.dv-assure li { display: flex; align-items: center; gap: 9px; color: var(--dv-brand); font-size: 12px; font-weight: 600; white-space: nowrap; line-height: 1.4; }
.dv-assure .dv-icon { width: 16px; height: 16px; color: var(--dv-teal); }

.dv-search { background: #fff; min-height: 67px; max-width: 1035px; border-radius: 16px; padding: 7px 7px 7px 20px; display: flex; align-items: center; box-shadow: 0 10px 35px rgba(25, 77, 78, .095); border: 1px solid #dde9e6; gap: 13px; transition: border-color .18s, box-shadow .18s; }
.dv-search:focus-within { border-color: #a9d3c8; box-shadow: 0 10px 35px rgba(25, 77, 78, .13), 0 0 0 4px rgba(143, 206, 189, .25); }
.dv-search > .dv-icon { color: #658086; width: 22px; height: 22px; }
.dv-search input { flex: 1; min-width: 0; font-size: 14px; outline: 0; border: 0; background: transparent; color: var(--dv-ink); padding: 0; box-shadow: none; }
.dv-search input:focus-visible { outline: 0; }
.dv-search input::placeholder { color: #93a1a3; }
.dv-search input::-webkit-search-cancel-button { display: none; }
.dv-search-clear { display: none; border: 0; background: #eef4f2; color: #728986; border-radius: 50%; width: 27px; height: 27px; align-items: center; justify-content: center; padding: 0; flex-shrink: 0; }
.dv-search-clear.is-visible { display: flex; }
.dv-kbd { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border: 1px solid #dce8e4; border-bottom-width: 2px; border-radius: 6px; color: #8aa0a0; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.dv-search:focus-within .dv-kbd { display: none; }

.dv-btn { background: var(--dv-brand); color: #fff; border: 1px solid var(--dv-brand); border-radius: 11px; padding: 15px 22px; font-weight: 700; display: inline-flex; align-items: center; gap: 9px; justify-content: center; transition: .18s; font-size: 12px; white-space: nowrap; line-height: 1.2; }
.dv-btn:hover { background: #0c4554; color: #fff; transform: translateY(-1px); }
.dv-btn-outline { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid #bad6cb; background: #fff; color: var(--dv-brand); border-radius: 10px; padding: 12px 16px; font-weight: 700; white-space: nowrap; font-size: 12px; line-height: 1.2; transition: background .16s; }
.dv-btn-outline:hover { background: #f6fffb; color: var(--dv-brand); }

/* "Khám phá nhanh": MỘT hàng cuộn ngang (không xuống dòng) — nhãn · ‹ · dải chip · ›.
   Nút mờ + khoá khi hết đường chứ không biến mất (biến mất thì cả hàng nhảy ngang mỗi lần chạm đầu/cuối);
   chỉ khi dải không tràn mới bỏ hẳn hai nút. Cả hai do bindQuick (js/directory-vn/index.js) gắn. */
.dv-quick { display: flex; align-items: center; gap: 9px; flex-wrap: nowrap; margin-top: 17px; min-width: 0; }
.dv-quick-label { color: #899b9c; font-size: 11px; font-weight: 500; margin-right: 3px; flex-shrink: 0; }
.dv-quick-viewport { position: relative; flex: 1 1 auto; min-width: 0; --dv-fade-l: 0px; --dv-fade-r: 0px;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--dv-fade-l), #000 calc(100% - var(--dv-fade-r)), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 var(--dv-fade-l), #000 calc(100% - var(--dv-fade-r)), transparent 100%); }
/* Dải mờ hai mép = "còn nữa ở phía này". Dùng mask (không phủ màu nền) vì hero có nền gradient;
   không đổi padding nên không đổi scrollWidth → phép đo tràn không chạy vòng. */
.dv-quick-viewport[data-fade-l] { --dv-fade-l: 34px; }
.dv-quick-viewport[data-fade-r] { --dv-fade-r: 34px; }
/* 2px chừa chỗ cho vòng focus của chip, không thì bị cắt khi tab tới. */
.dv-quick-track { display: flex; align-items: center; gap: 9px; overflow-x: auto; padding: 2px 0; scrollbar-width: none; -ms-overflow-style: none; }
.dv-quick-track::-webkit-scrollbar { display: none; }
/* Chip không co: co thì chữ bị nén và phép đo tràn sai. */
.dv-quick-track > * { flex: 0 0 auto; white-space: nowrap; }
.dv-qnav { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; border: 1px solid #dce8e4; background: #fff; color: var(--dv-brand); display: inline-flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; transition: .16s; }
.dv-qnav:hover:not(:disabled) { border-color: #bedbd3; background: #f6fffb; }
.dv-qnav:disabled { opacity: .4; cursor: not-allowed; }
.dv-qnav--prev .dv-icon { transform: rotate(180deg); }
.dv-quick:not([data-scrollable]) .dv-qnav { display: none; }
.dv-chip { background: transparent; border: 1px solid #dce8e4; color: #526d71; border-radius: 30px; padding: 8px 13px; font-size: 11px; transition: .16s; line-height: 1.3; }
.dv-chip:hover, .dv-chip.is-active { color: var(--dv-brand); background: #fff; border-color: #bedbd3; }
.dv-chip.is-active { font-weight: 700; }


/* ── Thanh lọc ── */
.dv-catalog { padding: 30px 0 calc(80px + 56px); }
.dv-toolbar { background: #fff; border: 1px solid var(--dv-border); border-radius: 16px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 12px; box-shadow: 0 2px 14px rgba(19, 72, 70, .025); margin: 0; }
.dv-select { position: relative; min-width: 176px; }
.dv-select .dv-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #72898b; width: 17px; height: 17px; pointer-events: none; }
.dv-select::after { content: '⌄'; position: absolute; right: 15px; top: 45%; transform: translateY(-50%); color: #859594; font-size: 19px; pointer-events: none; }
.dv-select select { width: 100%; appearance: none; -webkit-appearance: none; background: #fff; padding: 12px 32px 12px 40px; border: 1px solid #e4ebe9; border-radius: 11px; color: #3a5357; font-size: 12px; font-weight: 600; cursor: pointer; line-height: 1.3; box-shadow: none; }
.dv-select select:focus { border-color: #8ebbb2; }
.dv-select.is-set select { border-color: #bce1cf; background: #f3faf6; color: #197469; }
.dv-toggle { border: 1px solid #e4ebe9; background: #fff; padding: 12px 14px; color: #566e71; display: flex; gap: 8px; align-items: center; border-radius: 11px; font-size: 12px; font-weight: 600; line-height: 1.3; }
.dv-toggle:hover { color: #197469; }
.dv-toggle.is-checked { background: #e6f4ed; color: #197469; border-color: #bce1cf; }
.dv-spacer { flex: 1; }
.dv-reset { background: transparent; border: 0; color: var(--dv-brand); font-weight: 700; font-size: 12px; padding: 10px; margin-left: auto; }
.dv-reset:hover { color: var(--dv-brand-dark); text-decoration: underline; }

.dv-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.dv-pill { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid #d5e6e0; color: #2f5a5f; border-radius: 30px; padding: 6px 8px 6px 12px; font-size: 11px; font-weight: 600; transition: .16s; }
.dv-pill b { font-weight: 800; color: var(--dv-brand); }
.dv-pill .dv-x { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: #eef4f2; color: #6d8584; }
.dv-pill:hover { border-color: #a9cfc4; color: #2f5a5f; }
.dv-pill:hover .dv-x { background: var(--dv-brand); color: #fff; }

/* ── Kết quả ── */
.dv-results-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin: 28px 0 16px; }
.dnvn .dv-results-head h2 { margin: 0 0 7px; font-size: 21px; letter-spacing: -.55px; line-height: 1.35; font-weight: 700; }
.dv-results-head p { margin: 0; color: #839193; font-size: 11px; }
.dv-results-head p strong { color: var(--dv-brand); font-weight: 800; font-variant-numeric: tabular-nums; }
.dv-sort { position: relative; }
.dv-sort::after { content: '⌄'; position: absolute; top: 3px; right: 7px; color: #8ba0a0; font-size: 19px; pointer-events: none; }
.dv-sort select { appearance: none; -webkit-appearance: none; background: transparent; border: 0; padding: 9px 24px 9px 10px; font-size: 11px; color: #62777a; font-weight: 600; cursor: pointer; box-shadow: none; }

.dv-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; transition: opacity .2s; }
.dnvn.is-loading .dv-cards { opacity: .45; pointer-events: none; }

.dv-card { display: flex; flex-direction: column; min-height: 235px; background: #fff; border: 1px solid #e3ebe8; border-radius: 16px; padding: 22px 22px 15px; position: relative; transition: transform .18s, box-shadow .18s, border-color .18s; overflow: hidden; }
.dv-card:hover { transform: translateY(-2px); box-shadow: 0 12px 35px rgba(20, 67, 71, .09); border-color: #cee0dc; }
/* Đã công bố: vệt sáng mint nơi góc — đọc được trạng thái ngay cả khi lướt nhanh */
.dv-card.is-published::before { content: ''; position: absolute; width: 180px; height: 180px; right: -90px; top: -90px; border-radius: 50%; background: radial-gradient(circle, rgba(40, 156, 130, .10) 0, rgba(40, 156, 130, 0) 70%); pointer-events: none; }
.dv-card.is-new { animation: dv-rise .38s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes dv-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.dv-card-main { display: flex; align-items: flex-start; gap: 15px; min-height: 78px; }

.dv-mono { flex: 0 0 auto; width: 62px; height: 62px; display: flex; align-items: center; justify-content: center; border-radius: 14px; font-size: 22px; font-weight: 800; letter-spacing: -1.5px; position: relative; overflow: hidden; }
.dv-mono::after { content: ''; width: 48px; height: 48px; border-radius: 50%; border: 1px solid currentColor; opacity: .09; position: absolute; right: -20px; bottom: -20px; }
.dv-mono.teal { background: #e2f0ed; color: #367e76; }
.dv-mono.sand { background: #f6eada; color: #a87e48; }
.dv-mono.blue { background: #e5eff8; color: #5983aa; }
.dv-mono.lilac { background: #eeeafa; color: #8571a9; }
.dv-mono.rose { background: #f9eaea; color: #bb7980; }
.dv-mono.slate { background: #edf0f1; color: #647b81; }
.dv-mono.has-logo { background: #fff; border: 1px solid #e3ebe8; }
.dv-mono.has-logo::after { display: none; }
.dv-mono img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }

.dv-details { min-width: 0; flex: 1; }
.dv-name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 15px; line-height: 1.5; letter-spacing: -.2px; margin: 1px 0 8px; font-weight: 700; color: #203b43; text-align: left; }
.dv-name:hover { color: var(--dv-brand); }
.dv-brandline { display: block; margin: -6px 0 8px; font-size: 11px; color: #839193; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.dv-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.dv-badge { font-size: 10px; font-weight: 700; line-height: 1.2; padding: 6px 9px; border-radius: 6px; display: inline-flex; gap: 4px; align-items: center; white-space: nowrap; }
.dv-badge .dv-icon { width: 13px; height: 13px; }
.dv-badge.verified { color: #13816a; background: #e3f5ed; }
.dv-badge.published { color: #2c7396; background: #e8f3f9; }
.dv-badge.unclaimed { color: #8b8d89; background: #f1f3f2; }
.dv-badge.account { color: #5a6f8a; background: #eef2f8; }

.dv-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 18px; margin: 13px 0 14px; color: #697d80; font-size: 11px; }
.dv-meta-item { display: flex; align-items: center; gap: 6px; min-width: 0; }
.dv-meta-item .dv-icon { color: #92a7a7; width: 15px; height: 15px; }
.dv-meta-item.mst { font-variant-numeric: tabular-nums; }

.dv-card-foot { padding-top: 13px; margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.dv-action { background: transparent; border: 0; padding: 7px 0; font-weight: 700; color: #61797a; font-size: 11px; display: flex; gap: 7px; align-items: center; line-height: 1.3; }
.dv-action.main { color: var(--dv-brand); }
.dv-action:hover { text-decoration: underline; color: #61797a; }
.dv-action.main:hover { color: var(--dv-brand); }
.dv-action .dv-icon.i-sm { transition: transform .18s; }
.dv-action.main:hover .dv-icon.i-sm { transform: translateX(3px); }

/* ── Thẻ giàu dữ liệu (20/10/2026) ── */
.dv-badgerow { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.dv-badgerow .dv-badges { display: contents; }
.dv-status { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 700; line-height: 1.2; padding: 6px 9px 6px 8px; border-radius: 6px; white-space: nowrap; }
.dv-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.dv-status.ok { color: #2f7a5f; background: #eef7f2; }
.dv-status.stop { color: #b45f67; background: #f9eaea; }
.dv-status.warn { color: #a87e48; background: #f6eada; }

/* Có tài khoản VNE: ảnh bìa + logo nổi lên bìa */
.dv-cover { position: relative; margin: -22px -22px 0; height: 86px; overflow: hidden; background: linear-gradient(120deg, #e2f0ed, #f3f8f6); }
.dv-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0) 40%, rgba(255,255,255,.35)); }
.dv-cover.sand { background: linear-gradient(120deg, #f6eada, #fbf6ef); }
.dv-cover.blue { background: linear-gradient(120deg, #e5eff8, #f4f8fc); }
.dv-cover.lilac { background: linear-gradient(120deg, #eeeafa, #f7f5fd); }
.dv-cover.rose { background: linear-gradient(120deg, #f9eaea, #fcf5f5); }
.dv-cover.slate { background: linear-gradient(120deg, #edf0f1, #f7f8f9); }
.dv-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dv-card.is-rich .dv-card-main { margin-top: -30px; position: relative; z-index: 1; align-items: flex-end; min-height: 0; }
.dv-card.is-rich .dv-mono { box-shadow: 0 0 0 3px #fff, 0 6px 16px rgba(20, 67, 71, .12); background-clip: padding-box; }
.dv-card.is-rich .dv-mono.has-logo { border-color: #fff; }
.dv-card.is-rich .dv-details { padding-top: 34px; }
.dv-card.is-rich.is-published::before { display: none; }
.dv-intro { margin: 12px 0 0; font-size: 12px; color: #5f7477; line-height: 1.7; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.dv-products { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.dv-products span { font-size: 10.5px; font-weight: 600; color: #367e76; background: #f1f8f5; border: 1px solid #dcece6; border-radius: 30px; padding: 4px 10px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Chỉ có trong danh bạ: phiếu pháp lý thu gọn */
.dv-facts-mini { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; margin: 14px 0 0; padding: 12px 14px; border-radius: 11px; background: #f7faf9; }
/* Không kẻ ô (PO: đường kẻ "quê") — tách bằng khoảng trắng trên nền nhạt */
.dv-facts-mini > div { min-width: 0; }
.dv-facts-mini > div.is-wide { grid-column: 1 / -1; }
.dv-facts-mini dt { display: flex; align-items: center; gap: 5px; font-size: 9.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #93a4a6; margin: 0 0 3px; }
.dv-facts-mini dt .dv-icon { width: 12px; height: 12px; color: #a9bbba; }
.dv-facts-mini dd { margin: 0; font-size: 12px; font-weight: 600; color: #34484d; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ══ Thẻ gọn một khung (PO 20/10/2026: tối giản, thanh lịch, hai loại cùng kích thước) ══ */
.dv-cards .dv-card { min-height: 0; padding: 18px 18px 12px; gap: 0; }
.dv-cards .dv-card-main { min-height: 0; gap: 13px; align-items: flex-start; }
.dv-cards .dv-card .dv-mono { width: 48px; height: 48px; font-size: 17px; border-radius: 12px; letter-spacing: -1px; }
.dv-cards .dv-card .dv-mono img { padding: 5px; }
/* Giữ chỗ đủ 2 dòng tên + 1 hàng nhãn — tên ngắn hay dài thẻ vẫn cao bằng nhau */
.dv-cards .dv-details { min-height: 76px; display: flex; flex-direction: column; }
.dv-cards .dv-name { font-size: 14px; line-height: 1.45; margin: 0 0 7px; min-height: 2.9em; }
.dv-cards .dv-badge, .dv-cards .dv-status { padding: 4px 8px; font-size: 10px; }
.dv-lines { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.dv-lines li { display: flex; align-items: center; gap: 8px; height: 20px; font-size: 12px; color: #4b6468; min-width: 0; }
.dv-lines li span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv-lines .dv-icon { width: 14px; height: 14px; color: #a3b4b4; flex-shrink: 0; }
/* margin-top:auto — chân thẻ dính đáy, thẳng hàng giữa các thẻ cùng hàng (lưới kéo giãn thẻ bằng nhau) */
.dv-cards .dv-card-foot { margin-top: auto; padding-top: 14px; }
.dv-foot-meta { display: flex; align-items: center; gap: 0; min-width: 0; font-size: 11px; color: #8a9c9d; white-space: nowrap; overflow: hidden; }
.dv-foot-meta > span + span::before { content: '·'; margin: 0 7px; color: #c3cfce; }
.dv-foot-meta .mst { font-variant-numeric: tabular-nums; font-weight: 600; color: #5f7477; }
.dv-lines li.is-rep span { color: #162d34; font-weight: 700; }
.dv-lines li.is-rep .dv-icon { color: #6a8987; }
.dv-foot-actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.dv-foot-actions a.dv-action:not(.main) { width: 30px; height: 30px; justify-content: center; border-radius: 8px; padding: 0; }
.dv-foot-actions a.dv-action:not(.main):hover { background: #f1f6f4; text-decoration: none; }
.dv-foot-actions .dv-action.main { padding: 7px 4px 7px 8px; }

/* ══ Thẻ danh bạ (gọn) ══ */
.dv-dcard .dv-card-main { min-height: 0; }
.dv-dcard .dv-lines { margin-top: 12px; }
.dv-dcard .dv-details { min-height: 0; }
/* Nhãn bám ngay dưới tên — không giữ chỗ 2 dòng cho tên (PO: bỏ khoảng hở) */
.dv-cards .dv-dcard .dv-name { min-height: 0; margin-bottom: 6px; }
/* Địa chỉ đầy đủ: cho 2 dòng (PO: "trang search không full") — giữ chỗ 2 dòng để thẻ bằng nhau */
.dv-lines li.is-addr { height: auto; min-height: 36px; align-items: flex-start; }
.dv-lines li.is-addr .dv-icon { margin-top: 2px; }
.dv-lines li.is-addr span { white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-height: 1.5; }

/* ══ Thẻ "pro" — theo thẻ "VNE giới thiệu" trang chủ, màu/chữ harness ══ */
.dv-cards .dv-pcard { padding: 0; overflow: hidden; border-color: #dcebe5; }
.dv-cards .dv-pcard:hover { border-color: #bedbd3; }
.dv-pcard-media { position: relative; height: 168px; background: linear-gradient(135deg, #e2f0ed, #f3f8f6); overflow: hidden; }
.dv-pcard-media.sand { background: linear-gradient(135deg, #f6eada, #fbf6ef); }
.dv-pcard-media.blue { background: linear-gradient(135deg, #e5eff8, #f4f8fc); }
.dv-pcard-media.lilac { background: linear-gradient(135deg, #eeeafa, #f7f5fd); }
.dv-pcard-media.rose { background: linear-gradient(135deg, #f9eaea, #fcf5f5); }
.dv-pcard-media.slate { background: linear-gradient(135deg, #edf0f1, #f7f8f9); }
.dv-pcard-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.dv-pcard:hover .dv-pcard-media img { transform: scale(1.04); }
.dv-pcard-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 74, 90, .28) 0, rgba(16, 74, 90, 0) 38%); pointer-events: none; }
.dv-pcard-tier { position: absolute; z-index: 1; left: 12px; top: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px 6px 9px; border-radius: 30px; background: rgba(16, 74, 90, .82); backdrop-filter: blur(6px); color: #fff; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.dv-pcard-tier .dv-icon { width: 14px; height: 14px; color: #8fcebd; }
.dv-pcard-tier.is-verified { background: rgba(19, 129, 106, .88); }
.dv-pcard-tier.is-verified .dv-icon { color: #d6f5ea; }
a.dv-pcard-quick { position: absolute; z-index: 1; right: 12px; top: 12px; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .94); color: #15586a; box-shadow: 0 4px 12px rgba(16, 74, 90, .18); transition: transform .16s; }
a.dv-pcard-quick:hover { transform: scale(1.06); color: #104a5a; }
a.dv-pcard-quick .dv-icon { width: 17px; height: 17px; }
.dv-pcard-body { padding: 14px 16px 12px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.dv-pcard-id { display: flex; align-items: flex-start; gap: 11px; min-width: 0; }
.dv-cards .dv-pcard .dv-mono { width: 44px; height: 44px; font-size: 16px; border-radius: 11px; box-shadow: 0 2px 8px rgba(20, 67, 71, .08); }
.dv-cards .dv-pcard .dv-mono.has-logo { border: 1px solid #e3ebe8; }
.dv-pcard-names { min-width: 0; display: flex; flex-direction: column; gap: 3px; padding-top: 1px; }
a.dv-pcard-brand { font-size: 14.5px; font-weight: 800; color: #162d34; text-transform: uppercase; letter-spacing: -.1px; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
a.dv-pcard-brand:hover { color: var(--dv-brand); }
.dv-pcard-legal { font-size: 10.5px; font-weight: 600; color: #839193; text-transform: uppercase; letter-spacing: .02em; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.dv-pcard-rep { display: flex; align-items: center; gap: 7px; min-width: 0; font-size: 12.5px; }
.dv-pcard-rep .dv-icon { width: 15px; height: 15px; color: #6a8987; flex-shrink: 0; }
.dv-pcard-rep b { color: #162d34; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv-pcard-score { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: #34484d; }
.dv-pcard-score .dv-icon { width: 16px; height: 16px; color: #289c82; }
.dv-pcard-score b { color: #13816a; font-weight: 800; }
.dv-pcard-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: #4b6468; }
.dv-pcard-facts li { display: flex; align-items: center; gap: 14px; min-width: 0; }
.dv-pcard-facts li.is-addr { align-items: flex-start; gap: 7px; }
.dv-pcard-facts li.is-addr span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; line-height: 1.5; }
.dv-pcard-facts .dv-icon { width: 14px; height: 14px; color: #92a7a7; flex-shrink: 0; }
.dv-pcard-facts li.is-addr .dv-icon { margin-top: 2px; }
.dv-pcard-inline { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; min-width: 0; }
.dv-pcard-inline.is-grow { flex: 1; overflow: hidden; }
.dv-pcard-inline.is-grow span { overflow: hidden; text-overflow: ellipsis; }
.dv-pcard-seek { margin-top: auto; padding-top: 10px; border-top: 1px dashed #e3ebe8; font-size: 12px; line-height: 1.55; color: #34484d; }
.dv-pcard-seek b { display: block; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #a87e48; margin-bottom: 2px; }
.dv-pcard-seek span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
a.dv-pcard-cta { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 16px; background: #15586a; color: #fff; font-size: 12.5px; font-weight: 700; transition: background .16s; }
a.dv-pcard-cta:hover { background: #104a5a; color: #fff; }
a.dv-pcard-cta.is-soft { background: #eef6f3; color: #15586a; }
a.dv-pcard-cta.is-soft:hover { background: #e2f0ec; color: #104a5a; }
@media (max-width: 550px) { .dv-pcard-media { height: 150px; } }
@media (max-width: 550px) {
    .dv-cards .dv-cover { height: 54px; }
}
/* Khối "Doanh nghiệp nổi bật" (trang chưa lọc) — 3 cột trên màn rộng */
.dv-featured { margin-bottom: 8px; }
.dv-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* Thẻ hẹp (~320px): chân thẻ giữ đủ MST — bỏ tỉnh (đã có ở dòng trụ sở), rút nhãn nút */
@media (min-width: 1051px) { .dv-cards--3 .dv-prov, .dv-cards--3 .dv-long, .dv-cards--3 .dv-foot-meta .mst::before { display: none; } }
@media (max-width: 1050px) { .dv-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .dv-cards--3 { grid-template-columns: 1fr; } }

.dv-load-wrap { text-align: center; margin-top: 26px; }
.dv-load { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #ccdeda; color: var(--dv-brand); padding: 13px 24px; border-radius: 10px; font-weight: 700; font-size: 12px; }
.dv-load:hover { background: #edf6f2; color: var(--dv-brand); }
.dv-load small { color: #839193; font-weight: 600; }
.dv-load.is-busy { pointer-events: none; opacity: .7; }
.dv-load.is-busy .dv-icon { animation: dv-spin .8s linear infinite; }
@keyframes dv-spin { to { transform: rotate(360deg); } }
.dv-pager-note { margin-top: 10px; color: #93a4a6; font-size: 11px; }

.dv-empty { grid-column: 1 / -1; text-align: center; padding: 70px 16px; background: white; border-radius: 16px; border: 1px solid var(--dv-border); }
.dv-empty .dv-icon { width: 38px; height: 38px; color: #98b1ad; }
.dnvn .dv-empty h3 { margin: 12px 0 8px; font-size: 17px; font-weight: 700; }
.dv-empty p { color: #7d9192; font-size: 12px; margin: 0 0 18px; }

/* Khung xương khi đang nạp thêm thẻ */
.dv-skel { min-height: 235px; border-radius: 16px; border: 1px solid #e3ebe8; background: linear-gradient(100deg, #fff 30%, #f2f7f5 50%, #fff 70%) 0 0 / 300% 100%; animation: dv-shimmer 1.2s linear infinite; }
@keyframes dv-shimmer { to { background-position: -150% 0; } }

.dv-claim { margin-top: 36px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 32px; background: linear-gradient(110deg, #ebf4f0 0, #f3f7f4 100%); border: 1px solid #daebe5; border-radius: 17px; }
.dv-claim-title { font-size: 16px; font-weight: 800; margin-bottom: 7px; }
.dv-claim p { margin: 0; color: #6c8485; font-size: 12px; line-height: 1.7; }

/* ── Duyệt theo tỉnh / lĩnh vực (chỉ khi chưa lọc) ── */
.dv-browse { margin-top: 44px; }
.dv-browse-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.dnvn .dv-browse-head h2 { margin: 0; font-size: 21px; letter-spacing: -.55px; line-height: 1.35; font-weight: 700; }
.dv-browse-head p { margin: 0; color: #839193; font-size: 11px; }
.dv-province-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.dv-province { display: flex; align-items: center; gap: 8px; min-width: 0; background: #fff; border: 1px solid #e3ebe8; border-radius: 11px; padding: 11px 12px; font-size: 12px; font-weight: 600; transition: border-color .16s, background .16s, transform .16s; }
.dv-province span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dv-province .dv-icon { width: 15px; height: 15px; color: #92a7a7; }
.dv-province:hover { border-color: #bedbd3; background: #f6fbf9; transform: translateY(-1px); }
.dv-province:hover .dv-icon { color: var(--dv-teal); }
.dv-sector-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.dv-sector { display: flex; align-items: center; gap: 12px; min-width: 0; background: #fff; border: 1px solid #e3ebe8; border-radius: 13px; padding: 12px 14px; transition: border-color .16s, box-shadow .16s, transform .16s; }
.dv-sector:hover { border-color: #cee0dc; box-shadow: 0 8px 24px rgba(20, 67, 71, .07); transform: translateY(-1px); }
.dv-sector-ico { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; }
.dv-sector-ico .dv-icon { width: 17px; height: 17px; }
.dv-sector-ico svg.lucide { width: 18px; height: 18px; stroke-width: 1.8; }
.dv-sector-ico.teal { background: #e2f0ed; color: #367e76; }
.dv-sector-ico.sand { background: #f6eada; color: #a87e48; }
.dv-sector-ico.blue { background: #e5eff8; color: #5983aa; }
.dv-sector-ico.lilac { background: #eeeafa; color: #8571a9; }
.dv-sector-ico.rose { background: #f9eaea; color: #bb7980; }
.dv-sector-ico.slate { background: #edf0f1; color: #647b81; }
.dv-sector-name { flex: 1; min-width: 0; font-size: 12px; font-weight: 600; line-height: 1.45; }
.dv-sector-go { color: #b3c3c2; transition: transform .16s, color .16s; }
.dv-sector:hover .dv-sector-go { color: var(--dv-brand); transform: translateX(3px); }

/* ══ Hộp thoại giữa màn hình (thay ngăn kéo phải của harness) ══ */
.dv-modal { position: fixed; inset: 0; z-index: 1300; display: grid; place-items: center; padding: 24px; font-family: 'Be Vietnam Pro', system-ui, -apple-system, sans-serif; font-size: 14px; color: #162d34; -webkit-font-smoothing: antialiased; }
.dv-modal[hidden] { display: none; }
.dv-modal-scrim { position: absolute; inset: 0; background: rgba(17, 42, 48, .34); backdrop-filter: blur(2px); border: 0; padding: 0; opacity: 0; transition: opacity .23s; cursor: default; }
.dv-modal-panel { position: relative; background: #fff; border-radius: 19px; box-shadow: 0 24px 70px #16374130; width: min(720px, 100%); max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px); display: flex; flex-direction: column; overflow: hidden; opacity: 0; transform: translateY(14px) scale(.98); transition: opacity .23s, transform .26s cubic-bezier(.2, .7, .2, 1); }
.dv-modal-panel.is-narrow { width: min(490px, 100%); }
.dv-modal-panel.is-medium { width: min(580px, 100%); }
.dv-modal.is-open .dv-modal-scrim { opacity: 1; }
.dv-modal.is-open .dv-modal-panel { opacity: 1; transform: none; }
.dv-modal-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 25px 16px; border-bottom: 1px solid #edf1ee; flex-shrink: 0; }
.dv-modal-top-actions { display: flex; align-items: center; gap: 8px; }
.dv-eyebrow { color: #6a8987; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.dv-icon-btn { background: #f3f6f5; border: 0; border-radius: 10px; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; color: #617b7c; flex-shrink: 0; }
.dv-icon-btn:hover { background: #e7efec; color: var(--dv-brand, #15586a); }
.dv-open-page { display: inline-flex; align-items: center; gap: 6px; color: #15586a; font-size: 11px; font-weight: 700; padding: 8px 10px; border-radius: 9px; }
.dv-open-page:hover { background: #f3f6f5; color: #15586a; }
/* overflow-anchor: none — logo nạp xong làm phần đầu cao thêm, trình duyệt sẽ tự "neo" và cuộn
   thân hộp thoại xuống ~170px nếu để mặc định (đo được). */
.dv-modal-body { overflow: auto; overscroll-behavior: contain; overflow-anchor: none; padding: 25px 28px 30px; flex: 1; min-height: 0; }
.dv-modal-foot { padding: 17px 28px 22px; border-top: 1px solid #edf1ee; display: flex; flex-direction: column; gap: 10px; background: #fff; flex-shrink: 0; }
.dv-modal-foot:empty { display: none; }

/* Nội dung hộp thoại phụ (nhận quyền · lời mời) — cỡ chữ y harness */
.dv-modal h2.dv-m-title { font-size: 20px; letter-spacing: -.5px; margin: 3px 0 8px; font-weight: 800; line-height: 1.35; }
.dv-modal p.dv-m-text { font-size: 12px; color: #718589; line-height: 1.8; margin: 0; }
.dv-target { background: #f2f6f4; border-radius: 10px; padding: 12px; font-weight: 700; line-height: 1.5; font-size: 12px; color: #15586a; margin: 16px 0; }
.dv-step { display: flex; gap: 12px; align-items: start; margin: 16px 0; }
.dv-step-index { width: 26px; height: 26px; background: #e1f0eb; color: #247b69; border-radius: 50%; font-size: 11px; font-weight: 800; flex-shrink: 0; display: grid; place-items: center; }
.dv-step strong { font-size: 12px; display: block; }
.dv-step span { display: block; font-size: 11px; color: #829595; margin-top: 4px; line-height: 1.7; }
.dv-m-actions { display: flex; gap: 10px; margin-top: 20px; }
.dv-m-actions .dv-btn { flex: 1; }
.dv-field-label { font-size: 11px; font-weight: 700; color: #516c71; display: block; margin: 15px 0 7px; }
.dv-textarea { width: 100%; border: 1px solid #dce9e5; color: #31545b; border-radius: 10px; padding: 12px; font-size: 12px; outline: none; background: #fff; line-height: 1.8; resize: vertical; min-height: 170px; }
.dv-textarea:focus { border-color: #8ebbb2; }

/* ══ Thân chi tiết (dùng chung hộp thoại + trang) ══ */
.dv-profile { display: flex; align-items: flex-start; gap: 17px; }
.dv-profile .dv-mono { width: 72px; height: 72px; font-size: 25px; }
.dv-profile h2.dv-profile-name { margin: 1px 0 6px; font-size: 18px; line-height: 1.5; letter-spacing: -.35px; font-weight: 700; color: #162d34; }
.dv-profile-sub { font-size: 11px; color: #839193; margin: 0 0 10px; line-height: 1.6; }
.dv-copy { display: inline-flex; align-items: center; gap: 6px; border: 1px dashed #cfe0db; background: #fbfdfc; color: #3b5c60; border-radius: 8px; padding: 4px 8px; font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; }
.dv-copy:hover { border-style: solid; color: #15586a; }
.dv-copy .dv-icon { width: 13px; height: 13px; }

.dv-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 22px; }
.dv-fact { background: #f7faf9; border: 1px solid #e3eeeb; border-radius: 13px; padding: 13px 14px; min-width: 0; }
.dv-fact span { display: flex; align-items: center; gap: 6px; color: #839697; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.dv-fact span .dv-icon { width: 13px; height: 13px; color: #3d827e; }
.dv-fact b { display: block; margin-top: 6px; color: #314d51; font-size: 13px; line-height: 1.45; font-weight: 700; overflow-wrap: anywhere; }

.dv-section { margin-top: 27px; }
.dv-modal h3.dv-section-title, .dnvn h3.dv-section-title { font-size: 13px; margin: 0 0 13px; font-weight: 800; display: flex; align-items: center; gap: 8px; color: #162d34; }
.dv-table { border: 1px solid #e8efed; border-radius: 12px; overflow: hidden; }
.dv-row { display: grid; grid-template-columns: 125px 1fr; gap: 8px; padding: 13px 15px; font-size: 12px; line-height: 1.65; }
.dv-row:not(:last-child) { border-bottom: 1px solid #eef2f0; }
.dv-row-label { color: #839697; }
.dv-row-value { color: #314d51; font-weight: 600; overflow-wrap: anywhere; }
.dv-row-value a { color: #15586a; }
.dv-row-value a:hover { text-decoration: underline; }

.dv-trust { background: #f7faf9; border: 1px solid #e3eeeb; border-radius: 13px; padding: 18px; }
.dv-trust-heading { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 13px; margin-bottom: 12px; }
.dv-trust-heading .dv-icon { color: #3d827e; }
.dv-trust p { color: #708789; font-size: 12px; line-height: 1.85; margin: 0; }
.dv-tier-now { font-weight: 800; font-size: 26px; color: #167c77; letter-spacing: -.8px; line-height: 1.2; }
/* Bốn nấc tín nhiệm — nấc đang đạt sáng lên, nấc đã qua tô đặc */
.dv-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 16px 0 12px; }
.dv-steps li { list-style: none; position: relative; padding-top: 14px; font-size: 10px; font-weight: 700; color: #9aabab; line-height: 1.4; }
.dv-steps li::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 6px; border-radius: 10px; background: #e1eae6; }
.dv-steps li.is-done { color: #3d827e; }
.dv-steps li.is-done::before { background: #9dd3c2; }
.dv-steps li.is-current { color: #13816a; }
.dv-steps li.is-current::before { background: #289c82; box-shadow: 0 0 0 3px rgba(40, 156, 130, .15); }
.dv-steps { padding: 0; }

.dv-sectors { display: flex; flex-wrap: wrap; gap: 6px; }
.dv-sectors span { background: #eef6f3; color: #2f6b67; border-radius: 6px; padding: 5px 9px; font-size: 11px; font-weight: 600; }
.dv-source { color: #91a1a2; font-size: 10px; line-height: 1.75; margin: 17px 0 0; }
.dv-detail-actions { display: flex; flex-direction: column; gap: 10px; }
.dv-detail-actions .dv-btn { width: 100%; }
.dv-detail-actions .dv-row2 { display: flex; gap: 11px; }
/* min-width:0 — nút nowrap mà để min-width:auto thì hai nút đòi đủ bề rộng chữ và tràn khung hộp thoại ở 375px */
.dv-detail-actions .dv-row2 > * { flex: 1 1 0; min-width: 0; }

/* Khung xương hộp thoại khi đang nạp */
.dv-loading { display: flex; flex-direction: column; gap: 14px; }
.dv-loading i { display: block; height: 14px; border-radius: 8px; background: linear-gradient(100deg, #eef3f1 30%, #f8fbfa 50%, #eef3f1 70%) 0 0 / 300% 100%; animation: dv-shimmer 1.2s linear infinite; }
.dv-loading i:first-child { height: 72px; width: 72px; border-radius: 14px; }

/* ══ Trang chi tiết ══ */
.dv-page-hero .dv-container { padding: 28px 0 30px; }
.dv-back { display: inline-flex; align-items: center; gap: 7px; color: #15586a; font-size: 12px; font-weight: 700; margin-bottom: 16px; }
.dv-back .dv-icon { transform: rotate(180deg); }
.dv-back:hover { color: #104a5a; text-decoration: underline; }
.dv-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; padding: 28px 0 0; }
.dv-detail-main { background: #fff; border: 1px solid #e3ebe8; border-radius: 16px; padding: 28px; }
.dv-detail-side { position: sticky; top: calc(var(--dv-header-h, 72px) + 16px); display: flex; flex-direction: column; gap: 14px; }
.dv-side-card { background: #fff; border: 1px solid #e3ebe8; border-radius: 16px; padding: 20px; }
.dv-side-card .dv-eyebrow { display: block; margin-bottom: 12px; }
.dv-side-card p { margin: 0 0 14px; color: #708789; font-size: 12px; line-height: 1.8; }
.dv-similar { margin-top: 40px; }
/* Cột phải chỉ ~300px: hai nút phụ chữ dài ("Gửi cho chủ doanh nghiệp") xếp dọc, không tràn khung */
.dv-side-card .dv-detail-actions .dv-row2 { flex-direction: column; gap: 8px; }
.dv-side-card .dv-detail-actions .dv-row2 > * { flex: 0 0 auto; }

/* ══ Chủ doanh nghiệp & người quen (doanh nghiệp chưa có người quản lý) ══ */
.dv-friend { display: flex; gap: 13px; align-items: flex-start; background: linear-gradient(110deg, #ebf4f0 0, #f3f7f4 100%); border: 1px solid #cfe5dd; border-radius: 14px; padding: 15px 16px; margin-bottom: 22px; }
.dv-friend-ico { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--dv-teal); display: grid; place-items: center; box-shadow: 0 2px 8px rgba(19, 72, 70, .08); }
.dv-friend-ico .dv-icon { width: 16px; height: 16px; }
.dv-friend strong { display: block; font-size: 13px; font-weight: 800; color: var(--dv-brand); line-height: 1.45; }
.dv-friend p { margin: 4px 0 0; font-size: 12px; color: #5f7a7b; line-height: 1.7; }

.dv-trust:has(.dv-claimpitch) { background: #fff; padding: 0; border: 0; }
.dv-claimpitch { border: 1px solid #e3eeeb; border-radius: 13px; overflow: hidden; }
.dv-cp-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 18px 16px; background: radial-gradient(circle at 92% 10%, #e2f3ef 0, transparent 45%), #f7faf9; border-bottom: 1px solid #e3eeeb; }
.dv-cp-kicker { display: inline-flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #a87e48; background: #f6eada; border-radius: 6px; padding: 4px 8px; margin-bottom: 9px; }
.dv-cp-title { font-size: 15px; font-weight: 700; line-height: 1.5; color: #203b43; letter-spacing: -.2px; }
.dv-cp-title b { color: var(--dv-teal); font-weight: 800; }
/* Vòng phần trăm — vẽ bằng conic-gradient từ --p (0–100) */
.dv-cp-ring { --p: 0; flex: 0 0 auto; width: 64px; height: 64px; border-radius: 50%; background: conic-gradient(#289c82 calc(var(--p) * 1%), #e1eae6 0); display: grid; place-items: center; }
.dv-cp-ring span { width: 50px; height: 50px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-size: 13px; font-weight: 800; color: var(--dv-teal); font-variant-numeric: tabular-nums; }
.dv-cp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.dv-cp-cols > div { padding: 15px 18px 16px; }
.dv-cp-cols > div + div { border-left: 1px solid #eef2f0; background: #fbfcfc; }
.dv-cp-sub { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #839697; margin-bottom: 10px; }
.dv-cp-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.dv-cp-list li { display: flex; align-items: center; gap: 8px; font-size: 12px; line-height: 1.45; color: #314d51; }
.dv-cp-list .dv-icon { width: 14px; height: 14px; flex-shrink: 0; }
.dv-cp-list li.is-has .dv-icon { color: #289c82; }
.dv-cp-list li.is-miss { color: #9aabab; }
.dv-cp-list li.is-miss .dv-icon { color: #c9d4d2; }
.dv-cp-list.is-locked li { color: #6d8584; }
.dv-cp-list.is-locked .dv-icon { color: #a87e48; }
.dv-cp-foot { margin: 0; padding: 12px 18px 14px; border-top: 1px solid #eef2f0; font-size: 12px; color: #708789; line-height: 1.7; }
.dv-cp-foot b { color: var(--dv-teal); }

.dv-claim-badge { display: inline-flex; align-items: center; gap: 6px; background: #e3f5ed; color: #13816a; border-radius: 30px; padding: 6px 11px; font-size: 11px; font-weight: 700; margin-bottom: 10px; }
.dv-m-note { margin: 14px 0 0; text-align: center; font-size: 12px; color: #839193; }
.dv-m-note a { color: #15586a; font-weight: 700; }

/* ── Hộp thoại chia sẻ ── */
.dv-share-preview { margin: 16px 0; border: 1px solid #e3ebe8; border-left: 3px solid #289c82; border-radius: 10px; padding: 11px 13px; background: #fbfcfc; }
.dv-share-preview-host { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: #93a4a6; font-weight: 700; }
.dv-share-preview-title { font-size: 13px; font-weight: 700; color: #203b43; margin: 4px 0 3px; line-height: 1.45; }
.dv-share-preview-desc { font-size: 11px; color: #839193; line-height: 1.6; }
.dv-share-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.dv-share-btn { display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; background: #fff; border: 1px solid #e3ebe8; border-radius: 12px; padding: 10px 2px 8px; color: #5f7477; transition: border-color .16s, transform .16s, background .16s; }
.dv-share-btn:hover { border-color: #bedbd3; background: #f6fbf9; transform: translateY(-1px); }
/* PO 20/10/2026: giữ khung + tên, nhưng icon to hơn, chữ nhỏ lại */
.dv-share-label { font-size: 9.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; letter-spacing: .01em; }
.dv-share-ico { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 11px; letter-spacing: -.3px; }
.dv-share-ico .dv-icon { width: 20px; height: 20px; }
.dv-share-ico.zalo { background: #0068ff; font-size: 11px; }
.dv-share-ico.fb { background: #1877f2; font-size: 21px; font-family: Georgia, serif; }
.dv-share-ico.ms { background: linear-gradient(135deg, #00b2ff, #a033ff); }
.dv-share-ico.em { background: #e2f0ed; color: #367e76; }
.dv-share-ico.sm { background: #e5eff8; color: #5983aa; }
.dv-share-ico.qr { background: #15586a; }
.dv-share-qr { margin-top: 14px; display: flex; align-items: center; gap: 16px; border: 1px dashed #cfe0db; border-radius: 12px; padding: 14px; background: #fbfdfc; }
.dv-share-qr[hidden] { display: none; }
.dv-share-qr p { margin: 0; font-size: 12px; color: #708789; line-height: 1.7; }
.dv-share-qr img, .dv-share-qr canvas { display: block; border-radius: 6px; }
.dv-share-link { display: flex; gap: 8px; margin-top: 10px; }
.dv-share-link input { flex: 1; min-width: 0; border: 1px solid #dce9e5; border-radius: 10px; padding: 11px 12px; font-size: 12px; color: #4b6468; background: #f7faf9; font-variant-numeric: tabular-nums; }
.dv-share-link .dv-btn-outline { flex-shrink: 0; }
.dv-share-ref { display: flex; align-items: flex-start; gap: 7px; margin: 12px 0 0; font-size: 11px; color: #8a6a3d; background: #fbf4ea; border-radius: 9px; padding: 9px 11px; line-height: 1.6; }
.dv-share-ref[hidden] { display: none; }
.dv-share-ref .dv-icon { margin-top: 2px; color: #a87e48; }
.dv-share-ref a { color: #15586a; font-weight: 700; }

.dv-mobile-cta { display: none; }
@media (max-width: 850px) {
    .dv-mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1035; display: flex; gap: 10px; align-items: center; padding: 10px 16px; background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); border-top: 1px solid #e3ebe8; box-shadow: 0 -8px 24px rgba(20, 63, 67, .07); font-family: 'Be Vietnam Pro', system-ui, sans-serif; }
    .dv-mobile-cta .dv-btn { flex: 1; padding: 13px 16px; }
    .dv-mobile-share { width: 46px; height: 46px; border-radius: 11px; }
    .dnvn[data-dv-page] { padding-bottom: 72px; }
}
/* Dưới 768 có thanh điều hướng đáy của site (62px) — đứng ngay trên nó */
@media (max-width: 767px) {
    .dv-mobile-cta { bottom: calc(var(--vne-bottom-nav-h, 62px) + var(--vne-bottom-nav-inset, 0px)); }
}

/* ══ Báo cáo nhận diện doanh nghiệp (thân chi tiết, 20/10/2026) ══ */
.dv-icon-btn[hidden], .dv-open-page[hidden] { display: none; }
.dv-modal-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.dv-modal-brand img { height: 32px; width: auto; display: block; }
@media (max-width: 550px) { .dv-modal-brand img { height: 26px; } }
.dv-modal-brand .dv-eyebrow { padding-left: 12px; border-left: 1px solid #e3ebe8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv-modal-brand .dv-eyebrow[hidden] { display: none; }
.dv-report { border: 1px solid #e3ebe8; border-radius: 14px; padding: 18px 18px 0; background: #fff; }
.dv-report-eyebrow { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #6a8987; margin-bottom: 12px; }
.dv-report-head { display: flex; gap: 15px; align-items: flex-start; }
.dv-report-head .dv-mono { width: 64px; height: 64px; font-size: 22px; }
.dv-report-id { min-width: 0; flex: 1; }
.dv-modal h2.dv-report-name, .dnvn h2.dv-report-name { margin: 0 0 4px; font-size: 19px; font-weight: 800; line-height: 1.35; letter-spacing: -.4px; color: #15586a; text-transform: uppercase; }
.dv-report-id .dv-profile-sub { margin-bottom: 8px; }
.dv-report-status { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 14px 0 6px; }
.dv-report-checked { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: #839193; white-space: nowrap; }
.dv-report-checked .dv-icon { width: 14px; height: 14px; }
.dv-legal { margin: 12px 0 16px; display: flex; flex-direction: column; gap: 2px; }
/* Không kẻ đường ngăn (PO: "tag hr nhìn quê") — tách dòng bằng nhịp khoảng trắng, hover tô nền nhẹ */
.dv-legal > div { display: grid; grid-template-columns: 210px 1fr; gap: 12px; padding: 8px 10px; margin: 0 -10px; border-radius: 9px; font-size: 12px; line-height: 1.6; transition: background .15s; }
.dv-legal > div:hover { background: #f5f9f8; }
.dv-legal dt { display: flex; align-items: flex-start; gap: 9px; color: #708789; }
.dv-legal dt .dv-icon { width: 15px; height: 15px; color: #92a7a7; margin-top: 2px; }
.dv-legal dd { margin: 0; color: #203b43; font-weight: 700; overflow-wrap: anywhere; }
.dv-legal dd a { color: #15586a; }
.dv-source { display: flex; align-items: center; gap: 9px; margin: 4px -18px 0; padding: 11px 18px; background: #f3f7f6; border-radius: 0 0 13px 13px; font-size: 11px; color: #5f7477; }
.dv-source .dv-icon { width: 16px; height: 16px; color: #6a8987; }
.dv-source b { color: #34484d; }

.dv-caps { text-transform: uppercase; letter-spacing: .03em; }
.dv-trustgrid { display: flex; flex-direction: column; gap: 6px; }
.dv-trustrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; font-size: 12.5px; background: #f7faf9; border-radius: 11px; }
.dv-trustrow-label { display: flex; align-items: center; gap: 9px; font-weight: 600; color: #203b43; }
.dv-trustrow-label .dv-icon { width: 16px; height: 16px; color: #6a8987; }
.dv-pillstate { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; border-radius: 30px; padding: 5px 11px; white-space: nowrap; }
.dv-pillstate.ok { color: #13816a; background: #e3f5ed; }
.dv-pillstate.ok::before { content: '✓'; display: grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; background: #289c82; color: #fff; font-size: 9px; }
.dv-pillstate.info { color: #2c7396; background: #e8f3f9; }
.dv-pillstate.off { color: #8b8d89; background: #f1f3f2; }

.dv-trustmark { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 22px; padding: 18px 20px; border-radius: 14px; color: #fff; background: radial-gradient(circle at 85% 0, rgba(143, 206, 189, .25), transparent 45%), linear-gradient(135deg, #104a5a, #15586a 60%, #167c77); }
.dv-trustmark-title { font-size: 18px; font-weight: 800; letter-spacing: -.3px; }
.dv-trustmark p { margin: 6px 0 10px; font-size: 12px; line-height: 1.65; color: rgba(255,255,255,.82); max-width: 300px; }
.dv-trustmark a { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-size: 12px; font-weight: 700; }
.dv-trustmark a:hover { color: #fff; text-decoration: underline; }
.dv-trustmark-qr { flex: 0 0 auto; background: #fff; padding: 7px; border-radius: 10px; line-height: 0; }
.dv-trustmark-qr img, .dv-trustmark-qr canvas { display: block; }

.dv-advice { display: flex; align-items: center; gap: 14px; padding: 15px 16px; border-radius: 13px; border: 1px solid; color: inherit; }
a.dv-advice:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(20, 67, 71, .07); color: inherit; }
.dv-advice.ok { background: #f2faf6; border-color: #cfe8dc; }
.dv-advice.warn { background: #fdf8f1; border-color: #efdfc6; }
.dv-advice.stop { background: #fcf3f3; border-color: #f0d2d4; }
.dv-advice-ico { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; color: #fff; }
.dv-advice-ico .dv-icon { width: 22px; height: 22px; }
.dv-advice.ok .dv-advice-ico { background: #289c82; }
.dv-advice.warn .dv-advice-ico { background: #c4955a; }
.dv-advice.stop .dv-advice-ico { background: #c4747b; }
.dv-advice-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.dv-advice-body b { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #203b43; }
.dv-advice-body i { align-self: flex-start; font-style: normal; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 20px; }
.dv-advice.ok .dv-advice-body i { color: #13816a; background: #e3f5ed; }
.dv-advice.warn .dv-advice-body i { color: #a87e48; background: #f6eada; }
.dv-advice.stop .dv-advice-body i { color: #b45f67; background: #f9eaea; }
.dv-advice-body span { font-size: 12px; color: #5f7477; line-height: 1.65; }
.dv-advice-go { color: #8ba0a0; flex-shrink: 0; }
.dv-source-note { display: flex; align-items: flex-start; gap: 7px; color: #91a1a2; font-size: 11px; line-height: 1.7; margin: 18px 0 0; }
.dv-source-note .dv-icon { margin-top: 2px; }
.dv-side-card .dv-actions-ask:not(.is-owner) { display: none; }
.dv-actions-ask.is-owner { display: inline-flex !important; align-self: center; align-items: center; gap: 6px; color: #13816a; background: #e3f5ed; border-radius: 30px; padding: 5px 11px; } /* cột phải đã có tiêu đề "Chủ doanh nghiệp?" */
.dv-actions-ask { display: block; text-align: center; font-size: 11px; font-weight: 700; color: #6a8987; letter-spacing: .02em; margin-bottom: -2px; }

/* Không thấy doanh nghiệp của mình (tình huống 4) */
.dv-claim-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* ══ Mọi dòng chữ trên thẻ: tối đa 2 dòng, xuống dòng THEO TỪ (PO 20/10/2026) ══
   CSS cắt dự phòng ở 2 dòng (khi chưa/không có JS); index.js clampWords() thay bằng bản bỏ CẢ TỪ cuối
   rồi thêm "…" — line-clamp của trình duyệt có thể cắt giữa chữ. */
.dv-cards [data-dv-clamp] { display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; white-space: normal !important; overflow-wrap: normal; word-break: normal; text-overflow: clip; min-width: 0; }
.dv-cards .dv-lines li, .dv-cards .dv-pcard-facts li, .dv-cards .dv-pcard-rep { height: auto; align-items: flex-start; }
.dv-cards .dv-lines li .dv-icon, .dv-cards .dv-pcard-facts li .dv-icon, .dv-cards .dv-pcard-rep .dv-icon { margin-top: 2px; }
.dv-cards .dv-lines li.is-addr { min-height: 0; }
a.dv-pcard-brand { line-height: 1.35; }

/* Cả thẻ bấm được (mở Xem nhanh) — trừ chân thẻ */
.dv-cards [data-dv-card-url] { cursor: pointer; }
.dv-cards .dv-card-foot, .dv-cards .dv-pcard-cta { cursor: auto; }

.dv-empty > .dv-icon { display: block; margin: 0 auto; }
/* Nút trong ô "Chưa tìm thấy": icon nút KHÔNG ăn cỡ 38px của icon kính lúp (.dv-empty .dv-icon) */
.dv-empty .dv-btn .dv-icon, .dv-empty .dv-btn-outline .dv-icon { width: 15px; height: 15px; color: currentColor; }
.dv-empty .dv-claim-actions .dv-btn, .dv-empty .dv-claim-actions .dv-btn-outline { padding: 12px 18px; }
a.dv-inline-link { color: #15586a; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
a.dv-inline-link:hover { color: #104a5a; }
.dv-claim > .dv-btn { flex-shrink: 0; padding: 13px 20px; }

/* Cột phải trang chi tiết: nút gọn — chính cao vừa, hai nút phụ nhỏ nằm một hàng */
.dv-side-card .dv-detail-actions .dv-btn { padding: 12px 16px; }
.dv-side-card .dv-detail-actions .dv-row2 { flex-direction: row; gap: 8px; }
.dv-side-card .dv-detail-actions .dv-row2 > * { flex: 1 1 0; min-width: 0; padding: 9px 8px; font-size: 11.5px; white-space: normal; text-align: center; line-height: 1.3; border-radius: 9px; }
.dv-side-card .dv-detail-actions .dv-row2 .dv-icon { width: 13px; height: 13px; }

/* ── Toast ── */
.dv-toast { position: fixed; z-index: 1400; bottom: calc(28px + 56px); left: 50%; transform: translate(-50%, 30px); opacity: 0; pointer-events: none; border-radius: 12px; background: #163e49; color: #fff; padding: 14px 20px; box-shadow: 0 8px 25px #183f4740; font-family: 'Be Vietnam Pro', system-ui, sans-serif; font-size: 12px; transition: .25s; max-width: calc(100vw - 32px); }
.dv-toast.is-show { opacity: 1; transform: translate(-50%, 0); }

/* ── Link mang class dv-: theme vne-v3 có `.vne-v3 a { color: inherit }` (độ ưu tiên 0,1,1) thắng
   `.dv-btn` (0,1,0) → chữ nút thành màu mực tối trên nền teal. Ghi lại màu với tiền tố `a.` để hoà
   độ ưu tiên; file này nạp SAU vne-v3.min.css nên thắng. ── */
a.dv-btn, a.dv-btn:hover { color: #fff; }
a.dv-btn-outline, a.dv-btn-outline:hover { color: var(--dv-brand); }
a.dv-chip { color: #526d71; }
a.dv-chip:hover, a.dv-chip.is-active { color: var(--dv-brand); }
a.dv-toggle { color: #566e71; }
a.dv-toggle:hover, a.dv-toggle.is-checked { color: #197469; }
a.dv-reset { color: var(--dv-brand); }
a.dv-reset:hover { color: var(--dv-brand-dark); }
a.dv-pill, a.dv-pill:hover { color: #2f5a5f; }
a.dv-name { color: #203b43; }
a.dv-name:hover { color: var(--dv-brand); }
a.dv-action, a.dv-action:hover { color: #61797a; }
a.dv-action.main, a.dv-action.main:hover { color: var(--dv-brand); }
a.dv-load, a.dv-load:hover { color: var(--dv-brand); }
a.dv-open-page, a.dv-open-page:hover { color: #15586a; }
a.dv-back { color: #15586a; }
a.dv-province { color: #3a5357; }
a.dv-province:hover { color: var(--dv-brand); }
a.dv-sector, a.dv-sector:hover { color: #203b43; }
a.dv-back:hover { color: #104a5a; }

/* ══ Responsive — mốc giữ y harness (1050 · 850 · 550) ══ */
@media (max-width: 1050px) {
    .dv-headline { flex-direction: column; align-items: flex-start; }
    .dv-assure { flex-direction: row; flex-wrap: wrap; gap: 8px 18px; background: transparent; border: 0; padding: 0; }
    .dv-province-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .dv-name { font-size: 14px; }
    .dv-card { padding: 18px 18px 12px; }
    .dv-cover { margin: -18px -18px 0; }
    .dv-detail-grid { grid-template-columns: minmax(0, 1fr) 300px; }
}
@media (max-width: 850px) {
    .dv-container { width: min(100% - 32px, 700px); }
    .dv-hero .dv-container { padding: 32px 0; }
    /* Thanh lọc thành lưới 2 cột (3 ô chọn + nút "Có hồ sơ VNE" = 2 hàng, "Xóa bộ lọc" cuối) —
       để flex-wrap thì ô thứ hai bị bóp còn ~150px và cắt chữ, nút xoá rơi lẻ một dòng. */
    .dv-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .dv-select { min-width: 0; }
    .dv-select select { text-overflow: ellipsis; }
    .dv-spacer { display: none; }
    .dv-reset { grid-column: 1 / -1; justify-self: end; padding: 4px 6px; }
    .dv-cards { grid-template-columns: 1fr; }
    .dv-card { min-height: 212px; }
    .dv-claim { flex-direction: column; align-items: flex-start; }
    .dv-province-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .dv-sector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dv-detail-grid { grid-template-columns: 1fr; }
    .dv-detail-side { position: static; }
    .dv-detail-main { padding: 22px; }
}
/* Tablet dọc 768–850: còn chỗ cho 2 cột thẻ — hẹp hơn mới xếp 1 cột */
@media (min-width: 640px) and (max-width: 850px) {
    .dv-container { width: calc(100% - 48px); max-width: none; }
    .dv-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dv-card-foot { flex-wrap: wrap; }
}
@media (max-width: 767px) {
    .dv-catalog { padding-bottom: calc(60px + 62px); }
    .dv-toast { bottom: calc(20px + 62px); }
}
@media (max-width: 550px) {
    .dv-hero .dv-container { padding: 26px 0 28px; }
    .dv-crumb { margin-bottom: 12px; }
    .dv-headline { margin-bottom: 19px; }
    .dnvn h1.dv-title { letter-spacing: -1.1px; font-size: 28px; }
    .dv-lead { font-size: 12px; }
    .dv-search { min-height: 59px; padding: 6px 6px 6px 13px; border-radius: 13px; gap: 9px; }
    .dv-search input { font-size: 13px; }
    .dv-kbd { display: none; }
    .dv-search .dv-btn { padding: 13px; font-size: 0; gap: 0; }
    .dv-search .dv-btn .dv-icon { width: 18px; height: 18px; }
    /* Màn hẹp: bỏ nút, để vuốt; kéo dải cuộn sát mép phải để chip bị cắt chạy hết ra mép (dấu hiệu "còn nữa"). */
    .dv-quick { gap: 7px; }
    .dv-qnav, .dv-quick:not([data-scrollable]) .dv-qnav { display: none; }
    .dv-quick-viewport { margin-right: -16px; }
    .dv-quick-track { gap: 7px; padding-right: 16px; }
    .dv-chip { padding: 7px 10px; white-space: nowrap; flex-shrink: 0; }
    .dv-quick-label { flex-shrink: 0; }
    .dv-catalog { padding-top: 18px; }
    .dv-select select { font-size: 11px; padding: 11px 22px 11px 33px; }
    .dv-select .dv-icon { left: 10px; width: 14px; }
    .dv-select::after { right: 9px; }
    .dv-toggle { font-size: 11px; padding: 11px; }
    .dv-reset { font-size: 11px; }
    .dv-results-head { align-items: start; margin-top: 25px; }
    .dnvn .dv-results-head h2 { font-size: 18px; }
    .dv-sort select { font-size: 10px; max-width: 125px; }
    .dv-card { padding: 16px 16px 12px; min-height: 214px; }
    .dv-mono { width: 55px; height: 55px; font-size: 19px; }
    .dv-cover { margin: -16px -16px 0; height: 74px; }
    .dv-card.is-rich .dv-details { padding-top: 30px; }
    .dv-card-main { gap: 12px; }
    .dv-name { font-size: 13px; }
    .dv-meta { gap: 8px; }
    .dv-claim { padding: 22px; }
    .dv-assure li { white-space: normal; font-size: 11px; }
    .dv-browse { margin-top: 34px; }
    .dnvn .dv-browse-head h2 { font-size: 18px; }
    .dv-browse-head { flex-direction: column; align-items: flex-start; gap: 4px; }
    .dv-province-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dv-sector-grid { grid-template-columns: 1fr; }

    .dv-modal { padding: 12px; }
    .dv-modal-panel { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); border-radius: 17px; }
    .dv-modal-top { padding: 15px 18px 13px; }
    .dv-modal-body { padding: 20px 18px 22px; }
    .dv-modal-foot { padding: 14px 18px 18px; }
    .dv-open-page span { display: none; }
    .dv-profile { gap: 13px; }
    .dv-profile .dv-mono { width: 58px; height: 58px; font-size: 20px; }
    .dv-profile h2.dv-profile-name { font-size: 16px; }
    .dv-facts { grid-template-columns: 1fr 1fr; }
    .dv-facts .dv-fact:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .dv-row { grid-template-columns: 105px 1fr; }
    .dv-detail-actions .dv-row2 { gap: 8px; }
    .dv-detail-actions .dv-row2 > * { white-space: normal; padding: 11px 8px; text-align: center; }
    .dv-detail-actions .dv-row2 .dv-icon { display: none; }
    .dv-report { padding: 15px 14px 0; }
    .dv-report-head .dv-mono { width: 54px; height: 54px; font-size: 19px; }
    .dv-modal h2.dv-report-name, .dnvn h2.dv-report-name { font-size: 16px; }
    .dv-legal > div { grid-template-columns: 1fr; gap: 3px; padding: 7px 8px; margin: 0 -8px; }
    .dv-source { margin: 4px -14px 0; padding: 10px 14px; }
    .dv-trustrow { padding: 10px 12px; font-size: 12px; }
    .dv-trustmark { padding: 16px; }
    .dv-trustmark-title { font-size: 16px; }
    .dv-cp-head { padding: 15px 14px 13px; }
    .dv-cp-title { font-size: 14px; }
    .dv-cp-ring { width: 54px; height: 54px; }
    .dv-cp-ring span { width: 42px; height: 42px; font-size: 12px; }
    .dv-cp-cols { grid-template-columns: 1fr; }
    .dv-share-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .dv-cp-cols > div { padding: 13px 14px; }
    .dv-cp-cols > div + div { border-left: 0; border-top: 1px solid #eef2f0; }
    .dv-cp-foot { padding: 11px 14px 13px; }
    .dv-share-qr { flex-direction: column; text-align: center; }
    .dv-steps li { font-size: 9px; }
    .dv-detail-main { padding: 18px; border-radius: 14px; }
}
/* Thiết bị cảm ứng không có bàn phím vật lý — gợi ý phím "/" vô nghĩa */
@media (hover: none) {
    .dv-kbd { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .dnvn *, .dv-modal * { animation: none !important; transition: none !important; }
}
