:root { --bg: #0f172a; --bg-soft: #1e293b; --card: #111827; --text: #e2e8f0; --muted: #94a3b8; --accent: #22d3ee; --accent-2: #f59e0b; --danger: #fb7185; --border: #334155; } * { box-sizing: border-box; } body { margin: 0; font-family: 'Space Grotesk', sans-serif; color: var(--text); background: radial-gradient(circle at 10% 10%, #0ea5e9 0%, transparent 30%), radial-gradient(circle at 80% 0%, #f97316 0%, transparent 25%), var(--bg); min-height: 100vh; } .layout { width: min(1100px, 92vw); margin: 2rem auto 3rem; display: grid; gap: 1rem; } .hero h1 { margin: 0 0 0.3rem; font-size: clamp(1.8rem, 2.4vw, 2.8rem); } .hero p { margin: 0; color: var(--muted); } .panel { background: color-mix(in srgb, var(--card) 88%, black); border: 1px solid var(--border); border-radius: 16px; padding: 1rem; } .settings .hint { color: var(--muted); margin: 0.4rem 0 0; } .toggle { display: inline-flex; align-items: center; gap: 0.6rem; } .search-row { display: flex; gap: 0.8rem; } input, select, button { border: 1px solid var(--border); border-radius: 10px; padding: 0.7rem 0.9rem; font-family: inherit; font-size: 1rem; } input { background: #0b1220; color: var(--text); flex: 1; } select { background: #0b1220; color: var(--text); min-width: 140px; } button { background: linear-gradient(120deg, var(--accent), var(--accent-2)); color: #001018; font-weight: 700; cursor: pointer; } button:hover { filter: brightness(1.07); } .results { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0.9rem; } .album-card { border: 1px solid var(--border); border-radius: 14px; overflow: hidden; background: var(--bg-soft); display: grid; } .album-cover { width: 100%; aspect-ratio: 1; object-fit: cover; } .album-body { padding: 0.8rem; display: grid; gap: 0.5rem; } .album-body h3 { margin: 0; font-size: 1rem; } .album-body p { margin: 0; color: var(--muted); font-size: 0.9rem; } .pill { display: inline-block; border-radius: 999px; padding: 0.2rem 0.5rem; font-size: 0.75rem; font-weight: 700; } .pill.exists { background: #14532d; color: #bbf7d0; } .pill.missing { background: #1e3a8a; color: #bfdbfe; } #jobList { display: grid; gap: 0.5rem; } .job-row { border: 1px solid var(--border); border-radius: 8px; padding: 0.5rem 0.7rem; font-size: 0.9rem; } dialog { border: 1px solid var(--border); border-radius: 16px; background: #0b1220; color: var(--text); width: min(760px, 96vw); padding: 0; } .dialog-content { display: grid; gap: 0.8rem; padding: 1rem; } .track-list { max-height: min(58vh, 640px); overflow: auto; border: 1px solid var(--border); border-radius: 12px; padding: 0.6rem; display: grid; gap: 0.45rem; background: #0a1323; } .track-row { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 0.65rem; border: 1px solid #1f2f49; border-radius: 10px; padding: 0.5rem 0.6rem; background: #0d1a2e; } .track-row:hover { border-color: #34517a; background: #10203a; } .track-check { width: 22px; height: 22px; margin: 0; cursor: pointer; } .track-main { min-width: 0; display: grid; gap: 0.1rem; } .track-title { font-size: 1.02rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .track-meta { color: var(--muted); font-size: 0.85rem; } .track-status { justify-self: end; } .dialog-actions { display: flex; justify-content: flex-end; gap: 0.5rem; position: sticky; bottom: 0; background: linear-gradient(180deg, rgba(11, 18, 32, 0.7), rgba(11, 18, 32, 1)); padding-top: 0.6rem; } @media (max-width: 680px) { .search-row { flex-direction: column; } dialog { width: 98vw; } .dialog-content { padding: 0.8rem; } .track-row { grid-template-columns: 28px minmax(0, 1fr); grid-template-areas: "check title" "check status"; align-items: start; } .track-check { grid-area: check; margin-top: 0.15rem; } .track-main { grid-area: title; } .track-title { white-space: normal; line-height: 1.25; } .track-status { grid-area: status; justify-self: start; } }