:root{
  --bg:#f4f5f7; --panel:#ffffff; --panel-2:#fafbfc; --border:#e4e7ec; --border-strong:#d3d8e0;
  --text:#171a1f; --muted:#6b7280; --muted-2:#9aa2af;
  --duanju:#e11d48; --ai:#2563eb; --finance:#d97706; --industry:#5b6b7f;
  --accent:#0f766e; --shadow:0 1px 2px rgba(16,24,40,.04),0 4px 14px rgba(16,24,40,.05);
  --radius:12px;
}
html[data-theme="dark"]{
  --bg:#0f1216; --panel:#161a20; --panel-2:#1b2027; --border:#262c35; --border-strong:#333b45;
  --text:#e8ecf1; --muted:#98a2b3; --muted-2:#6b7280;
  --duanju:#fb7185; --ai:#60a5fa; --finance:#fbbf24; --industry:#94a3b8;
  --accent:#2dd4bf; --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text); font-size:14px; line-height:1.55;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
.muted{color:var(--muted);font-weight:400;font-size:12px}

/* ---------- 顶栏 ---------- */
.topbar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;
  padding:12px 22px;background:var(--panel);border-bottom:1px solid var(--border);
}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.brand-logo{font-size:26px;line-height:1}
.brand-text h1{margin:0;font-size:17px;letter-spacing:.5px}
.brand-text p{margin:0;font-size:11px;color:var(--muted-2);letter-spacing:.4px}
.search-wrap{position:relative;flex:1;max-width:520px}
.search-wrap input{
  width:100%;padding:9px 34px 9px 13px;border:1px solid var(--border-strong);border-radius:9px;
  background:var(--panel-2);color:var(--text);font-size:13.5px;outline:none;transition:.15s;
}
.search-wrap input:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px rgba(15,118,110,.1)}
.search-hint{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--muted-2);border:1px solid var(--border);border-radius:4px;padding:0 5px;background:var(--panel)}
.topbar-actions{display:flex;gap:8px;flex-shrink:0}
.btn{
  display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:9px;font-size:13px;
  border:1px solid var(--border-strong);background:var(--panel);color:var(--text);transition:.15s;white-space:nowrap;
}
.btn:hover{background:var(--panel-2);border-color:var(--muted-2)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-primary:hover{filter:brightness(1.08);border-color:var(--accent)}
.btn-primary.loading{opacity:.65;pointer-events:none}
.btn-icon{padding:8px 10px}
.status-strip{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);flex-shrink:0}
.dot{width:7px;height:7px;border-radius:50%;background:#22c55e;display:inline-block}
.dot.warn{background:#f59e0b}.dot.bad{background:#ef4444}
.sep{color:var(--border-strong)}

/* ---------- 赛道卡 ---------- */
.tiers{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:16px 22px 4px}
.tier{
  position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
  padding:13px 15px;cursor:pointer;transition:.16s;box-shadow:var(--shadow);
}
.tier:hover{transform:translateY(-1px);border-color:var(--border-strong)}
.tier.active{border-color:currentColor;box-shadow:0 0 0 2px color-mix(in srgb,currentColor 18%,transparent),var(--shadow)}
.tier::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:currentColor}
.tier-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tier-name{font-weight:600;font-size:13.5px;display:flex;align-items:center;gap:6px}
.tier-rank{font-size:10px;padding:1px 6px;border-radius:20px;background:color-mix(in srgb,currentColor 12%,transparent);color:currentColor;border:1px solid color-mix(in srgb,currentColor 25%,transparent)}
.tier-num{font-size:24px;font-weight:700;letter-spacing:-.5px;line-height:1.2;margin-top:6px}
.tier-num small{font-size:11px;font-weight:400;color:var(--muted);margin-left:3px}
.tier-desc{font-size:11px;color:var(--muted-2);margin-top:2px}
.tier-spark{height:22px;margin-top:6px;display:block;width:100%}

/* ---------- 布局 ---------- */
.layout{display:grid;grid-template-columns:224px minmax(0,1fr) 268px;gap:16px;padding:14px 22px 40px;align-items:start}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel-block{padding:13px 15px;border-bottom:1px solid var(--border)}
.panel-block:last-child{border-bottom:none}
.panel-block h3{margin:0 0 9px;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.4px;text-transform:uppercase}
.filters{position:sticky;top:74px}
.side{position:sticky;top:74px}

.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{
  padding:4px 10px;font-size:12px;border-radius:20px;border:1px solid var(--border);
  background:var(--panel-2);color:var(--muted);transition:.14s;
}
.chip:hover{border-color:var(--muted-2);color:var(--text)}
.chip.active{background:var(--text);border-color:var(--text);color:var(--panel);font-weight:500}
.source-list{display:flex;flex-direction:column;gap:2px;max-height:250px;overflow:auto}
.source-list label{display:flex;align-items:center;gap:7px;font-size:12.5px;padding:3px 4px;border-radius:6px;cursor:pointer;color:var(--muted)}
.source-list label:hover{background:var(--panel-2);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)}

