/* EventFeed.css — Agent 事件流 组件样式 */
.kx-spin{width:28px;height:28px;border:3px solid var(--line2);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.kx-feed{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 2px rgba(20,25,35,.05),0 12px 32px rgba(20,25,35,.08);}
.kx-feed-h{display:flex;align-items:center;gap:9px;padding:13px 18px;border-bottom:1px solid var(--line);}
.kx-feed-ai{width:22px;height:22px;border-radius:7px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;flex-shrink:0;}
.kx-feed-t{font-size:14px;font-weight:800;letter-spacing:-.2px;}
.kx-feed-sub{font-size:11.5px;color:var(--t2);font-weight:600;}
.kx-feed-n{margin-left:auto;font-size:11px;color:var(--t3);font-weight:700;}
.kx-feed-list{max-height:360px;overflow-y:auto;}
.kx-strip{padding:6px 18px 15px;} /* 与头部 18px 对齐，首卡不再显得内嵌过深 */
.kx-strip .evstrip-row{padding-top:11px;padding-bottom:8px;}
.evchip{position:relative;width:200px;padding:11px 13px;}
.evchip.on{--c:var(--blue);}
.evchip-date{font-size:11px;color:var(--t3);font-weight:700;}
.kx-chip-ico{display:inline-grid;place-items:center;}
.kx-chip-stats{display:flex;gap:14px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line);}
.kx-cs{display:flex;flex-direction:column;gap:2px;}
.kx-cs b{font-size:13px;font-weight:800;}
.kx-cs em{font-style:normal;font-size:9.5px;font-weight:700;color:var(--t3);}
.kx-chip-cur{position:absolute;top:-7px;right:10px;font-size:9.5px;font-weight:800;color:#fff;background:var(--c,var(--blue));padding:2px 8px;border-radius:10px;box-shadow:0 2px 6px rgba(20,25,35,.22);} /* 随卡片类别色（红涨/蓝中性），与选中描边同色 */
.kx-chip-dead{opacity:.5;cursor:not-allowed;}
.kx-chip-dead:hover{border-color:var(--line2);}
.kx-chip-pending{cursor:default;}
.kx-chip-pending .kx-chip-stats b,.kx-chip-pending .evchip-date{color:var(--line2);}
.kx-feed-loading{display:inline-flex;align-items:center;gap:8px;align-self:center;padding:0 18px;font-size:12.5px;font-weight:700;color:var(--t2);white-space:nowrap;}
.kx-chip-latest{border-color:var(--blue);}
.kx-chip-latest.on{background:var(--card);}
.kx-live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--card);margin-right:5px;box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:kxpulse 1.6s infinite;}
@keyframes kxpulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.6);}70%{box-shadow:0 0 0 5px rgba(255,255,255,0);}100%{box-shadow:0 0 0 0 rgba(255,255,255,0);}}
.kx-chip-deadtag{position:absolute;top:-7px;right:10px;font-size:9.5px;font-weight:800;color:var(--t2);background:var(--line2);padding:2px 8px;border-radius:10px;}
.kx-notice{padding:8px 18px;font-size:11.5px;font-weight:600;color:#8a6d1a;background:var(--warn-soft);border-bottom:1px solid var(--warn-line);}
.kx-feed-empty{padding:22px;text-align:center;font-size:12px;color:var(--t3);font-weight:600;}
.kx-noise-link{display:inline-flex;align-items:center;gap:5px;margin:10px 2px 2px;border:none;background:none;font-size:11.5px;font-weight:700;color:var(--t3);cursor:pointer;transition:.13s;}
.kx-noise-link:hover{color:var(--blue);}
.kx-noise-link b{color:var(--t2);font-weight:800;}
.kx-noise-sub{color:var(--t3);font-weight:600;}
.kx-noise-row{margin-top:8px;}
.kx-noise-chip{opacity:.62;}
.kx-noise-chip:hover{opacity:.82;}
.evchip.kx-ov-on{border-color:var(--blue);box-shadow:0 0 0 1.5px var(--blue);}

/* —— 基础卡片类（原设计系统 app.css 998-1008，随组件自带以脱离 app.css 依赖）—— */
.evstrip-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;cursor:grab;user-select:none;}
/* 横滑边缘渐隐:哪侧还有内容哪侧渐隐,半截卡片不再像破碎 UI(类名由 EventFeed.jsx 按滚动位置切换) */
.evstrip-row.fade-l{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34px);mask-image:linear-gradient(90deg,transparent 0,#000 34px);}
.evstrip-row.fade-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent 100%);}
.evstrip-row.fade-l.fade-r{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34px,#000 calc(100% - 34px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 34px,#000 calc(100% - 34px),transparent 100%);}
.evstrip-row:active{cursor:grabbing;}
.evstrip-row:focus{outline:none;} /* 键盘左右键可滑；不画聚焦框避免噪音 */
.evstrip-row::-webkit-scrollbar{height:0;display:none;}
.evchip{flex-shrink:0;width:188px;text-align:left;border:1.5px solid var(--line2);border-radius:12px;padding:10px 12px;background:var(--card);transition:.15s;cursor:pointer;}
.evchip:hover{border-color:var(--line3);}
.evchip.on{border-color:var(--c);background:var(--card);box-shadow:0 6px 18px rgba(20,25,35,.08);}
.evchip-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:7px;flex-wrap:nowrap;}
.evchip-cat{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;white-space:nowrap;flex-shrink:0;}
/* 「推理演绎」发现性徽标：含推理卡的信号卡角标 */
.evchip-rc{display:inline-flex;align-items:center;font-size:10.5px;font-weight:800;letter-spacing:.5px;color:#7c3aed;background:rgba(124,58,237,.1);padding:2px 6px;border-radius:6px;white-space:nowrap;flex-shrink:0;margin-right:auto;}
.evchip-dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.evchip-date{font-size:11px;color:var(--t3);white-space:nowrap;flex-shrink:0;}
.evchip-title{font-size:13px;font-weight:600;line-height:1.4;color:var(--t1);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.8em;}   /* 恒按两行预留：单行标题卡与两行标题卡分割线对齐 */

/* 卡片类型标（0720）：区分 形态匹配/新闻事件/技术信号，口径= KxSignal.originOf */
.evchip-type{font-size:10px;font-weight:700;padding:1.5px 5px;border-radius:4px;flex-shrink:0;margin-right:auto;white-space:nowrap;}
.evchip-type-pattern{color:#7c3aed;background:rgba(124,58,237,.12);}
.evchip-type-news{color:#3a6df0;background:rgba(58,109,240,.12);}
.evchip-type-technical{color:var(--t2);background:var(--line);}
.kx-cluster-card{position:relative;min-height:112px;border-color:rgba(124,58,237,.28);background:linear-gradient(155deg,rgba(124,58,237,.075),var(--card) 62%);}
.kx-cluster-card:hover{border-color:#7c3aed;transform:translateY(-1px);box-shadow:0 8px 22px rgba(124,58,237,.12);}
.kx-cluster-card.on{border-color:#7c3aed;box-shadow:0 0 0 1px #7c3aed,0 8px 22px rgba(124,58,237,.14);}
.kx-cluster-cat{color:#6d28d9;background:rgba(124,58,237,.12);}
.kx-cluster-reference{margin-top:3px;font-size:12.5px;font-weight:600;line-height:1.4;color:var(--t1);white-space:normal;overflow:visible;}
.kx-cluster-meta{display:flex;align-items:baseline;gap:5px;margin-top:12px;padding-top:9px;border-top:1px solid rgba(124,58,237,.13);color:var(--t3);font-size:10px;font-weight:700;}
.kx-cluster-meta b{font-size:18px;line-height:1;color:#6d28d9;}
.kx-cluster-card .kx-chip-cur{background:#7c3aed;box-shadow:0 2px 6px rgba(124,58,237,.35);}
.kx-technical-card{position:relative;min-height:112px;display:flex;flex-direction:column;border-color:rgba(37,99,235,.25);background:linear-gradient(155deg,rgba(37,99,235,.07),var(--card) 62%);}
.kx-technical-card:hover{border-color:#2563eb;transform:translateY(-1px);box-shadow:0 8px 22px rgba(37,99,235,.11);}
.kx-technical-card.on{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb,0 8px 22px rgba(37,99,235,.13);}
.kx-technical-cat{color:#1d4ed8;background:rgba(37,99,235,.11);}
.kx-technical-thesis{margin-top:8px;white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:clip;line-height:1.42;min-height:0;}
.kx-technical-meta{display:flex;align-items:center;gap:5px;margin-top:auto;padding-top:7px;border-top:1px solid rgba(37,99,235,.12);color:var(--t3);font-size:10px;font-weight:650;flex-shrink:0;}
.kx-technical-meta i{font-style:normal;color:var(--t4);}
.kx-technical-meta b{color:var(--t1);}
.kx-technical-card .kx-chip-cur{background:#2563eb;box-shadow:0 2px 6px rgba(37,99,235,.3);}
