/* v3-k-hardware/css/k.css：预览 K 的版式。只用设计令牌（--ds-*），不写死颜色；4 套主题由 tokens.css 提供。 */

/* ---------- 通用 ---------- */
.k-mt2 { margin-top: var(--ds-sp-2); } .k-mt4 { margin-top: var(--ds-sp-4); } .k-mt8 { margin-top: var(--ds-sp-8); }
.k-small { font-size: var(--ds-fs-sm); } .k-break { overflow-wrap: anywhere; word-break: break-all; } .k-mono { font-family: var(--ds-mono); }
.k-lead { margin: var(--ds-sp-2) 0 0; color: var(--ds-text-2); font-size: var(--ds-fs-lg); max-width: 75ch; }
.k-h2 { font-size: var(--ds-fs-xl); margin: 0 0 var(--ds-sp-4); } .k-h3 { font-size: var(--ds-fs-md); margin: var(--ds-sp-5) 0 var(--ds-sp-2); display: flex; align-items: center; gap: 6px; }
.k-sec { margin: var(--ds-sp-8) 0; scroll-margin-top: calc(var(--ds-header-h) + 16px); }
.k-more { display: inline-flex; align-items: center; gap: 2px; font-size: var(--ds-fs-sm); }
.k-plain { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.k-side-h { display: flex; align-items: center; gap: 6px; font-size: var(--ds-fs-md); margin: 0 0 var(--ds-sp-3); }
.k-loading { padding: var(--ds-sp-6) 0; }
.k-ok { color: var(--ds-success); } .k-bad { color: var(--ds-danger); }
.k-ext { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.k-unv { font-weight: var(--ds-fw-regular); }
.k-drawer-h { margin: 0; font-size: var(--ds-fs-lg); }
main:focus, h1:focus { outline: none; }
html[data-ds] h1[tabindex="-1"]:focus-visible, html[data-ds] main[tabindex="-1"]:focus-visible { box-shadow: none; }
.k-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--ds-sp-4); }
.k-chips .ds-chip { text-decoration: none; }
.k-two { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--ds-sp-8); align-items: start; }
.k-json { max-height: 420px; white-space: pre; }

/* ---------- 页头导航：硬件下拉 ---------- */
.k-navbtn { border: 0; background: none; cursor: pointer; font: inherit; }
.ds-nav .ds-menu__list.k-navmenu { left: 0; right: auto; }
.k-navmenu a.ds-menu__item { color: var(--ds-text) !important; }

/* ---------- 页头区 ---------- */
.k-phead { padding: var(--ds-sp-6) 0 var(--ds-sp-4); }
.k-phead__row { display: flex; flex-wrap: wrap; gap: var(--ds-sp-4); align-items: flex-end; justify-content: space-between; margin-top: var(--ds-sp-3); }
.k-phead__main { min-width: 0; flex: 1 1 420px; }
.k-phead h1 { margin: 2px 0 0; font-size: var(--ds-fs-3xl); line-height: 1.2; overflow-wrap: anywhere; }
.k-phead__aside { flex: 0 1 auto; min-width: 0; max-width: 100%; display: flex; flex-wrap: wrap; gap: var(--ds-sp-2); align-items: center; }
.k-phead__aside .ds-row { min-width: 0; max-width: 100%; }
.k-dver { font-size: var(--ds-fs-xl); color: var(--ds-text-3); font-weight: var(--ds-fw-medium); font-family: var(--ds-mono); }

