/* ═══════════════════════════════════════════════════════════════════════════
   public/assets/css/explore.css — /kham-pha (public/vocab/sets.php). Tách từ <style> nhúng 22/09/2026:
   chỉ giữ phần CÒN DÙNG (hero kp-*, hàng thư mục, thẻ fc-*, lưới ve-grid của trang "Xem tất cả", hộp lưu thư mục sf-*).
   Phần vc-* (Theo cấp độ), ve-card/ve-src (Khám phá bộ), fh-* (bộ lọc cũ) đã gỡ cùng markup.
   ═══════════════════════════════════════════════════════════════════════════ */
.vp-wrap { max-width: 1280px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-16);}
.ve-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(268px, 1fr)); gap: var(--space-3);}
.fc-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    display: flex; flex-direction: column;
    transition: box-shadow .18s ease, border-color .18s ease;
    --fc-tone: var(--color-muted);
    --fc-tone-soft: var(--color-soft);
    --fc-tone-deep: var(--color-ink);}
.fc-card:hover {
    box-shadow: 0 10px 26px -18px color-mix(in srgb, var(--color-primary-deep) 55%, transparent);
    border-color: color-mix(in srgb, var(--fc-tone) 38%, var(--color-border));}
.fc-card--track-foundation { --fc-tone: var(--color-secondary); --fc-tone-soft: var(--color-secondary-soft); --fc-tone-deep: var(--color-secondary-deep);}
.fc-card--track-ielts { --fc-tone: var(--color-accent);    --fc-tone-soft: var(--color-accent-soft);    --fc-tone-deep: var(--color-accent-deep);}
.fc-card--track-toeic { --fc-tone: var(--color-warning);   --fc-tone-soft: var(--color-warning-soft);   --fc-tone-deep: var(--color-warning-deep);}
.fc-card--track-topic { --fc-tone: var(--color-primary);   --fc-tone-soft: var(--color-primary-soft);   --fc-tone-deep: var(--color-primary-deep);}
.fc-card__name-link { color: inherit; text-decoration: none;}
.fc-card__name-link:hover { color: var(--fc-tone-deep);}

/* 🚨 Ảnh bìa gỡ 23/09/2026 (chủ site: "không đẹp mà ăn diện tích khá nhiều"). Thẻ nay CHỈ chữ và số,
   nên mọi thứ phải tự nói rõ: hàng chip trên cùng (nhóm · trình độ · trạng thái · nút lưu) rồi tên, mô tả,
   chủ đề, số liệu, hai nút. Bỏ hẳn quy tắc .fc-card__cover* — markup không còn dựng chúng nữa. */
.fc-card__body {
    padding: 15px 16px 16px;
    display: flex; flex-direction: column; gap: 9px;
    flex: 1;}
/* 🚨 Hàng chip KHÔNG xuống dòng: chỉ cần nút lưu tụt xuống hàng hai là tiêu đề, số liệu và cặp nút của
   thẻ đó thấp hơn hẳn các thẻ bên cạnh — chủ site 23/09: "trình bày không cân, các nút lệch nhiều". */
.fc-card__chips {
    display: flex; flex-wrap: nowrap; gap: 6px;
    align-items: center; min-height: 34px;}
.fc-card__chips > * { flex: none;}
.fc-card__track {
    display: inline-flex; align-items: center;
    padding: 3px 10px;
    background: var(--fc-tone-soft);
    color: var(--fc-tone-deep);
    border-radius: 999px;
    font-size: 12px; font-weight: 700;}
.fc-card__cefr {
    padding: 3px 9px;
    background: var(--color-soft);
    color: var(--color-text);
    border-radius: 999px;
    font-size: 12px; font-weight: 700;
    font-variant-numeric: tabular-nums;}
.fc-card__save {
    margin-left: auto;
    width: 34px; height: 34px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    color: var(--color-mute2);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
    font-size: 13px;}
.fc-card__save:hover { color: var(--fc-tone-deep); border-color: var(--fc-tone);}
.fc-card__save.is-saved {
    background: var(--fc-tone);
    color: var(--color-on-dark);
    border-color: var(--fc-tone);}
.fc-card__save:disabled { opacity: .6; cursor: not-allowed;}
.fc-badge {
    display: inline-flex; align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 12px; font-weight: 700;
    white-space: nowrap;
    min-width: 0; overflow: hidden; text-overflow: ellipsis; display: block; line-height: 20px;}
