/* ===================================================================
   情报雷达 · 新闻底料（首页）
   令牌与通用组件来自 /assets/theme.css，此处只写页面级版式。
   视觉基调：Cursor-Forge 报告页 —— 暖白纸面 / 陶土橙 / 衬线标题 / 发丝描边。
   =================================================================== */

/* ---------------------------------------------------------------
   顶部实时状态条
   --------------------------------------------------------------- */
.search-wrap{ position:relative; flex:1; max-width:420px; min-width:150px; }
.search-wrap input{
  width:100%; padding:8px 34px 8px 13px; border:1px solid var(--border);
  border-radius:var(--r-full); background:var(--panel); color:var(--text);
  font-size:14.5px; outline:none; transition:all var(--dur) var(--ease);
}
.search-wrap input::placeholder{ color:var(--muted-2); }
.search-wrap input:focus{
  border-color:var(--accent); background:var(--panel);
  box-shadow:0 0 0 3px var(--accent-soft);
}
.search-hint{
  position:absolute; right:11px; top:50%; transform:translateY(-50%);
  font-size:10.5px; color:var(--muted-2); border:1px solid var(--border-strong);
  border-radius:4px; padding:0 5px; background:var(--bg-soft); pointer-events:none;
  font-family:var(--font-mono);
}
.topbar-actions{ display:flex; gap:8px; flex-shrink:0; align-items:center; }
.livebar{
  display:flex; align-items:center; gap:8px; flex-shrink:0;
  padding:5px 13px; border-radius:var(--r-full);
  background:var(--bg-soft); border:1px solid var(--border);
  font-size:11.5px; color:var(--muted); white-space:nowrap;
}
.livebar .dot{ box-shadow:0 0 0 3px var(--good-soft); }
.livebar b{ color:var(--text-2); font-weight:600; font-variant-numeric:tabular-nums; }
.livebar .sep{ color:var(--border-strong); }

/* ---------------------------------------------------------------
   Hero：AI 超级搜索入口
   参考页同款：无卡片包裹，直接铺在纸面上，衬线大标题 + 眉标。
   --------------------------------------------------------------- */
.hero{
  position:relative;
  margin:26px 22px 0; padding:0;
  border:0; background:none; box-shadow:none;
}
.hero::before{ display:none; }
.hero::after{
  content:""; position:absolute; left:0; right:0; bottom:-14px; height:1px;
  background:linear-gradient(90deg,transparent,var(--border-strong) 18%,var(--border-strong) 82%,transparent);
}
.hero-inner{ position:relative; z-index:1; }
.hero-eyebrow{ margin-bottom:12px; }
.hero-title{
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:16px;
}
.hero-title h2{
  margin:0; font-size:34px; font-weight:700; letter-spacing:.01em; line-height:1.4;
  font-family:var(--font-display); color:var(--text);
}
.hero-title .tagline{ font-size:17.5px; color:var(--text-2); line-height:1.7; }
.hero .ai-search{ padding:0; max-width:none; }
.hero .ai-search-hot{ padding-left:0; }
.hero-kpis{
  display:flex; flex-wrap:wrap; gap:14px 34px; margin-top:22px;
  padding-top:16px; border-top:1px dashed var(--border-strong);
}
.kpi{ display:flex; flex-direction:column; gap:2px; min-width:84px; }
.kpi .k{
  font-size:10.5px; color:var(--muted-2); letter-spacing:.09em; text-transform:uppercase;
  font-family:var(--font-mono); font-weight:500;
}
.kpi .v{
  font-size:21px; font-weight:600; letter-spacing:-.3px; line-height:1.25;
  font-variant-numeric:tabular-nums; color:var(--text);
}
.kpi .v small{ font-size:11px; font-weight:400; color:var(--muted); margin-left:4px; letter-spacing:0; }
.kpi .v.good{ color:var(--good); }
.kpi .v.warn{ color:var(--warn); }
.kpi .v.bad{ color:var(--up); }

/* ---------------------------------------------------------------
   赛道卡
   参考页的对比卡：小色点 + 标题 + 数值 + 说明，白底发丝边。
   --------------------------------------------------------------- */
