/* === Embodied AI Frontier — 组件样式 === */

/* === 卡片封面占位（按分类着渐变） === */
.card-cover {
    width: 100%;
    aspect-ratio: 16/9;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    transition: transform 0.3s;
}

.card:hover .card-cover {
    transform: scale(1.03);
}

.card-cover-default {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
}

.card-cover-humanoid {
    background: linear-gradient(135deg, #0e7490 0%, #0a3d5c 100%);
}

.card-cover-combat {
    background: linear-gradient(135deg, #e63946 0%, #8b1a1a 100%);
}

.card-cover-funding {
    background: linear-gradient(135deg, #d4a017 0%, #8b6914 100%);
}

.card-cover-tech {
    background: linear-gradient(135deg, #4b5bc4 0%, #2d3a8c 100%);
}

.card-cover-research {
    background: linear-gradient(135deg, #5b21b6 0%, #3b0f8c 100%);
}

/* 封面图模式 */
.card-cover-image {
    overflow: hidden;
    background: var(--bg-card);
}
.card-cover-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}
.card:hover .card-cover-image img {
    transform: scale(1.03);
}

.card-cover-quadruped {
    background: linear-gradient(135deg, #2f7d57 0%, #1a4d33 100%);
}

[data-theme="light"] .card-cover-default {
    background: linear-gradient(135deg, #dde3ed 0%, #c8d0dd 100%);
}

[data-theme="light"] .card-cover-humanoid {
    background: linear-gradient(135deg, #b0d4e8 0%, #8bb8d4 100%);
}

[data-theme="light"] .card-cover-combat {
    background: linear-gradient(135deg, #f5c6cb 0%, #e8a0a8 100%);
}

[data-theme="light"] .card-cover-funding {
    background: linear-gradient(135deg, #f0d9a0 0%, #e0c080 100%);
}

[data-theme="light"] .card-cover-tech {
    background: linear-gradient(135deg, #b8c4e8 0%, #98a8d8 100%);
}

.card-cover-icon {
    font-size: 36px;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
    transition: transform 0.2s;
}

.card:hover .card-cover-icon {
    transform: scale(1.15);
}

/* === 精选轮换（图片+文字幻灯片） === */
.featured-carousel {
    border: 1px solid var(--border-card);
    border-radius: 10px;
    background: var(--bg-card);
    border-left: 3px solid var(--banner-tint, var(--accent));
    overflow: hidden;
    height: 270px;
    position: relative;
}

/* Slide 切换 */
.fc-slide {
    display: none;
    height: 100%;
}
.fc-slide.active {
    display: block;
}

/* Slide 内部 */
.fc-slide-inner {
    display: flex;
    height: 100%;
    text-decoration: none;
    color: inherit;
    position: relative;
    min-width: 0;
}

/* ── 热度角标：右上角 ── */
.fc-hot-corner {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
}

/* ── 有图模式：左1/3图片列 ── */
.fc-with-img .fc-img-col {
    width: 33.333%;
    flex-shrink: 0;
    overflow: hidden;
    background: var(--bg-secondary);
}
.fc-with-img .fc-img-col img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ── 有图：右2/3文字列 ── */
.fc-with-img .fc-text-col {
    flex: 1;
    min-width: 0;
    padding: 20px 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}

/* ── 无图模式 ── */
.fc-text-only {
    flex-direction: column;
    justify-content: space-between;
    padding: 28px 28px;
    min-width: 0;
    align-items: flex-start;
}

/* 标签保留 pill 形状 */
.fc-slide-inner .tag {
    align-self: flex-start;
    margin-bottom: 10px;
    max-width: 100%;
    flex-shrink: 0;
}

/* 标题：最多2行截断 */
.fc-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--text-primary);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 54px;  /* 🔴 2026-08-15：flex item 上 -webkit-box 被 blockify clamp 失效——max-height 兜底截断 */
    margin-bottom: 6px;
    transition: color 0.15s;
    word-wrap: break-word;
    overflow-wrap: break-word;
    width: 100%;
}

.fc-slide-inner:hover .fc-title {
    color: var(--banner-tint, var(--accent));
}

/* 摘要：最多3行 */
.fc-summary {
    font-size: 13px;
    color: var(--text-muted);
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 60.45px;  /* 🔴 2026-08-15：flex item blockify 兜底截断 */
    margin: 0 0 auto 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
    width: 100%;
}

/* ── 推荐理由独立区：上下分割线 ── */
.fc-rec-area {
    width: 100%;
    border-top: 1px solid var(--border-subtle);
    border-bottom: 1px solid var(--border-subtle);
    padding: 6px 0;
    margin: 6px 0 0 0;
}

/* 推荐理由：最多2行 */
.fc-hook {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 39px;  /* 🔴 2026-08-15：flex item blockify 兜底截断 */
    margin: 0;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.fc-hook-label {
    font-weight: 600;
    color: var(--text-primary);
    margin-right: 4px;
    flex-shrink: 0;
}

/* 底栏：日期 + 阅读全文 — 靠底 */
.fc-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: var(--text-muted);
    padding-top: 6px;
    width: 100%;
}

.fc-read-more {
    color: var(--accent);
    font-weight: 500;
}

/* 圆点导航 */
.fc-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 10px 0 4px;
}

.fc-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1.5px solid var(--text-muted);
    background: transparent;
    cursor: pointer;
    transition: all 0.2s;
    padding: 0;
}

.fc-dot.active {
    background: var(--accent);
    border-color: var(--accent);
}

.fc-dot:hover {
    border-color: var(--accent);
    background: rgba(0, 212, 255, 0.25);
}

/* === 标签 === */
.tag {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    background: var(--bg-secondary);
    color: var(--text-secondary);
    border: 1px solid var(--border-subtle);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.tag:hover {
    border-color: var(--text-muted);
}

.tag-launch {
    border-color: var(--tag-launch);
    color: var(--tag-launch);
}

.tag-research {
    border-color: var(--tag-research);
    color: var(--tag-research);
}

.tag-industry {
    border-color: var(--tag-industry);
    color: var(--tag-industry);
}

.tag-deep {
    border-color: var(--tag-deep);
    color: var(--tag-deep);
}

.tag-funding {
    border-color: var(--tag-funding);
    color: var(--tag-funding);
}

/* 全站标签色板统一（CEO 2026-08-05）：新分类类补全——之前 tag-capital/tech/global/policy 未定义导致渲染默认灰 */
.tag-capital {
    border-color: var(--tag-capital);
    color: var(--tag-capital);
}
.tag-tech {
    border-color: var(--tag-tech);
    color: var(--tag-tech);
}
.tag-global {
    border-color: var(--tag-global);
    color: var(--tag-global);
}
.tag-policy {
    border-color: var(--tag-policy);
    color: var(--tag-policy);
}
.tag-news {
    border-color: var(--tag-industry);
    color: var(--tag-industry);
}

.tag-combat {
    border-color: var(--tag-combat);
    color: var(--tag-combat);
}

/* === 评分 === */
.score {
    font-family: var(--font-mono);
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 4px;
}

.score-high {
    color: #00e676;
    background: rgba(0, 230, 118, 0.1);
}

.score-mid {
    color: #ffab40;
    background: rgba(255, 171, 64, 0.1);
}

.score-low {
    color: var(--text-muted);
    background: var(--bg-secondary);
}

/* === 列表页 === */
.listing-header {
    padding: var(--space-xl) 0 var(--space-lg);
}

.listing-breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: var(--space-sm);
}

.listing-breadcrumb a:hover {
    color: var(--accent);
}

.breadcrumb-sep {
    color: var(--text-muted);
}

.listing-title {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    margin-bottom: var(--space-xs);
}

.listing-desc {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: var(--space-sm);
}

.listing-count {
    font-size: var(--font-size-sm);
    color: var(--text-muted);
    font-family: var(--font-mono);
}

.listing-grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
    padding-bottom: var(--space-2xl);
}

/* ═══ 横排大卡片（深度/列表页） ═══ */
.list-card {
    display: flex;
    gap: 24px;
    padding: 0;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.05);
    background: rgba(255,255,255,0.01);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: all 0.15s;
}
.list-card:hover {
    border-color: rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.02);
}

/* ═══ 时间线缩略图（AIHOT 同款逻辑：宽度定死 420px 规矩，高度按实际比例弹性伸缩完整显示；CEO 2026-08-12） ═══ */
.tl-card-thumb {
    margin-top: 10px;
    margin-bottom: 8px;
    width: 100%;
    max-width: 420px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.02);
    /* 🔴 2026-08-14：视频推文播放按钮 overlay 定位锚点 */
    position: relative;
}
.tl-card-thumb img {
    display: block;
    width: 100%;
    height: auto;
}
/* 🔴 列表缩略图播放按钮（2026-08-14 CEO 参考 AIHOT：视频文章列表也有播放开关样式）——小号按钮 */
.tl-card-thumb .x-video-play {
    width: 42px;
    height: 42px;
    font-size: 15px;
    text-indent: 2px;
}
.tl-card-thumb:hover .x-video-play {
    background: rgba(0, 0, 0, 0.72);
    border-color: rgba(255, 255, 255, 0.95);
    transform: translate(-50%, -50%) scale(1.08);
}
[data-theme="light"] .tl-card-thumb {
    border-color: rgba(15,23,42,0.12);
    background: rgba(15,23,42,0.03);
}

.list-card-img-wrap {
    width: 280px;
    min-width: 280px;
    height: 200px;
    overflow: hidden;
    flex-shrink: 0;
}
.list-card-img {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}
.list-card-img-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 42px;
}
.lc-bg-funding { background: linear-gradient(135deg, #2d1b1b, #4a1e1e); }
.lc-bg-research { background: linear-gradient(135deg, #1a1040, #2d1b69); }
.lc-bg-deep { background: linear-gradient(135deg, #0e2a2a, #0e7490); }
.lc-bg-tech { background: linear-gradient(135deg, #1a1a2e, #16213e); }
.lc-bg-industry { background: linear-gradient(135deg, #0a2a3a, #1a3a5a); }
.lc-bg-default { background: linear-gradient(135deg, #1a1a2e, #16213e); }
.lc-bg-capital { background: linear-gradient(135deg, #2d2410, #4a3a12); }
.lc-bg-global { background: linear-gradient(135deg, #0a2a26, #134e4a); }
.lc-bg-policy { background: linear-gradient(135deg, #1e293b, #334155); }

.list-card-body {
    flex: 1;
    min-width: 0;
    padding: 20px 20px 20px 0;
    /* 🔴 2026-08-15：不再用 flex column——flex item 的 -webkit-box 被 blockify（Chrome 151），
       -webkit-line-clamp 失效 → 摘要/标题全显示无省略号。改块流后 clamp 恢复。 */
}
.list-card-top {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.list-card-tag {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 2px 10px;
    border-radius: 20px;
}
.lc-tag-industry { background: rgba(34,211,238,0.1); color: #22d3ee; }
.lc-tag-research { background: rgba(192,132,252,0.1); color: #c084fc; }
.lc-tag-funding { background: rgba(250,204,21,0.1); color: #facc15; }
.lc-tag-deep { background: rgba(94,207,150,0.12); color: #5fc79a; }
.lc-tag-policy { background: rgba(74,222,128,0.1); color: #4ade80; }
.lc-tag-tech { background: rgba(192,132,252,0.12); color: #c084fc; }
.lc-tag-news { background: rgba(34,211,238,0.1); color: #22d3ee; }
.lc-tag-capital { background: rgba(250,204,21,0.12); color: #facc15; }
.lc-tag-global { background: rgba(251,113,133,0.12); color: #fb7185; }
/* 子标签统一亮白（全站标签色板：分类各色互异 + 子标签统一白，不撞色、显眼） */
.lc-subtag {
    font-size: 10px;
    padding: 1px 9px;
    border-radius: 20px;
    background: rgba(226,232,240,0.08);
    border: 1px solid rgba(226,232,240,0.22);
    color: #e2e8f0;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.12s;
}
.lc-subtag:hover { border-color: rgba(226,232,240,0.45); color: #fff; }

/* 右栏快讯简报 pill（全站统一色板覆盖 layout.css 旧深色——CEO 2026-08-05 右栏参与标签策略） */
.tln-pill-industry { border-color: rgba(34,211,238,0.35); color: #22d3ee; }
.tln-pill-research { border-color: rgba(192,132,252,0.35); color: #c084fc; }
.tln-pill-funding { border-color: rgba(250,204,21,0.35); color: #facc15; }
.tln-pill-deep { border-color: rgba(94,207,150,0.35); color: #5fc79a; }
.tln-pill-policy { border-color: rgba(74,222,128,0.35); color: #4ade80; }
.tln-pill-tech { border-color: rgba(192,132,252,0.35); color: #c084fc; }
.tln-pill-news { border-color: rgba(34,211,238,0.35); color: #22d3ee; }
.tln-pill-capital { border-color: rgba(250,204,21,0.35); color: #facc15; }
.tln-pill-global { border-color: rgba(251,113,133,0.35); color: #fb7185; }

.list-card-score {
    margin-left: auto;
    font-size: 11px;
    font-family: var(--font-mono);
    color: rgba(255,255,255,0.2);
    padding: 1px 8px;
    border-radius: 4px;
    background: rgba(255,255,255,0.03);
}

.list-card-title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    color: #e8edf5;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.list-card:hover .list-card-title {
    color: var(--accent);
}

.list-card-summary {
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255,255,255,0.3);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 8px;
}

.list-card-foot {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 12px;
    color: rgba(255,255,255,0.2);
}
.list-card-hot {
    color: rgba(255,107,53,0.5);
    background: transparent;  /* 🔴 2026-08-15：清除 hot-tier-* 背景（光污染）——热度标签纯文字 */
}

/* === 公司总览页 === */
.company-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-md);
    padding-bottom: var(--space-2xl);
}

@media (min-width: 640px) {
    .company-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1024px) {
    .company-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.company-card {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-md);
    background: var(--bg-card);
    border: 1px solid var(--border-card);
    border-radius: 10px;
    transition: all 0.2s;
    position: relative;
}

/* 核心公司 HOT 徽章（CEO 2026-08-15：卡片右上角红色小字，固定跟随卡片） */
.company-hot {
    position: absolute;
    top: 6px;
    right: 8px;
    font-size: 8px;
    font-weight: 600;
    line-height: 1;
    color: #b84348;
    letter-spacing: 0.5px;
}

.company-card:hover {
    background: var(--bg-card-hover);
    border-color: var(--accent);
    transform: translateY(-2px);
}

.company-card-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.company-initial {
    font-weight: 700;
    font-size: var(--font-size-lg);
    color: #fff;
}

.company-card-name {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--text-primary);
}

/* === 空状态 === */
.empty-state {
    text-align: center;
    padding: var(--space-3xl) 0;
}

/* === 时间线卡片流 === */
.tl-header {
    padding: var(--space-sm) 0 var(--space-xs);
}

.tl-eyebrow {
    font-size: 11px;
    color: var(--accent);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}

/* 页面大标题 — 字间距撑满对齐 eyebrow */
.tl-page-title {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 0.45em;
    padding-left: 0.15em;
    margin-bottom: 2px;
    color: var(--text-primary);
    line-height: 1.2;
}

/* 页面副标题 — 日期 + 描述 */
.tl-page-sub {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 400;
}

/* ── 分割线 ── */
.tl-divider {
    border: none;
    border-top: 1px solid var(--border-subtle);
    margin: 8px 0;
}

/* ===== 子页面模板式样（CEO 2026-08-03 定稿 §12.9/§12.10，全局通用） =====
   所有左栏子页面（今日快讯/深度解读/专题等）共用：
   ① 中栏表头 = .subpage-title（pulse-dot + 名称 + 说明同行）
   ② 标签栏 = .tl-tags（sticky 冻结，见下）
   ③ 右栏 = .rp-header（sticky，layout.css 已定义）
   新子页面直接套用这些全局类，禁止页面级 style 重复定义。 */
.subpage-title {
    display: flex;
    align-items: center;
    gap: 8px;
    letter-spacing: 0;
    padding-left: 0;
    margin-bottom: 2px;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
}
.subpage-title-text {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: var(--text-primary);
    line-height: 1.2;
    white-space: nowrap;
}
.subpage-sub {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 400;
    letter-spacing: normal;
    margin-left: 6px;
    flex-shrink: 0;
    white-space: nowrap;
}
.subpage-title .pulse-dot { flex-shrink: 0; }
@media (max-width: 768px) {
    .subpage-title { flex-wrap: wrap; gap: 4px 8px; }
    .subpage-sub { white-space: normal; }
}

/* ── 标签筛选行（冻结在最顶端） ── */
.tl-tags {
    position: sticky;
    top: 0;
    z-index: 11;
    background: var(--bg-primary);
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 0 6px;
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: 4px;
}

.tl-tag {
    font-size: 11px;
    padding: 2px 12px;
    border-radius: 20px;
    background: var(--bg-card);
    border: 1px solid var(--border-card);
    color: var(--text-secondary);
    text-decoration: none;
    transition: all 0.15s;
}

.tl-tag:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.tl-tag-active {
    background: var(--accent);
    border-color: var(--accent);
    color: #fff;
}

/* ── 时间线容器 ── */
.tl-feed {
    position: relative;
}

/* ── 每日冻结栏（可折叠） ── */
.tl-daybar {
    position: sticky;
    top: 36px;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    margin-bottom: 6px;
    background: var(--bg-primary);
    cursor: pointer;
    user-select: none;
    border-bottom: 1px solid var(--border-subtle);
}

/* V 形折叠箭头 — CSS 绘制 */
.tl-daybar-arrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-left: 2px solid var(--text-secondary);
    border-bottom: 2px solid var(--text-secondary);
    transform: rotate(-45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

/* 折叠状态 → 指向右方 */
.tl-daybar.tl-daybar-folded .tl-daybar-arrow {
    transform: rotate(135deg);
}

.tl-daybar-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

.tl-daybar-count {
    font-size: 11px;
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-weight: 500;
}

.tl-day-items {
    /* 容器，默认展开 */
}

.tl-day-collapsed {
    display: none;
}

/* ── 主竖线 ── */
.tl-feed::before {
    content: '';
    position: absolute;
    left: 50px;          /* 40(时间) + 11(轨道宽/2) - 1(线宽/2) */
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--border-subtle);
    z-index: 1;
}

/* ── 单条时间轴条目 ── */
.tl-item {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin-bottom: 10px;
    position: relative;
}

/* 左：发布时间 */
.tl-item-time {
    width: 40px;
    flex-shrink: 0;
    font-size: 12px;
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-secondary);
    text-align: right;
    padding-right: 8px;
    padding-top: 15px;
    user-select: none;
}

/* 中：轨道（竖线段 + 圆点） */
.tl-item-track {
    width: 22px;
    flex-shrink: 0;
    position: relative;
    display: flex;
    justify-content: center;
}

/* 圆点 — 挂在竖线上 */
.tl-item-dot {
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--accent);
    border: 2px solid var(--bg-primary);
    z-index: 2;
    margin-top: 16px;
    transition: all 0.2s;
}

.tl-item:hover .tl-item-dot {
    background: var(--accent-warm);
    transform: scale(1.25);
}

/* 连接竖线 */
.tl-item-track::after {
    content: '';
    position: absolute;
    top: 26px;
    bottom: 0;
    left: 50%;
    width: 2px;
    transform: translateX(-50%);
    background: var(--border-subtle);
}

.tl-item:last-child .tl-item-track::after {
    display: none;
}

/* 右：卡片 */
.tl-item-card {
    flex: 1;
    min-width: 0;
}

.tl-card-inner {
    background: var(--bg-card);
    border: 1px solid var(--border-card);
    border-radius: 10px;
    overflow: hidden;
    transition: all 0.2s;
}

.tl-card-inner:hover {
    background: var(--bg-card-hover);
    border-color: var(--text-muted);
    transform: translateY(-1px);
}

/* 卡片正文 */
.tl-card-body {
    padding: var(--space-md);
}

.tl-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    align-items: center;
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin-bottom: var(--space-sm);
}

.tl-source {
    color: var(--text-secondary);
    font-size: 12px;
}

.tl-time {
    font-size: 11px;
    color: var(--text-muted);
    margin-left: auto;
}

.tl-card-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: var(--space-sm);
}

.tl-card-title a {
    color: var(--text-primary);
}

.tl-card-title a:hover {
    color: var(--accent);
}

.tl-card-summary {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    line-height: 1.6;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tl-card-foot {
    margin-top: var(--space-sm);
}

.tl-read-more {
    font-size: var(--font-size-sm);
    color: var(--accent);
    font-weight: 500;
}

.tl-read-more:hover {
    text-decoration: underline;
}