.fc-badge--saved { background: var(--color-secondary); color: var(--color-on-dark);}
.fc-badge--rec { background: var(--color-primary);   color: var(--color-on-dark);}
.fc-badge--hot { background: var(--color-warning);   color: var(--color-on-dark);}
.fc-badge--new { background: var(--color-accent);    color: var(--color-on-dark);}
.fc-card__name {
    font-size: 16.5px; font-weight: 750;
    color: var(--color-ink);
    margin: 0; line-height: 1.32;
    min-height: calc(2 * 1.32em);
    letter-spacing: -.01em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;}
.fc-card__desc {
    font-size: 13.5px; color: var(--color-muted);
    margin: 0; line-height: 1.55;
    min-height: calc(2 * 1.55em);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;}
.fc-card__stats {
    display: flex; flex-wrap: wrap; gap: 5px;
    margin-top: auto; padding-top: 2px;
    font-size: 13px; color: var(--color-muted);
    align-items: center; font-variant-numeric: tabular-nums;}
.fc-card__stats b { color: var(--color-ink); font-weight: 700;}
/* Dấu chấm phân cách do CSS chèn, dính liền mục ĐỨNG SAU: xuống dòng thì chấm đi theo, không để lại
   dấu chấm lửng lơ cuối dòng như khi viết chấm thành thẻ riêng. */
.fc-card__stats > span + span::before { content: '·'; margin-right: 5px; color: var(--color-mute2);}
.fc-card__dot { display: none;}
.fc-card__actions {
    display: flex; gap: 8px;
    padding-top: 4px;}
.fc-btn {
    flex: 1;
    height: 44px;
    border-radius: 11px;
    font-size: 14px; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center; gap: 5px;
    text-decoration: none;
    transition: all .15s ease;
    border: 1px solid transparent;
    cursor: pointer;
    font-family: inherit;}
.fc-btn--ghost {
    background: transparent;
    color: var(--color-text);
    border-color: var(--color-border);
    flex: 0 0 96px;   /* rộng CỐ ĐỊNH: để 'auto' thì mỗi thẻ một bề ngang, hàng nút nhìn so le */
    padding: 0;}
.fc-btn--ghost:hover {
    background: var(--color-soft);
    color: var(--color-ink);}
.fc-btn--primary {
    background: var(--color-primary);
    color: var(--color-on-dark);
    border-color: var(--color-primary);}
.fc-btn--primary:hover {
    background: var(--color-primary-hover);
    color: var(--color-on-dark);
    border-color: var(--color-primary-hover);}
.fc-btn--primary i { font-size: 10px;}
@media (max-width: 720px) {
  .fc-card__actions { flex-wrap: wrap;}
  .fc-btn--ghost { flex: 1;}
}
.ve-pagi { display: flex; gap: 6px; justify-content: center; margin-top: var(--space-5); flex-wrap: wrap;}
.ve-pagi button {
    min-width: 38px; height: 38px; padding: 0 12px;
    background: var(--color-surface); border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md); font-size: 13px; cursor: pointer; color: var(--color-ink);
    transition: all var(--dur-fast) var(--ease);}
.ve-pagi button:hover:not(:disabled) { border-color: var(--color-primary); color: var(--color-primary);}
.ve-pagi button.is-active { background: var(--color-primary); color: var(--color-on-dark); border-color: var(--color-primary);}
.ve-pagi button:disabled { opacity: .4; cursor: not-allowed;}
.ve-spin { text-align: center; padding: var(--space-8); color: var(--color-muted); font-size: 13px; grid-column: 1/-1;}
.ve-spin i { font-size: 22px; display: block; margin-bottom: var(--space-2);}
.ve-empty {
    grid-column: 1/-1;
    display: flex; flex-direction: column; align-items: center;
    text-align: center; padding: var(--space-10) var(--space-5);
    background: var(--color-surface); border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);}
