.tsp{
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 9999;

  display: flex;
  gap: 12px;
  align-items: center;

  width: min(560px, calc(100vw - 32px));
  padding: 12px 14px;

  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(247,244,238,.92);
  box-shadow: 0 18px 55px rgba(0,0,0,.22);
  backdrop-filter: blur(10px);
  color: rgba(0,0,0,.8);

  transition: transform .18s ease, opacity .18s ease;
}

.tsp-hidden{
  transform: translateY(calc(100% + 22px));
  opacity: 0;
  pointer-events: none;
}

.tsp-btn{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.06);
  cursor: pointer;
  font-weight: 800;
}

.tsp-mid{
  flex: 1;
  min-width: 0;
}

.tsp-title{
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 6px;
  opacity: .8;
}

.tsp-seek{ width: 100%; }

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

.tsp-time{
  font-size: 12px;
  opacity: .75;
  white-space: nowrap;
}

.tsp-vol{ width: 90px; }

.tsp-x{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.06);
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
}

/* Launcher button (shows only when player is hidden) */
.tsp-launch{
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 10000;

  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(247,244,238,.92);
  box-shadow: 0 18px 55px rgba(0,0,0,.18);
  backdrop-filter: blur(10px);

  cursor: pointer;
  font-weight: 900;
  font-size: 18px;

  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .18s ease, transform .18s ease;
}

.tsp-launch-show{
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