/* ---------- 首页 ---------- */
.k-hero { background: linear-gradient(180deg, var(--ds-surface) 0%, var(--ds-bg) 100%); border-bottom: 1px solid var(--ds-divider); }
.k-hero__in { padding-top: var(--ds-sp-12); padding-bottom: var(--ds-sp-10); text-align: center; display: flex; flex-direction: column; align-items: center; }
.k-hero h1 { font-size: var(--ds-fs-4xl); line-height: 1.15; margin: 0; letter-spacing: -.01em; }
.k-hero .k-lead { margin-left: auto; margin-right: auto; }
.k-hero__search { width: 100%; max-width: 720px; margin-top: var(--ds-sp-6); text-align: left; }
.k-try { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin: var(--ds-sp-4) 0 0; font-size: var(--ds-fs-sm); }
.k-wall { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: var(--ds-sp-4); }
.k-wall__a { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--ds-border); border-radius: var(--ds-r-md); background: var(--ds-surface); overflow: hidden; color: var(--ds-text) !important; text-decoration: none !important; transition: border-color var(--ds-dur-fast) var(--ds-ease); }
.k-wall__a:hover { border-color: var(--ds-primary-border); }
.k-wall__img { display: block; aspect-ratio: 16 / 10; background: var(--ds-surface-2); border-bottom: 1px solid var(--ds-divider); }
.k-wall__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.k-wall__name { padding: var(--ds-sp-3) var(--ds-sp-3) 2px; font-weight: var(--ds-fw-semibold); line-height: 1.35; overflow-wrap: anywhere; }
.k-wall__meta { padding: 0 var(--ds-sp-3) var(--ds-sp-3); font-size: var(--ds-fs-xs); color: var(--ds-text-3); font-family: var(--ds-mono); overflow-wrap: anywhere; }

/* ---------- 目录：左分面 + 右结果 ---------- */
.k-cat { display: grid; grid-template-columns: 248px minmax(0, 1fr); gap: var(--ds-sp-6); align-items: start; margin-bottom: var(--ds-sp-10); }
.k-cat__aside { position: sticky; top: calc(var(--ds-header-h) + 12px); max-height: calc(100vh - var(--ds-header-h) - 24px); overflow: auto; padding: var(--ds-sp-4); border: 1px solid var(--ds-border); border-radius: var(--ds-r-md); background: var(--ds-surface); scrollbar-width: thin; }
.k-cat__main { min-width: 0; }
.k-cat__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ds-sp-3); padding-bottom: var(--ds-sp-3); margin-bottom: var(--ds-sp-3); border-bottom: 1px solid var(--ds-divider); }
.k-cat__bar .k-chips { margin: 0; }
.k-cat__total { margin: 0; color: var(--ds-text-2); } .k-cat__total strong { color: var(--ds-text); font-size: var(--ds-fs-lg); font-variant-numeric: tabular-nums; }
.k-sort { width: auto; min-width: 120px; }
.k-fbtn { display: none; }
.k-hwgrid { --ds-grid-min: 240px; }
.k-hwcard__media img { width: 100%; height: 100%; object-fit: cover; }
.k-hwcard__title { font-size: var(--ds-fs-md); }
.k-pager { margin-top: var(--ds-sp-6); }
.k-fwq { display: flex; align-items: center; gap: 6px; flex: 1 1 240px; max-width: 360px; color: var(--ds-text-3); }
.k-fwq .ds-input { flex: 1; min-width: 0; }

/* ---------- 硬件页首屏 ---------- */
.k-hero2 { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--ds-sp-8); align-items: start; margin-bottom: var(--ds-sp-6); }
.k-gal__main { position: relative; margin: 0; aspect-ratio: 16 / 10; border: 1px solid var(--ds-border); border-radius: var(--ds-r-md); background: var(--ds-surface-2); overflow: hidden; }
.k-gal__main img { width: 100%; height: 100%; object-fit: contain; display: block; }
.k-gal__cap { position: absolute; left: 8px; top: 8px; }
.k-gal__thumbs { display: flex; gap: var(--ds-sp-2); margin-top: var(--ds-sp-2); overflow-x: auto; }
.k-gal__t { flex: none; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 4px; border: 1px solid var(--ds-border); border-radius: var(--ds-r-sm); background: var(--ds-surface); color: var(--ds-text-2); font: var(--ds-fs-xs) var(--ds-font); cursor: pointer; }
.k-gal__t img { width: 72px; height: 45px; object-fit: cover; border-radius: var(--ds-r-xs); }
.k-gal__t[aria-pressed="true"] { border-color: var(--ds-primary); color: var(--ds-link); box-shadow: 0 0 0 1px var(--ds-primary); }
.k-hero2__info { display: flex; flex-direction: column; gap: var(--ds-sp-4); min-width: 0; }
.k-hero2__kv .ds-select { width: auto; min-width: 96px; }
.k-hero2__sum { margin: 0; color: var(--ds-text-2); }
.k-buy__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--ds-sp-2); }
.k-buy__row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-sp-2) var(--ds-sp-3); padding: var(--ds-sp-2) 0; border-bottom: 1px solid var(--ds-divider); }
.k-buy__row:last-child { border-bottom: 0; }
.k-buy__main { flex: 1 1 160px; min-width: 0; display: flex; flex-direction: column; }
.k-buy__name { font-weight: var(--ds-fw-medium); overflow-wrap: anywhere; }
.k-buy__price { font-weight: var(--ds-fw-semibold); }
.k-tabs { margin-bottom: var(--ds-sp-6); }
.k-tabs .ds-tab { text-decoration: none !important; color: var(--ds-text-2); }
.k-tabpanel { margin-bottom: var(--ds-sp-10); min-height: 240px; }
.k-over { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--ds-sp-8); align-items: start; }
.k-over .k-sec:first-child { margin-top: 0; }
.k-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--ds-sp-3); }
.k-mini .ds-card__media { aspect-ratio: 16 / 7; }
.k-wrow td { background: var(--ds-surface-2) !important; }