.ve-empty i { font-size: 30px; color: var(--color-locked); margin-bottom: var(--space-3);}
.ve-empty h3 { color: var(--color-ink); margin: 0 0 6px; font-size: 16px;}
.ve-empty p { color: var(--color-muted); margin: 0 0 var(--space-4); font-size: 13.5px;}
.vs-toast {
    position: fixed; bottom: 24px; left: 50%;
    transform: translateX(-50%) translateY(80px);
    padding: 10px 22px; border-radius: var(--radius-pill);
    font-size: 13px; font-weight: var(--fw-semibold);
    background: var(--color-ink); color: var(--color-on-dark);
    z-index: 9999; pointer-events: none; white-space: nowrap;
    transition: transform .25s var(--ease), opacity .25s var(--ease); opacity: 0;}
.vs-toast.is-show { transform: translateX(-50%) translateY(0); opacity: 1;}
.vs-toast--error { background: var(--color-warning);}
.vs-toast--success { background: var(--color-secondary);}
@media (max-width: 680px) {
  .vc-grid, .ve-grid { grid-template-columns: 1fr;}
}
/* Hộp "Lưu thư mục" (App học v3 — chỉ học viên đăng nhập mới mở được): tiêu đề + tên thư mục, hai con số, một câu mô tả,
   hai nút cao 48px. Không icon trang trí, không gradient. Điện thoại = sheet trượt từ đáy (ngón cái với tới nút).
   🚨 Nút KHÔNG được flex:1 khi hàng nút xếp dọc: flex-basis 0% trong cột thắng height ⇒ nút xẹp còn cao dòng chữ. */
/* Hộp "Lưu thư mục" — khung dùng chung .lv-dlg (learn-ui.css + lv-dialog.js), đây chỉ còn phần ruột.
   Bỏ .sf-modal__inner/.sf-btn tự chế: nền mờ, bo góc, nút, kiểu trượt-lên trên điện thoại nay là của .lv-dlg. */
.sf-modal__name {
    margin: 5px 0 0;
    font-size: 15px; font-weight: 600; line-height: 1.4;
    color: var(--lv-brand-fg);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}
.sf-modal__stats {
    display: grid; grid-template-columns: 1fr 1fr;
    margin: 0 0 16px;
    border-radius: 16px;
    background: var(--lv-sunken);}
.sf-modal__stats > div { padding: 14px 16px;}
.sf-modal__stats > div + div { border-left: 1px solid var(--lv-hair);}
.sf-modal__stats dt {
    font-size: 24px; font-weight: 800; line-height: 1.1; letter-spacing: -.02em;
    color: var(--lv-ink);
    font-variant-numeric: tabular-nums;}
.sf-modal__stats dd { margin: 3px 0 0; font-size: 13px; color: var(--lv-muted);}
.sf-modal__desc { margin: 0; font-size: 14px; line-height: 1.55; color: var(--lv-text);}
.sf-modal__desc strong { color: var(--lv-ink); font-weight: 700;}

