/* ========================================================================
   Component: Feed, Charts, Activity
   ======================================================================== */

/* ── Feed ── */
.feed { display: flex; flex-direction: column; gap: var(--space-2); }
.feed-item {
    display: flex; gap: var(--space-3); align-items: flex-start;
    padding: var(--space-3);
    border: 1px solid var(--border-light);
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--bg-secondary) 65%, transparent);
    transition: background var(--duration-fast);
}
.feed-item:hover { background: var(--bg-hover); }
.feed-icon {
    width: 34px; height: 34px; border-radius: var(--radius);
    display: flex; align-items: center; justify-content: center;
    background: var(--bg-primary); border: 1px solid var(--border); flex-shrink: 0;
}
.feed-meta { color: var(--text-muted); font-size: var(--text-sm); margin-top: var(--space-1); }

/* Section feed */
.section-feed { max-height: 400px; overflow-y: auto; }
.section-feed-item {
    display: flex; align-items: flex-start; gap: 0.75rem;
    padding: 0.75rem 0; border-bottom: 1px solid var(--border);
}
.section-feed-item:last-child { border-bottom: none; }
.section-feed-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 6px; flex-shrink: 0; }
.section-feed-dot--up { background: var(--success); }
.section-feed-dot--down { background: var(--danger); }
.section-feed-dot--info { background: var(--info); }
.section-feed-dot--sync { background: var(--warning); }

/* ── Charts ── */
.chart-wrap { padding: var(--space-3); }
.chart-wrap canvas { width: 100%; max-width: 100%; display: block; }
.chart-container { position: relative; height: 280px; width: 100%; }

.chart-legend { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-2); color: var(--text-muted); font-size: var(--text-base); }
.chart-dot { width: 10px; height: 10px; border-radius: var(--radius-full); display: inline-block; margin-right: 6px; }
.chart-dot-spend { background: rgba(15,118,110,0.95); }
.chart-dot-contacts { background: rgba(14,165,233,0.95); }

.chart-tabs { display: flex; gap: var(--space-2); margin-bottom: 0; flex-wrap: wrap; }
.chart-tab {
    padding: 0.4rem 0.75rem; border: none;
    background: var(--bg-tertiary); color: var(--text-secondary);
    border-radius: 6px; cursor: pointer; font-size: var(--text-sm);
    transition: all 0.2s;
}
.chart-tab:hover { background: var(--bg-secondary); }
.chart-tab.active { background: var(--brand); color: var(--text-inverse); }

/* ── Activity ── */
.activity-feed { max-height: 400px; overflow-y: auto; }
.activity-item {
    display: flex; gap: var(--space-4); padding: 0.75rem var(--space-4);
    border-bottom: 1px solid var(--border);
}
.activity-item:last-child { border-bottom: none; }
.activity-icon {
    width: 36px; height: 36px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem; flex-shrink: 0;
}
.activity-icon.bid-up { background: var(--success-soft); color: var(--success); }
.activity-icon.bid-down { background: var(--danger-soft); color: var(--danger); }
.activity-icon.info { background: var(--info-soft); color: var(--info); }
.activity-icon.sync { background: rgba(168,85,247,0.1); color: #a855f7; }
.activity-content { flex: 1; min-width: 0; }
.activity-title { font-weight: var(--weight-medium); color: var(--text-primary); margin-bottom: var(--space-1); }
.activity-meta { font-size: var(--text-sm); color: var(--text-muted); }
.activity-time { font-size: var(--text-sm); color: var(--text-muted); white-space: nowrap; }

/* ── Efficiency ── */
.efficiency-grid {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: var(--space-3); margin-bottom: var(--space-6);
}
@media (max-width: 1200px) { .efficiency-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .efficiency-grid { grid-template-columns: repeat(2, 1fr); } }

.efficiency-item {
    padding: var(--space-3) var(--space-4); border-radius: var(--radius);
    background: var(--bg-primary); border: 1px solid var(--border);
    transition: transform var(--duration-fast), box-shadow var(--duration-fast);
}
.efficiency-item:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.efficiency-value { font-size: var(--text-xl); font-weight: var(--weight-bold); }
.efficiency-label { font-size: var(--text-xs); font-weight: var(--weight-medium); color: var(--text-muted); margin-top: var(--space-1); }

.efficiency-score { display: flex; align-items: center; gap: var(--space-2); }
.efficiency-bar { width: 60px; height: 6px; background: var(--bg-tertiary); border-radius: 3px; overflow: hidden; }
.efficiency-bar-fill { height: 100%; border-radius: 3px; transition: width 0.3s; }
.efficiency-bar-fill.excellent { background: var(--success); }
.efficiency-bar-fill.good { background: var(--info); }
.efficiency-bar-fill.average { background: var(--warning); }
.efficiency-bar-fill.poor { background: var(--danger); }

/* ── Live indicator ── */
.live-indicator {
    display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4);
    background: var(--bg-tertiary); border-radius: var(--radius-sm); font-size: var(--text-base);
}
.live-dot { width: 8px; height: 8px; background: var(--success); border-radius: 50%; animation: pulse-live 2s infinite; }
.live-dot.paused { background: var(--warning); animation: none; }
@keyframes pulse-live { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.8); } }

@media (max-width: 768px) {
    .activity-item { padding: 0.6rem 0.75rem; gap: 0.6rem; }
    .chart-container { height: 240px; }
}