/* ---------- 固件列表（硬件页固件标签） ---------- */
.k-fwgroup { margin-bottom: var(--ds-sp-5); }
.k-fwgroup__h { display: flex; align-items: center; gap: var(--ds-sp-2); font-size: var(--ds-fs-md); margin: 0 0 var(--ds-sp-2); padding: 6px 0; border-bottom: 1px solid var(--ds-divider); position: sticky; top: var(--ds-header-h); background: var(--ds-bg); z-index: 1; }
.k-fwgroup__h .ds-count { margin-left: 0; }
.k-fwrows { list-style: none; margin: 0; padding: 0; border: 1px solid var(--ds-border); border-radius: var(--ds-r-md); background: var(--ds-surface); }
.k-fwrow { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: var(--ds-sp-3); padding: var(--ds-sp-3) var(--ds-sp-4); border-bottom: 1px solid var(--ds-divider); content-visibility: auto; contain-intrinsic-size: auto 96px; }
.k-fwrow:last-child { border-bottom: 0; }
.k-fwrow:hover { background: var(--ds-row-hover); }
.k-fwrow--mini { grid-template-columns: minmax(0, 1fr) auto; }
.k-fwrow__thumb { width: 64px; height: 40px; border-radius: var(--ds-r-xs); background: var(--ds-surface-2); display: grid; place-items: center; overflow: hidden; color: var(--ds-text-3); }
.k-fwrow__thumb img { width: 100%; height: 100%; object-fit: cover; }
.k-fwrow__main { min-width: 0; }
.k-fwrow__t { margin: 0; font-size: var(--ds-fs-md); font-weight: var(--ds-fw-semibold); display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; overflow-wrap: anywhere; }
.k-fwrow__v { font-size: var(--ds-fs-xs); color: var(--ds-text-3); font-weight: var(--ds-fw-regular); }
.k-fwrow__s { margin: 2px 0 6px; font-size: var(--ds-fs-sm); color: var(--ds-text-2); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.k-fwrow__side { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.k-fwrow__hist { margin-top: var(--ds-sp-2); }
.k-hist { list-style: none; margin: 0; padding: var(--ds-sp-2) var(--ds-sp-3); border-left: 2px solid var(--ds-divider); display: grid; gap: 4px; font-size: var(--ds-fs-sm); }
.k-hist li { display: flex; flex-wrap: wrap; gap: var(--ds-sp-3); align-items: baseline; }
.k-hist__n { color: var(--ds-text-2); }
.k-perf { margin-top: var(--ds-sp-3); }

/* ---------- 原理图 / 评测 ---------- */
.k-sch__top { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ds-sp-4); margin-top: var(--ds-sp-4); }
.k-sch__top .k-h3 { margin-top: 0; }
.k-sch__pages { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: var(--ds-sp-4); }
.k-sch__page { margin: 0; border: 1px solid var(--ds-border); border-radius: var(--ds-r-md); overflow: hidden; background: var(--ds-surface); }
.k-sch__page img { width: 100%; height: auto; display: block; background: var(--ds-surface-2); }
.k-sch__page figcaption { padding: var(--ds-sp-2) var(--ds-sp-3); font-size: var(--ds-fs-sm); color: var(--ds-text-2); }
.k-review__head { display: flex; gap: var(--ds-sp-5); align-items: center; }
.k-h2 + .ds-muted { margin: 0; }
.k-score { --k-deg: 0deg; flex: none; width: 92px; height: 92px; border-radius: 50%; display: grid; place-content: center; text-align: center;
  background: radial-gradient(closest-side, var(--ds-surface) 78%, transparent 80% 100%), conic-gradient(var(--ds-primary) var(--k-deg), var(--ds-surface-3) 0); }
.k-score span { font-size: var(--ds-fs-2xl); font-weight: var(--ds-fw-bold); line-height: 1; } .k-score small { color: var(--ds-text-3); }

/* ---------- 芯片 / 外设 ---------- */
.k-pgrid { --ds-grid-min: 220px; list-style: none; padding: 0; margin: 0; }
.k-pcard { flex-direction: row; align-items: center; }
.k-pcard__img { flex: none; width: 96px; padding: var(--ds-sp-2); }
.k-pcard__img img { width: 80px; height: 54px; object-fit: contain; display: block; }
.k-pcard .ds-card__body { padding-left: 0; min-width: 0; }
.k-pcard .ds-card__title { font-size: var(--ds-fs-md); font-family: var(--ds-mono); }
.k-pimg { aspect-ratio: 3 / 2; background: var(--ds-surface-2); border-radius: var(--ds-r-sm); display: grid; place-items: center; overflow: hidden; }
.k-pimg img { width: 100%; height: 100%; object-fit: contain; }
.k-wsel { width: auto; max-width: 100%; }
.k-dslist li { display: flex; flex-wrap: wrap; gap: var(--ds-sp-2); align-items: center; }
.k-sr-boards { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--ds-sp-2); grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.k-sr-boards li { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-sp-2); padding: var(--ds-sp-2) var(--ds-sp-3); border: 1px solid var(--ds-border); border-radius: var(--ds-r-sm); background: var(--ds-surface); }