.tiers{
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px;
  padding:30px 22px 0; max-width:1680px; margin:0 auto;
}
.tier{
  position:relative; overflow:hidden; cursor:pointer; min-width:0;
  background:var(--panel); border:1px solid var(--border); border-radius:var(--r-lg);
  padding:15px 17px 13px; box-shadow:var(--shadow);
  transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease),
             border-color var(--dur) var(--ease);
}
.tier::before{
  content:""; position:absolute; left:17px; top:19px; width:7px; height:7px;
  border-radius:50%; background:currentColor; opacity:.85;
}
.tier::after{
  content:""; position:absolute; left:0; right:0; top:0; height:58px; pointer-events:none;
  background:linear-gradient(180deg,color-mix(in srgb,currentColor 9%,transparent),transparent);
  opacity:0; transition:opacity var(--dur) var(--ease);
}
.tier:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lg); border-color:var(--border-strong); }
.tier:hover::after{ opacity:1; }
.tier.active{
  border-color:color-mix(in srgb,currentColor 45%,var(--border));
  box-shadow:0 0 0 1px color-mix(in srgb,currentColor 22%,transparent),
             var(--shadow-lg);
}
.tier.active::after{ opacity:1; }
.tier-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; position:relative; }
.tier-name{
  font-weight:600; font-size:15.5px; display:flex; align-items:center; gap:6px;
  color:var(--text); padding-left:13px; position:relative;
}
.tier-rank{
  font-size:10px; padding:1px 8px; border-radius:var(--r-full); font-weight:700;
  background:var(--bg-soft); color:currentColor; border:1px solid var(--border);
  font-family:var(--font-mono); letter-spacing:.04em;
}
.tier-num{
  font-size:27px; font-weight:600; letter-spacing:-.6px; line-height:1.15; margin-top:10px;
  font-variant-numeric:tabular-nums; color:var(--text);
}
.tier-num small{ font-size:11px; font-weight:400; color:var(--muted); margin-left:5px; letter-spacing:0; }
.tier-desc{ font-size:11.5px; color:var(--muted); margin-top:4px; line-height:1.55; }
.tier-spark{ height:24px; margin-top:9px; display:block; width:100%; }

/* ---------------------------------------------------------------
   三栏布局
   --------------------------------------------------------------- */
.layout{
  display:grid; grid-template-columns:230px minmax(0,1fr) 274px; gap:18px;
  padding:26px 22px 56px; align-items:start; max-width:1680px; margin:0 auto;
}
.panel{
  background:var(--panel); border:1px solid var(--border); border-radius:var(--r-lg);
  box-shadow:var(--shadow); overflow:hidden; min-width:0;
}
.panel-block{ padding:14px 16px; border-bottom:1px solid var(--border); }
.panel-block:last-child{ border-bottom:none; }
.panel-block h3{
  margin:0 0 11px; font-size:16px; font-weight:400; color:var(--text);
  font-family:var(--font-display); letter-spacing:.02em;
  display:flex; align-items:center; gap:8px;
}
.panel-block h3::before{
  content:""; width:3px; height:13px; border-radius:2px; background:var(--accent);
  flex:none;
}
.filters,.side{ position:sticky; top:calc(var(--header-h) + 16px); max-height:calc(100vh - var(--header-h) - 34px); overflow:auto; }

.chips{ display:flex; flex-wrap:wrap; gap:6px; }

.source-list{ display:flex; flex-direction:column; gap:1px; max-height:240px; overflow:auto; margin:0 -4px; padding:0 4px; }
.source-list label{
  display:flex; align-items:center; gap:8px; font-size:14px; padding:4px 6px;
  border-radius:var(--r-xs); cursor:pointer; color:var(--muted);
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.source-list label:hover{ background:var(--bg-soft); color:var(--text); }
.source-list input{ accent-color:var(--accent); margin:0; }
.source-list .cnt{ margin-left:auto; font-size:11px; color:var(--muted-2); font-variant-numeric:tabular-nums; }

/* ---------------------------------------------------------------
   信息流
   --------------------------------------------------------------- */
.feed-wrap{ min-width:0; }
.feed-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin:0 2px 14px; flex-wrap:wrap;
}
.feed-title{ display:flex; align-items:baseline; gap:10px; min-width:0; }
.feed-title h2{
  margin:0; font-size:19px; font-weight:400; letter-spacing:.01em;
  font-family:var(--font-display); color:var(--text);
}
.feed-tools .switch{ display:flex; align-items:center; gap:6px; font-size:14px; color:var(--muted); cursor:pointer; }
.feed-tools input{ accent-color:var(--accent); }
.feed{ display:flex; flex-direction:column; gap:12px; }

