/* 刚出检（#593）：首页检测线下面那条流。
   视觉上刻意压得比信息流轻——它是脉搏不是正文，抢了主位就本末倒置。 */

.fr {
    border: 1px solid var(--line);
    border-radius: var(--r);
    background: var(--card);
    padding: var(--sp-3) var(--sp-4);
    margin-bottom: var(--sp-6);
}
.fr-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2); margin-bottom: var(--sp-2); }
.fr-t { font-weight: 700; color: var(--ink); font-size: var(--fs-sm); }
.fr-sub { color: var(--ink-3); font-size: var(--fs-xs); }
.fr-live { margin-left: auto; display: inline-flex; align-items: center; gap: 5px;
           color: var(--ink-3); font-size: var(--fs-xs); }
.fr-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
/* 停运态：点变灰、不闪。抓取断了就直说，不拿旧稿冒充今天的活 */
.fr[data-stale="1"] .fr-dot { background: var(--ink-4); animation: none; }
@media (prefers-reduced-motion: no-preference) {
    .fr-dot { animation: fr-pulse 2.4s ease-in-out infinite; }
}
@keyframes fr-pulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }

.fr-list { list-style: none; margin: 0; padding: 0; }
.fr-row {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2);
    padding: 6px 0; border-top: 1px solid var(--line-2); line-height: 1.6;
}
.fr-row:first-child { border-top: 0; }
.fr-at { color: var(--ink-3); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.fr-title { flex: 1; min-width: 12rem; color: var(--ink); text-decoration: none; font-size: var(--fs-sm); }
.fr-title:hover { color: var(--gold-text); }
.fr-why { color: var(--ink-3); font-size: var(--fs-xs); }
.fr-score { font-variant-numeric: tabular-nums; font-size: var(--fs-sm); color: var(--ink-2); flex-shrink: 0; }
.fr-score[data-band="bad"] { color: var(--q-bad); }
.fr-score[data-band="mid"] { color: var(--q-mid); }

/* 轮询补进来的新行：进场一次，之后和其它行一模一样 */
.fr-row.is-new { animation: fr-in .5s var(--ease, ease) both; }
@keyframes fr-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .fr-row.is-new { animation: none; } }

.fr-stale-note { margin: var(--sp-2) 0 0; color: var(--ink-3); font-size: var(--fs-xs); line-height: 1.7; }
/* 全绿口径句：比停运说明轻一档——它讲的是「一切正常，但别误读」，不是故障 */
.fr-green-note { margin: var(--sp-2) 0 0; color: var(--ink-3); font-size: var(--fs-xs); line-height: 1.8; }
.fr-green-note b { color: var(--ink-2); font-weight: 600; }
.fr-green-note a { color: var(--ink-2); text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 640px) {
    .fr-why { display: none; }   /* 窄屏一行只留时间/标题/分 */
}