/* ---------- 固件详情 ---------- */
.k-dbody { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--ds-sp-8); align-items: start; margin-bottom: var(--ds-sp-10); }
.k-dmain .k-sec:first-child { margin-top: 0; }
.k-dside { display: flex; flex-direction: column; gap: var(--ds-sp-4); position: sticky; top: calc(var(--ds-header-h) + 12px); }
.k-dlbox .ds-select { width: 100%; }
.k-dlbox .ds-btn--lg { white-space: normal; }
.k-media { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: var(--ds-sp-3); margin-top: var(--ds-sp-4); }
.k-media__fig { margin: 0; border: 1px solid var(--ds-border); border-radius: var(--ds-r-md); overflow: hidden; background: var(--ds-surface); }
.k-media__fig img { width: 100%; height: auto; display: block; background: var(--ds-surface-2); }
.k-media__fig figcaption { padding: 6px var(--ds-sp-3); font-size: var(--ds-fs-xs); color: var(--ds-text-2); }
.k-media__video { position: relative; }
.k-media__play { position: absolute; inset: 0; display: grid; place-items: center; color: var(--ds-on-primary); }
.k-media__play .ds-icon { background: var(--ds-primary); border-radius: 50%; padding: 10px; box-sizing: content-box; }
.k-serial, .k-usage { white-space: pre-wrap; padding-right: var(--ds-sp-4); }
.k-notes { white-space: pre-line; }
.k-parts { white-space: pre; }

