/* ==========================================================================
   LABO + CÔNG TY VẬT TƯ — thẻ danh sách v3 (partials/lb3-card.ejs), cùng họ với .v3-place (ds-place-card).
   Màu chủ đạo theo khu vực: labo = xanh dương (--ds-blue-*), vật tư = tím (--ds-violet-*). Tiền tố lb3-. Token --ds-* (p-ds.css).
   Chỉ desktop 1440 (mobile làm đợt sau). Không vạch trái, không thanh cuộn, chữ nguyên px (10–15).
   ========================================================================== */
.lb3-card { --lb-50: var(--ds-blue-50); --lb-100: var(--ds-blue-100); --lb-500: var(--ds-blue-500); --lb-600: var(--ds-blue-600); --lb-700: var(--ds-blue-700); --lb-g1: #dbe8fd; --lb-g2: #c4d9fb; }
.lb3-card[data-k="sup"] { --lb-50: var(--ds-violet-50); --lb-100: var(--ds-violet-100); --lb-500: var(--ds-violet-500); --lb-600: #5b3fd0; --lb-700: var(--ds-violet-700); --lb-g1: #e6e0fb; --lb-g2: #d3c8f7; }

/* ô trái: nền nhuộm + logo lớn */
.lb3-card .lb3-ph { display: grid; place-items: center; overflow: hidden; background: linear-gradient(135deg, var(--lb-g1), var(--lb-g2)); }
.lb3-card .lb3-ph::before, .lb3-card .lb3-ph::after { content: ''; position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .34); pointer-events: none; }
.lb3-card .lb3-ph::before { width: 150px; height: 150px; right: -48px; bottom: -64px; }
.lb3-card .lb3-ph::after { width: 70px; height: 70px; left: -22px; top: -26px; background: rgba(255, 255, 255, .22); }
.lb3-lg { position: relative; z-index: 1; width: 64px; height: 64px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; background: #fff; color: var(--lb-600); font-size: 20px; font-weight: var(--ds-fw-800); letter-spacing: -.02em; box-shadow: 0 0 0 3px rgba(255, 255, 255, .6), 0 6px 16px rgba(19, 33, 60, .14); }
.lb3-lg img { width: 100%; height: 100%; object-fit: cover; position: static; display: block; }
.lb3-card[data-tier="vip"] .lb3-lg, .lb3-card[data-tier="super"] .lb3-lg { box-shadow: 0 0 0 3px var(--ds-gold-400), 0 6px 16px rgba(19, 33, 60, .14); }
.lb3-card[data-tier="sponsor"] .lb3-lg { box-shadow: 0 0 0 3px var(--ds-orange-500), 0 6px 16px rgba(19, 33, 60, .14); }
.lb3-card[data-tier="verified"] .lb3-lg { box-shadow: 0 0 0 3px var(--ds-mint-500), 0 6px 16px rgba(19, 33, 60, .14); }
.lb3-card .lb3-ph .ds-chip { z-index: 2; }
.lb3-card .ds-chip.lb3-un { background: #fff; color: var(--ds-ink-500); }
.lb3-card[data-un="1"] .lb3-lg { color: var(--ds-ink-500); box-shadow: 0 0 0 3px rgba(255, 255, 255, .6), 0 4px 12px rgba(19, 33, 60, .08); }
.lb3-card[data-un="1"] .lb3-ph { background: linear-gradient(135deg, #eef1f6, #e2e7ef); }

/* thân thẻ */
.lb3-body { gap: 6px; }
.lb3-card .v3-name i { color: var(--ds-mint-500); }
.lb3-card .v3-name a:hover { color: var(--lb-600); }
.lb3-km { display: inline-flex; align-items: center; gap: 3px; margin-left: auto; padding-left: 8px; font-size: var(--ds-fs-11); color: var(--ds-ink-500); flex: none; }
.lb3-km i { color: var(--lb-500); font-size: 12px; }
.lb3-card .v3-addr > span:nth-child(2) { flex: 0 1 auto; }
.lb3-facts { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: var(--ds-fs-12); color: var(--ds-ink-700); min-width: 0; }
.lb3-facts > span { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.lb3-facts > span > i { font-size: 14px; color: var(--lb-500); flex: none; }
.lb3-facts b { font-weight: var(--ds-fw-700); color: var(--ds-ink-900); }
.lb3-vm > span { color: var(--ds-ink-500); }
.lb3-vm b { color: var(--ds-ink-900); }
.lb3-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.lb3-tags .v3-tag { height: 22px; background: var(--lb-50); color: var(--lb-700); font-weight: var(--ds-fw-500); }
.lb3-tags .v3-tag i { color: var(--lb-500); }
.lb3-sum { margin: 0; font-size: var(--ds-fs-12); line-height: 1.55; color: var(--ds-ink-500); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lb3-note { display: flex; align-items: center; gap: 6px; font-size: var(--ds-fs-11); color: var(--ds-ink-400); }
.lb3-note i { font-size: 13px; flex: none; }

/* chân thẻ: ghi chú liên hệ (trái) · nút (phải) */
.lb3-foot { justify-content: space-between; margin-top: 4px; padding-top: 8px; border-top: 1px solid var(--ds-line); }
.lb3-ph-note { display: inline-flex; align-items: center; gap: 5px; font-size: var(--ds-fs-11); color: var(--ds-ink-400); min-width: 0; }
.lb3-ph-note i { font-size: 13px; }
.lb3-ph-note a { display: inline-flex; align-items: center; gap: 5px; font-size: var(--ds-fs-12); font-weight: var(--ds-fw-600); color: var(--ds-mint-700); }
.lb3-ph-note a i { color: var(--ds-mint-500); font-size: 14px; }
.lb3-ph-note a:hover { text-decoration: underline; }
.lb3-cta { background: var(--lb-500); color: #fff; }
.lb3-cta:hover { background: var(--lb-600); box-shadow: 0 4px 14px rgba(31, 98, 214, .28); }
.lb3-card[data-k="sup"] .lb3-cta:hover { box-shadow: 0 4px 14px rgba(107, 79, 216, .3); }
.lb3-card .ds-btn--soft i { color: var(--lb-500); }
.lb3-card:hover { border-color: var(--lb-g2); }

/* danh sách: khoảng cách đều, ghim = nền nhạt cùng họ (không khung bao) */
.dm-lay .rows .rlist, .dm-lay .pinv .rlist { display: grid; gap: 12px; }
.dm-lay .pinv .lb3-card { background: #fffaf0; border-color: #f0d98f; }
.dm-lay .pinv .lb3-card .lb3-foot { border-top-color: #f3e6bd; }

/* màu khu vực cho phần đầu trang (labo xanh dương, vật tư tím) */
body[data-sec="labo"] .dm-page .phead .eyebrow, body[data-sec="vat-tu"] .dm-page .phead .eyebrow { font-size: var(--ds-fs-10); font-weight: var(--ds-fw-700); letter-spacing: .1em; }
body[data-sec="labo"] .dm-page .stat b { color: var(--ds-blue-700); }
body[data-sec="vat-tu"] .dm-page .stat b { color: var(--ds-violet-700); }
body[data-sec="labo"] .dm-page .jdd-b > i:first-child, body[data-sec="labo"] .dm-page .jsort a.on i { color: var(--ds-blue-500) !important; }
body[data-sec="vat-tu"] .dm-page .jdd-b > i:first-child, body[data-sec="vat-tu"] .dm-page .jsort a.on i { color: var(--ds-violet-500) !important; }
body[data-sec="labo"] .dm-page .pill.on { background: var(--ds-blue-100); border-color: var(--ds-blue-200); color: var(--ds-blue-700); }
body[data-sec="vat-tu"] .dm-page .pill.on { background: var(--ds-violet-100); border-color: #cfc3f5; color: var(--ds-violet-700); }
.dm-page .legend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 4px 0 12px; font-size: var(--ds-fs-11); color: var(--ds-ink-500); }
.dm-page .legend > span { display: inline-flex; align-items: center; gap: 6px; }

/* ô trái cao bằng cả thẻ (logo giữa nền nhuộm) — thắng quy tắc theo hạng của .v3-place (nền nâu/tím) để cả họ cùng một tông khu vực */
.dm-lay .lb3-card.v3-place, .lb3-card.v3-place { grid-template-columns: 196px minmax(0, 1fr); align-items: stretch; }
.lb3-card .v3-ph.lb3-ph { aspect-ratio: auto; align-self: stretch; height: auto; min-height: 132px; background: linear-gradient(135deg, var(--lb-g1), var(--lb-g2)); }
.lb3-card[data-un="1"] .v3-ph.lb3-ph { background: linear-gradient(135deg, #eef1f6, #e2e7ef); }
.lb3-card .lb3-body { padding: 2px 2px 0 0; align-content: start; }
.lb3-card .lb3-foot { align-self: end; }

/* tương phản chữ phụ ≥ 4.5:1 */
.lb3-ph-note, .lb3-note { color: var(--ds-ink-500); }
.lb3-card .ds-chip--sponsor { background: var(--ds-orange-700); }
