/* P1-2 候选股决策卡样式 */
.dec-card { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; }
.dec-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.dec-title h3 { margin: 0; font-size: 15px; }
.dec-title h3 small { color: var(--muted, #769b91); font-weight: 400; }
.dec-title p { margin: 2px 0 0; font-size: 12px; color: var(--muted, #769b91); }
.dec-badges { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.dec-tier-strong { background: #ff6268; color: #fff; }
.dec-tier-steady { background: #ffc45d; color: #241a00; }
.dec-tier-defend { background: #57dc9f; color: #06231a; }
.dec-fit-attack { background: #ff6268; color: #fff; }
.dec-fit-light { background: #ffc45d; color: #241a00; }
.dec-fit-watch { background: #9aa7b1; color: #10171c; }
.dec-nums { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--muted, #769b91); border-top: 1px dashed rgba(128, 160, 150, .25); padding-top: 8px; }
.dec-nums b { color: var(--text, #e8f2ee); font-size: 13px; }
.dec-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.dec-reasons ol, .dec-risks ul { margin: 4px 0 0; padding-left: 18px; font-size: 12px; line-height: 1.7; }
.dec-reasons b, .dec-risks b { font-size: 12px; }
.dec-meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--muted, #769b91); border-top: 1px dashed rgba(128, 160, 150, .25); padding-top: 8px; }
.dec-meta b { font-size: 13px; }
.dec-source { margin-left: auto; max-width: 55%; text-align: right; font-size: 11px; }
.dec-card .row-actions { display: flex; gap: 8px; justify-content: flex-end; }
@media (max-width: 900px) {
  .dec-head { flex-direction: column; }
  .dec-badges { justify-content: flex-start; }
  .dec-source { margin-left: 0; text-align: left; max-width: 100%; }
}

/* 自主闭环页 */
.loop-log { display: flex; flex-direction: column; gap: 6px; max-height: 320px; overflow-y: auto; font-size: 12px; }
.loop-line { display: flex; gap: 8px; align-items: baseline; }
.loop-line code { color: var(--muted, #769b91); word-break: break-all; white-space: pre-wrap; }

/* 扫描报告竖向漏斗 */
.report-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.vfunnel { display: flex; flex-direction: column; gap: 2px; margin: 8px 0; font-size: 12px; }
.vf-stage { display: flex; gap: 8px; align-items: center; padding: 3px 8px; border-radius: 6px; background: rgba(128,160,150,.08); }
.vf-stage span { color: var(--muted, #769b91); width: 14px; text-align: center; }
.vf-stage b { font-weight: 500; flex: 1; }
.vf-stage em { font-style: normal; font-weight: 700; color: var(--text, #e8f2ee); }

/* 闭环状态灯 */
.loop-lights{font-size:12px}
.loop-lights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.light-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--panel2);border:1px solid var(--line);border-radius:10px}
.light-item span{font-size:11px;color:var(--muted)}
.light-item b{font-size:14px}
.light-item small{font-size:11px;color:var(--muted)}
.light-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-bottom:4px}
.light-dot.ok{background:#57dc9f;box-shadow:0 0 6px #57dc9f}
.light-dot.warn{background:#ffc45d;box-shadow:0 0 6px #ffc45d}
.light-dot.info{background:#6cbcff}
.light-dot.fail{background:#ff6268;box-shadow:0 0 6px #ff6268}

/* 新闻信号（只读观察层） */
.dec-news{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.dec-news b{font-size:12px}
.news-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:12px}
.news-line .link{font-size:12px}
.news-items{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.news-item{display:flex;flex-direction:column;gap:4px;font-size:12px}
.news-item .link{font-size:12px;line-height:1.5}
