.discog-view { & .discog-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; & .discog-artist-name { font-size: 1.4rem; font-weight: 700; } & .discog-total-count { font-size: 0.8rem; opacity: 0.8; } } & .filtered-releases-section { & .filtered-releases-summary { cursor: pointer; user-select: none; list-style: none; &::-webkit-details-marker { display: none; } &::marker { display: none; } & .section-title { margin-bottom: 0; } } & .filtered-groups-container { & .results-grid { margin-bottom: 13px; &:first-of-type { margin-top: 13px; } &:last-of-type { margin-bottom: 0; } } } } } .album-detail-view { & .album-detail-header { display: flex; gap: 20px; margin-bottom: 24px; flex-wrap: wrap; & .album-detail-cover { width: var(--album-detail-cover-size); height: var(--album-detail-cover-size); object-fit: cover; border: 4px ridge var(--border-color); } & .album-detail-cover-placeholder { width: var(--album-detail-cover-size); height: var(--album-detail-cover-size); background-color: var(--surface-high-color); display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 600; border: 4px ridge var(--border-color); } & .album-detail-info { flex: 1; min-width: 240px; display: flex; flex-direction: column; justify-content: space-between; & .album-detail-text { display: flex; flex-direction: column; & .album-detail-title { font-size: 1.3rem; font-weight: 700; line-height: normal; & .album-detail-version { font-weight: 400; font-size: 0.9em; opacity: 0.7; } } & .album-detail-artist { font-size: 0.95rem; line-height: normal; margin-bottom: 8px; & .artist-name-bold { font-weight: 600; } } & .album-detail-label { font-size: 0.8rem; margin-bottom: 2px; } & .album-detail-upc { font-size: 0.8rem; margin-bottom: 2px; & a { color: inherit; text-decoration: none; &:hover { text-decoration: underline; } } } & .album-detail-meta { font-size: 0.8rem; margin-bottom: 20px; } } & .album-detail-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; align-self: flex-start; } & button, & .btn { align-self: flex-start; line-height: normal; } } } & .mb-releases-container, & .mb-releases-section { margin-bottom: 24px; } & .mb-releases-section { & .mb-message { font-size: 0.82rem; padding: 12px 14px; background-color: var(--surface-color); border: 2px inset var(--border-color); color: var(--text-color); opacity: 0.8; } & .mb-error-message { color: var(--accent-color); font-weight: 500; } & .mb-table-container { background-color: var(--surface-color); border: 2px inset var(--border-color); overflow-x: auto; max-width: 100%; } & .mb-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; & .mb-group-header { font-weight: 600; font-size: 0.78rem; padding: 6px 8px; background-color: color-mix(in srgb, var(--surface-color) 70%, var(--border-color) 30%); border-bottom: 1px solid var(--border-color); color: var(--text-color); & .mb-group-count { font-weight: 400; font-size: 0.74rem; opacity: 0.65; } } & .mb-group-row:not(:first-child) .mb-group-header { border-top: 1px solid var(--border-color); } & td { padding: 4px 8px; border-bottom: 1px solid var(--border-color); vertical-align: middle; &:not(.mb-cell-title) { white-space: nowrap; } } & .mb-row { block-size: 36px; } & .mb-row-matched { background-color: color-mix(in srgb, var(--accent-color) 8%, transparent); } & .mb-row-tagged { background-color: color-mix(in srgb, var(--accent-color) 16%, transparent); border-left: 3px solid var(--accent-color); } & .mb-cell-title { font-weight: 600; min-width: 140px; & a { color: inherit; text-decoration: none; &:hover { color: var(--accent-color); text-decoration: underline; } } & .mb-title-disambig { font-weight: 400; font-size: 0.76rem; opacity: 0.65; margin-left: 4px; } & .badge-match, & .badge-tagged { margin-left: 6px; } } & .mb-cell-tracks { text-align: center; } & .mb-cell-label { max-width: 150px; overflow: hidden; text-overflow: ellipsis; } & .mb-cell-catnum, & .mb-cell-barcode { & code { font-size: 0.76rem; } } & .mb-row:has(.mb-expand-checkbox:checked) td { border-bottom: none; } & .mb-detail-row { display: none; background-color: var(--surface-color); } & .mb-row:has(.mb-expand-checkbox:checked)+.mb-detail-row { display: table-row; } & .mb-detail-cell { padding: 0 !important; } & .mb-detail-container { border-bottom: 1px solid var(--border-color); background: color-mix(in srgb, var(--surface-color) 70%, var(--bg-color)); position: relative; } & .mb-detail-header { display: flex; align-items: center; justify-content: flex-end; padding: 6px 8px; background: color-mix(in srgb, var(--surface-color) 70%, var(--bg-color)); position: absolute; top: 0; right: 0; } & .mb-detail-title { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; opacity: 0.7; } & .btn-confirm-tag { padding: 2px 8px; font-size: 0.72rem; line-height: 1.4; } & .mb-log-output { margin: 0; padding: 46px 12px 10px 12px; color: var(--text-color); border-radius: 4px; font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; font-size: 0.75rem; line-height: 1.45; max-height: 360px; overflow-y: auto; white-space: pre-wrap; word-break: break-all; } & .mb-log-line { display: block; } & .mb-log-success { margin-top: 6px; font-weight: 600; } & .mb-log-error { color: var(--accent-color); margin-top: 6px; font-weight: 600; } & .mb-log-loading { display: inline-flex; align-items: center; gap: 8px; } & .mb-cell-action { text-align: right; white-space: nowrap; user-select: none; & .btn-tag, & .btn-harmony { padding: 2px 8px; font-size: 0.72rem; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; margin-left: 4px; cursor: pointer; user-select: none; } } } &:not(:has(#mb-show-all-toggle:checked)) .mb-row-nondigital { display: none; } &:has(#mb-show-all-toggle:checked) .mb-toggle-show { display: none; } &:not(:has(#mb-show-all-toggle:checked)) .mb-toggle-hide { display: none; } & .btn-mb-toggle { cursor: pointer; user-select: none; } } & .mb-loading-state { display: flex; align-items: center; gap: 10px; padding: 14px 16px; font-size: 0.82rem; font-weight: 500; background-color: var(--surface-color); border: 2px inset var(--border-color); opacity: 0.9; } & .mb-spinner { display: inline-block; width: 12px; height: 12px; border: 2px solid var(--border-color); border-top-color: var(--accent-color); border-radius: 50% !important; animation: track-spin 0.6s linear infinite; flex-shrink: 0; } & .disc-title { font-size: 0.8rem; margin-top: 14px; margin-bottom: 6px; } & .track-list { background-color: var(--surface-color); border: 2px inset var(--border-color); margin-bottom: 13px; & .track-item { display: flex; flex-direction: column; padding: 8px 13px; gap: 6px; &:last-child { border-bottom: none; } & .track-row { display: flex; align-items: center; gap: 12px; width: 100%; } & .track-number { font-weight: 500; font-size: 0.85rem; flex-shrink: 0; width: 24px; text-align: center; } & .track-play-btn { background: none; border: none; cursor: pointer; color: var(--text-color); width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; padding: 0; flex-shrink: 0; position: relative; & .track-num-label { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; font-weight: 500; font-size: 0.85rem; display: block; } & .track-icon-play, & .track-icon-pause, & .track-icon-loading { display: none; } &:hover { color: var(--accent-color); } } &:not(.is-playing):not(.is-paused):not(.is-loading):hover .track-play-btn { & .track-num-label { display: none; } & .track-icon-play { display: block; fill: var(--accent-color); } } &.is-playing .track-play-btn { & .track-num-label { display: none; } & .track-icon-pause { display: block; fill: var(--accent-color); } } &.is-paused .track-play-btn { & .track-num-label { display: none; } & .track-icon-play { display: block; fill: var(--accent-color); } } &.is-loading .track-play-btn { & .track-num-label { display: none; } & .track-icon-loading { display: inline-block; width: 12px; height: 12px; border: 2px solid var(--border-color); border-top-color: var(--accent-color); border-radius: 50% !important; animation: track-spin 0.6s linear infinite; } } & .track-info { flex: 1; min-width: 0; & .track-title-row { display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap; & .track-title { font-weight: 500; font-size: 0.9rem; } & .track-version { font-weight: 400; font-size: 0.82rem; opacity: 0.7; } } & .track-performer { opacity: 0.65; font-size: 0.78rem; margin-top: 2px; } } & .track-scrubber-container { display: none; width: 100%; cursor: pointer; padding: 2px 0 0 0; & .track-scrubber-bar { height: 4px; background: var(--border-color); width: 100%; position: relative; overflow: hidden; & .track-scrubber-fill { height: 100%; width: 0%; background: var(--accent-color); transition: width 0.1s linear; } } } &.is-playing .track-scrubber-container, &.is-paused .track-scrubber-container, &.is-loading .track-scrubber-container { display: block; } & .track-duration { opacity: 0.7; font-size: 0.85rem; flex-shrink: 0; font-variant-numeric: tabular-nums; } &.is-playing .track-duration, &.is-paused .track-duration { opacity: 1; font-weight: 500; color: var(--accent-color); } } } & .album-copyright { font-size: 0.8rem; opacity: 0.75; border-top: 1px solid var(--border-color); padding-top: 8px; white-space: pre-line; } } .description-container { margin-bottom: 20px; & .description-content { display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; max-height: calc(4 * 1.6 * 0.86rem); font-size: 0.86rem; line-height: 1.6; & p { margin-bottom: 0.8em; &:last-child { margin-bottom: 0; } } } &.expanded .description-content { display: block; overflow: visible; max-height: none; -webkit-line-clamp: unset; line-clamp: unset; } & .btn-description-toggle { background: none; border: none; color: var(--accent-color); font-weight: 600; font-size: 0.8rem; cursor: pointer; padding: 4px 0 0 0; margin-top: 6px; display: inline-block; &:hover { text-decoration: underline; } } } .queue-container-desktop { width: 100%; } .queue-container-mobile { display: none; position: fixed; bottom: 32px; left: 48px; right: 48px; z-index: 1000; align-items: center; & .search-form { margin: 0; width: 100%; & .search-input { border: 1px inset var(--border-color); } } & .queue-drawer { width: 100%; background-color: var(--bg-color); & .queue-header { block-size: 42px; pointer-events: auto; cursor: pointer; user-select: none; list-style: none; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; border: 1px outset var(--border-color); background-color: var(--surface-color); &::-webkit-details-marker { display: none; } &:hover { background-color: var(--surface-high-color); } & .queue-title-group { display: flex; align-items: baseline; & .queue-title { font-size: 0.85rem; } & .queue-count { font-size: 0.82rem; } } } & .queue-content { max-height: 85vh; } } } .queue-start-btn { width: 100%; font-weight: 600; padding: 8px 12px; &:active { padding: 8.5px 11.5px 7.5px 12.5px; } } .queue-list { height: calc(100dvh - 226px); scrollbar-width: none; overflow-y: auto; padding-block: 13px 32px; display: flex; flex-direction: column; & .queue-item-details { border: 1px outset var(--border-color); background-color: var(--surface-color); & .queue-item { display: flex; flex-direction: column; padding: 8px; gap: 4px; cursor: pointer; user-select: none; list-style: none; &::-webkit-details-marker { display: none; } & .queue-item-main { display: flex; align-items: flex-start; gap: 6px; width: 100%; } & .queue-progress { font-size: 0.72rem; color: var(--accent-color); font-weight: 600; margin-top: 2px; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } & .queue-cover, & .queue-cover-placeholder { height: 64px; width: 64px; aspect-ratio: 1 / 1; object-fit: cover; flex-shrink: 0; background-color: var(--surface-high-color); border: 2px ridge var(--border-color); } & .queue-item-info { flex: 1; min-width: 0; & .queue-item-title { font-weight: 600; font-size: 0.82rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: normal; } & .queue-item-artist { font-size: 0.76rem; opacity: 0.85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: normal; margin-block-end: 5px; } & .queue-item-specs { font-size: 0.7rem; opacity: 0.75; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: normal; } & .queue-item-upc { font-size: 0.68rem; opacity: 0.6; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: normal; } } & .queue-item-actions { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; align-self: stretch; gap: 5px; flex-shrink: 0; & .queue-remove-btn { color: var(--text-color); cursor: pointer; font-size: 1rem; line-height: 1; padding: 1px 4px; &:active { padding: 1.5px 3.5px 0.5px 4.5px; } } } & .queue-tracks { background-color: var(--surface-high-color); padding: 6px 8px; display: flex; flex-direction: column; gap: 4px; & .queue-track-row { display: flex; align-items: center; justify-content: space-between; font-size: 0.72rem; gap: 6px; & .queue-track-num { opacity: 0.6; width: 18px; flex-shrink: 0; } & .queue-track-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } & .queue-track-meta { flex-shrink: 0; & .queue-track-pct { color: var(--accent-color); font-weight: 600; } & .queue-track-badge { font-size: 0.62rem; padding: 0; } } } } } } .downloads-page-container { & .results-grid { margin-bottom: 13px; &:first-of-type { margin-top: 13px; } &:last-of-type { margin-bottom: 0; } } } @media (max-width: 1100px) { .app-brand { margin: 0; } .queue-container-desktop { display: none; } .queue-container-mobile { display: flex; flex-direction: column; } .queue-list { padding: 0; height: unset; max-height: calc(85dvh - 35.5px); } } @keyframes track-spin { to { transform: rotate(360deg); } }