/* ── Ticker ──────────────────────────────────────────────────────────────────── */
.ticker {
  flex-shrink: 0;
  display: flex;
  gap: 0;
  overflow: hidden;
  background: var(--accent);
  border-top: 1px solid rgba(255,255,255,.08);
  min-height: 0;
  transition: min-height .3s ease;
  width: 100%;
}
.ticker:empty { min-height: 0; border: none; }
.ticker-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 600;
  color: rgba(255,255,255,.7);
  white-space: nowrap;
  border-right: 1px solid rgba(255,255,255,.08);
  cursor: pointer;
  transition: background .15s, transform .4s cubic-bezier(.22,1,.36,1);
  flex: 1 1 0;
}
.ticker-item.ticker-new {
  animation: tickerSlideIn .45s cubic-bezier(.22,1,.36,1) both;
}
.ticker-item:hover { background: rgba(255,255,255,.08); }
.ticker-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: #60d394;
  flex-shrink: 0;
  animation: tickerPulse 2s ease-in-out infinite;
}
.ticker-dot.stale { background: #fff; animation: none; }
.ticker-name { color: #fff; overflow: hidden; text-overflow: ellipsis; }
.ticker-time { font-size: 10px; opacity: .9; margin-left: 4px; font-variant-numeric: tabular-nums; }
@keyframes tickerSlideIn { from { opacity: 0; max-width: 0; padding-left: 0; padding-right: 0; transform: translateX(-20px); } to { opacity: 1; max-width: 300px; padding-left: 12px; padding-right: 12px; transform: translateX(0); } }
@keyframes tickerPulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }
