/* ════════════════════════════════════════════════════════════
   Watchpilot / research 侧边栏 — 完全照参考稿 (全部 scoped 在 .sidebar 下,
   避免 .row/.section/.up/.down 等通用类污染页面其余部分)
   ──────────────────────────────────────────────────────────── */
/* 流式侧栏宽: 在 1280~2560 区间随视口等比缩放 (≈300px@~1536, 收窄到 252px@1280, 放宽到 330px@大屏);
   覆盖 tokens.css 的同名变量, 二者策略一致 → .content 右留白(margin-right:var(--sidebar-w))同步缩放, 保持左右对称 */
:root{ --sidebar-w: clamp(252px, 19.5vw, 330px); }

.sidebar{
  --panel:#FBFAF7; --card:#FFFFFF; --canvas:#E4E1D8;
  --ink:#1C1B18; --ink-2:#6E6B63; --ink-3:#AAA69C;
  --line:rgba(28,27,24,.09); --line-2:rgba(28,27,24,.06); --hover:rgba(28,27,24,.035);
  --pro:var(--up);                 /* 'pro' 徽标红 = 全站统一红涨色 (原私有 #D8382E 删除, --up/--down 继承 :root 规范值) */
  --sb-sans:var(--font-sans);      /* 原 IBM Plex 三件套删除 → 收敛到全站统一字体栈 */
  --sb-mono:var(--font-mono);
  --sb-serif:var(--font-display);
  --sb-pad:16px;

  width:var(--sidebar-w);flex-shrink:0;height:100vh;
  background:var(--panel);border-right:1px solid var(--line);
  display:flex;flex-direction:column;overflow:hidden;
  font-family:var(--sb-sans);color:var(--ink);-webkit-font-smoothing:antialiased;
}
.sidebar svg.i{width:15px;height:15px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.sidebar .tnum{font-family:var(--sb-mono);font-variant-numeric:tabular-nums}
.sidebar .up{color:var(--up)} .sidebar .down{color:var(--down)}
.sidebar .reveal{opacity:0;transform:translateY(6px);animation:sbRise .5s cubic-bezier(.22,.7,.3,1) forwards}
@keyframes sbRise{to{opacity:1;transform:none}}

/* ── header ── */
.sidebar .sb-head{display:flex;align-items:center;gap:11px;padding:22px var(--sb-pad) 15px}
.sidebar .sb-logo{width:34px;height:34px;border-radius:9px;background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:17px;flex:none}
.sidebar .sb-brand{font-size:18px;font-weight:600;letter-spacing:-.01em}
.sidebar .sb-brand .sb-sub{font-family:var(--sb-serif);font-style:italic;font-weight:400;color:var(--ink-3);font-size:15px;margin-left:7px}
.sidebar .sb-rule{height:1px;background:var(--line-2);margin:0 var(--sb-pad)}

/* ── scroll body ── */
.sidebar-scroll{flex:1;overflow-y:auto;min-height:0;padding-bottom:8px}
.sidebar-scroll::-webkit-scrollbar{width:5px}
.sidebar-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}

/* ════ 一级: 推送中心 (可折叠) ════ */
.sidebar .pushwrap{margin:13px var(--sb-pad) 0;background:var(--card);border:1px solid var(--line-2);border-radius:12px;overflow:hidden}
.sidebar .push-head{width:100%;display:flex;align-items:center;gap:9px;padding:11px 13px;background:none;border:none;
  cursor:pointer;font-family:var(--sb-sans);font-size:13.5px;color:var(--ink);text-align:left;transition:background .14s}