.feed-group{ min-width:0;
  border:1px solid var(--border); border-radius:var(--r-lg);
  background:var(--bg-soft); box-shadow:var(--shadow);
  /* clip 而非 hidden：hidden 会生成滚动容器，让 sticky 分组头错位压住卡片 */
  overflow:clip;
}
.feed-group-h{
  display:flex; align-items:center; gap:10px; padding:11px 16px;
  background:var(--bg-soft);
  border-bottom:1px solid var(--border);
  position:sticky; top:var(--header-h); z-index:5;
  backdrop-filter:blur(8px);
}
.feed-group-h::before{
  content:""; width:8px; height:8px; border-radius:50%; background:var(--tier-color); flex:none;
}
.fg-name{ font-size:18px; font-weight:700; color:var(--text); font-family:var(--font-display); }
.fg-n{ font-size:14.5px; color:var(--muted); font-variant-numeric:tabular-nums; }
.fg-jump{
  margin-left:auto; padding:3px 12px; font-size:11.5px; border-radius:var(--r-full); cursor:pointer;
  border:1px solid var(--border); background:var(--panel); color:var(--muted);
  transition:all var(--dur) var(--ease);
}
.fg-jump:hover{ border-color:var(--tier-color); color:var(--tier-color); background:var(--panel); }
.feed-group-b{ display:flex; flex-direction:column; gap:10px; padding:12px; }