/* ---------- 烧录向导 ---------- */
.k-steps { margin: 0 0 var(--ds-sp-6); }
.k-wizgrid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: var(--ds-sp-6); align-items: start; }
.k-wiz { margin-bottom: var(--ds-sp-6); }
.k-chks { list-style: none; margin: 0 0 var(--ds-sp-4); padding: 0; display: grid; gap: 6px; }
.k-chk { display: grid; grid-template-columns: auto 1fr auto; gap: var(--ds-sp-2); align-items: center; font-size: var(--ds-fs-sm); }
.k-chk[data-ok="1"] > .ds-icon { color: var(--ds-success); } .k-chk[data-ok="0"] > .ds-icon { color: var(--ds-danger); }
.k-simrow { display: grid; gap: var(--ds-sp-2); padding-top: var(--ds-sp-3); border-top: 1px solid var(--ds-divider); }
.k-pick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ds-sp-3); margin-bottom: var(--ds-sp-4); }
.k-pick .ds-select { width: 100%; }
.k-fwsum { margin-bottom: var(--ds-sp-3); } .k-fwsum__t { font-weight: var(--ds-fw-semibold); font-size: var(--ds-fs-lg); }
.k-flstat { margin-top: var(--ds-sp-3); } .k-flstat p { margin: 2px 0; }
.k-fllog { max-height: 200px; white-space: pre-wrap; }
.k-prog { margin-top: var(--ds-sp-4); padding-top: var(--ds-sp-3); border-top: 1px solid var(--ds-divider); }
.k-serial2 { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--ds-sp-4); align-items: start; }
.k-term { --ds-term-h: 360px; }
.k-term .ds-select { width: auto; }
.k-expcard .k-h3:first-child { margin-top: 0; }
.k-expcard__fig { margin: var(--ds-sp-2) 0; position: relative; } .k-expcard__fig img { width: 100%; height: auto; border-radius: var(--ds-r-sm); display: block; }
.k-expcard__fig .ds-badge { position: absolute; left: 6px; top: 6px; }
.k-exp__sample { white-space: pre-wrap; }
.k-exp__bar { display: flex; align-items: center; gap: 6px; font-size: var(--ds-fs-sm); color: var(--ds-text-2); }
.k-exp__bar[data-ok="1"] { color: var(--ds-success); }
.k-diag { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--ds-sp-2); }
.k-diag__i { padding: var(--ds-sp-2) var(--ds-sp-3); border: 1px solid var(--ds-warn-border); border-left-width: 3px; border-radius: var(--ds-r-sm); background: var(--ds-warn-soft); }
.k-diag__i[data-level="error"] { border-color: var(--ds-danger-border); background: var(--ds-danger-soft); }
.k-diag__i p { margin: 4px 0 0; font-size: var(--ds-fs-sm); }
.k-diag__h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.k-diag__i[data-level="error"] .k-diag__h .ds-icon { color: var(--ds-danger); } .k-diag__h .ds-icon { color: var(--ds-warn); }
.k-fb { display: grid; gap: var(--ds-sp-2); max-width: 560px; }
.k-fb__opts { display: flex; flex-wrap: wrap; gap: var(--ds-sp-4); }
.k-fb__row { display: flex; align-items: center; gap: var(--ds-sp-2); } .k-fb__row .ds-select { width: auto; }

/* ---------- 文档 ---------- */
.k-docgrid { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--ds-sp-8); align-items: start; }
.k-toc { position: sticky; top: calc(var(--ds-header-h) + 16px); }
.k-toc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; border-left: 2px solid var(--ds-divider); }
.k-toc a { display: block; padding: 4px var(--ds-sp-3); font-size: var(--ds-fs-sm); color: var(--ds-text-2); }
.k-exd { margin-top: var(--ds-sp-3); border: 1px solid var(--ds-border); border-radius: var(--ds-r-md); background: var(--ds-surface); }
.k-exd > summary { cursor: pointer; padding: var(--ds-sp-2) var(--ds-sp-3); font-size: var(--ds-fs-sm); overflow-wrap: anywhere; }
.k-ex { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ds-sp-3); padding: 0 var(--ds-sp-3) var(--ds-sp-3); }
.k-ex .ds-code { max-height: 320px; }