/* ---------- 信息流 ---------- */
.feed-wrap{min-width:0}
.feed-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 2px 10px}
.feed-title{display:flex;align-items:baseline;gap:9px;min-width:0}
.feed-title h2{margin:0;font-size:15px}
.feed-tools .switch{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);cursor:pointer}
.feed-tools input{accent-color:var(--accent)}
.feed{display:flex;flex-direction:column;gap:9px}
.card{
  position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
  padding:13px 15px 11px 17px;box-shadow:var(--shadow);transition:.14s;
}
.card:hover{border-color:var(--border-strong);transform:translateY(-1px)}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px;background:var(--tier-color,var(--industry))}
.card.read{opacity:.62}
.card.read .card-title a{font-weight:500;color:var(--muted)}
.card-top{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted);margin-bottom:5px;flex-wrap:wrap}
.tier-tag{padding:1px 7px;border-radius:5px;font-weight:600;font-size:11px;background:color-mix(in srgb,var(--tier-color) 12%,transparent);color:var(--tier-color);border:1px solid color-mix(in srgb,var(--tier-color) 24%,transparent)}
.card-title{margin:0 0 5px;font-size:15px;line-height:1.45;font-weight:600;letter-spacing:-.1px}
.card-title a:hover{color:var(--accent)}
.card-summary{margin:0;font-size:12.8px;color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-bottom{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}
.tag{font-size:11px;padding:1px 7px;border-radius:5px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}
.score{font-size:11px;color:var(--muted-2);margin-left:auto;font-variant-numeric:tabular-nums}
.card-actions{display:flex;gap:4px;margin-left:6px}
.act{border:none;background:transparent;color:var(--muted-2);padding:2px 5px;border-radius:6px;font-size:13px;line-height:1}
.act:hover{background:var(--panel-2);color:var(--text)}
.act.on{color:#eab308}
mark{background:rgba(234,179,8,.28);color:inherit;border-radius:3px;padding:0 1px}
.src-fast{color:var(--finance);font-weight:600}
.btn-more{width:100%;justify-content:center;margin-top:12px;padding:11px}
.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.empty p{margin:0 0 4px;font-size:15px}

/* ---------- 侧栏 ---------- */
.bars{display:flex;flex-direction:column;gap:8px}
.bar-row{font-size:12px}
.bar-label{display:flex;justify-content:space-between;margin-bottom:3px;color:var(--muted)}
.bar-track{height:6px;border-radius:20px;background:var(--panel-2);overflow:hidden;border:1px solid var(--border)}
.bar-fill{height:100%;border-radius:20px;transition:width .5s}
.wordcloud{display:flex;flex-wrap:wrap;gap:6px}
.wc{font-size:12px;padding:3px 9px;border-radius:20px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);cursor:pointer}
.wc:hover{border-color:var(--accent);color:var(--accent)}
.wc b{font-weight:600;color:var(--text);margin-left:3px;font-size:11px}
.health{display:flex;flex-direction:column;gap:3px;font-size:12px}
.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-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
#trend{width:100%;display:block}

.toast{
  position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);background:var(--text);color:var(--panel);
  padding:9px 18px;border-radius:9px;font-size:13px;opacity:0;pointer-events:none;transition:.25s;z-index:99;box-shadow:0 8px 24px rgba(0,0,0,.2);
}
.toast.show{opacity:1;transform:translate(-50%,0)}

@keyframes spin{to{transform:rotate(360deg)}}
.spin{animation:spin .9s linear infinite}
@media (max-width:1240px){
  .layout{grid-template-columns:200px minmax(0,1fr)}
  .side{display:none}
}
@media (max-width:900px){
  .tiers{grid-template-columns:repeat(2,1fr)}
  .layout{grid-template-columns:1fr;padding:14px}
  .filters{position:static}
  .search-wrap{order:3;max-width:none;flex-basis:100%}
  .topbar{flex-wrap:wrap}
}