.sidebar .push-head:hover{background:var(--hover)}
.sidebar .push-head .ph-lead{font-weight:600;color:var(--ink);flex:none}
.sidebar .push-head .ph-nm{font-weight:500;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sidebar .push-head .ph-tag{color:var(--ink-3);font-size:11px;flex:none}
.sidebar .push-head .ph-tag:empty{display:none}
.sidebar .push-head .count{margin-left:auto;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--up);
  color:#fff;font-family:var(--sb-mono);font-size:10.5px;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:none}
.sidebar .push-head .count:empty{display:none}
.sidebar .chev{transition:transform .2s;color:var(--ink-3);flex:none}
.sidebar .push-body{display:none;border-top:1px solid var(--line-2)}
.sidebar .pushwrap.open .push-body{display:block}
.sidebar .pushwrap.open .chev{transform:rotate(180deg)}
.sidebar .push-sub{display:flex;align-items:center;padding:9px 13px 3px;font-size:11px;color:var(--ink-3)}
.sidebar .push-sub .read{margin-left:auto;cursor:pointer;transition:color .15s}
.sidebar .push-sub .read:hover{color:var(--ink-2)}
/* 推送条目 (.pitem, JS 生成) */
.sidebar .pitem{display:grid;grid-template-columns:auto 1fr;gap:9px;padding:9px 13px;cursor:pointer;transition:background .14s}
.sidebar .pitem:hover{background:var(--hover)}
.sidebar .pitem > div{min-width:0}
.sidebar .pdot{width:7px;height:7px;border-radius:50%;margin-top:6px;flex:none;background:var(--ink-3)}
.sidebar .pdot.up{background:var(--up)} .sidebar .pdot.down{background:var(--down)}
.sidebar .pl1{display:flex;align-items:center;gap:7px}
.sidebar .pl1 .pname{font-size:13.5px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar .ptag{font-size:10px;color:var(--ink-2);background:var(--canvas);border-radius:5px;padding:2px 6px;line-height:1.1;flex:none}
.sidebar .pl1 .pmetric{margin-left:auto;font-family:var(--sb-mono);font-size:12.5px;font-variant-numeric:tabular-nums;flex:none}
.sidebar .pl2{font-size:11.5px;color:var(--ink-3);margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar .push-foot{padding:10px 13px;border-top:1px solid var(--line-2);text-align:center}
.sidebar .push-foot button{background:none;border:none;font-family:var(--sb-sans);font-size:12px;color:var(--ink-2);cursor:pointer;transition:color .15s}
.sidebar .push-foot button:hover{color:var(--ink)}

/* ════ section 通用 ════ */
.sidebar .section{padding:18px var(--sb-pad) 0}
.sidebar .slabel{display:flex;align-items:center;gap:8px;margin-bottom:11px}
.sidebar .slabel h2{font-size:12.5px;font-weight:500;color:var(--ink-3);letter-spacing:.04em;margin:0}
.sidebar .add{margin-left:auto;display:inline-flex;align-items:center;gap:3px;font-size:12.5px;color:var(--ink-3);cursor:pointer;transition:color .15s}
.sidebar .add:hover{color:var(--ink-2)}
.sidebar .add svg.i{width:14px;height:14px}

/* ════ 一级: 关注列表 (.watch-item, JS 生成) — 样式照参考稿 .row ════ */
.sidebar .watch-item{position:relative;display:grid;grid-template-columns:1fr 84px 62px;align-items:center;gap:8px;
  padding:11px 10px;margin:0 -10px;border-radius:10px;cursor:pointer;transition:background .14s}
.sidebar .watch-item:hover{background:var(--hover)}
.sidebar .watch-left,.sidebar .watch-right{display:contents}
.sidebar .watch-info{min-width:0}
.sidebar .watch-name{font-size:15px;font-weight:500;letter-spacing:-.005em;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar .watch-code{font-family:var(--sb-mono);font-size:11px;color:var(--ink-3);margin-top:2px}
.sidebar .watch-price{font-family:var(--sb-mono);font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;text-align:right}
.sidebar .watch-change{font-family:var(--sb-mono);font-size:13px;font-variant-numeric:tabular-nums;text-align:right;color:var(--ink-3);
  display:flex;align-items:center;justify-content:flex-end;gap:3px}
.sidebar .watch-change.up{color:var(--up)} .sidebar .watch-change.down{color:var(--down)}
.sidebar .watch-change.up::before{content:"▲";font-size:8px;line-height:1}
.sidebar .watch-change.down::before{content:"▼";font-size:8px;line-height:1}
.sidebar .watch-hold-tag{display:inline-block;margin-left:4px;font-size:9px;padding:1px 4px;border-radius:3px;
  background:var(--canvas);border:1px solid var(--line-2);color:var(--ink-2);vertical-align:middle}

/* ════ 二级: 概览汇总条 (照参考稿 .ovbar) ════ */
.sidebar .ovbar{display:flex;align-items:center;gap:9px;margin:8px -2px 0;padding:10px 12px;
  background:rgba(28,27,24,.028);border-radius:10px}
.sidebar .ovbar .stats{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);min-width:0;white-space:nowrap;overflow:hidden}
.sidebar .ovbar .avg{font-family:var(--sb-mono);font-size:15px;font-variant-numeric:tabular-nums}
.sidebar .ovbar .ovchg{font-family:var(--sb-mono);font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.sidebar .ovbar .sep{color:var(--ink-3)}
.sidebar .ovbar .ctl{margin-left:auto;display:flex;align-items:center;gap:7px;flex:none}
.sidebar .seg{display:flex;background:#fff;border:1px solid var(--line-2);border-radius:8px;padding:2px}
.sidebar .seg button{border:none;background:none;font-family:var(--sb-sans);font-size:11.5px;color:var(--ink-2);
  padding:3px 9px;border-radius:6px;cursor:pointer;transition:.15s}
.sidebar .seg button.on{background:var(--ink);color:#fff}
.sidebar .icbtn{width:27px;height:27px;border:1px solid var(--line-2);border-radius:8px;background:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-2);transition:.15s}
.sidebar .icbtn:hover{border-color:var(--ink-3);color:var(--ink)}

/* ════ 三级分隔 + 区 ════ */
.sidebar .t3sep{height:1px;background:var(--line-2);margin:20px var(--sb-pad) 0}
.sidebar .section.t3{padding-top:16px}
.sidebar .section.t3 .slabel{margin-bottom:9px}
.sidebar .section.t3 .slabel h2{font-size:11.5px}

/* 今日值得关注 — 折叠"更多"按钮 (默认显示最重要两条, 其余收起) */
.sidebar .cal-more{margin-left:auto;display:inline-flex;align-items:center;gap:3px;font-size:12.5px;
  color:var(--ink-3);cursor:pointer;transition:color .15s}
.sidebar .cal-more:hover{color:var(--ink-2)}
.sidebar .cal-more svg.i{width:13px;height:13px;transition:transform .2s}
.sidebar .cal-more.open svg.i{transform:rotate(180deg)}
.sidebar .cal-extra[hidden]{display:none}

/* 今日值得关注 (.cal-item, JS 生成) — 照参考稿 .ev */
.sidebar .cal-item{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:11px;
  padding:8px 10px;margin:0 -10px;border-radius:9px;cursor:pointer;transition:background .14s}
.sidebar .cal-item:hover{background:var(--hover)}
.sidebar .cal-date{background:var(--card);border:1px solid var(--line-2);border-radius:8px;text-align:center;padding:4px 0}
.sidebar .cal-date-month{font-family:var(--sb-mono);font-size:8px;color:var(--ink-3);letter-spacing:.08em}
.sidebar .cal-date-day{font-family:var(--sb-mono);font-size:14px;color:var(--ink);font-weight:500;line-height:1.1}
.sidebar .cal-text{font-size:13px;font-weight:500;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar .cal-tag{font-size:10.5px;color:var(--ink-2);background:var(--card);border:1px solid var(--line-2);
  border-radius:7px;padding:3px 8px;white-space:nowrap}

/* 日报 / 周报 报告卡 */
.sidebar .report{background:var(--card);border:1px solid var(--line-2);border-radius:13px;padding:14px 16px}
.sidebar .rep-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sidebar .rep-kind{font-family:var(--sb-serif);font-style:italic;color:var(--ink);font-size:14px}
.sidebar .rep-pdf{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;color:var(--ink-3);
  border:1px solid var(--line-2);border-radius:5px;padding:2px 6px;letter-spacing:.03em}
.sidebar .rep-meta{margin-left:auto;font-family:var(--sb-mono);font-size:11px;color:var(--ink-3)}
.sidebar .rep-title{font-size:16px;font-weight:500;letter-spacing:-.01em;margin-bottom:6px;color:var(--ink)}
.sidebar .rep-sum{font-size:13px;line-height:1.66;color:var(--ink-2);font-variant-numeric:tabular-nums}
.sidebar .rep-sum b{font-weight:600;color:var(--ink)}
.sidebar .rep-sum .hl-up{color:var(--up);font-weight:600}
.sidebar .rep-sum .hl-down{color:var(--down);font-weight:600}
.sidebar .chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.sidebar .chip{font-size:10.5px;color:var(--ink-2);background:var(--canvas);border:1px solid var(--line-2);
  border-radius:7px;padding:3px 8px;white-space:nowrap}
.sidebar .rep-cta{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line-2);
  font-size:12.5px;color:var(--ink);cursor:pointer;transition:color .15s}
.sidebar .rep-cta:hover{color:var(--up)}
.sidebar .rep-cta .arrow{margin-left:auto;color:var(--ink-3)}
.sidebar .rep-foot{margin-top:11px;padding-top:9px;border-top:1px solid var(--line-2);font-size:11px;color:var(--ink-3)}

/* ════ 用户栏 ════ */
.sidebar .userbar{display:flex;align-items:center;gap:10px;padding:13px var(--sb-pad);
  border-top:1px solid var(--line-2);background:var(--panel);flex:none}
.sidebar .userbar .av{width:30px;height:30px;border-radius:8px;background:var(--ink);color:#fff;background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;font-weight:500;font-size:13px;line-height:1;flex:none}
.sidebar .userbar .uname{font-size:14px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:84px}
.sidebar .userbar .pro{font-size:10px;font-weight:600;letter-spacing:.04em;color:#fff;background:var(--pro);border-radius:5px;padding:2px 6px;line-height:1.1;flex:none}
.sidebar .userbar .credits{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line-2);border-radius:8px;padding:4px 9px;cursor:default;flex:none}
.sidebar .userbar .credits .q{font-family:var(--sb-mono);font-variant-numeric:tabular-nums;color:var(--ink)}
.sidebar .userbar .credits .lbl{color:var(--ink-3);font-size:11px}

.sidebar .ai-stub,.sidebar .ai-stub[hidden]{display:none}