/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {
  .k-over, .k-dbody { grid-template-columns: minmax(0, 1fr); }
  .k-dside { position: static; }
  .k-wizgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .k-cat { grid-template-columns: minmax(0, 1fr); }
  .k-cat__aside { display: none; }
  .k-fbtn { display: inline-flex; }
  .k-hero2, .k-two, .k-serial2, .k-docgrid, .k-ex, .k-sch__top { grid-template-columns: minmax(0, 1fr); }
  .k-toc { position: static; }
}
@media (max-width: 640px) {
  .k-hero__in { padding-top: var(--ds-sp-8); padding-bottom: var(--ds-sp-6); }
  .k-hero h1 { font-size: var(--ds-fs-3xl); }
  .k-phead h1 { font-size: var(--ds-fs-2xl); }
  .k-fwrow { grid-template-columns: minmax(0, 1fr); }
  .k-fwrow__thumb { display: none; }
  .k-fwrow__side { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; }
  .k-pick { grid-template-columns: minmax(0, 1fr); }
  .k-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ds-sp-3); }
  .k-fwq { max-width: none; }
}
.k-strip { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-sp-3) var(--ds-sp-6); padding: var(--ds-sp-3) var(--ds-sp-4); margin-bottom: var(--ds-sp-4); border: 1px solid var(--ds-border); border-radius: var(--ds-r-md); background: var(--ds-surface); }
.k-strip__img img { width: 96px; height: 60px; object-fit: cover; border-radius: var(--ds-r-xs); display: block; }
.k-strip__kv { display: flex; flex-wrap: wrap; gap: var(--ds-sp-2) var(--ds-sp-6); margin: 0; flex: 1 1 320px; }
.k-strip__kv > div { display: flex; align-items: center; gap: var(--ds-sp-2); }
.k-strip__kv dt { color: var(--ds-text-3); font-size: var(--ds-fs-sm); } .k-strip__kv dd { margin: 0; }
.k-strip .ds-select { width: auto; min-width: 80px; }

