:root {
  color-scheme: dark;
  --bg: #101114;
  --panel: #191b20;
  --panel-2: #22252c;
  --text: #f4f5f7;
  --muted: #a2a7b1;
  --accent: #72e0b0;
  --accent-dark: #183d30;
  --line: #30343d;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; padding-bottom: 150px; background: radial-gradient(ellipse at 80% -15%, #263a35 0, transparent 36%), var(--bg); color: var(--text); }
button, input { font: inherit; }
.topbar { height: 68px; padding: 0 clamp(18px, 5vw, 72px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.07); }
.brand { display: flex; align-items: center; gap: 10px; color: var(--text); text-decoration: none; font-weight: 750; letter-spacing: -.3px; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: var(--accent); color: #10251d; font-size: 22px; }
.top-note, .muted, .intro-copy, .footer { color: var(--muted); font-size: 13px; }
.page { width: min(1100px, calc(100% - 36px)); margin: 0 auto; }
.intro { padding: 54px 0 34px; }
.eyebrow { color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: 2px; }
h1 { margin: 8px 0; font-size: clamp(32px, 5vw, 52px); letter-spacing: -2px; }
.intro-copy { font-size: 15px; }
.library { background: rgba(25,27,32,.88); border: 1px solid var(--line); border-radius: 18px; padding: 24px; box-shadow: 0 20px 60px rgba(0,0,0,.18); }
.library-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
h2 { margin: 0 0 5px; font-size: 20px; }
.library-head p { margin: 0; }
.search { display: flex; align-items: center; gap: 9px; width: min(300px, 48%); padding: 10px 13px; background: var(--panel-2); border: 1px solid transparent; border-radius: 10px; color: var(--muted); }
.search:focus-within { border-color: var(--accent); }
.search input { width: 100%; min-width: 0; color: var(--text); background: transparent; border: 0; outline: 0; }
.track-table-head, .track-row { display: grid; grid-template-columns: 38px minmax(0, 1.7fr) minmax(100px, 1fr) 58px; align-items: center; gap: 12px; }
.track-table-head { padding: 10px 12px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .8px; border-bottom: 1px solid var(--line); }
.playlist { list-style: none; margin: 0; padding: 0; }
.track-row { min-height: 68px; padding: 8px 12px; border-radius: 9px; color: var(--muted); cursor: pointer; }
.track-row:hover, .track-row:focus-visible { background: rgba(255,255,255,.055); outline: none; }
.track-row.active { background: var(--accent-dark); color: var(--text); }
.track-number { font-size: 13px; }
.track-title-cell { display: flex; align-items: center; gap: 12px; min-width: 0; }
.mini-cover { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 6px; object-fit: cover; background: var(--panel-2); }
.track-title-text { min-width: 0; }
.track-title-text strong, .track-title-text span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.track-title-text strong { color: var(--text); font-size: 14px; font-weight: 650; }
.track-title-text span, .album-name, .track-duration { font-size: 12px; color: var(--muted); }
.track-duration { text-align: right; font-variant-numeric: tabular-nums; }
.empty { padding: 25px 12px; color: var(--muted); text-align: center; font-size: 13px; }
.hidden { display: none; }
.player { position: fixed; z-index: 5; left: 0; right: 0; bottom: 0; min-height: 112px; display: grid; grid-template-columns: minmax(180px, 1fr) minmax(280px, 1.5fr) minmax(110px, 1fr); align-items: center; gap: 25px; padding: 15px clamp(16px, 4vw, 56px) calc(15px + env(safe-area-inset-bottom)); background: rgba(20,22,27,.97); border-top: 1px solid var(--line); backdrop-filter: blur(16px); }
.now-playing { display: flex; align-items: center; gap: 12px; min-width: 0; }
.cover { width: 58px; height: 58px; border-radius: 8px; object-fit: cover; background: var(--panel-2); }
.track-meta { min-width: 0; }
.track-meta strong, .track-meta span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.track-meta strong { font-size: 13px; }
.track-meta span { margin-top: 5px; color: var(--muted); font-size: 12px; }
.controls { width: 100%; max-width: 530px; justify-self: center; }
.control-buttons { display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 9px; }
.icon-button, .play-button { border: 0; color: var(--text); cursor: pointer; background: transparent; }
.icon-button { min-width: 30px; min-height: 34px; font-size: 16px; }
.icon-button.secondary { color: var(--muted); font-size: 20px; }
.icon-button[aria-pressed="true"] { color: var(--accent); }
.play-button { width: 39px; height: 39px; border-radius: 50%; color: #10251d; background: var(--accent); font-size: 15px; }
.icon-button:hover { color: var(--accent); }
.play-button:hover { transform: scale(1.05); }
.timeline { display: grid; grid-template-columns: 38px minmax(0,1fr) 38px; align-items: center; gap: 9px; color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.timeline span:last-child { text-align: right; }
input[type="range"] { width: 100%; accent-color: var(--accent); cursor: pointer; }
.volume { display: flex; align-items: center; justify-self: end; gap: 10px; width: min(145px, 100%); color: var(--muted); }
.footer { padding: 26px 0; text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 700px) {
  body { padding-bottom: calc(178px + env(safe-area-inset-bottom)); }
  .topbar { height: 58px; }
  .top-note { display: none; }
  .intro { padding: 35px 0 25px; }
  .library { padding: 16px 12px; border-radius: 14px; }
  .library-head { align-items: flex-start; flex-direction: column; }
  .search { width: 100%; }
  .track-table-head, .track-row { grid-template-columns: 24px minmax(0, 1fr) 48px; gap: 8px; }
  .album-column { display: none; }
  .track-row { padding: 8px 6px; }
  .mini-cover { width: 42px; height: 42px; flex-basis: 42px; }
  .player { min-height: 166px; grid-template-columns: minmax(0,1fr) auto; gap: 9px 12px; padding: 10px 14px calc(12px + env(safe-area-inset-bottom)); }
  .now-playing { grid-column: 1 / -1; }
  .cover { width: 46px; height: 46px; }
  .controls { grid-column: 1 / -1; grid-row: 2; max-width: none; }
  .control-buttons { gap: clamp(18px, 7vw, 34px); margin-bottom: 6px; }
  .volume { grid-column: 2; grid-row: 1; width: 95px; }
  .volume input { min-width: 0; }
}
@media (max-width: 360px) {
  .volume { width: 75px; }
  .control-buttons { gap: 14px; }
  .track-title-text strong { font-size: 13px; }
}
