 :root{
      --bg:#2f313a;
      --panel:#3a3d49;
      --text:#fff;
      --muted:rgba(255,255,255,.7);
      --muted2:rgba(255,255,255,.55);
      --accent:#ffffff;
      --shadow:0 20px 50px rgba(0,0,0,.35);
      --radius:18px;
      --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
    }
    *{box-sizing:border-box}
    .vittoplayer{
      margin:0;
      font-family:var(--font);
      display:grid;
      place-items:center;
      min-height:100vh;
      padding:24px;
      user-select:none;
    }

    .player{
      width:min(920px, 100%);
      background:var(--bg);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      overflow:hidden;
      padding:18px;
    }

    .topplayer{
      display:grid;
      grid-template-columns: 140px 1fr 48px;
      gap:18px;
      align-items:start;
    }

    .cover{
      width:140px;height:140px;
      border-radius:14px;
      overflow:hidden;
      background:#222;
      flex:none;
      position:relative;
      user-select:none;
    }
    .cover img{
      width:100%;height:100%;object-fit:cover;display:block;user-select:none;
    }
    .badge{
      position:absolute;
      left:10px; bottom:10px;
      background:rgba(0,0,0,.55);
      color:#fff;
      font-size:12px;
      padding:4px 8px;
      border-radius:999px;
      user-select:none;
    }
    .meta {
        user-select:none;
    }

    .meta h1{
      margin:2px 0 6px;
      font-size:28px;
      color:var(--text);
      letter-spacing:-.02em;
    }
    .meta .artist{
      color:var(--muted);
      font-size:14px;
      margin-bottom:12px;
    }
    .meta .actions{
      display:flex;
      gap:12px;
      align-items:center;
      flex-wrap:wrap;
    }
    .save{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:10px 14px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      color:var(--text);
      text-decoration:none;
      font-size:14px;
    }
    .save .plus{
      width:22px;height:22px;border-radius:50%;
      border:2px solid rgba(255,255,255,.75);
      display:grid;place-items:center;
      font-weight:700;
      line-height:0;
    }

    .brand{
      justify-self:end;
      width:40px;height:40px;
      border-radius:10px;
      background:rgba(255,255,255,.08);
      display:grid;place-items:center;
      color:#fff;
      font-weight:700;
      user-select:none;
    }

    .controls{
      margin-top:14px;
      display:grid;
      grid-template-columns: 1fr auto;
      gap:14px;
      align-items:center;
      background:rgba(255,255,255,.04);
      padding:12px 14px;
      border-radius:14px;
    }

    .left-controls{
      display:grid;
      grid-template-columns: auto 1fr;
      gap:14px;
      align-items:center;
    }

    .buttons{
      display:flex;
      gap:10px;
      align-items:center;
    }

    .icon-btn{
      width:40px;height:40px;
      border-radius:12px;
      border:0;
      background:rgba(255,255,255,.08);
      color:#fff;
      cursor:pointer;
      display:grid;
      place-items:center;
    }
    .icon-btn:active{ transform:translateY(1px); }

    .play{
      width:48px;height:48px;
      border-radius:999px;
      background:#fff;
      color:#111;
      font-weight:800;
    }

    .timeline{
      display:grid;
      grid-template-columns: 44px 1fr 44px;
      gap:10px;
      align-items:center;
      color:var(--muted);
      font-size:12px;
    }

    input[type="range"]{
      width:100%;
      accent-color: #ffffff;
    }

    .right-controls{
      display:flex;
      gap:10px;
      align-items:center;
      color:var(--muted);
    }
    .vol{
      width:120px;
    }

    .list{
      margin-top:16px;
      background:rgba(255,255,255,.04);
      border-radius:14px;
      overflow:hidden;
      max-height:320px;
    }
    .list-header{
      padding:10px 14px;
      display:flex;
      justify-content:space-between;
      align-items:center;
      color:var(--muted2);
      font-size:12px;
      border-bottom:1px solid rgba(255,255,255,.06);
    }
    .tracks{
      overflow:auto;
      max-height:320px;
    }
    .row{
      display:grid;
      grid-template-columns: 34px 1fr 60px;
      gap:10px;
      align-items:center;
      padding:10px 14px;
      cursor:pointer;
      border-bottom:1px solid rgba(255,255,255,.06);
    }
    .row:hover{ background:rgba(255,255,255,.04); }
    .row.active{
      background:rgba(255,255,255,.06);
      outline:1px solid rgba(255,255,255,.08);
    }
    .idx{ color:var(--muted2); font-size:13px; }
    .title{ color:var(--text); font-size:14px; }
    .sub{ color:var(--muted2); font-size:12px; margin-top:2px; }
    .dur{ color:var(--muted); font-size:12px; text-align:right; }

    .footer-note{
      margin-top:10px;
      color:rgba(255,255,255,.5);
      font-size:12px;
      display:flex;
      justify-content:space-between;
      gap:12px;
      flex-wrap:wrap;
    }
    .pill{
      padding:6px 10px;
      border-radius:999px;
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.75);
      font-size:12px;
      user-select:none;
    }