/* ── /kham-pha: thư mục theo SECTION (2026-07) ── */
/* ── /kham-pha: thư mục theo SECTION (2026-07) — thay hero+filter+grid phẳng ── */
        /* Hero */
        .kp-hero { display:flex; gap:var(--space-8); align-items:flex-end; justify-content:space-between; flex-wrap:wrap; padding:var(--space-6) var(--space-6) var(--space-5); margin-bottom:var(--space-8); border:1px solid var(--color-border); border-radius:var(--radius-xl); background:radial-gradient(120% 150% at 100% 0, var(--color-primary-soft), transparent 58%), radial-gradient(120% 150% at 0 100%, color-mix(in srgb, var(--color-accent) 10%, transparent), transparent 55%), var(--color-surface); }
        .kp-hero__main { min-width:0; flex:1 1 420px; }
        .kp-hero__eyebrow { display:inline-flex; align-items:center; gap:7px; font-size:var(--fs-micro); font-weight:var(--fw-bold); letter-spacing:.06em; text-transform:uppercase; color:var(--color-primary); background:var(--color-primary-soft); padding:5px 11px; border-radius:var(--radius-pill); }
        .kp-hero__title { font-size:clamp(23px,3vw,32px); font-weight:var(--fw-extrabold); letter-spacing:-.02em; margin:var(--space-3) 0 6px; color:var(--color-ink); line-height:1.12; text-wrap:balance; }
        .kp-hero__sub { color:var(--color-muted); font-size:var(--fs-body); margin:0; max-width:52ch; }
        .kp-search { display:flex; align-items:center; gap:10px; margin:var(--space-4) 0 var(--space-3); max-width:460px; background:var(--color-soft); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:7px 8px 7px 14px; transition:border-color var(--dur-fast) var(--ease); }
        .kp-search:focus-within { border-color:var(--color-primary); }
        .kp-search > i { color:var(--color-muted); font-size:14px; }
        .kp-search input { flex:1; min-width:0; border:0; background:transparent; font:inherit; font-size:var(--fs-body); color:var(--color-text); outline:none; }
        .kp-hero__acts { display:flex; gap:9px; flex-wrap:wrap; }
        .kp-hero__stats { display:flex; gap:var(--space-6); margin:0; flex-wrap:wrap; }
        .kp-hero__stats dt { font-size:26px; font-weight:var(--fw-extrabold); color:var(--color-ink); font-variant-numeric:tabular-nums; line-height:1; }
        .kp-hero__stats dd { margin:3px 0 0; font-size:var(--fs-micro); color:var(--color-muted); }
        @media (max-width:640px){
            .kp-hero { padding:var(--space-5); margin-bottom:var(--space-6); gap:var(--space-4); }
            .kp-hero__title { font-size:24px; margin:10px 0 5px; }
            .kp-hero__sub { font-size:13.5px; }
            .kp-search { margin:14px 0 12px; }
            .kp-hero__stats { gap:var(--space-5); width:100%; }
            .kp-hero__stats dt { font-size:22px; }
        }
        .kp-sections { display: flex; flex-direction: column; gap: var(--space-10); }
        .kp-loading { padding: var(--space-16) var(--space-4); text-align: center; color: var(--color-muted); font-weight: var(--fw-semibold); }
        .kp-section__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-4); }
        .kp-section__title { display: flex; align-items: center; gap: 10px; margin: 0; padding-left: 13px; position: relative; font-size: var(--fs-h4); font-weight: var(--fw-extrabold); color: var(--color-ink); }
        .kp-section__title::before { content: ''; position: absolute; left: 0; top: 4px; bottom: 4px; width: 4px; border-radius: var(--radius-pill); background: var(--kp-tone, var(--color-primary)); }
        .kp-section__title i { color: var(--kp-tone, var(--color-primary)); }
        .kp-seeall { display: inline-flex; align-items: center; gap: 6px; background: none; border: 0; cursor: pointer; text-decoration: none; color: var(--kp-tone, var(--color-primary)); font-weight: var(--fw-bold); font-size: var(--fs-small); padding: 7px 12px; border-radius: var(--radius-pill); transition: background var(--dur-fast) var(--ease); white-space: nowrap; }
        .kp-seeall:hover { background: color-mix(in srgb, var(--kp-tone, var(--color-primary)) 12%, transparent); }
        .kp-seeall span { color: var(--color-muted); font-weight: var(--fw-semibold); }
        .kp-seeall i { font-size: 11px; }
        .kp-row { display: flex; align-items: stretch; gap: var(--space-4); overflow-x: auto; overflow-y: hidden; padding: 4px 2px var(--space-3); scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--color-line) transparent; }
        .kp-row > .fc-card { flex: 0 0 clamp(230px, 76vw, 262px); scroll-snap-align: start; }
        .kp-row::-webkit-scrollbar { height: 8px; }
        .kp-row::-webkit-scrollbar-track { background: transparent; }
        .kp-row::-webkit-scrollbar-thumb { background: var(--color-line); border-radius: var(--radius-pill); }
        .kp-row:hover::-webkit-scrollbar-thumb { background: var(--color-border); }
        .kp-trackhead { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-6); }
        .kp-back { display: inline-flex; align-items: center; gap: 8px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-pill); padding: 9px 16px; cursor: pointer; font-weight: var(--fw-semibold); font-size: var(--fs-small); color: var(--color-text); transition: border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
        .kp-back:hover { border-color: var(--color-primary); color: var(--color-primary); }
        .kp-trackhead__title { display: flex; align-items: center; gap: 10px; margin: 0; font-size: var(--fs-h3); font-weight: var(--fw-extrabold); color: var(--color-ink); }
        .kp-trackhead__title i { color: var(--color-primary); }
        .kp-trackhead__count { color: var(--color-muted); font-size: var(--fs-small); font-weight: var(--fw-semibold); }
        @media (max-width: 640px) {
            .kp-sections { gap: var(--space-8); }
            .kp-section__title, .kp-trackhead__title { font-size: var(--fs-body); }
        }

