/* ==================== KPI cards ==================== */

.macro-kpis {
  grid-template-columns: repeat(3, 1fr);
}

.kpi-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* ==================== Segment blocks (1.2) ==================== */

.segment-blocks {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin-bottom: 14px;
}

.segment-content {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 16px;
  align-items: start;
}

.segment-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--color-border-light);
  border-radius: 8px;
  grid-column: 1 / -1;
}

.segment-chart {
  width: 100%;
  height: 320px;
  background: #FAFBFC;
  border: 1px solid var(--color-border-light);
  border-radius: 8px;
}

.segment-table {
  width: 100%;
  min-width: 220px;
  margin-bottom: 0;
}

/* ==================== Software category cards ==================== */

.software-card {
  background: linear-gradient(180deg, #F5F8FC 0%, #EEF3F9 100%);
  border: 1px solid var(--color-border-light);
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-top: 3px solid var(--color-primary);
  min-width: 0;
}

.software-card-desc {
  font-size: 0.78rem;
  color: var(--color-text-secondary);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 竞品 tabs 上的条数徽标（company/compTag 计数，由 app.js 注入） */
.tab .chip-count { font-size: 0.7rem; opacity: .75; margin-left: 2px; font-weight: 400; }

/* ==================== Responsive ==================== */

@media (max-width: 1200px) {
  .software-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 980px) {
  .macro-kpis { grid-template-columns: repeat(2, 1fr); }
  .macro-summary-list { grid-template-columns: 1fr; }
  .software-cards { grid-template-columns: 1fr; }
  .segment-content { grid-template-columns: 1fr; }
  .segment-blocks { grid-template-columns: 1fr; }
  .segment-chart { height: 280px; }
}

@media (max-width: 900px) {
  .header-inner { flex-wrap: wrap; }
  .header-actions { flex-wrap: wrap; }
  /* 修正：移动端同样吸顶（与 macro 一致），偏移一级导航高度 */
  .board-nav { position: sticky; top: var(--hub-sticky-offset, 0px); }
  .board-section { scroll-margin-top: calc(90px + var(--hub-sticky-offset, 0px)); }
  .news-grid, .loading-grid { grid-template-columns: 1fr; }
  .filter-search { margin-left: 0; width: 100%; }
  .search-input { width: 100%; }
  .search-input:focus { width: 100%; }
}

/* ==================== 3.3 份额卡片（中国市场） ==================== */

.software-cards-share { grid-template-columns: repeat(2, 1fr); }

.share-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; margin-top: 2px; }

.share-table th { text-align: left; padding: 5px 6px; color: var(--color-text-secondary); font-weight: 600;
  border-bottom: 1px solid var(--color-border-light); font-size: 0.72rem; white-space: nowrap; }

.share-table th.num, .share-table td.num { text-align: right; font-variant-numeric: tabular-nums; }

.share-table td { padding: 5px 6px; border-bottom: 1px dashed var(--color-border-light); color: var(--color-text); white-space: nowrap; }

.share-table tbody tr:last-child td { border-bottom: none; }

.share-table .row-zw td { background: rgba(255, 98, 12, 0.08); }

.share-card-foot { font-size: 0.75rem; color: var(--color-text-secondary); line-height: 1.6;
  border-top: 1px dashed var(--color-border-light); padding-top: 8px; margin-top: 4px; }

.stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 10px 0 4px; }

.stat-item { text-align: center; }

.stat-val { font-size: 1.35rem; font-weight: 700; color: var(--color-primary); line-height: 1.2; }

.stat-val span { font-size: 0.7rem; font-weight: 500; color: var(--color-text-secondary); margin-left: 2px; }

.stat-label { font-size: 0.72rem; color: var(--color-text-secondary); margin-top: 3px; }

@media (max-width: 1000px) {
  .software-cards-share { grid-template-columns: 1fr; }
}
