/* =====================================================================
 *  NAS 设备站 · 前台样式
 *  设计规范（所有页面共用，改颜色/圆角/阴影只改这里）：
 *    颜色   --nm-page 页面底色  --nm-surface 卡片/面板  --nm-surface-2 表头/次级底色
 *           --nm-line 分隔线   --nm-ink 正文  --nm-muted 次要文字  --nm-price 价格
 *    圆角   --nm-r-sm 6px（标签、按钮、输入框）--nm-r-md 10px（卡片、面板）--nm-r-lg 14px（页面主视觉块）
 *    阴影   --nm-shadow 只有一种；深色模式下不用阴影，靠描边区分层级
 *    数字   价格、参数、统计统一用等宽数字 .num（font-variant-numeric: tabular-nums）
 *  常用组件：.page-head 页面标题区  .panel 内容面板  .section-title 区块标题
 *           .spec-chip 参数标签  .key-specs 关键参数条  .callout 提示/摘要块
 * ===================================================================== */
:root {
  --nm-page:#f3f5f8; --nm-surface:#fff; --nm-surface-2:#f7f9fb; --nm-line:#e2e7ee;
  --nm-ink:#18212e; --nm-muted:#5b6778; --nm-price:#d4380d; --nm-accent:var(--bs-primary); --nm-accent-rgb:var(--bs-primary-rgb);
  --nm-accent-soft:rgba(var(--bs-primary-rgb),.08);
  --nm-r-sm:6px; --nm-r-md:10px; --nm-r-lg:14px;
  --nm-shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.05);
  --nm-font:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei UI","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC","Segoe UI",Roboto,sans-serif;
  --bs-body-font-family:var(--nm-font);
  --bs-border-radius:var(--nm-r-sm);
}
[data-bs-theme="dark"] {
  --nm-page:#111418; --nm-surface:#1a1e24; --nm-surface-2:#20252c; --nm-line:#2c333c;
  --nm-ink:#e4e8ed; --nm-muted:#98a2af; --nm-price:#ff7a45; --nm-accent-soft:rgba(var(--bs-primary-rgb),.16);
  --nm-shadow:none;
}
.num, .price, .stat-num, .key-spec-value, .spec-table td { font-variant-numeric:tabular-nums; }

