/* ======================================================================
 * av6 · 55 机械键盘轴体匹配 —— 页面专属样式（散点图 / 三张匹配卡 / 批量表）
 * 只使用 shell.css 的 --av6-* 变量，暗色自动跟随
 * ====================================================================== */

/* 压力×行程散点 SVG */
.ksf #ksfPlate { width: 100%; height: auto; max-width: 240px; }
.ksf .ksf-plate-t {
    font-family: var(--av6-mono);
    font-size: 10px;
    letter-spacing: .12em;
    fill: var(--av6-muted);
}
.ksf .ksf-plate-c {
    font-family: var(--av6-mono);
    font-size: 8.5px;
    fill: var(--av6-ink2);
}
.ksf .ksf-plate-s { font-size: 9px; fill: var(--av6-muted); }
.ksf .ksf-plate-b {
    font-family: var(--av6-mono);
    font-size: 9px;
    fill: var(--av6-ink2);
}
.ksf .ksf-band rect { fill-opacity: .14; stroke-width: 1; }
.ksf .ksf-band circle { opacity: .8; }
.ksf .ksf-band[data-band="linear"] rect  { fill: var(--av6-pri); stroke: var(--av6-pri); }
.ksf .ksf-band[data-band="linear"] circle  { fill: var(--av6-pri); }
.ksf .ksf-band[data-band="tactile"] rect { fill: var(--av6-sig); stroke: var(--av6-sig); }
.ksf .ksf-band[data-band="tactile"] circle  { fill: var(--av6-sig); }
.ksf .ksf-band[data-band="silent"] rect  { fill: var(--av6-ok); stroke: var(--av6-ok); }
.ksf .ksf-band[data-band="silent"] circle  { fill: var(--av6-ok); }
.ksf #ksfMarkDot { fill: var(--av6-card); stroke: var(--av6-ink); stroke-width: 2; }

/* 偏好摘要行 */
.ksf .ksf-sub { font-size: 13.5px; color: var(--av6-ink2); margin: 0 0 10px; }

/* 三张匹配度卡（JS 排序后渲染） */
.ksf .ksf-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 6px 0 4px;
}
.ksf .ksf-mcard {
    border: 1px solid var(--av6-line);
    border-radius: 3px;
    background: var(--av6-paper);
    padding: 10px 12px;
}
.ksf .ksf-mcard .rank {
    font-family: var(--av6-mono);
    font-size: 10.5px;
    color: var(--av6-muted);
    letter-spacing: .08em;
}
.ksf .ksf-mcard .nm { font-size: 15px; font-weight: 700; color: var(--av6-ink); margin: 2px 0; }
.ksf .ksf-mcard .sc {
    font-family: var(--av6-mono);
    font-size: 24px;
    font-weight: 700;
    color: var(--av6-info);
}
.ksf .ksf-mcard .rng { font-family: var(--av6-mono); font-size: 10.5px; color: var(--av6-muted); margin: 2px 0 6px; }
.ksf .ksf-mcard .rs { font-size: 12.5px; color: var(--av6-ink2); }
.ksf .ksf-mcard.top {
    border-color: var(--av6-pri);
    background: var(--av6-prisoft);
}
.ksf .ksf-mcard.top .sc { color: var(--av6-pri); }
.ksf .ksf-mcard.top .rank { color: var(--av6-sig); }
@media (max-width: 560px) {
    .ksf .ksf-cards { grid-template-columns: 1fr; }
}

/* 试轴清单 */
.ksf .ksf-trials h3 { font-size: 14px; margin: 14px 0 6px; color: var(--av6-pri); }
.ksf .ksf-trials ol { margin: 0; padding-left: 22px; }
.ksf .ksf-trials li { margin: 5px 0; font-size: 13.5px; color: var(--av6-ink2); }
.ksf .ksf-trials li b { color: var(--av6-ink); }

/* AI 卡提示框为空时不占位 */
.ksf #ksf_ai_box:empty { display: none; }

/* 批量输出表容器（空时不占位） */
.ksf #ksf_batch_out:empty { display: none; }
.ksf #ksf_batch_out table { margin-bottom: 4px; }