/* ═════════════════════════════════════════════════════════════════════════
   App học v3 (22/09/2026) — học viên đăng nhập: <main class="lv-page kp-v3"> (dải khu + thẻ tìm chồng mép).
   Một màu thương hiệu: tông từng khu (xanh lá/cyan/cam) quy về teal; không chữ nhỏ viết hoa. Token --lv-* — tự lật tối.
   ═════════════════════════════════════════════════════════════════════════ */
.kp-band { --lv-band-pb: 104px; }
.kp-band__in { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px; }
.kp-band__title { font-size: 44px; line-height: 1.04; font-weight: 800; letter-spacing: -.04em; color: var(--lv-on); }
.kp-band__title span { color: var(--lv-mint); }
.kp-band__stats { display: flex; gap: 28px; margin: 0; padding: 18px 24px; }
.kp-band__stats dt { font-size: 26px; font-weight: 800; letter-spacing: -.02em; color: var(--lv-on); line-height: 1; }
.kp-band__stats dd { margin: 5px 0 0; font-size: 13px; color: var(--lv-on-3); }

.kp-v3 .vp-wrap { position: relative; max-width: calc(1180px + 64px); margin: -66px auto 0; padding: 0 32px 72px; }
.kp-find { padding: 14px; margin-bottom: 28px; display: flex; flex-direction: column; gap: 12px; }
.kp-find__form { display: flex; align-items: center; gap: 10px; height: 50px; padding: 0 6px 0 16px; border-radius: 14px; border: 1px solid var(--lv-border); background: var(--lv-surface); }
.kp-find__form:focus-within { border-color: var(--color-primary); box-shadow: var(--lv-focus); }
.kp-find__form > .lv-i { color: var(--lv-faint); }
.kp-find__form input { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: transparent; color: var(--lv-ink); font: 500 15px var(--lv-font); }
.kp-find__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.kp-chip {
  display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--lv-border); background: var(--lv-surface); color: var(--lv-text); font: 600 13.5px var(--lv-font);
  transition: border-color var(--lv-dur) var(--lv-ease), background var(--lv-dur) var(--lv-ease), color var(--lv-dur) var(--lv-ease);
}
.kp-chip .lv-i { color: var(--lv-brand-fg); }
.kp-chip:hover { border-color: color-mix(in srgb, var(--color-primary) 45%, var(--lv-border)); background: var(--lv-tint); color: var(--lv-ink); }

/* Khu (hàng thẻ) */
.kp-v3 .kp-sections { gap: 36px; }
.kp-v3 .kp-section { --kp-tone: var(--lv-brand-fg) !important; }
.kp-v3 .kp-section__title { padding-left: 0; font-size: 19px; font-weight: 700; letter-spacing: -.015em; color: var(--lv-ink); }
.kp-v3 .kp-section__title::before { display: none; }
.kp-v3 .kp-section__title i { width: 34px; height: 34px; border-radius: 10px; display: inline-grid; place-items: center; font-size: 14px; background: var(--lv-wash); color: var(--lv-brand-fg); }
.kp-v3 .kp-seeall { color: var(--lv-brand-fg); font-size: 13.5px; font-weight: 600; }
.kp-v3 .kp-seeall:hover { background: var(--lv-wash); }
.kp-v3 .kp-row { gap: 14px; }
.kp-v3 .kp-trackhead { margin-bottom: 18px; }
.kp-v3 .kp-back { height: 38px; padding: 0 14px; border-radius: 11px; border-color: var(--lv-border); background: var(--lv-surface); color: var(--lv-ink); font: 600 13.5px var(--lv-font); }
.kp-v3 .kp-back:hover { border-color: color-mix(in srgb, var(--color-primary) 45%, var(--lv-border)); color: var(--lv-ink); }
.kp-v3 .kp-trackhead__title { font-size: 22px; font-weight: 750; letter-spacing: -.02em; color: var(--lv-ink); }
.kp-v3 .kp-trackhead__title i { color: var(--lv-brand-fg); }

