/* Container — transparent so the absolute-positioned fallback panel or album art
   controls the card's background. Glass edge matches NowPlayingCard vocabulary. */
.deepdrft-track-card-container {
    width: 250px;
    height: 250px;
    min-width: 250px;
    position: relative;
    overflow: hidden;
    background: transparent;
    border: 2px solid var(--mud-palette-secondary);
}

.deepdrft-track-card-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    filter: brightness(0.7);
}

.deepdrft-track-card-content {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 16px;
    background: linear-gradient(to top,
        rgba(13, 27, 42, 0.75) 0%,
        rgba(13, 27, 42, 0.35) 45%,
        rgba(13, 27, 42, 0.00) 100%);
}

/* Fallback panel — solid navy, opaque so the card reads correctly on both
   light and dark page backgrounds. Semi-transparent + blur washes out on white. */
.deepdrft-track-card-fallback {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: var(--deepdrft-navy-mid, #162437);
    border: 1px solid rgba(250, 250, 248, 0.12);
}

/* Title: off-white — matches .np-title.
   ::deep required: MudText renders its own element, so Blazor isolation
   won't stamp b-{hash} on it; ::deep pierces into child component output. */
::deep .deepdrft-track-title { color: var(--deepdrft-white, #FAFAF8); }

/* Artist: muted off-white — green reserved for interactive elements (FAB, chip). ::deep for same reason. */
::deep .deepdrft-track-artist { color: rgba(250, 250, 248, 0.55); }

/* Meta: muted off-white — matches .np-sub. ::deep for same reason. */
::deep .deepdrft-track-meta { color: rgba(250, 250, 248, 0.45); }

/* FAB always green-interactive — card is always dark glass regardless of page theme.
   .mud-button-filled-tertiary specificity (0,1,0) in MudBlazor; our (0,1,1) wins. */
::deep .mud-button-filled-tertiary {
    background-color: var(--deepdrft-green-interactive, #3aa163);
    color: var(--deepdrft-white, #FAFAF8);
}

/* Genre chip always green-accent outline/text on the dark glass card. */
::deep .deepdrft-genre-chip.mud-chip-outlined {
    border-color: var(--deepdrft-green-accent, #3D7A68);
    color: var(--deepdrft-green-accent, #3D7A68);
}
::deep .deepdrft-genre-chip.mud-chip-color-tertiary {
    color: var(--deepdrft-green-accent, #3D7A68);
}

.deepdrft-track-info-middle { margin: 8px 0; }

.deepdrft-track-info-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

@media (max-width: 480px) {
    .deepdrft-track-card-container {
        min-width: 200px;
        width: 200px;
        height: 200px;
    }
}

/* ── Mode A: hover-reveal overlay (art cards only) ──────────────────────── */

/* Gate the hidden-at-rest rule on (a) art present and (b) a hover-capable pointer.
   Fallback cards (no --art modifier) and touch devices always show the overlay. */
@media (hover: hover) and (pointer: fine) {
    .deepdrft-track-card-container--art .deepdrft-track-card-content {
        opacity: 0;
        background: transparent;
        transition: opacity 180ms ease, background-color 180ms ease;
    }
    .deepdrft-track-card-container--art:hover .deepdrft-track-card-content {
        opacity: 1;
        background: rgba(22, 36, 55, 0.82);
        transition: opacity 180ms ease, background-color 180ms ease;
    }
}

/* ── Mode B: list row ───────────────────────────────────────────────────── */

.deepdrft-track-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    height: 80px;
    padding: 8px 16px;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 4px;
    box-sizing: border-box;
    width: 100%;
}

.deepdrft-track-row-link {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    flex: 1 1 auto;
    min-width: 0;
    text-decoration: none;
    color: inherit;
}

::deep .deepdrft-track-row-fab {
    flex: 0 0 auto;
}

.deepdrft-track-row-thumb {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    background-size: cover;
    background-position: center;
    border-radius: 2px;
}

.deepdrft-track-row-thumb--fallback {
    background: var(--deepdrft-navy-mid);
    border: 1px solid var(--mud-palette-divider);
}

.deepdrft-track-row-text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.deepdrft-track-row-meta {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
}

@media (max-width: 480px) {
    .deepdrft-track-row {
        height: auto;
        min-height: 72px;
        padding: 8px 12px;
        gap: 10px;
    }
    .deepdrft-track-row-thumb {
        flex: 0 0 48px;
        width: 48px;
        height: 48px;
    }
}

.deepdrft-track-row--playing {
    border-left: 3px solid var(--deepdrft-green-interactive, #3aa163);
}

/* ── Mode B text: theme-aware overrides (navy on light / off-white on dark) ─ */

/* The global ::deep rules above hard-code off-white for the dark glass grid cards.
   List rows use --mud-palette-surface as their background, so text must follow
   the theme. These selectors have higher specificity (.deepdrft-track-row[b-hash]
   vs plain [b-hash]) and win in the cascade. */
.deepdrft-track-row ::deep .deepdrft-track-title,
.deepdrft-track-row ::deep .deepdrft-track-artist,
.deepdrft-track-row ::deep .deepdrft-track-meta {
    color: var(--mud-palette-text-primary);
}
