.archive-view-container { padding-top: 16px; } /* Single flex row: search left | toggle center | chips right. On narrow screens the medium toggle reflows to its own centered row below. */ .archive-controls-row { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; padding: 0 0 20px 0; } .archive-controls-search { flex: 1 1 0; min-width: 180px; } /* archive-search-field rides on MudTextField, whose root is a child Razor component element. Blazor isolation does not stamp the scope attribute there, so ::deep is required. */ ::deep .archive-search-field { max-width: 420px; width: 100%; } .archive-controls-medium { flex: 0 0 auto; display: flex; justify-content: center; } .archive-controls-genre { flex: 1 1 0; display: flex; justify-content: flex-end; } /* Narrow screens: push the medium toggle to a full-width centered second row. Search and genre chips stay together on the first row. */ @media (max-width: 600px) { .archive-controls-medium { order: 1; flex: 1 0 100%; justify-content: center; } .archive-controls-genre { order: 0; flex: 0 1 auto; } } .archive-card-center { display: flex; justify-content: center; width: 100%; } .archive-card-link { text-decoration: none; color: inherit; } .archive-release-card { display: flex; flex-direction: column; width: 200px; cursor: pointer; border-radius: 8px; overflow: hidden; transition: transform 120ms ease; } .archive-release-card:hover { transform: translateY(-4px); } .archive-release-cover { width: 200px; height: 200px; background-size: cover; background-position: center; background-repeat: no-repeat; } .archive-release-cover--fallback { background-color: var(--mud-palette-dark, #1a2238); } .archive-release-body { padding: 8px 4px 0 4px; display: flex; flex-direction: column; gap: 2px; } /* archive-release-title / archive-release-artist ride on MudText (child Razor component); ::deep pierces into its output since Blazor isolation does not scope-stamp child component roots. */ ::deep .archive-release-title { font-weight: 600; } ::deep .archive-release-artist { opacity: 0.7; } .archive-empty { display: flex; justify-content: center; padding: 48px 0; }