/* Thẻ thư mục */
.kp-v3 .fc-card {
  --fc-tone: var(--lv-brand-fg); --fc-tone-soft: var(--lv-wash); --fc-tone-deep: var(--lv-brand-deep);
  border-color: var(--lv-hair); border-radius: 18px; background: var(--lv-surface); box-shadow: var(--lv-sh-1);
}
.kp-v3 .fc-card:hover { transform: none; border-color: color-mix(in srgb, var(--color-primary) 40%, var(--lv-hair)); box-shadow: var(--lv-sh-2); }
.kp-v3 .fc-card__track { text-transform: none; letter-spacing: 0; font-size: 12px; font-weight: 650; padding: 2px 9px; }
.kp-v3 .fc-card__cefr { font-size: 12px; font-weight: 700; letter-spacing: 0; background: var(--lv-sunken); color: var(--lv-text); }
.kp-v3 .fc-card__name { font-size: 15px; font-weight: 700; color: var(--lv-ink); }
.kp-v3 .fc-card__desc { font-size: 12.5px; color: var(--lv-muted); }
.kp-v3 .fc-card__stats { font-size: 12.5px; color: var(--lv-muted); }
.kp-v3 .fc-card__stats b { color: var(--lv-ink); }
.kp-v3 .fc-btn { height: 38px; border-radius: 11px; font: 600 13px var(--lv-font); }
.kp-v3 .fc-btn--ghost { border-color: var(--lv-border); background: var(--lv-surface); color: var(--lv-ink); }
.kp-v3 .fc-btn--ghost:hover { background: var(--lv-tint); color: var(--lv-ink); }
.kp-v3 .fc-btn--primary { background: var(--lv-brand-strong); border-color: var(--lv-brand-strong); color: var(--lv-on); }
.kp-v3 .fc-btn--primary:hover { background: color-mix(in srgb, var(--color-primary-hover) 82%, black); border-color: transparent; color: var(--lv-on); }
.kp-v3 .fc-badge { border-radius: 999px; font-weight: 650; }
.kp-v3 :is(.fc-badge--saved, .fc-badge--rec, .fc-badge--hot, .fc-badge--new) { background: var(--lv-brand-strong); color: var(--lv-on); }
.kp-v3 .fc-card__save { border-color: var(--lv-hair); }
.kp-v3 .fc-card__save.is-saved { background: var(--lv-brand-strong); border-color: var(--lv-brand-strong); color: var(--lv-on); }

/* Lưới "Xem tất cả" · phân trang · trống */
.kp-v3 .ve-grid { gap: 14px; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.kp-v3 .ve-pagi button { border-color: var(--lv-border); border-radius: 10px; background: var(--lv-surface); color: var(--lv-text); }
.kp-v3 .ve-pagi button.is-active { background: var(--lv-brand-strong); border-color: var(--lv-brand-strong); color: var(--lv-on); }
.kp-v3 .ve-empty { border-radius: 18px; border: 1px dashed var(--lv-border); background: var(--lv-surface); color: var(--lv-muted); }

@media (max-width: 1023px) {
  .kp-band { --lv-band-pb: 88px; }
  .kp-band__in { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .kp-band__title { font-size: 34px; }
  .kp-band__stats { justify-content: space-between; gap: 12px; padding: 14px 18px; }
  .kp-band__stats dt { font-size: 22px; }
  .kp-v3 .vp-wrap { margin-top: -58px; padding: 0 16px 32px; }
  .kp-find { padding: 10px; margin-bottom: 22px; }
  .kp-find__form { height: 46px; padding-left: 12px; }
  .kp-find__chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -10px; padding: 0 10px 2px; }
  .kp-find__chips::-webkit-scrollbar { display: none; }
  .kp-chip { flex: none; }
  .kp-v3 .kp-sections { gap: 28px; }
  .kp-v3 .kp-section__title { font-size: 17px; }
  .kp-v3 .ve-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .kp-v3 .ve-grid .fc-card__desc { display: none; }
  .kp-v3 .ve-grid .fc-card__body { padding: 10px 11px 12px; gap: 6px; }
  .kp-v3 .ve-grid .fc-card__actions { flex-direction: column; }
  .kp-v3 .ve-grid .fc-btn--ghost { display: none; }
}
@media (max-width: 380px) { .kp-band__title { font-size: 30px; } }
.kp-band__stats .kp-lc { text-transform: lowercase; }   /* 'Thư mục' → 'Folders' (EN số nhiều) viết thường như hai nhãn bên cạnh */
