diff --git a/frontend/src/App.css b/frontend/src/App.css index 00a80ad..3097cfb 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -3704,6 +3704,10 @@ a.app-footer__repo:hover { /* ── Creator Filter ───────────────────────────────────────────────────────── */ +.creator-filter { + margin-left: auto; +} + .creator-filter__select { padding: 0.4rem 0.75rem; border-radius: 6px; @@ -4130,18 +4134,17 @@ a.app-footer__repo:hover { 50% { opacity: 0.4; } } -/* Connector line between dots */ +/* Connector chevron between dots */ .stage-timeline__step + .stage-timeline__step::before { - content: ""; + content: "›"; display: block; - width: 8px; - height: 1px; - background: var(--color-border); + font-size: 0.9rem; + color: var(--color-text-muted); margin-right: 2px; } .stage-timeline__step--done + .stage-timeline__step::before { - background: #00c853; + color: #00c853; } .stage-timeline__elapsed { font-size: 0.7rem; @@ -4190,6 +4193,18 @@ a.app-footer__repo:hover { font-weight: 600; } +.recent-activity__arrow { + flex-shrink: 0; + width: 1rem; + text-align: center; + color: var(--color-text-muted); + transition: color 200ms; +} + +.recent-activity__toggle:hover .recent-activity__arrow { + color: var(--color-text); +} + .recent-activity__list { max-height: 200px; overflow-y: auto; @@ -5656,3 +5671,30 @@ a.app-footer__about:hover, min-width: unset; } } + +/* Responsive: pipeline admin cards on narrow viewports */ +@media (max-width: 768px) { + .pipeline-video__header { + grid-template-columns: 1fr; + gap: 0.5rem; + } + + .pipeline-video__header > * { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + } + + .run-card__header { + flex-wrap: wrap; + } + + .admin-pipeline__filters { + flex-direction: column; + align-items: stretch; + } + + .creator-filter { + margin-left: 0; + } +} diff --git a/frontend/src/pages/AdminPipeline.tsx b/frontend/src/pages/AdminPipeline.tsx index d0e39f0..eb7d781 100644 --- a/frontend/src/pages/AdminPipeline.tsx +++ b/frontend/src/pages/AdminPipeline.tsx @@ -1423,7 +1423,7 @@ export default function AdminPipeline() { activeFilter={activeFilter} onFilterChange={setActiveFilter} /> - {creators.length > 1 && ( + {creators.length >= 1 && (