body { background:var(--nm-page); color:var(--nm-ink); font-family:var(--nm-font); -webkit-font-smoothing:antialiased; }
main { min-height: calc(100vh - 220px); }
.card { border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); box-shadow:var(--nm-shadow); }
.device-card { transition:border-color .15s ease; }
.device-card:hover, .device-card:focus-within { border-color:rgba(var(--nm-accent-rgb),.45); }
.section-title { border-left:3px solid var(--nm-accent); padding-left:.6rem; margin:1.75rem 0 .9rem; font-size:1.125rem; font-weight:650; line-height:1.4; color:var(--nm-ink); }
.site-logo { display:inline-block; width:auto; max-width:78px; max-height:32px; object-fit:contain; flex:none; }
.site-footer { background:#161b23; color:#e8edf5; padding:1.65rem 0 calc(1.65rem + env(safe-area-inset-bottom)); border-top:1px solid #232a35; }
.footer-navigation { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2rem; padding:0 0 1.35rem; border-bottom:1px solid rgba(255,255,255,.12); }
.footer-nav-group { min-width:0; }
.footer-nav-title { margin:0 0 .7rem; color:#a9c9ff; font-size:.82rem; font-weight:700; letter-spacing:.04em; }
.footer-nav-links { display:flex; flex-wrap:wrap; gap:.45rem .6rem; }
.footer-external { text-align:right; }
.footer-external .footer-nav-links { flex-direction:row-reverse; }
.footer-nav-link { display:inline-flex; align-items:center; min-height:36px; padding:.35rem .72rem; border:1px solid rgba(255,255,255,.14); border-radius:999px; color:#e8edf5; font-size:.84rem; line-height:1.25; text-decoration:none; transition:background-color .16s ease,border-color .16s ease,color .16s ease; }
.footer-nav-link:hover,.footer-nav-link:focus-visible { color:#fff; background:rgba(13,110,253,.2); border-color:rgba(132,180,255,.65); text-decoration:none; }
.footer-bottom { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem 2rem; padding-top:1.1rem; }
.footer-brand { min-width:0; }
.footer-site-name { display:flex; align-items:center; gap:.45rem; color:#fff; font-size:1rem; font-weight:700; }
.footer-site-name .site-logo { max-width:68px; max-height:28px; }
.footer-about { max-width:52rem; margin:.45rem 0 0; color:#aab4c3; font-size:.82rem; line-height:1.6; }
.footer-legal { flex:none; color:#aab4c3; font-size:.76rem; line-height:1.7; text-align:right; }
.breadcrumb-item + .breadcrumb-item::before { content:var(--site-breadcrumb-separator, "/"); }
.spec-table th { width:32%; background:var(--nm-surface-2); color:var(--nm-muted); font-weight:500; }
.compare-table th, .compare-table td { vertical-align:middle; text-align:center; }
.compare-table .row-label { background:var(--nm-surface-2); color:var(--nm-muted); font-weight:500; text-align:left; min-width:140px; }
.compare-table .best-value { background:rgba(25,135,84,.09); color:#157347; font-weight:650; }
.article-content { line-height:1.8; font-size:1.02rem; }
.report-message { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.65; }
.article-content img { max-width:100%; border-radius:4px; margin:1rem 0; }
.article-content pre { background:var(--nm-surface-2); padding:1rem; border-radius:var(--nm-r-sm); overflow:auto; }
.article-content code { background:var(--nm-surface-2); padding:1px 5px; border-radius:4px; }
.article-content blockquote { border-left:3px solid var(--nm-line); padding-left:1rem; color:var(--nm-muted); }
[data-fav-label] { user-select:none; }
[data-fav].active, .btn-outline-danger.active { background:var(--bs-danger); color:#fff; border-color:var(--bs-danger); }
.wizard-option:hover { border-color:#0d6efd !important; }
@media (max-width:576px){ .section-title{font-size:1rem} }
@media (max-width:575.98px) {
  .site-footer { margin-top:2rem !important; padding-top:1.25rem; padding-bottom:calc(1.25rem + env(safe-area-inset-bottom)); }
  .footer-navigation { grid-template-columns:1fr; gap:1rem; padding-bottom:1rem; }
  .footer-nav-title { margin-bottom:.55rem; }
  .footer-nav-links { gap:.4rem; }
  .footer-nav-link { min-height:40px; padding:.45rem .7rem; font-size:.82rem; }
  .footer-bottom { align-items:flex-start; flex-direction:column; gap:.8rem; padding-top:1rem; }
  .footer-legal { text-align:left; }
}

/* ===================== 骨架屏 ===================== */
.skeleton {
  background: linear-gradient(90deg, #eceff1 25%, #f5f7fa 37%, #eceff1 63%);
  background-size: 400% 100%;
  animation: skeleton-loading 1.4s ease infinite;
  border-radius: 4px;
}
@keyframes skeleton-loading { 0% { background-position: 100% 50% } 100% { background-position: 0 50% } }

/* ===================== 暗色模式（颜色变量见文件顶部，这里只放 Bootstrap 工具类的修正） ===================== */
[data-bs-theme="dark"] .bg-white,
[data-bs-theme="dark"] .list-group-item { background-color:var(--nm-surface) !important; color:var(--nm-ink); }
[data-bs-theme="dark"] .text-dark { color:var(--nm-ink) !important; }
[data-bs-theme="dark"] .bg-light { background-color:var(--nm-surface-2) !important; }
[data-bs-theme="dark"] .skeleton { background:linear-gradient(90deg,#20252c 25%,#272d35 37%,#20252c 63%); background-size:400% 100%; }
[data-bs-theme="dark"] .compare-table .best-value { background:rgba(111,220,140,.12); color:#6fdc8c; }
[data-bs-theme="dark"] .device-card img, [data-bs-theme="dark"] .card-img-top { background:var(--nm-surface-2) !important; }

/* ===================== 统计条 ===================== */
.stat-strip { background:var(--nm-surface); border:1px solid var(--nm-line); border-radius:var(--nm-r-md); box-shadow:var(--nm-shadow); }
.stat-strip .stat-num { color:var(--nm-ink); }
.stat-strip .stat-label { color:var(--nm-muted); }
.stat-strip .stat-num { font-size:1.7rem; font-weight:700; line-height:1.1; }
.stat-strip .stat-label { font-size:.8rem; }

/* ===================== 品牌卡 ===================== */
.brand-card { transition:border-color .15s ease; }
.brand-card:hover { border-color:rgba(var(--nm-accent-rgb),.45); }
.brand-initial {
  width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; font-weight:700; color:var(--nm-accent); background:var(--nm-accent-soft); flex:none;
}

/* ===================== 设备列表视图切换 ===================== */
.view-list .device-col { width:100% !important; }
.view-list .device-card { flex-direction:row !important; }
.view-list .device-card > a { flex:0 0 150px; }
.view-list .device-card .card-img-top { height:120px !important; }
.view-list .device-card .card-body { flex:1; }

/* 设备列表交互：鼠标、键盘焦点和触摸点击都有明确反馈 */
#device-list .device-card { transition:border-color .15s ease; }
#device-list .device-card:hover,
#device-list .device-card:focus-within { border-color:rgba(var(--nm-accent-rgb),.45); }
#device-list .device-card a:focus-visible,
#device-list .device-card button:focus-visible {
  outline:3px solid rgba(var(--nm-accent-rgb),.55);
  outline-offset:2px;
  border-radius:var(--nm-r-sm);
}
@media (hover:none) {
  #device-list .device-card:active { border-color:rgba(var(--bs-primary-rgb),.5); }
}
@media (prefers-reduced-motion:reduce) {
  #device-list .device-card,#device-list .device-card img { transition:none; }
}

/* ===================== 指南页锚点导航 ===================== */
.toc-sticky { position:sticky; top:80px; }
.guide-section { scroll-margin-top:80px; }
.guide-category { border:1px solid var(--bs-border-color); }
.guide-category > summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; cursor:pointer; list-style:none; }
.guide-category > summary::-webkit-details-marker { display:none; }
.guide-category > summary::after { content:'+'; font-size:1.5rem; line-height:1; color:var(--bs-primary); }
.guide-category[open] > summary::after { content:'−'; }
.guide-entry-list { padding-left:1.5rem; }
.guide-entry-list li { padding:.6rem 0; border-bottom:1px solid var(--bs-border-color); }
.guide-entry-list li:last-child { border-bottom:0; }
.guide-entry-list h3 a { text-decoration:none; }
.guide-entry-list h3 a:hover { text-decoration:underline; }
.detail-pager { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1.5rem 0; }
.detail-pager-link { min-width:0; display:flex; flex-direction:column; gap:.35rem; padding:1rem 1.15rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); box-shadow:var(--nm-shadow); text-decoration:none; transition:border-color .15s ease; }
a.detail-pager-link { color:var(--bs-body-color); }
a.detail-pager-link:hover { border-color:rgba(var(--nm-accent-rgb),.45); }
.detail-pager-next { text-align:right; align-items:flex-end; }
.detail-pager-label { color:var(--nm-muted); font-size:.8rem; }
.detail-pager-link strong { max-width:100%; overflow-wrap:anywhere; font-size:1rem; font-weight:600; }
.detail-pager-link small { max-width:100%; overflow-wrap:anywhere; color:var(--bs-secondary-color); }
.detail-pager-empty { opacity:.62; }
.article-content { font-size:1.04rem; line-height:1.9; overflow-wrap:anywhere; }
.article-content h2,.article-content h3,.article-content h4 { margin-top:1.8rem; margin-bottom:.8rem; line-height:1.4; }
.article-content img { max-width:100%; height:auto; border-radius:.75rem; }
.article-content table { display:block; max-width:100%; overflow-x:auto; }
@media(max-width:575.98px) { .detail-pager { grid-template-columns:1fr; gap:.65rem; } .detail-pager-next { text-align:left; align-items:flex-start; } }

/* =====================================================================
 * 响应式增强（移动优先）
 * 断点沿用 Bootstrap：sm 576 / md 768 / lg 992 / xl 1200
 * ===================================================================== */

/* ---------- 无障碍：跳转链接 ---------- */
.skip-link {
  position:absolute; left:-9999px; top:0; z-index:2000;
  background:#0d6efd; color:#fff; padding:.6rem 1rem; border-radius:0 0 6px 0;
}
.skip-link:focus { left:0; }

/* ---------- 流体排版：小屏自动缩小，不必写一堆媒体查询 ---------- */
h1, .h1 { font-size: clamp(1.5rem, 4vw, 2.2rem); }
h2, .h2 { font-size: clamp(1.3rem, 3.4vw, 1.9rem); }
h3, .h3 { font-size: clamp(1.1rem, 2.8vw, 1.5rem); }
.section-title { font-size: clamp(1rem, 2.4vw, 1.15rem); }
.stat-strip .stat-num { font-size: clamp(1.2rem, 4.5vw, 1.8rem); }

/* ---------- 图片容器：固定宽高比，消除加载抖动（CLS） ---------- */
.img-wrap {
  width:100%; background:var(--nm-surface-2); border-radius:var(--nm-r-md) var(--nm-r-md) 0 0;
  overflow:hidden; display:flex; align-items:center; justify-content:center;
}
.img-wrap img { width:100%; height:100%; object-fit:contain; padding:8px; }

/* ---------- 多行截断 ---------- */
.line-clamp-2 {
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; line-height:1.35; min-height:2.7em;
}

/* ---------- 触摸友好：点击区不小于 44×44（WCAG 2.5.5） ---------- */
.tap, .btn-group-sm > .tap { min-width:38px; min-height:38px; }
@media (hover:none) {
  .tap, .btn-group-sm > .tap { min-width:44px; min-height:44px; }
  .nav-link, .list-group-item a { padding-top:.55rem; padding-bottom:.55rem; }
}

/* ---------- 滚动入场动画 ---------- */
/* 入场动画已停用：内容直接显示（.reveal 类保留以兼容旧代码） */
.reveal, .reveal.revealed { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal.revealed { opacity:1; transform:none; transition:none; }
  .device-card, .brand-card { transition:none; }
  html { scroll-behavior:auto; }
}
html { scroll-behavior:smooth; }

/* ---------- 移动端底部 Tab 栏 ---------- */
#mobile-tabbar { display:none; }
@media (max-width: 767.98px) {
  #mobile-tabbar {
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:1035;
    background:var(--bs-body-bg); border-top:1px solid var(--bs-border-color);
    padding-bottom:env(safe-area-inset-bottom);   /* 避开 iPhone 底部横条 */
    box-shadow:0 -2px 12px rgba(0,0,0,.06);
  }
  .tabbar-item {
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    padding:.45rem 0 .35rem; text-decoration:none; color:var(--bs-secondary-color);
    font-size:.68rem; min-height:52px;
  }
  .tabbar-item.active { color:var(--bs-primary); }
  .tabbar-icon { font-size:1.25rem; line-height:1.1; }
  .pb-main { padding-bottom:72px !important; }   /* 内容不被 tabbar 遮挡 */
  .back-to-top { bottom:76px !important; }
}

/* ---------- 返回顶部 ---------- */
.back-to-top {
  position:fixed; right:16px; bottom:24px; width:44px; height:44px; z-index:1030;
  border-radius:50%; font-size:1.1rem; line-height:1;
}

/* ---------- 移动端全屏搜索浮层 ---------- */
.search-overlay {
  position:fixed; inset:0; z-index:1060; background:var(--bs-body-bg);
  display:none; flex-direction:column; overflow-y:auto;
  padding-top:env(safe-area-inset-top);
}
.search-overlay.show { display:flex; }

/* ---------- 对比表：移动端首列冻结 + 横向滑动 ---------- */
.compare-table { min-width:520px; }
.compare-table .row-label {
  position:sticky; left:0; z-index:2;
  background:var(--bs-tertiary-bg) !important;
  box-shadow:2px 0 4px rgba(0,0,0,.06);
}
@media (max-width: 767.98px) {
  .compare-table th, .compare-table td { font-size:.82rem; padding:.4rem .3rem; }
  .compare-table .row-label { min-width:98px; max-width:110px; }
  .compare-table thead img { height:60px !important; }
}

/* ---------- 参数表：窄屏仍保持左右两栏（名称 40% / 数值），比上下堆叠短一半 ---------- */
@media (max-width: 575.98px) {
  .spec-table th { width:40%; font-size:.8125rem; }
  .spec-table th, .spec-table td { padding:.45rem .6rem; font-size:.875rem; line-height:1.45; overflow-wrap:anywhere; }
}

/* ---------- 设备列表：筛选栏吸顶 ---------- */
@media (min-width: 768px) {
  .filter-sticky { position:sticky; top:64px; z-index:1010;
    background:var(--bs-body-bg); padding:.5rem 0; }
}
@media (max-width: 767.98px) {
  .filter-sticky { align-items:flex-start !important; flex-direction:column; }
  .filter-sticky #price-filter { width:100%; }
  .filter-sticky .btn-group { align-self:flex-end; }
}
/* 移动端筛选条横向滑动，不换行挤压 */
.scroll-x {
  display:flex; gap:.4rem; overflow-x:auto; -webkit-overflow-scrolling:touch;
  scrollbar-width:none; padding-bottom:.25rem;
}
.scroll-x::-webkit-scrollbar { display:none; }
.scroll-x > * { flex:0 0 auto; }

/* ---------- 小屏价格字号 ---------- */
@media (max-width: 575.98px) { .small-price { font-size:.85rem; } }

/* ---------- 移动端抽屉 ---------- */
#navDrawer { max-width:82vw; width:300px; }
#navDrawer .list-group-item.active { border-color:var(--bs-primary); }
#navDrawer .list-group-item.active a { color:#fff !important; }
#navDesktop .navbar-nav { flex-wrap:nowrap; white-space:nowrap; }
#navDesktop .navbar-nav .nav-link { padding-left:.45rem; padding-right:.45rem; }

/* ---------- 表格通用：窄屏可横向滑动并提示 ---------- */
.table-responsive { -webkit-overflow-scrolling:touch; }

/* ---------- 指南页目录：移动端改为顶部折叠 ---------- */
@media (max-width: 991.98px) { .toc-sticky { position:static; } }

/* ===================== 新手指南目录 ===================== */
.guide-page-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.guide-page-heading h1 { margin:0; font-size:clamp(1.35rem,2.6vw,1.65rem); font-weight:700; }
.guide-page-heading p { margin:.35rem 0 0; color:var(--bs-secondary-color); }
.guide-heading-mark { display:none; }
.guide-workspace { display:grid; grid-template-columns:220px minmax(0,1fr); align-items:start; gap:1.2rem; }
.guide-side-nav { position:sticky; top:1rem; gap:.4rem; padding:.65rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); box-shadow:var(--nm-shadow); }
.guide-side-nav .nav-link { display:flex; align-items:center; justify-content:space-between; gap:.7rem; min-height:52px; padding:.7rem .85rem; border-radius:var(--nm-r-sm); color:var(--bs-body-color); text-align:left; }
.guide-side-nav .nav-link.active { color:#fff; background:var(--bs-primary); box-shadow:0 .35rem .8rem rgba(var(--bs-primary-rgb),.18); }
.guide-side-nav .nav-link small { flex:none; color:var(--bs-secondary-color); font-size:.73rem; }
.guide-side-nav .nav-link.active small { color:rgba(255,255,255,.8); }
.guide-nav-main { min-width:0; font-weight:700; }
.guide-content-panel { min-width:0; min-height:260px; padding:1.3rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); box-shadow:var(--nm-shadow); }
.guide-category-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; padding-bottom:.95rem; border-bottom:1px solid var(--bs-border-color-translucent); }
.guide-category-heading h2 { margin:0; font-size:1.25rem; font-weight:700; }
.guide-category-heading p { margin:.25rem 0 0; color:var(--bs-secondary-color); font-size:.88rem; }
.guide-entry-list { display:grid; gap:.6rem; }
.guide-entry-card { min-width:0; display:flex; align-items:center; gap:.85rem; padding:.9rem 1rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); transition:border-color .16s ease,background-color .16s ease,transform .16s ease; }
.guide-entry-card:hover { border-color:rgba(var(--bs-primary-rgb),.35); background:rgba(var(--bs-primary-rgb),.025); }
.guide-entry-card[hidden] { display:none !important; }
.guide-entry-number { width:2.2rem; flex:none; color:var(--bs-primary); font-size:.78rem; font-weight:700; font-variant-numeric:tabular-nums; }
.guide-entry-copy { min-width:0; flex:1; }
.guide-entry-copy h3 { margin:0; font-size:.96rem; font-weight:650; line-height:1.5; }
.guide-entry-copy h3 a { color:var(--bs-body-color); text-decoration:none; overflow-wrap:anywhere; }
.guide-entry-copy h3 a:hover { color:var(--bs-primary); }
.guide-entry-copy p { margin:.3rem 0 0; color:var(--bs-secondary-color); font-size:.83rem; line-height:1.55; overflow-wrap:anywhere; }
.guide-entry-arrow { flex:none; color:var(--bs-secondary-color); font-size:1.5rem; text-decoration:none; }
.guide-entry-arrow:hover { color:var(--bs-primary); }
.guide-empty-state { padding:3rem 1rem; border:1px dashed var(--bs-border-color); border-radius:var(--nm-r-md); color:var(--bs-secondary-color); text-align:center; }
.guide-pagination { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.7rem; margin-top:1rem; padding-top:.85rem; border-top:1px solid var(--bs-border-color-translucent); }
.guide-page-count { color:var(--bs-secondary-color); font-size:.8rem; }
.guide-page-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem; }
.guide-page-actions button { min-width:2.1rem; min-height:2.1rem; padding:.3rem .55rem; border:1px solid var(--bs-border-color); border-radius:var(--nm-r-sm); background:var(--nm-surface); color:var(--bs-body-color); font-size:.8rem; }
.guide-page-actions button.active { border-color:var(--bs-primary); background:var(--bs-primary); color:#fff; }
.guide-page-actions button:hover:not(.active):not(:disabled) { border-color:var(--bs-primary); color:var(--bs-primary); }
.guide-page-actions button:disabled { opacity:.45; }
[data-bs-theme="dark"] .guide-content-panel { box-shadow:none; }
@media (max-width:767.98px) {
  .guide-page-heading { padding:1.1rem 1.2rem; }
  .guide-heading-mark { width:2.8rem; height:2.8rem; font-size:1.5rem; }
  .guide-workspace { grid-template-columns:minmax(0,1fr); gap:.8rem; }
  .guide-side-nav { position:static; flex-direction:row !important; flex-wrap:nowrap; gap:.3rem; overflow-x:auto; padding:.45rem; scrollbar-width:none; }
  .guide-side-nav::-webkit-scrollbar { display:none; }
  .guide-side-nav .nav-link { flex:none; min-height:42px; padding:.55rem .7rem; white-space:nowrap; }
  .guide-content-panel { min-height:200px; padding:.9rem; }
  .guide-entry-card { gap:.65rem; padding:.75rem; }
  .guide-entry-number { width:1.8rem; }
}

/* ===================== 个人中心 ===================== */
.user-center { max-width:1120px; margin:0 auto; }
.uc-profile-card { overflow:hidden; border:1px solid var(--nm-line); border-radius:var(--nm-r-lg); background:var(--nm-surface); box-shadow:var(--nm-shadow); }
.uc-profile-summary { display:flex; align-items:center; gap:1.25rem; padding:1.5rem 1.75rem; }
.uc-avatar { width:76px; height:76px; flex:none; border-radius:50%; object-fit:cover; background:var(--bs-tertiary-bg); box-shadow:0 0 0 5px rgba(var(--bs-primary-rgb),.1); }
.uc-identity { min-width:0; flex:1; }
.uc-eyebrow { display:none; }
.uc-identity h1 { margin:0; font-size:clamp(1.35rem,3vw,1.8rem); font-weight:700; letter-spacing:-.025em; }
.uc-identity p { margin:.25rem 0 .55rem; color:var(--bs-secondary-color); overflow-wrap:anywhere; }
.uc-account-status { min-height:1.8rem; }
.uc-edit-toggle { flex:none; border-radius:999px; padding:.55rem 1rem; }
.uc-profile-settings { padding:1.2rem 1.75rem 1.5rem; border-top:1px solid var(--bs-border-color-translucent); background:rgba(var(--bs-body-bg-rgb),.72); }
.uc-profile-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) auto; align-items:end; gap:1rem; }
.uc-profile-form .form-label,.uc-avatar-upload .form-label { margin-bottom:.4rem; font-size:.84rem; font-weight:600; }
.uc-avatar-upload { margin-top:1rem; max-width:500px; }
.uc-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:.9rem; }
.uc-section-heading h2 { margin:0; font-size:1.22rem; font-weight:700; letter-spacing:-.02em; }
.uc-section-heading p { margin:0 0 .1rem; color:var(--bs-secondary-color); font-size:.86rem; text-align:right; }
.uc-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
.uc-stat-card { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:1rem 1.1rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); box-shadow:var(--nm-shadow); transition:border-color .15s ease; }
.uc-stat-card:hover { border-color:rgba(var(--nm-accent-rgb),.35); }
.uc-stat-card span { color:var(--bs-secondary-color); font-size:.86rem; line-height:1.4; }
.uc-stat-card strong { color:var(--bs-primary); font-size:1.65rem; line-height:1; font-weight:700; font-variant-numeric:tabular-nums; }
.uc-tab-panel { min-height:170px; padding:1.35rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); box-shadow:var(--nm-shadow); overflow-wrap:anywhere; }
.uc-tab-panel .list-group-item { padding:.9rem 0; border-color:var(--bs-border-color-translucent); }
.uc-workspace-grid { display:grid; grid-template-columns:220px minmax(0,1fr); align-items:start; gap:1.2rem; }
.uc-side-nav { position:sticky; top:1rem; display:flex; flex-direction:column; gap:.35rem; padding:.65rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); box-shadow:var(--nm-shadow); }
.uc-side-nav .nav-link { display:flex; align-items:center; gap:.7rem; min-height:43px; padding:.65rem .8rem; border-radius:var(--nm-r-sm); color:var(--bs-body-color); text-align:left; font-weight:600; }
.uc-side-nav .nav-link::before { display:none; }
.uc-side-group { min-width:0; }
.uc-side-group-toggle { width:100%; min-height:46px; display:flex; align-items:center; gap:.7rem; padding:.65rem .8rem; border:0; border-radius:var(--nm-r-sm); background:transparent; color:var(--bs-body-color); text-align:left; font-weight:700; }
.uc-side-group-toggle:hover,.uc-side-group-toggle[aria-expanded="true"] { background:var(--bs-tertiary-bg); }
.uc-nav-icon { width:1.5rem; height:1.5rem; flex:none; display:inline-grid; place-items:center; border-radius:var(--nm-r-sm); background:var(--bs-tertiary-bg); color:var(--bs-primary); font-size:.88rem; }
.uc-nav-chevron { width:.5rem; height:.5rem; margin-left:auto; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .16s ease; }
.uc-side-group-toggle[aria-expanded="true"] .uc-nav-chevron { transform:rotate(225deg) translate(-1px,-1px); }
.uc-side-subnav { display:grid; gap:.22rem; margin:.15rem 0 .4rem 1.05rem; padding:.25rem 0 .25rem .55rem; border-left:1px solid var(--bs-border-color); }
.uc-side-subnav .nav-link { min-height:37px; padding:.5rem .7rem; color:var(--bs-secondary-color); font-size:.86rem; font-weight:500; }
.uc-side-subnav .nav-link.active { color:var(--bs-primary); background:rgba(var(--bs-primary-rgb),.09); box-shadow:none; }
.uc-side-nav .nav-link.active { color:#fff; background:var(--bs-primary); box-shadow:0 .35rem .8rem rgba(var(--bs-primary-rgb),.18); }
.uc-side-nav .nav-link.active::before { background:rgba(255,255,255,.17); color:#fff; }
.uc-workspace-grid .uc-tab-panel { min-width:0; }
.uc-pane-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1.25rem; padding-bottom:1rem; border-bottom:1px solid var(--bs-border-color-translucent); }
.uc-pane-heading h3 { margin:0; font-size:1.18rem; font-weight:700; }
.uc-pane-heading p { margin:.3rem 0 0; color:var(--bs-secondary-color); font-size:.88rem; }
.uc-paginated { display:grid; gap:.55rem; }
.uc-page-item { display:contents; }
.uc-page-item[hidden] { display:none !important; }
.uc-paginated[data-pagination-group="fav-devices"] { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.uc-favorite-device { min-width:0; display:flex; align-items:center; gap:.7rem; padding:.7rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-sm); background:var(--nm-surface); }
.uc-favorite-device img { width:52px; height:52px; flex:none; object-fit:contain; border-radius:var(--nm-r-sm); background:var(--bs-tertiary-bg); }
.uc-favorite-device strong { min-width:0; font-size:.84rem; line-height:1.5; }
.uc-record-card { min-width:0; display:flex; align-items:center; gap:.8rem; padding:.85rem .9rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface); color:var(--bs-body-color); text-decoration:none; transition:border-color .16s ease,background-color .16s ease,transform .16s ease; }
.uc-record-card:hover { border-color:rgba(var(--nm-accent-rgb),.35); background:rgba(var(--nm-accent-rgb),.025); color:var(--bs-body-color); }
.uc-record-card.is-static, .uc-record-card.is-static:hover { cursor:default; border-color:var(--nm-line); background:var(--nm-surface-2); }
/* 我的发布 / 回收站：卡片带操作按钮 */
.uc-mine-card { flex-wrap:wrap; cursor:default; }
.uc-mine-card:hover { border-color:var(--nm-line); background:var(--nm-surface); }
.uc-mine-card .uc-record-copy { flex:1 1 14rem; }
.uc-mine-card .uc-record-copy a { color:inherit; text-decoration:none; }
.uc-mine-card .uc-record-copy a:hover { color:var(--nm-accent); text-decoration:underline; }
.uc-record-reason { display:block; margin-top:.25rem; color:#b45309; font-size:.8125rem; }
[data-bs-theme="dark"] .uc-record-reason { color:#fbbf24; }
.uc-record-actions { display:flex; gap:.35rem; margin-left:auto; flex-shrink:0; }
@media (max-width: 575.98px) { .uc-record-actions { width:100%; justify-content:flex-end; } }
.uc-settings-table th, .uc-settings-table td { vertical-align:middle; }
.uc-settings-table .form-check-input { width:1.15rem; height:1.15rem; }
.uc-settings-table td:nth-child(n+2), .uc-settings-table th:nth-child(n+2) { width:5.5rem; text-align:center; }
.uc-switch-row { display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; padding:.85rem 1rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); background:var(--nm-surface-2); margin-bottom:1rem; }
.uc-switch-row .form-check { margin:0; }
.uc-thread { border-left:2px solid var(--nm-line); padding-left:.85rem; margin-top:.6rem; }
.uc-thread-item + .uc-thread-item { margin-top:.6rem; }
.uc-danger-zone { border:1px solid rgba(220,38,38,.35); border-radius:var(--nm-r-md); padding:1rem 1.1rem; }
.uc-record-main { min-width:0; flex:1; display:flex; align-items:center; gap:.8rem; }
.uc-record-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:.18rem; }
.uc-record-copy strong { overflow-wrap:anywhere; font-size:.9rem; line-height:1.5; }
.uc-record-copy small { color:var(--bs-secondary-color); font-size:.78rem; line-height:1.45; overflow-wrap:anywhere; }
.uc-record-icon { width:2.2rem; height:2.2rem; flex:none; display:grid; place-items:center; border-radius:var(--nm-r-sm); background:rgba(var(--bs-primary-rgb),.08); color:var(--bs-primary); font-weight:700; }
.uc-record-arrow { flex:none; color:var(--bs-secondary-color); font-size:1.35rem; }
.uc-report-card { align-items:flex-start; padding:1rem; }
.uc-report-card .uc-record-copy { width:100%; }
.uc-recent-thumb { width:58px; height:52px; flex:none; display:grid; place-items:center; overflow:hidden; border-radius:var(--nm-r-sm); background:var(--bs-tertiary-bg); }
.uc-recent-thumb img { width:100%; height:100%; object-fit:contain; }
.uc-delete-recent { flex:none; color:var(--bs-secondary-color); }
.uc-delete-recent:hover { color:var(--bs-danger); background:rgba(var(--bs-danger-rgb),.08); }
.uc-unread { border-color:rgba(var(--bs-primary-rgb),.2); background:rgba(var(--bs-primary-rgb),.035); }
.uc-unread-dot { width:.55rem; height:.55rem; flex:none; border-radius:50%; background:var(--bs-primary); }
.uc-read-label { flex:none; color:var(--bs-secondary-color); font-size:.75rem; }
.uc-empty-state { display:flex; flex-direction:column; align-items:center; gap:.35rem; padding:2.5rem 1rem; border:1px dashed var(--bs-border-color); border-radius:var(--nm-r-md); color:var(--bs-secondary-color); text-align:center; }
.uc-empty-state strong { color:var(--bs-body-color); }
.uc-pagination { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.7rem; margin-top:.9rem; padding-top:.75rem; border-top:1px solid var(--bs-border-color-translucent); }
.uc-page-count { color:var(--bs-secondary-color); font-size:.78rem; }
.uc-page-actions { display:flex; align-items:center; gap:.25rem; }
.uc-page-number,.uc-page-arrow { min-width:2rem; min-height:2rem; padding:.3rem .55rem; border:1px solid var(--bs-border-color); border-radius:var(--nm-r-sm); background:var(--nm-surface); color:var(--bs-body-color); font-size:.8rem; }
.uc-page-number.active { border-color:var(--bs-primary); background:var(--bs-primary); color:#fff; }
.uc-page-number:hover:not(.active),.uc-page-arrow:hover:not(:disabled) { border-color:var(--bs-primary); color:var(--bs-primary); }
.uc-page-arrow:disabled { opacity:.45; }
.uc-page-gap { padding:0 .2rem; color:var(--bs-secondary-color); }
[data-bs-theme="dark"] .uc-stat-card,[data-bs-theme="dark"] .uc-tab-panel { box-shadow:none; }
@media (max-width:767.98px) {
  .uc-workspace-grid { grid-template-columns:minmax(0,1fr); gap:.8rem; }
  .uc-side-nav { position:static; max-height:360px; overflow-y:auto; padding:.5rem; }
  .uc-side-nav .nav-link { min-height:40px; padding:.55rem .7rem; font-size:.84rem; }
  .uc-side-group-toggle { min-height:42px; padding:.55rem .7rem; font-size:.9rem; }
  .uc-side-subnav { margin-left:.8rem; }
  .uc-workspace-grid .uc-tab-panel { padding:1rem; }
  .uc-paginated[data-pagination-group="fav-devices"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .uc-record-card { padding:.75rem; gap:.6rem; }
  .uc-page-actions { gap:.18rem; }
  .uc-page-number,.uc-page-arrow { min-width:1.85rem; min-height:1.85rem; padding:.25rem .4rem; }
  .uc-profile-summary { gap:1rem; padding:1.2rem; }
  .uc-avatar { width:64px; height:64px; }
  .uc-edit-toggle { padding:.45rem .75rem; font-size:.84rem; }
  .uc-profile-settings { padding:1rem 1.2rem 1.2rem; }
  .uc-profile-form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .uc-profile-form button { grid-column:1/-1; }
  .uc-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
  .uc-stat-card { padding:.85rem .9rem; border-radius:var(--nm-r-md); }
  .uc-stat-card strong { font-size:1.45rem; }
  .uc-section-heading { align-items:flex-start; flex-direction:column; gap:.25rem; }
  .uc-section-heading p { text-align:left; }
  .uc-tab-panel { min-height:140px; padding:1rem; }
}
@media (max-width:420px) {
  .uc-profile-summary { align-items:flex-start; flex-wrap:wrap; }
  .uc-identity { width:calc(100% - 80px); flex:1 1 calc(100% - 80px); }
  .uc-edit-toggle { margin-left:80px; }
  .uc-profile-form { grid-template-columns:1fr; }
  .uc-profile-form button { grid-column:auto; }
  .uc-stat-card { align-items:flex-start; flex-direction:column-reverse; gap:.45rem; }
}

/* ---------- 打印样式：导航/按钮不打印 ---------- */
@media print {
  #site-header, #site-footer, #mobile-tabbar, .back-to-top, .btn { display:none !important; }
  body { background:#fff; }
  .card { box-shadow:none; border:1px solid #ddd; }
}

/* ===== 2026-10 迭代：移动端顶栏单行 / 提示条 ===== */
/* 移动端顶栏原先会折成两行（站名 + 图标），占去约 1/10 屏高；改为：菜单 | 站名(截断) | 图标 */
@media (max-width: 991.98px) {
  #site-header .navbar > .container { flex-wrap: nowrap; gap: .25rem; }
  #site-header .navbar-brand { flex: 1 1 auto; min-width: 0; max-width: none !important; margin-right: 0; font-size: 1.05rem; }
  #site-header .navbar-brand > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #site-header .navbar-brand + .d-flex { flex: none; margin-left: 0 !important; }
  #site-header .navbar-toggler { padding: .25rem .4rem; }
}
#toast-box { position: fixed; top: 70px; right: 16px; z-index: 2000; max-width: min(420px, calc(100vw - 32px)); }
@media (max-width: 991.98px) {
  /* 手机上提示出现在底部 Tab 栏上方，拇指区可见、不挡标题 */
  #toast-box { top: auto; bottom: calc(72px + env(safe-area-inset-bottom)); left: 16px; right: 16px; max-width: none; }
}


/* =====================================================================
 *  公共组件（2026-10 设计统一）
 * ===================================================================== */

/* ---------- 页面标题区：所有页面同一结构  <header class="page-head"><div><h1 class="page-title">…</h1><p class="page-desc">…</p></div><div class="page-actions">…</div></header> ---------- */
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:.75rem 1.5rem; flex-wrap:wrap; margin:.25rem 0 1.25rem; }
.page-head > div:first-child { min-width:0; flex:1 1 320px; }
.page-title { margin:0; font-size:clamp(1.35rem,2.6vw,1.65rem); font-weight:700; line-height:1.3; letter-spacing:-.01em; color:var(--nm-ink); }
.page-desc { margin:.35rem 0 0; color:var(--nm-muted); font-size:.9375rem; line-height:1.6; max-width:46rem; }
.page-actions { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }

/* ---------- 内容面板：代替 bg-white p-4 rounded shadow-sm 的各种组合 ---------- */
.panel { background:var(--nm-surface); border:1px solid var(--nm-line); border-radius:var(--nm-r-md); box-shadow:var(--nm-shadow); padding:1.25rem; }
@media (min-width:768px) { .panel { padding:1.5rem; } }
.panel + .panel { margin-top:1rem; }
.panel-narrow { max-width:440px; margin-left:auto; margin-right:auto; }
/* 旧写法兼容：bg-white + shadow-sm 的块也套用同样的描边与圆角 */
.bg-white.shadow-sm { border:1px solid var(--nm-line); border-radius:var(--nm-r-md) !important; box-shadow:var(--nm-shadow) !important; }
.list-group { --bs-list-group-border-color:var(--nm-line); --bs-list-group-border-radius:var(--nm-r-md); --bs-list-group-bg:var(--nm-surface); }

/* ---------- 价格 ---------- */
.price { color:var(--nm-price); font-weight:650; }

/* ---------- 参数标签（设备卡片、列表）---------- */
.spec-chips { display:flex; flex-wrap:wrap; gap:.3rem; margin-top:.4rem; }
.spec-chip { display:inline-flex; align-items:center; max-width:100%; padding:.1rem .45rem; border:1px solid var(--nm-line); border-radius:var(--nm-r-sm); background:var(--nm-surface-2); color:var(--nm-muted); font-size:.75rem; line-height:1.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-variant-numeric:tabular-nums; }
.device-card .card-body { gap:.15rem; }
.device-card h3 { color:var(--nm-ink); font-weight:600; }

/* ---------- 设备详情：关键参数条（本站的标志性元素） ---------- */
.key-specs { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); margin:1rem 0; border:1px solid var(--nm-line); border-radius:var(--nm-r-md); overflow:hidden; background:var(--nm-surface); }
/* 每格右侧和下方画线，外框由容器负责；多出的空位保持面板底色 */
.key-spec { padding:.7rem .85rem; min-width:0; box-shadow:1px 0 0 var(--nm-line), 0 1px 0 var(--nm-line); margin:0 -1px -1px 0; }
.key-spec-label { display:block; color:var(--nm-muted); font-size:.75rem; }
.key-spec-value { display:block; margin-top:.15rem; color:var(--nm-ink); font-size:1.125rem; font-weight:700; line-height:1.3; overflow-wrap:anywhere; }
.key-spec-note { display:block; color:var(--nm-muted); font-size:.75rem; margin-top:.1rem; overflow-wrap:anywhere; }

/* ---------- 设备详情：主区 ---------- */
.device-hero { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:1.5rem; align-items:start; }
.device-media { border-radius:var(--nm-r-md); background:var(--nm-surface-2); overflow:hidden; }
.device-media img { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; }
.device-media-empty { display:grid; place-items:center; aspect-ratio:4/3; max-height:300px; color:var(--nm-muted); font-size:.875rem; }
.device-title { margin:0; font-size:clamp(1.35rem,2.6vw,1.75rem); font-weight:700; line-height:1.3; }
.device-subtitle { margin:.3rem 0 0; color:var(--nm-muted); }
.device-price { margin:.9rem 0 .15rem; font-size:1.75rem; line-height:1.2; }
.device-meta { color:var(--nm-muted); font-size:.8125rem; }
.device-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
@media (max-width:767.98px) { .device-hero { grid-template-columns:1fr; gap:1rem; } .device-media-empty { max-height:180px; aspect-ratio:auto; height:160px; } }

/* ---------- 参数分组导航 + “只看已填写” ---------- */
.spec-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; margin-bottom:.5rem; }
.spec-nav { display:flex; gap:.35rem; overflow-x:auto; scrollbar-width:none; padding:.1rem 0; }
.spec-nav::-webkit-scrollbar { display:none; }
.spec-nav a { flex:none; padding:.3rem .7rem; border:1px solid var(--nm-line); border-radius:999px; color:var(--nm-muted); font-size:.8125rem; text-decoration:none; background:var(--nm-surface); }
.spec-nav a:hover, .spec-nav a:focus-visible { color:var(--nm-accent); border-color:rgba(var(--nm-accent-rgb),.45); }
.spec-group { scroll-margin-top:72px; }
.spec-group-title { margin:1.25rem 0 .5rem; font-size:1rem; font-weight:650; color:var(--nm-ink); }
.spec-group:first-child .spec-group-title { margin-top:.5rem; }
.spec-table { margin-bottom:.5rem; --bs-table-bg:var(--nm-surface); --bs-border-color:var(--nm-line); }
.hide-empty-specs tr.spec-empty { display:none; }
.hide-empty-specs .spec-group.all-empty { display:none; }

/* ---------- 提示 / 摘要 / 官方回复块 ---------- */
.callout { padding:.85rem 1rem; border-left:3px solid var(--nm-accent); border-radius:0 var(--nm-r-sm) var(--nm-r-sm) 0; background:var(--nm-accent-soft); color:var(--nm-ink); }
.callout-title { display:block; margin-bottom:.35rem; color:var(--nm-accent); font-weight:650; font-size:.875rem; }
.callout-warning { border-left-color:#d97706; background:rgba(217,119,6,.08); }
.callout-warning .callout-title { color:#b45309; }
[data-bs-theme="dark"] .callout-warning .callout-title { color:#fbbf24; }
.callout-danger { border-left-color:#dc2626; background:rgba(220,38,38,.07); }
.callout-danger .callout-title { color:#b91c1c; }
[data-bs-theme="dark"] .callout-danger .callout-title { color:#f87171; }

/* ---------- 评论 / 回答 ---------- */
.comment-item { padding:1rem 0; border-bottom:1px solid var(--nm-line); }
.comment-item:last-child { border-bottom:0; }
.rating-stars { color:#e8a317; letter-spacing:.05em; }

/* ---------- 登录 / 注册 ---------- */
.auth-panel { max-width:400px; margin:2rem auto; }
.auth-panel .page-title { text-align:left; }

/* ---------- 无图占位 ---------- */
img[src$="no-image.svg"] { background:var(--nm-surface-2); }

/* ---------- 键盘焦点：所有可交互元素统一可见 ---------- */
a:focus-visible, button:focus-visible, .btn:focus-visible, summary:focus-visible { outline:2px solid rgba(var(--nm-accent-rgb),.6); outline-offset:2px; box-shadow:none; }
.nav-tabs { --bs-nav-tabs-border-color:var(--nm-line); --bs-nav-tabs-link-active-bg:var(--nm-surface); --bs-nav-tabs-link-active-border-color:var(--nm-line) var(--nm-line) var(--nm-surface); }
.nav-tabs + .tab-content.panel { border-top:0; border-top-left-radius:0; border-top-right-radius:0; }
.spec-group > summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.spec-group > summary::-webkit-details-marker { display:none; }
.spec-group > summary::after { content:""; width:.5rem; height:.5rem; margin-top:.75rem; border-right:1.5px solid var(--nm-muted); border-bottom:1.5px solid var(--nm-muted); transform:rotate(45deg); transition:transform .15s ease; }
.spec-group:not([open]) > summary::after { transform:rotate(-45deg); }
.spec-group:not([open]) { border-bottom:1px solid var(--nm-line); padding-bottom:.6rem; }
@media (max-width:575.98px) {
  .key-specs { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .key-spec { padding:.55rem .6rem; }
  .key-spec-value { font-size:.9375rem; }
}
.spec-chip-accent { color:var(--nm-accent); border-color:rgba(var(--nm-accent-rgb),.35); background:var(--nm-accent-soft); }
/* 弹性布局里的文字截断需要 min-width:0，否则长名称会把右侧价格 / 按钮挤出屏幕 */
.min-w-0 { min-width:0; }
/* 表单里的按钮不随输入框被压窄（避免“搜/索”竖排） */
form.d-flex > .btn, .input-group > .btn { white-space:nowrap; flex-shrink:0; }