/* VERIFY-v3：浅色主题下成功色徽章放在硬件页浅色底面上只有 4.47:1，略低于 AA，K 内加深一档（不改共享设计系统） */
[data-theme="light"] [data-ds] .ds-badge--success, [data-theme="light"] .ds-badge--success, [data-theme="warm"] .ds-badge--success { --_c: #0e6a35; }

/* 首页 / 搜索结果页：正文已有大搜索框，顶栏搜索框隐藏（导航右移，工具区保持右对齐）；手机端的搜索图标也隐藏 */
html.k-no-hsearch .ds-header__search, html.k-no-hsearch .ds-header__mobile-search { display: none; }
html.k-no-hsearch .ds-header__tools { margin-left: auto; }

.k-sr-box { max-width: 720px; margin: 0 0 var(--ds-sp-6); }

/* ---------- 芯片平台树分面 / 手机下钻 / 目录页（v1-chip-tree-spec.md，js/k-chiptree.js + js/k-chips.js） ---------- */
.k-ct__hint { font-weight: var(--ds-fw-regular); }
.k-ct__tree { margin: 0 -4px; }
.k-ct__tree [role=group] { padding-left: 14px; margin-left: 11px; }
.k-ct__it { outline: none; }
.k-ct__it:focus-visible > .k-ct__row { box-shadow: var(--ds-focus-ring); }
.k-ct__row { gap: 6px; min-height: 30px; user-select: none; }
.k-ct__it--chip > .k-ct__row { min-height: 28px; font-size: var(--ds-fs-sm); }
.k-ct__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.k-ct__n { white-space: nowrap; }
.k-ct__box { flex: none; position: relative; width: 16px; height: 16px; border: 1.5px solid var(--ds-text-3); border-radius: 3px; background: var(--ds-surface); }
[aria-checked="true"] > .k-ct__row .k-ct__box, [aria-checked="mixed"] > .k-ct__row .k-ct__box { background: var(--ds-primary); border-color: var(--ds-primary); }
[aria-checked="true"] > .k-ct__row .k-ct__box::after { content: ''; position: absolute; left: 4px; top: 0; width: 5px; height: 10px; border: solid var(--ds-on-primary); border-width: 0 2px 2px 0; transform: rotate(45deg); }
[aria-checked="mixed"] > .k-ct__row .k-ct__box::after { content: ''; position: absolute; left: 2px; right: 2px; top: 5.5px; height: 2px; background: var(--ds-on-primary); }
[aria-expanded="true"] > .k-ct__row .k-ct__tw .ds-icon { transform: rotate(90deg); }
.k-ct__tw .ds-icon { transition: transform var(--ds-dur-fast) var(--ds-ease); }
.k-ct__line { padding: 6px 0 2px 26px; font-size: var(--ds-fs-xs); font-weight: var(--ds-fw-semibold); color: var(--ds-text-2); letter-spacing: .02em; }
.k-ct__none { margin: 0 0 var(--ds-sp-2); }
.k-ct-selbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-sp-2); margin-bottom: var(--ds-sp-3); }
.k-ct-sel { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.k-ct-sel__c { cursor: pointer; background: var(--ds-primary-soft); border-color: var(--ds-primary-border); color: var(--ds-link); font: inherit; font-size: var(--ds-fs-sm); }
.k-ct-sel__c .ds-chip__x { color: inherit; }
.k-dr__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-sp-2); margin-bottom: var(--ds-sp-2); }
.k-dr__crumbs ol { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; font-size: var(--ds-fs-sm); }
.k-dr__crumbs li + li::before { content: '›'; margin-right: 4px; color: var(--ds-text-3); }
.k-dr__crumbs [aria-current] { font-weight: var(--ds-fw-semibold); color: var(--ds-text); }
.k-dr__cb { border: 0; background: none; padding: 2px; color: var(--ds-link); font: inherit; cursor: pointer; text-decoration: underline; }
.k-dr__row { display: flex; align-items: center; gap: 4px; }
.k-dr__opt { flex: 1; min-width: 0; min-height: 40px; margin: 0; }
.k-dr__opt--more { display: flex; align-items: center; padding: 0 var(--ds-sp-2); color: var(--ds-text); }
.k-dr__go { flex: none; min-width: 40px; min-height: 40px; }
.k-dr__line { padding: 8px 0 2px; font-size: var(--ds-fs-xs); font-weight: var(--ds-fw-semibold); color: var(--ds-text-2); }
.k-dr__all { margin: var(--ds-sp-2) 0 0; padding-top: var(--ds-sp-2); border-top: 1px solid var(--ds-divider); min-height: 40px; }
.k-dr__view { width: 100%; }
.k-cp__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--ds-sp-3); }
.k-cp__grid--sm { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.k-cp__card { height: 100%; gap: 4px; }
.k-cp__card .ds-card__title { margin: 0; }
.k-cp__card p { margin: 0; }
.k-cp__card--empty .ds-card__title a { color: var(--ds-text-2); }
.k-cp__foot { margin-top: auto; padding: var(--ds-sp-2) 0 0; border-top: 1px solid var(--ds-divider); background: none; }
.k-cp__grp + .k-cp__grp { margin-top: var(--ds-sp-5); }
.k-cp__gh { margin: 0 0 var(--ds-sp-2); font-size: var(--ds-fs-md); color: var(--ds-text-2); }
.k-cp__more { margin-top: var(--ds-sp-4); }
.k-cp__more > summary { cursor: pointer; font-weight: var(--ds-fw-semibold); padding: var(--ds-sp-2) 0; }
.k-sr-path a { color: var(--ds-link); }
@media (max-width: 640px) {
  .k-cp__grid, .k-cp__grid--sm { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 芯片平台验收：浅色主题下「模组 / 产测固件」accent 徽章在卡片底上 4.41:1，加深一档到 AA（不改共享设计系统） */
[data-theme="light"] [data-ds] .ds-badge--accent, [data-theme="light"] .ds-badge--accent, [data-theme="warm"] .ds-badge--accent { --_c: #08635f; }
/* live-v1【2026-10-24】烧后反馈：提交结果提示 */
.k-fb__priv { margin: 0; }
.k-fb__msg { margin: 0; min-height: 1.4em; font-size: var(--ds-fs-sm); }
.k-fb__msg[data-tone="success"] { color: var(--ds-success); } .k-fb__msg[data-tone="danger"] { color: var(--ds-danger); } .k-fb__msg[data-tone="warn"] { color: var(--ds-warn); }
/* 2026-10-27 首页硬件墙：默认两排，下面通栏「展开全部 N 块 / 收起」（展开后箭头朝上）；「全部硬件（N）」在标题行右侧 */
.k-wall__more { display: flex; width: 100%; justify-content: center; margin-top: var(--ds-sp-4); }
.k-wall__more[aria-expanded="true"] svg { transform: rotate(180deg); }
#k-wall .ds-section__head { display: flex; align-items: center; justify-content: space-between; gap: var(--ds-sp-3); flex-wrap: wrap; }
#k-wall .ds-section__head h2 { margin: 0; }
.k-wall__all { flex: none; }
/* 2026-10-29 芯片平台厂家页「选型表」：每个系列一行，整宽；没有硬件的系列淡化；手机端沿用 ds-table--stack */
.k-cp__tbl { width: 100%; }
.k-cp__sel { width: 100%; }
.k-cp__sel th, .k-cp__sel td { white-space: nowrap; }
.k-cp__sel td:first-child, .k-cp__sel th:first-child { width: 22%; }
.k-cp__sel td:nth-child(2) { white-space: normal; }
.k-cp__sel .ds-tnum { text-align: right; }
.k-cp__sname { font-weight: var(--ds-fw-semibold); }
.k-cp__row--empty td { color: var(--ds-text-3); }
.k-cp__row--empty .k-cp__sname { color: var(--ds-text-2); font-weight: var(--ds-fw-regular); }
.k-cp__gh .ds-dim { font-weight: var(--ds-fw-regular); }
.k-cp__hwf { margin-bottom: var(--ds-sp-4); }
@media (max-width: 720px) { .k-cp__sel th, .k-cp__sel td { white-space: normal; } .k-cp__sel .ds-tnum { text-align: left; } .k-cp__sel td:first-child { width: 100%; } }
.k-cp__sel .k-cp__lrow th { background: var(--ds-surface-2); color: var(--ds-text-2); font-size: var(--ds-fs-sm); font-weight: var(--ds-fw-semibold); text-align: left; padding-top: 6px; padding-bottom: 6px; }
@media (max-width: 720px) { .ds-table--stack .k-cp__lrow th { display: block; width: 100%; } }
/* 2026-10-29 产品图显示完整（用户要求）：主图几乎都是白底正方形，16:10 + cover 会把上下裁掉。
   卡片 / 首页墙的图片区改成正方形、contain；背景用白色（和照片白底一致，不出灰边），深色主题下也一样 */
.k-wall__img, .k-hwcard__media { aspect-ratio: 1 / 1; background: #ffffff; }
.k-wall__img img, .k-hwcard__media img { object-fit: contain; }
.k-fwrow__thumb { background: #ffffff; } .k-fwrow__thumb img { object-fit: contain; }
/* 2026-10-29 卡片改「淘宝式」：图片保持正方形完整显示，卡片变窄、一行放更多（1440 宽：列表 4→5 列、首页墙 5→6 列），
   文字区收紧（标题两行截断、芯片型号一行），整页长度回到改正方形之前的水平 */
.k-hwgrid { --ds-grid-min: 180px; gap: var(--ds-sp-3); }
.k-wall { grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); gap: var(--ds-sp-3); }
.k-hwcard .ds-card__body { padding: var(--ds-sp-2) var(--ds-sp-3); gap: 2px; }
.k-hwcard__title { font-size: var(--ds-fs-sm); line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.k-hwcard .ds-card__sub { font-size: var(--ds-fs-xs); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.k-hwcard .ds-badges { margin-top: 4px; }
.k-hwcard .ds-card__foot { padding: 6px var(--ds-sp-3); font-size: var(--ds-fs-xs); }
.k-wall__name { padding: var(--ds-sp-2) var(--ds-sp-2) 0; font-size: var(--ds-fs-sm); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.k-wall__meta { padding: 2px var(--ds-sp-2) var(--ds-sp-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 720px) { .k-hwgrid { --ds-grid-min: 150px; } .k-hwgrid.ds-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.k-hwcard .ds-badges { flex-wrap: nowrap; overflow: hidden; gap: 4px; } .k-hwcard .ds-badges .ds-badge { flex: none; }
@media (max-width: 720px) { .k-hwcard .ds-card__foot { flex-wrap: wrap; row-gap: 0; } .k-hwcard .ds-card__foot .ds-spacer { display: none; } }
/* 2026-10-29 竖图（如 stm8s003f3p6-mini 400×533）在卡片里撑高、压到文字：.ds-card__media 是 grid + aspect-ratio，子元素 height:100% 解析不出来，
   img 按自身比例变高。改成图片绝对定位铺满方框再 contain：横图竖图都完整显示，盒子不会超出图片区（twd-f0 量出来的问题） */
.k-hwcard__media, .k-wall__img { position: relative; overflow: hidden; }
.k-hwcard__media img, .k-wall__img img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; }