.card{
  position:relative; background:var(--panel); border:1px solid var(--border);
  border-radius:var(--r-lg); padding:14px 17px 12px 19px; box-shadow:var(--shadow);
  transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease),
             border-color var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  border-radius:var(--r-lg) 0 0 var(--r-lg); background:var(--tier-color,var(--industry));
  opacity:.85;
}
.card:hover{
  border-color:var(--border-strong); transform:translateY(-1px);
  box-shadow:var(--shadow-lg);
}
.card.read{ opacity:.62; }
.card.read:hover{ opacity:.9; }
.card.read .card-title a{ font-weight:500; color:var(--muted); }
/* 重点条目：左侧色条加粗 + 极浅暖底 + 更实的描边，扫一眼就能挑出来 */
.card.is-key{
  background:color-mix(in srgb,var(--key-color,var(--accent)) 5%,var(--panel));
  border-color:color-mix(in srgb,var(--key-color,var(--accent)) 32%,var(--border));
  box-shadow:0 2px 10px color-mix(in srgb,var(--key-color,var(--accent)) 14%,transparent);
}
.card.is-key::before{ width:5px; opacity:1; background:var(--key-color,var(--accent)); }
.card.is-key .card-title{ font-weight:700; }
.card.cursor{ border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-soft); }
.card.cursor::after{
  content:""; position:absolute; inset:0; border-radius:var(--r-lg); pointer-events:none;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent);
}
.card-top{
  display:flex; align-items:center; gap:8px; font-size:14.5px; color:var(--muted);
  margin-bottom:8px; flex-wrap:wrap;
}
.tier-tag{
  padding:2px 10px; border-radius:var(--r-full); font-weight:700; font-size:14px;
  background:color-mix(in srgb,var(--tier-color) 11%,transparent); color:var(--tier-color);
  border:1px solid color-mix(in srgb,var(--tier-color) 24%,transparent);
}
.card-title{
  margin:0 0 8px; font-size:17.5px; line-height:1.68; font-weight:700; letter-spacing:-.1px;
  color:var(--text);
}
.card-title a{ transition:color var(--dur) var(--ease); }
.card-title a:hover{ color:var(--accent); }
.card-summary{
  margin:0; font-size:16.5px; color:var(--text-2); line-height:1.85;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.card-bottom{ display:flex; align-items:center; gap:8px; margin-top:11px; flex-wrap:wrap; }
.tag{
  font-size:14px; padding:2px 10px; border-radius:var(--r-full);
  background:var(--bg-soft); border:1px solid var(--border); color:var(--muted);
}
.score{ font-size:14px; color:var(--muted); margin-left:auto; font-variant-numeric:tabular-nums; }
.card-actions{ display:flex; gap:3px; margin-left:6px; }
.act{
  border:1px solid transparent; background:transparent; color:var(--muted-2);
  padding:3px 7px; border-radius:var(--r-xs); font-size:14.5px; line-height:1;
  transition:all var(--dur) var(--ease);
}
.act:hover{ background:var(--bg-soft); color:var(--text); border-color:var(--border); }
.act.on{ color:var(--warn); }
.src-fast{ color:var(--finance); font-weight:600; }
.btn-more{ width:100%; justify-content:center; margin-top:14px; padding:12px; }

/* ---------------------------------------------------------------
   侧栏
   --------------------------------------------------------------- */
.bars{ display:flex; flex-direction:column; gap:10px; }
.bar-row{ font-size:13.5px; }
.bar-label{ display:flex; justify-content:space-between; margin-bottom:5px; color:var(--muted); }
.bar-label b{ color:var(--text); font-variant-numeric:tabular-nums; }
.bar-track{
  height:6px; border-radius:var(--r-full); background:var(--panel-3);
  overflow:hidden; border:1px solid var(--border);
}
.bar-fill{ height:100%; border-radius:var(--r-full); transition:width .6s var(--ease-out); }
.wordcloud{ display:flex; flex-wrap:wrap; gap:6px; }
.wc{
  font-size:13.5px; padding:3px 10px; border-radius:var(--r-full);
  background:var(--bg-soft); border:1px solid var(--border); color:var(--muted);
  cursor:pointer; transition:all var(--dur) var(--ease);
}
.wc:hover{ border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }
.wc b{ font-weight:600; color:var(--text); margin-left:4px; font-size:11px; }
.health{ display:flex; flex-direction:column; gap:5px; font-size:13.5px; }
.h-row{ display:flex; align-items:center; gap:7px; color:var(--muted); }
.h-row .name{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.h-row .ms{ font-size:11px; color:var(--muted-2); font-variant-numeric:tabular-nums; }
.h-row .h-rate{ font-size:10.5px; color:var(--muted-2); margin-left:5px; font-variant-numeric:tabular-nums; }
.h-dot{ width:6px; height:6px; border-radius:50%; flex-shrink:0; }
#trend{ width:100%; display:block; }

/* ---------------------------------------------------------------
   响应式
   --------------------------------------------------------------- */
@media (max-width:1320px){
  .layout{ grid-template-columns:212px minmax(0,1fr); }
  .side{ display:none; }
}
@media (max-width:960px){
  .hero{ margin:20px 14px 0; }
  .hero::after{ bottom:-11px; }
  .hero-title h2{ font-size:23px; }
  .tiers{ grid-template-columns:repeat(2,minmax(0,1fr)); padding:22px 14px 0; }
  .layout{ grid-template-columns:minmax(0,1fr); padding:22px 14px 48px; }
  .filters{
    position:static; max-height:none; overflow:visible;
  }
  .topbar{ flex-wrap:wrap; gap:10px; padding:10px 14px; }
  .brand{ order:1; }
  .topbar-actions{ order:2; margin-left:auto; }
  .livebar{ order:3; flex:1 1 100%; justify-content:center; }
  .search-wrap{ order:4; flex:1 1 100%; max-width:none; min-width:0; }
  .brand-text h1{ font-size:22px; letter-spacing:.05em; }
  .brand-logo{ font-size:24px; }
  .site-nav{ padding:0 14px 9px; }
}
@media (max-width:640px){
  .hero-kpis{ gap:12px 20px; }
  .kpi .v{ font-size:18px; }
  .tiers{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .tier-num{ font-size:23px; }
  .tier{ padding:13px 14px 11px; }
  .tier::before{ left:14px; top:17px; }
  .tier-name{ padding-left:12px; }
  .btn-cmdk-t{ display:none; }
  .btn-cmdk{ padding:6px 8px; }
  /* 动作按钮独占一行并允许换行，避免顶栏横向溢出 */
  .topbar-actions{ order:2; flex:1 1 100%; margin-left:0; flex-wrap:wrap; gap:6px; }
  .livebar{ order:3; white-space:normal; flex-wrap:wrap; justify-content:center; row-gap:2px; }
  .search-wrap{ order:4; }
  .hero-title h2{ font-size:20px; }
  .hero-title .tagline{ font-size:14px; }
  .feed-title h2{ font-size:17px; }
}
