.sp-mini-player{position:sticky;bottom:0;left:0;right:0;background:#0f0f0f;border-top:1px solid #222;color:#fff;z-index:102;box-shadow:0 -4px 20px rgba(0,0,0,.35)}
.sp-mini-player{padding-bottom:env(safe-area-inset-bottom, 0)}
.sp-expanded{padding-bottom:calc(1rem + env(safe-area-inset-bottom, 0))}

/* 讓主內容不被迷你播放器蓋住：支援一般 body 與有 .main-content 包裹的情境 */
body.has-mini-player{padding-bottom:calc(var(--sp-mini-h) + env(safe-area-inset-bottom, 0))}
body.has-mini-player .main-content{padding-bottom:calc(var(--sp-mini-h) + env(safe-area-inset-bottom, 0))}
.sp-mini-player .sp-mini-body{display:grid;grid-template-columns:auto 1fr auto auto;gap:.8rem;align-items:center;padding:.6rem .9rem;min-height:var(--sp-mini-h)}
.sp-mini-player .mp-art img{width:44px;height:44px;border-radius:8px;object-fit:cover;background:#0d0d0d}
.sp-mini-player .mp-meta{min-width:0;overflow:hidden;flex-shrink:1}
.sp-mini-player .mp-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sp-mini-player .mp-artist{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sp-mini-player .mp-lyrics-line{
  max-width:60vw;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition: all 0.3s ease;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 400;
}

.sp-mini-player .mp-lyrics-line:not(:empty) {
  animation: lyricsGlow 2s ease-in-out infinite alternate;
}

@keyframes lyricsGlow {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}

/* Enhanced mini player lyrics for mobile */
@media (max-width: 479px) {
  .sp-mini-player .mp-lyrics-line {
    font-size: 0.75rem;
    max-width: 50vw;
  }
}
.sp-mini-player .btn-transport{background:#1f1f1f;border:1px solid #2b2b2b;color:#fff;width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.sp-mini-player .btn-transport.btn-play{background:#1db954;border-color:#1db954;color:#000}

/* Expanded */
.sp-expanded{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.85);padding:env(safe-area-inset-top, 0) 0 env(safe-area-inset-bottom, 0);overflow:auto;animation:xpOverlayIn .22s ease-out;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.sp-expanded{isolation:isolate}
.sp-expanded-open .sp-hero-player{display:none !important}
.sp-expanded-open .sp-ambient-bg{filter:blur(6px) brightness(.6);animation:none !important}
.sp-expanded-open .sp-mini-player{box-shadow:0 -2px 12px rgba(0,0,0,.25)}
.sp-expanded-open .sp-sidebar{display:none !important}
.sp-expanded-open .sp-search-overlay{display:none !important}
.sp-expanded-open .sp-navbar{background:linear-gradient(180deg,#0f0f0f 0%, #0b0c0c 100%);box-shadow:0 4px 16px rgba(0,0,0,.4)}
.sp-expanded-open .sp-expanded .lyrics-container{max-height:60vh}
.sp-expanded-open .sp-expanded .xp-modal{max-width:1100px}
.sp-expanded-open .sp-expanded .cover{width:min(100%,72vh,560px)}
.sp-expanded-open body, body.sp-expanded-open{overflow:hidden}
.sp-expanded .xp-modal{background:linear-gradient(135deg,#101218 0%, #050608 60%, #101218 100%);box-shadow:0 18px 50px rgba(0,0,0,.65);border-radius:20px;margin:1.25rem auto;max-width:1080px;width:calc(100% - 24px);padding:1.2rem 1.4rem 1.4rem;box-sizing:border-box;border:1px solid rgba(255,255,255,.06)}
.sp-expanded .xp-head{position:relative;z-index:5;background:transparent;display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
#xp-close {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.1);
    border: none;
    transition: background 0.2s;
}
#xp-close:hover {
    background: rgba(255,255,255,0.2);
}
.xp-head-meta{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.xp-head-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.xp-head-title{font-size:1.05rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
.xp-head-artist{font-size:.86rem;color:rgba(255,255,255,.65);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
.xp-hero-row{display:flex;align-items:center;gap:1.25rem}
.sp-expanded .xp-hero{margin-top:.25rem;display:flex;align-items:center;justify-content:center}
.sp-expanded .cover{width:220px;height:220px;max-width:40vw;aspect-ratio:1/1;border-radius:18px;object-fit:cover;background:#0d0d0d;box-shadow:0 14px 40px rgba(0,0,0,.55);animation:xpCoverIn .36s ease-out both}
.xp-hero-meta{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.xp-title-line{font-size:1.1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xp-artist-line{font-size:.9rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-expanded .xp-title{font-size:1.4rem;font-weight:600}
.sp-expanded .xp-artist{font-size:.98rem;opacity:.85}
.sp-expanded .xp-transport .btn-transport{font-size:1.05rem}
.sp-expanded .xp-progress .progress{height:6px;background:#1b1b1b}
.sp-expanded .xp-progress .progress .progress-bar{background:#1db954}
.sp-expanded .xp-progress{max-width:720px;margin-left:auto;margin-right:auto;position:relative;margin-top:.75rem}
/* Visible draggable handle on progress bar */
#xp-progress-wrap{position:relative;overflow:visible;cursor:pointer}
#xp-progress{position:relative;z-index:1;pointer-events:none}
#xp-progress-handle{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(29,185,84,.25), 0 2px 4px rgba(0,0,0,0.5);pointer-events:none;transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease;opacity:0;z-index:2}
#xp-progress-wrap:hover #xp-progress-handle,
#xp-progress-wrap.scrubbing #xp-progress-handle{opacity:1}
#xp-progress-wrap.scrubbing #xp-progress-handle{transform:translate(-50%,-50%) scale(1.3);box-shadow:0 0 0 6px rgba(29,185,84,.3), 0 4px 8px rgba(0,0,0,0.6)}
#xp-progress-wrap.is-scrubbing #xp-progress-handle{transform:translate(-50%,-50%) scale(1.2);box-shadow:0 0 0 6px rgba(29,185,84,.18), 0 4px 8px rgba(0,0,0,0.6)}
/* scrub time tooltip */
.xp-progress-tip{position:absolute;top:-30px;left:0;transform:translateX(-50%);padding:2px 6px;border-radius:4px;background:rgba(0,0,0,.85);color:#fff;font-size:.75rem;pointer-events:none;white-space:nowrap;z-index:10}
.xp-progress-tip.show{opacity:1}
/* Progress bar hover effect */
#xp-progress-wrap:hover #xp-progress,
#xp-progress-wrap.scrubbing #xp-progress{height:8px !important}
#xp-progress-wrap .progress{transition:height .12s ease}
/* 指標與觸控友善 */
.sp-expanded #xp-progress-wrap{cursor:pointer; touch-action: none;}
.sp-expanded .btn-transport{background:#181818;border:1px solid #2b2b2b;color:#fff;width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:transform .12s ease, background .18s, box-shadow .18s}
.sp-expanded .btn-transport:hover{transform:scale(1.05)}
.sp-expanded .btn-transport.btn-play{background:#1db954;border-color:#1db954;color:#000}
.sp-expanded .lyrics-container{
	max-height:42vh;
	overflow-y: auto;
	-webkit-overflow-scrolling:touch;
	background:rgba(0,0,0,.25);
	border-radius:12px;
	padding:16px 12px;
	border:1px solid rgba(255,255,255,.12);
	overscroll-behavior:contain;
	scroll-padding:20px 0;
}

.xp-lyrics-shell{display:flex;flex-direction:column;gap:.5rem;min-height:0}
.xp-lyrics-toolbar{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:.75rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(255,255,255,0.1);
	margin-bottom: 0.5rem;
}
.xp-lyrics-title{
	font-weight:600;
	font-size:1rem;
	color: #fff;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.xp-lyrics-title::before {
	content: '🎵';
	font-size: 0.9em;
}
.xp-lyrics-actions{flex-shrink:0}
.xp-devices-shell{margin-top:1rem}

/* Enhanced expanded player lyrics controls */
#xp-lyrics-section .btn-group .btn,
#xp-lyrics-section .btn-group-sm .btn {
	min-width: 36px;
	min-height: 36px;
	border-radius: 8px;
	transition: all 0.2s ease;
}

#xp-lyrics-section .btn-group .btn:hover,
#xp-lyrics-section .btn-group-sm .btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

#xp-lyrics-section .btn-group .btn.active,
#xp-lyrics-section .btn-group-sm .btn.active,
#xp-lyrics-section .btn-group .btn[aria-pressed="true"],
#xp-lyrics-section .btn-group-sm .btn[aria-pressed="true"] {
	background: #1db954;
	border-color: #1db954;
	color: #000;
}

/* Mobile expanded player optimizations */
@media (max-width: 991px) {
	.xp-body-grid{gap:1rem}
	.xp-hero-row{flex-direction:column;align-items:center;text-align:center}
	.sp-expanded .cover{width:200px;height:200px;max-width:60vw}
	.xp-hero-meta{align-items:center}
	.xp-lyrics-shell{margin-top:.75rem}
	.sp-expanded .lyrics-container{max-height:55vh;padding:12px 8px}
	.xp-lyrics-toolbar{
		flex-wrap:nowrap;
		padding: 0.4rem 0;
	}
	.xp-lyrics-actions{width:auto}
	#xp-lyrics-section .btn-group,
	#xp-lyrics-section .btn-group-sm {
		gap:6px;
	}
	#xp-lyrics-section .btn-group .btn,
	#xp-lyrics-section .btn-group-sm .btn {
		min-width:32px;
		min-height:32px;
		font-size:.85em;
	}

	/* Reorder layout: Cover -> Lyrics -> Controls */
	.xp-col-left, .xp-col-right { display: contents; }
	.xp-hero-row { order: 1; }
	#xp-lyrics-section { order: 2; margin-bottom: 1rem; }
	.xp-progress { order: 3; width: 100%; }
	.xp-transport-row { order: 4; width: 100%; }
	#xp-devices-section { order: 5; }
}
/* Expanded body grid: base 單欄，桌機做左右雙欄 */
.xp-body-grid{display:flex;flex-direction:column;gap:1.25rem}
.xp-col-left,.xp-col-right{min-width:0}

/* ====== DESKTOP PLAYER UI (992px+) ====== */
@media (min-width: 992px){
	/* 桌機：現代化雙欄佈局，參考 Spotify/Apple Music 桌面版 */
	.sp-expanded {
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: hidden;
	}
	
	.sp-expanded .xp-modal {
		background: linear-gradient(145deg, #121218 0%, #0a0a0c 50%, #0d0d12 100%);
		box-shadow: 0 24px 80px rgba(0, 0, 0, 0.75), inset 0 1px 0 rgba(255,255,255,0.05);
		border-radius: 24px;
		margin: 1.5rem auto;
		max-width: 1100px;
		width: calc(100% - 40px);
		padding: 2rem;
		box-sizing: border-box;
		border: 1px solid rgba(255, 255, 255, 0.06);
		max-height: calc(100vh - 3rem);
		overflow: hidden;
		display: flex;
		flex-direction: column;
	}
	
	/* 頂部標題列 */
	.sp-expanded .xp-head {
		margin-bottom: 1.5rem;
		padding-bottom: 1rem;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	}
	
	.xp-head-label {
		font-size: 0.7rem;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: #1db954;
		font-weight: 600;
	}
	
	.xp-head-title {
		font-size: 1.15rem;
		font-weight: 600;
		max-width: 400px;
	}
	
	.xp-head-artist {
		font-size: 0.9rem;
		color: rgba(255, 255, 255, 0.6);
		max-width: 400px;
	}
	
	#xp-close {
		width: 40px;
		height: 40px;
		border-radius: 12px;
		background: rgba(255, 255, 255, 0.08);
		border: 1px solid rgba(255, 255, 255, 0.1);
		color: rgba(255, 255, 255, 0.7);
		transition: all 0.2s ease;
	}
	
	#xp-close:hover {
		background: rgba(255, 255, 255, 0.15);
		color: #fff;
		transform: scale(1.05);
	}
	
	/* 主要內容區 */
	.xp-body {
		flex: 1;
		min-height: 0;
		overflow: hidden;
	}
	
	.xp-body-grid {
		display: grid;
		grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
		gap: 2.5rem;
		align-items: start;
		height: 100%;
	}
	
	/* 左欄：封面 + 控制列 */
	.xp-col-left {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 1.5rem;
	}
	
	/* 封面區域 */
	.xp-hero-row {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 1rem;
		width: 100%;
	}
	
	.sp-expanded .xp-hero {
		position: relative;
		width: 100%;
		max-width: 340px;
	}
	
	.sp-expanded .cover {
		width: 100%;
		height: auto;
		aspect-ratio: 1/1;
		max-width: 340px;
		max-height: 340px;
		border-radius: 16px;
		object-fit: cover;
		background: #181818;
		box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6), 0 8px 20px rgba(0, 0, 0, 0.4);
		animation: xpCoverIn 0.4s ease-out both;
		transition: transform 0.3s ease;
	}
	
	.sp-expanded .cover:hover {
		transform: scale(1.02);
	}
	
	/* 封面下方的歌曲資訊 */
	.xp-hero-meta {
		text-align: center;
		width: 100%;
		max-width: 340px;
	}
	
	.xp-title-line {
		font-size: 1.3rem;
		font-weight: 700;
		color: #fff;
		margin-bottom: 0.3rem;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
	
	.xp-artist-line {
		font-size: 0.95rem;
		color: rgba(255, 255, 255, 0.65);
	}
	
	/* 進度條 */
	.xp-col-left .xp-progress {
		margin-top: 0.5rem;
		width: 100%;
		max-width: 340px;
	}
	
	.sp-expanded .xp-progress .progress {
		height: 5px;
		background: rgba(255, 255, 255, 0.15);
		border-radius: 3px;
		overflow: visible;
	}
	
	.sp-expanded .xp-progress .progress-bar {
		background: linear-gradient(90deg, #1db954, #1ed760);
		border-radius: 3px;
	}
	
	#xp-progress-handle {
		width: 14px;
		height: 14px;
		box-shadow: 0 0 0 3px rgba(29, 185, 84, 0.3), 0 2px 6px rgba(0, 0, 0, 0.5);
	}
	
	/* 播放控制按鈕 */
	.xp-col-left .xp-transport-row {
		margin-top: 0.75rem;
		width: 100%;
		max-width: 340px;
	}
	
	.xp-transport-main {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.75rem;
	}
	
	.sp-expanded .btn-transport {
		width: 48px;
		height: 48px;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.08);
		border: 1px solid rgba(255, 255, 255, 0.1);
		color: #fff;
		font-size: 1rem;
		transition: all 0.2s ease;
	}
	
	.sp-expanded .btn-transport:hover {
		background: rgba(255, 255, 255, 0.15);
		transform: scale(1.08);
	}
	
	.sp-expanded .btn-transport.btn-play {
		width: 60px;
		height: 60px;
		background: #1db954;
		border-color: #1db954;
		color: #000;
		font-size: 1.3rem;
		box-shadow: 0 4px 20px rgba(29, 185, 84, 0.4);
	}
	
	.sp-expanded .btn-transport.btn-play:hover {
		background: #1ed760;
		transform: scale(1.1);
		box-shadow: 0 6px 30px rgba(29, 185, 84, 0.5);
	}
	
	/* 次要控制按鈕（隨機、重複） */
	.sp-expanded .btn-transport.btn-secondary-control {
		width: 40px;
		height: 40px;
		background: transparent;
		border: none;
		color: rgba(255, 255, 255, 0.5);
		font-size: 0.9rem;
	}
	
	.sp-expanded .btn-transport.btn-secondary-control:hover {
		color: #fff;
		background: rgba(255, 255, 255, 0.1);
	}
	
	.sp-expanded .btn-transport.btn-secondary-control.active {
		color: #1db954;
	}
	
	/* 音量控制 - 現代化設計 */
	.xp-volume {
		display: flex !important;
		align-items: center;
		gap: 0.75rem;
		margin-top: 1rem;
		padding: 0.75rem 1rem;
		background: rgba(255, 255, 255, 0.05);
		border: 1px solid rgba(255, 255, 255, 0.06);
		border-radius: 12px;
		width: 100%;
		max-width: 340px;
		box-sizing: border-box;
		transition: background 0.2s ease;
	}
	
	.xp-volume:hover {
		background: rgba(255, 255, 255, 0.08);
	}
	
	.xp-volume i {
		font-size: 0.9rem;
		color: rgba(255, 255, 255, 0.5);
		transition: color 0.2s ease;
	}
	
	.xp-volume:hover i {
		color: rgba(255, 255, 255, 0.7);
	}
	
	.xp-volume .form-range {
		flex: 1;
		height: 6px;
		background: rgba(255, 255, 255, 0.12);
		border-radius: 3px;
		-webkit-appearance: none;
		appearance: none;
		cursor: pointer;
	}
	
	.xp-volume .form-range::-webkit-slider-thumb {
		-webkit-appearance: none;
		width: 14px;
		height: 14px;
		background: #1db954;
		border-radius: 50%;
		cursor: pointer;
		box-shadow: 0 2px 6px rgba(29, 185, 84, 0.4);
		transition: transform 0.15s ease, box-shadow 0.15s ease;
	}
	
	.xp-volume .form-range::-webkit-slider-thumb:hover {
		transform: scale(1.15);
		box-shadow: 0 3px 10px rgba(29, 185, 84, 0.5);
	}
	
	.xp-volume .form-range::-moz-range-thumb {
		width: 14px;
		height: 14px;
		background: #1db954;
		border: none;
		border-radius: 50%;
		cursor: pointer;
	}
	
	.xp-volume .form-range::-webkit-slider-runnable-track {
		height: 6px;
		background: linear-gradient(to right, #1db954 var(--volume-percent, 50%), rgba(255, 255, 255, 0.12) var(--volume-percent, 50%));
		border-radius: 3px;
	}
	
	#xp-volume-val {
		min-width: 36px;
		text-align: right;
		font-size: 0.75rem;
		font-weight: 600;
		color: rgba(255, 255, 255, 0.5);
		font-variant-numeric: tabular-nums;
		transition: color 0.2s ease;
	}
	
	.xp-volume:hover #xp-volume-val {
		color: rgba(255, 255, 255, 0.8);
	}
	
	/* 隱藏左欄的歌詞容器 */
	.xp-col-left #xp-lyrics {
		display: none !important;
	}
	
	/* 右欄：歌詞區 */
	.xp-col-right {
		display: flex;
		flex-direction: column;
		height: 100%;
		min-height: 400px;
		max-height: calc(100vh - 250px);
	}
	
	#xp-lyrics-section {
		display: flex !important;
		flex-direction: column;
		flex: 1;
		min-height: 0;
		background: rgba(0, 0, 0, 0.25);
		border-radius: 16px;
		padding: 1.25rem;
		border: 1px solid rgba(255, 255, 255, 0.06);
	}
	
	/* 歌詞工具列 */
	.xp-lyrics-toolbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		margin-bottom: 1rem;
		padding-bottom: 0.75rem;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	}
	
	.xp-lyrics-title {
		font-size: 1.1rem;
		font-weight: 600;
		color: #fff;
		display: flex;
		align-items: center;
		gap: 0.5rem;
	}
	
	.xp-lyrics-title::before {
		content: '\f130';
		font-family: 'Font Awesome 6 Free';
		font-weight: 900;
		color: #1db954;
		font-size: 0.9rem;
	}
	
	.xp-lyrics-actions .btn {
		width: 36px;
		height: 36px;
		padding: 0;
		border-radius: 10px;
		background: rgba(255, 255, 255, 0.08);
		border: 1px solid rgba(255, 255, 255, 0.1);
		color: rgba(255, 255, 255, 0.7);
		transition: all 0.2s ease;
	}
	
	.xp-lyrics-actions .btn:hover {
		background: rgba(255, 255, 255, 0.15);
		color: #fff;
		transform: translateY(-2px);
	}
	
	.xp-lyrics-actions .btn.active,
	.xp-lyrics-actions .btn[aria-pressed="true"] {
		background: #1db954;
		border-color: #1db954;
		color: #000;
	}
	
	/* 歌詞偏移控制 */
	.xp-lyrics-offset-row {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 0.5rem;
		margin-bottom: 0.75rem;
		padding-bottom: 0.5rem;
	}
	
	.xp-lyrics-offset-row .btn {
		width: 32px;
		height: 32px;
		padding: 0;
		border-radius: 8px;
		font-size: 0.8rem;
	}
	
	#xp-lyrics-offset-val {
		font-size: 0.75rem;
		padding: 0.25rem 0.6rem;
		background: rgba(255, 255, 255, 0.1);
		border-radius: 6px;
	}
	
	/* 歌詞內容區 */
	#xp-lyrics-desktop {
		flex: 1;
		min-height: 0;
		overflow-y: auto;
		padding-right: 0.5rem;
		background: transparent;
		border: none;
		max-height: none;
	}
	
	/* 歌詞滾動條美化 */
	#xp-lyrics-desktop::-webkit-scrollbar {
		width: 6px;
	}
	
	#xp-lyrics-desktop::-webkit-scrollbar-track {
		background: rgba(255, 255, 255, 0.05);
		border-radius: 3px;
	}
	
	#xp-lyrics-desktop::-webkit-scrollbar-thumb {
		background: rgba(255, 255, 255, 0.2);
		border-radius: 3px;
	}
	
	#xp-lyrics-desktop::-webkit-scrollbar-thumb:hover {
		background: rgba(255, 255, 255, 0.35);
	}
	
	/* 歌詞行樣式 */
	#xp-lyrics-desktop .lyric-line {
		padding: 0.6rem 1rem;
		margin-bottom: 0.35rem;
		border-radius: 10px;
		font-size: 1.05rem;
		line-height: 1.5;
		color: rgba(255, 255, 255, 0.45);
		transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	}
	
	#xp-lyrics-desktop .lyric-line:hover {
		background: rgba(255, 255, 255, 0.06);
		color: rgba(255, 255, 255, 0.75);
	}
	
	#xp-lyrics-desktop .lyric-line.active {
		background: rgba(29, 185, 84, 0.15);
		color: #fff;
		font-size: 1.2rem;
		font-weight: 600;
		transform: scale(1.02);
		border-left: 3px solid #1db954;
	}
	
	/* 隱藏桌面版的 Tabs */
	.sp-expanded .xp-tabs {
		display: none;
	}
	
	/* 裝置區塊 */
	#xp-devices-section {
		margin-top: 1rem;
		padding: 1rem;
		background: rgba(0, 0, 0, 0.2);
		border-radius: 12px;
		border: 1px solid rgba(255, 255, 255, 0.06);
	}
	
	#xp-devices-section .h6 {
		font-size: 0.95rem;
		font-weight: 600;
		color: #fff;
	}
	
	#xp-devices-list {
		margin-top: 0.75rem;
	}
}

/* 行動裝置範圍與觸控優化 */
@media (pointer:coarse){
  .sp-expanded .form-range{height:34px}
}

/* Tabs */
.sp-expanded .xp-tabs .nav-link{
	color:#ddd;
	background:#161616;
	border:1px solid #2a2a2a;
	margin-right:.5rem;
	min-height:44px;
	min-width:72px;
	padding:.5rem .75rem;
	font-size:.9rem;
	border-radius:10px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	touch-action:manipulation;
	-webkit-tap-highlight-color:transparent;
}
.sp-expanded .xp-tabs .nav-link.active{
	background:#1db954;
	border-color:#1db954;
	color:#000;
	font-weight:600;
}
.sp-expanded .xp-tabs .nav-link{transition:background-color .18s, color .18s, border-color .18s, transform .12s}
.sp-expanded .xp-tabs .nav-link:active{transform:scale(0.96)}
.sp-expanded .xp-tabs .nav-link:focus-visible{outline:2px solid #65ffa0; outline-offset:2px}
.sp-expanded .btn-transport:focus-visible{outline:2px solid #65ffa0; outline-offset:3px}

/* Devices list */
#xp-devices-list .border-bottom{border-color:#2a2a2a !important}

/* ====== ENHANCED RESPONSIVE PLAYER DESIGN ====== */

/* Mini player base styles with PWA safe areas */
.sp-mini-player, .sp-expanded { --sp-mini-h: 64px; }

.sp-mini-player{
	position:sticky;
	bottom:0;
	left:0;
	right:0;
	background:#0f0f0f;
	border-top:1px solid #222;
	color:#fff;
	z-index:102;
	box-shadow:0 -4px 20px rgba(0,0,0,.35);
	padding-bottom:env(safe-area-inset-bottom, 0);
	padding-left:env(safe-area-inset-left, 0);
	padding-right:env(safe-area-inset-right, 0);
}

.sp-expanded{
	padding-bottom:calc(1rem + env(safe-area-inset-bottom, 0));
	padding-top:env(safe-area-inset-top, 0);
	padding-left:env(safe-area-inset-left, 0);
	padding-right:env(safe-area-inset-right, 0);
}

/* Touch-friendly mini player controls */
.sp-mini-player .btn-transport{
	background:#1f1f1f;
	border:1px solid #2b2b2b;
	color:#fff;
	width:44px;
	height:44px;
	border-radius:50%;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	touch-action:manipulation;
	-webkit-tap-highlight-color:transparent;
	transition: transform 0.15s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.sp-mini-player .btn-transport:active{
	transform: scale(0.88);
}

.sp-mini-player .btn-transport.btn-play{
	background: linear-gradient(135deg, #1DB954 0%, #1ed760 100%);
	border: none;
	color:#000;
	box-shadow: 0 2px 8px rgba(29, 185, 84, 0.3);
}

.sp-mini-player .btn-transport.btn-play:active{
	background: linear-gradient(135deg, #18a34a 0%, #1DB954 100%);
	box-shadow: 0 1px 4px rgba(29, 185, 84, 0.2);
}

/* ====== MOBILE MINI PLAYER - ULTRA SMALL (max-width: 379px) ======
   極小螢幕：精簡到極致，只顯示封面、歌名/作者、播放按鈕 */
@media (max-width: 379px) {
	.sp-mini-player { 
		--sp-mini-h: 58px;
		border-radius: 16px;
		margin: 0 0.5rem;
		width: calc(100% - 1rem);
		background: linear-gradient(135deg, #1a1a1f 0%, #141418 100%);
		border: 1px solid rgba(255, 255, 255, 0.08);
		box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
	}
	
	.sp-mini-player .sp-mini-body {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 0.5rem;
		padding: 0.5rem 0.75rem;
		min-height: var(--sp-mini-h);
	}
	
	.sp-mini-player .mp-art img {
		width: 38px;
		height: 38px;
		border-radius: 8px;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
	}
	
	.sp-mini-player .mp-meta {
		min-width: 0;
		overflow: hidden;
		padding: 0.1rem 0;
	}
	
	.sp-mini-player .mp-title {
		font-weight: 600;
		font-size: 0.85rem;
		line-height: 1.25;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		max-width: 100%;
		color: #fff;
	}
	
	.sp-mini-player .mp-artist {
		font-size: 0.72rem;
		color: rgba(255, 255, 255, 0.6);
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		max-width: 100%;
		margin-top: 0.1rem;
	}
	
	.sp-mini-player .btn-transport {
		width: 38px;
		height: 38px;
		font-size: 0.85rem;
		flex-shrink: 0;
		border-radius: 50%;
	}
	
	.sp-mini-player .mp-controls {
		display: flex;
		align-items: center;
		gap: 0.35rem;
	}
	
	/* 極小螢幕完全隱藏歌詞行 */
	.sp-mini-player .mp-lyrics-line {
		display: none !important;
	}
	
	.sp-mini-player .mp-more {
		display: none; /* 極小螢幕隱藏更多按鈕 */
	}
}

/* ====== MOBILE MINI PLAYER - STANDARD (380px - 479px) ======
   一般手機：保留歌名＋作者，添加展開按鈕 */
@media (min-width: 380px) and (max-width: 479px) {
	.sp-mini-player { 
		--sp-mini-h: 62px;
		border-radius: 18px;
		margin: 0 0.75rem;
		width: calc(100% - 1.5rem);
		background: linear-gradient(135deg, #1a1a1f 0%, #121215 100%);
		border: 1px solid rgba(255, 255, 255, 0.08);
		box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45);
	}

	.sp-mini-player .sp-mini-body {
		grid-template-columns: auto minmax(0, 1fr) auto auto;
		gap: 0.5rem;
		padding: 0.5rem 0.85rem;
		min-height: var(--sp-mini-h);
	}

	.sp-mini-player .mp-art img {
		width: 42px;
		height: 42px;
		border-radius: 10px;
		box-shadow: 0 3px 12px rgba(0, 0, 0, 0.35);
	}

	.sp-mini-player .mp-title {
		font-size: 0.88rem;
		font-weight: 600;
		color: #fff;
	}

	.sp-mini-player .mp-artist {
		font-size: 0.75rem;
		color: rgba(255, 255, 255, 0.55);
		margin-top: 0.15rem;
	}

	.sp-mini-player .btn-transport {
		width: 42px;
		height: 42px;
		font-size: 0.9rem;
	}

	/* 隱藏歌詞預覽 */
	.sp-mini-player .mp-lyrics-line {
		display: none !important;
	}
	
	.sp-mini-player .mp-more {
		display: flex;
		align-items: center;
	}
	
	.sp-mini-player .mp-more .btn {
		width: 36px;
		height: 36px;
		font-size: 0.8rem;
		background: rgba(255, 255, 255, 0.08);
		border: none;
		border-radius: 50%;
		color: rgba(255, 255, 255, 0.7);
	}
	
	.sp-mini-player .mp-more .btn:active {
		background: rgba(255, 255, 255, 0.15);
	}
}

/* ====== MOBILE MINI PLAYER - LANDSCAPE (480px - 767px) ======
   橫向手機/大螢幕手機：顯示精簡歌詞預覽 */
@media (min-width: 480px) and (max-width: 767px) {
	.sp-mini-player { 
		--sp-mini-h: 64px;
		border-radius: 20px;
		margin: 0 1rem;
		width: calc(100% - 2rem);
		background: linear-gradient(135deg, #1a1a1f 0%, #0f0f12 100%);
		border: 1px solid rgba(255, 255, 255, 0.06);
		box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
	}
	
	.sp-mini-player .sp-mini-body {
		grid-template-columns: auto minmax(0, 1fr) auto auto auto;
		gap: 0.65rem;
		padding: 0.55rem 1rem;
	}
	
	.sp-mini-player .mp-art img {
		width: 44px;
		height: 44px;
		border-radius: 10px;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
	}
	
	.sp-mini-player .mp-title {
		font-size: 0.9rem;
		font-weight: 600;
	}
	
	.sp-mini-player .mp-artist {
		font-size: 0.78rem;
		color: rgba(255, 255, 255, 0.55);
	}
	
	.sp-mini-player .btn-transport {
		width: 44px;
		height: 44px;
		font-size: 0.95rem;
	}
	
	.sp-mini-player .mp-lyrics-line {
		max-width: 35vw;
		font-size: 0.78rem;
		display: block;
		padding: 0.35rem 0.75rem;
		background: rgba(255, 255, 255, 0.06);
		border-radius: 12px;
		color: rgba(255, 255, 255, 0.7);
	}
	
	.sp-mini-player .mp-more .btn {
		width: 38px;
		height: 38px;
		font-size: 0.85rem;
		background: rgba(255, 255, 255, 0.08);
		border: none;
		border-radius: 50%;
		color: rgba(255, 255, 255, 0.7);
	}
}

/* ====== TABLET & DESKTOP MINI PLAYER (768px+) ======
   平板和桌面：完整功能，歌詞預覽更寬 */
@media (min-width: 768px) {
	.sp-mini-player { 
		--sp-mini-h: 68px;
		border-radius: 22px;
		margin: 0 1.25rem;
		width: calc(100% - 2.5rem);
		background: linear-gradient(135deg, #1a1a1f 0%, #0d0d10 100%);
		border: 1px solid rgba(255, 255, 255, 0.05);
		box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
	}
	
	.sp-mini-player .sp-mini-body {
		grid-template-columns: auto minmax(0, 1fr) auto auto auto;
		gap: 0.9rem;
		padding: 0.6rem 1.1rem;
	}
	
	.sp-mini-player .mp-art img {
		width: 48px;
		height: 48px;
		border-radius: 12px;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
	}
	
	.sp-mini-player .mp-title {
		font-size: 0.95rem;
	}
	
	.sp-mini-player .mp-artist {
		font-size: 0.8rem;
	}
	
	.sp-mini-player .btn-transport {
		width: 46px;
		height: 46px;
		font-size: 1rem;
	}
	
	.sp-mini-player .mp-lyrics-line {
		max-width: 45vw;
		display: block;
		font-size: 0.82rem;
		padding: 0.4rem 0.85rem;
		background: rgba(255, 255, 255, 0.06);
		border-radius: 14px;
		color: rgba(255, 255, 255, 0.7);
	}
	
	.sp-mini-player .mp-more .btn {
		width: 40px;
		height: 40px;
		font-size: 0.9rem;
		background: rgba(255, 255, 255, 0.08);
		border: none;
		border-radius: 50%;
		color: rgba(255, 255, 255, 0.7);
		transition: all 0.2s ease;
	}
	
	.sp-mini-player .mp-more .btn:hover {
		background: rgba(255, 255, 255, 0.12);
	}
}

/* ====== EXPANDED PLAYER RESPONSIVE ENHANCEMENTS ====== */

/* 覆蓋式全螢幕樣式改為以先前卡片式為主，避免內容被撐到邊角 */
.sp-expanded{
	position:fixed;
	inset:0;
	z-index:99999;
	background:rgba(0,0,0,.85);
	overflow:auto;
	animation:xpOverlayIn .22s ease-out;
	isolation:isolate;
	-webkit-overflow-scrolling:touch;
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
}

/* ====== MOBILE PORTRAIT EXPANDED PLAYER (320px - 479px) ======
   現代化設計，參考 iOS 原生音樂播放頁面風格 */
@media (max-width: 479px) {
	.sp-expanded .xp-modal {
		margin: 0;
		width: 100%;
		height: 100%;
		max-height: 100vh;
		border-radius: 0;
		padding: 0;
		background: linear-gradient(180deg, #1a1a1f 0%, #0a0a0c 100%);
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}

	/* 頂部標題區 */
	.sp-expanded .xp-head {
		padding: 0.75rem 1rem;
		margin-bottom: 0;
		background: transparent;
		flex-shrink: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	
	.xp-head-meta {
		flex: 1;
		min-width: 0;
		text-align: center;
	}
	
	.xp-head-label {
		font-size: 0.65rem;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, 0.5);
		display: block;
		margin-bottom: 0.15rem;
	}
	
	.xp-head-label i {
		display: none;
	}
	
	.xp-head-title {
		font-size: 0.9rem;
		font-weight: 600;
		max-width: 100%;
		display: none; /* 隱藏頂部標題，使用下方 hero-meta */
	}
	
	.xp-head-artist {
		display: none; /* 隱藏頂部藝人，使用下方 hero-meta */
	}
	
	#xp-close {
		width: 36px;
		height: 36px;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.1);
		border: none;
		color: rgba(255, 255, 255, 0.8);
		font-size: 0.9rem;
		position: absolute;
		left: 1rem;
		top: 0.75rem;
	}

	/* 主體區域 */
	.sp-expanded .xp-body {
		flex: 1;
		display: flex;
		flex-direction: column;
		overflow: hidden;
		padding: 0 1rem;
	}

	.sp-expanded .xp-body-grid {
		display: flex;
		flex-direction: column;
		flex: 1;
		gap: 0;
		overflow: hidden;
	}
	
	.sp-expanded .xp-col-left,
	.sp-expanded .xp-col-right {
		width: 100%;
	}

	/* 封面/歌詞共用視區 */
	#xp-hero-panel {
		flex: 1;
		min-height: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 0.5rem 0;
		overflow: hidden;
	}

	.sp-expanded .xp-hero-row {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 1rem;
		width: 100%;
	}

	.sp-expanded .xp-hero {
		padding: 0;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	/* 封面樣式 - 更大更突出 */
	.sp-expanded .cover {
		width: min(85vw, 320px);
		height: auto;
		aspect-ratio: 1/1;
		max-height: 40vh;
		border-radius: 12px;
		box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5), 0 4px 12px rgba(0, 0, 0, 0.3);
		animation: xpCoverIn 0.35s ease-out both;
	}

	/* 歌曲資訊 */
	.xp-hero-meta {
		width: 100%;
		padding: 0 0.5rem;
		text-align: center;
	}

	.xp-title-line {
		font-size: 1.25rem;
		font-weight: 700;
		line-height: 1.3;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-align: center;
		color: #fff;
		margin-bottom: 0.35rem;
	}

	.xp-artist-line {
		font-size: 0.95rem;
		color: rgba(255, 255, 255, 0.6);
		text-align: center;
	}

	/* 歌詞區域 - 全螢幕滾動 */
	#xp-lyrics {
		flex: 1;
		min-height: 0;
		font-size: 1.1rem;
		line-height: 1.7;
		overflow-y: auto;
		width: 100%;
		background: transparent;
		border: none;
		padding: 1rem 0.5rem;
		text-align: center;
	}
	
	#xp-lyrics .lyric-line {
		padding: 0.5rem 1rem;
		margin-bottom: 0.5rem;
		border-radius: 8px;
		text-align: center;
		color: rgba(255, 255, 255, 0.4);
		transition: all 0.3s ease;
	}
	
	#xp-lyrics .lyric-line:hover {
		color: rgba(255, 255, 255, 0.7);
	}
	
	#xp-lyrics .lyric-line.active {
		font-weight: 600;
		font-size: 1.25rem;
		color: #fff;
		background: rgba(29, 185, 84, 0.15);
		text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
	}

	/* 進度條 */
	.sp-expanded .xp-progress {
		margin: 0.75rem 0;
		padding: 0;
		flex-shrink: 0;
	}
	
	.sp-expanded .xp-progress .progress {
		height: 4px;
		background: rgba(255, 255, 255, 0.15);
		border-radius: 2px;
	}
	
	.sp-expanded .xp-progress .progress-bar {
		background: #fff;
		border-radius: 2px;
	}
	
	#xp-progress-handle {
		width: 12px;
		height: 12px;
		box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
	}

	/* 播放控制區 */
	.sp-expanded .xp-transport-row {
		margin: 0;
		padding: 0.5rem 0 1rem;
		flex-shrink: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 1rem;
	}
	
	.xp-transport-main {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 1.25rem;
	}
	
	.sp-expanded .btn-transport {
		width: 52px;
		height: 52px;
		border-radius: 50%;
		background: transparent;
		border: none;
		color: #fff;
		font-size: 1.2rem;
		transition: transform 0.15s ease, opacity 0.15s ease;
	}
	
	.sp-expanded .btn-transport:active {
		transform: scale(0.9);
		opacity: 0.8;
	}
	
	.sp-expanded .btn-transport.btn-play {
		width: 72px;
		height: 72px;
		background: #fff;
		color: #000;
		font-size: 1.6rem;
		box-shadow: 0 4px 20px rgba(255, 255, 255, 0.2);
	}
	
	.sp-expanded .btn-transport.btn-play:active {
		background: rgba(255, 255, 255, 0.9);
	}
	
	/* 隱藏手機版的隨機/重複按鈕 */
	.sp-expanded .btn-transport.btn-secondary-control {
		display: none !important;
	}

	/* 音量控制 */
	.xp-volume {
		display: flex !important;
		width: 100%;
		max-width: 300px;
		align-items: center;
		gap: 0.75rem;
		padding: 0;
	}
	
	.xp-volume i {
		font-size: 0.85rem;
		color: rgba(255, 255, 255, 0.5);
	}
	
	.xp-volume .form-range {
		flex: 1;
		height: 4px;
		background: rgba(255, 255, 255, 0.15);
		border-radius: 2px;
	}
	
	#xp-volume-val {
		font-size: 0.75rem;
		min-width: 24px;
		text-align: right;
		color: rgba(255, 255, 255, 0.5);
	}

	/* Tab 按鈕 - 底部固定 */
	.sp-expanded .xp-tabs {
		display: flex;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.75rem 1rem;
		padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0));
		background: rgba(0, 0, 0, 0.3);
		flex-shrink: 0;
	}
	
	.sp-expanded .xp-tabs .nav-link {
		flex: 1;
		max-width: 100px;
		min-height: 44px;
		padding: 0.5rem 0.75rem;
		font-size: 0.8rem;
		font-weight: 500;
		margin-right: 0;
		border-radius: 22px;
		background: rgba(255, 255, 255, 0.08);
		border: none;
		color: rgba(255, 255, 255, 0.7);
	}
	
	.sp-expanded .xp-tabs .nav-link.active {
		background: #fff;
		color: #000;
		font-weight: 600;
	}

	/* 歌詞工具列 - 精簡版 */
	#xp-lyrics-section {
		display: none; /* 手機版由 xp-lyrics 取代 */
	}
	
	.xp-lyrics-toolbar {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.5rem 0;
	}
	
	.xp-lyrics-title {
		width: 100%;
		text-align: center;
		font-size: 0.85rem;
		font-weight: 600;
		color: rgba(255, 255, 255, 0.6);
		margin-bottom: 0.25rem;
	}
	
	.xp-lyrics-actions {
		justify-content: center !important;
		gap: 0.25rem;
	}
	
	.xp-lyrics-actions .btn {
		min-width: 36px;
		min-height: 36px;
		padding: 0;
		font-size: 0.85rem;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.1);
		border: none;
		color: rgba(255, 255, 255, 0.7);
	}
	
	.xp-lyrics-actions .btn:active {
		background: rgba(255, 255, 255, 0.2);
	}
	
	.xp-lyrics-offset-row {
		justify-content: center;
		margin-top: 0.25rem;
		gap: 0.35rem;
	}
	
	.xp-lyrics-offset-row .btn {
		width: 30px;
		height: 30px;
		padding: 0;
		font-size: 0.75rem;
	}
}

/* ====== MOBILE LANDSCAPE / SMALL TABLET (480px - 767px) ======
   橫向手機或小平板，保持卡片式設計但空間更寬裕 */
@media (min-width: 480px) and (max-width: 767px) {
	.sp-expanded .xp-modal {
		margin: 1rem auto;
		width: calc(100% - 24px);
		max-width: 500px;
		height: auto;
		max-height: calc(100vh - 2rem);
		border-radius: 24px;
		padding: 1.25rem;
		background: linear-gradient(160deg, #1e1e24 0%, #0d0d0f 100%);
		box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
	}

	/* 頂部標題區 */
	.sp-expanded .xp-head {
		padding: 0 0 0.75rem;
		margin-bottom: 0.75rem;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	}
	
	#xp-close {
		width: 40px;
		height: 40px;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.1);
		border: none;
		color: rgba(255, 255, 255, 0.8);
		font-size: 1rem;
	}

	/* 主內容區 */
	#xp-hero-panel {
		min-height: 0;
		max-height: 50vh;
		padding: 0.5rem 0;
	}

	.sp-expanded .xp-hero-row {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 1rem;
	}

	/* 封面 */
	.sp-expanded .cover {
		width: min(80vw, 280px);
		max-height: 35vh;
		border-radius: 14px;
		box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
	}

	/* 歌曲標題 */
	.xp-title-line {
		font-size: 1.15rem;
		font-weight: 600;
	}

	.xp-artist-line {
		font-size: 0.9rem;
		color: rgba(255, 255, 255, 0.6);
	}

	/* 歌詞 */
	#xp-lyrics {
		max-height: 45vh;
		font-size: 1rem;
		line-height: 1.65;
		padding: 0.75rem;
	}
	
	#xp-lyrics .lyric-line {
		padding: 0.4rem 0.8rem;
		margin-bottom: 0.4rem;
		border-radius: 6px;
		color: rgba(255, 255, 255, 0.4);
	}
	
	#xp-lyrics .lyric-line.active {
		font-weight: 600;
		font-size: 1.15rem;
		color: #fff;
		background: rgba(29, 185, 84, 0.12);
	}

	/* 進度條 */
	.sp-expanded .xp-progress {
		margin: 0.75rem 0;
	}
	
	.sp-expanded .xp-progress .progress {
		height: 5px;
		background: rgba(255, 255, 255, 0.12);
		border-radius: 3px;
	}
	
	.sp-expanded .xp-progress .progress-bar {
		background: linear-gradient(90deg, #1DB954, #1ed760);
		border-radius: 3px;
	}

	/* 播放控制 */
	.sp-expanded .xp-transport-row {
		margin: 0.5rem 0;
		padding: 0.5rem 0;
	}
	
	.xp-transport-main {
		gap: 1rem;
	}
	
	.sp-expanded .btn-transport {
		width: 48px;
		height: 48px;
		font-size: 1.1rem;
		border-radius: 50%;
		background: transparent;
		border: none;
		color: #fff;
	}
	
	.sp-expanded .btn-transport.btn-play {
		width: 64px;
		height: 64px;
		background: #fff;
		color: #000;
		font-size: 1.4rem;
		box-shadow: 0 4px 16px rgba(255, 255, 255, 0.15);
	}
	
	/* 隱藏次要控制按鈕 */
	.sp-expanded .btn-transport.btn-secondary-control {
		display: none !important;
	}

	/* 音量 */
	.xp-volume {
		display: flex !important;
		max-width: 280px;
		margin: 0.5rem auto 0;
		gap: 0.5rem;
	}
	
	.xp-volume i {
		font-size: 0.8rem;
		color: rgba(255, 255, 255, 0.5);
	}
	
	.xp-volume .form-range {
		flex: 1;
		height: 4px;
	}

	/* Tabs */
	.sp-expanded .xp-tabs {
		display: flex;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.75rem 0;
		margin-top: 0.5rem;
	}
	
	.sp-expanded .xp-tabs .nav-link {
		flex: 0 0 auto;
		min-width: 80px;
		min-height: 40px;
		padding: 0.5rem 1rem;
		font-size: 0.85rem;
		font-weight: 500;
		border-radius: 20px;
		background: rgba(255, 255, 255, 0.08);
		border: none;
		color: rgba(255, 255, 255, 0.7);
	}
	
	.sp-expanded .xp-tabs .nav-link.active {
		background: #fff;
		color: #000;
		font-weight: 600;
	}

	/* 歌詞工具列 */
	.xp-lyrics-toolbar {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.5rem 0;
	}
	
	.xp-lyrics-title {
		width: 100%;
		text-align: center;
		font-size: 0.9rem;
		color: rgba(255, 255, 255, 0.5);
	}
	
	.xp-lyrics-actions .btn {
		min-width: 36px;
		min-height: 36px;
		padding: 0;
		font-size: 0.85rem;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.1);
		border: none;
		color: rgba(255, 255, 255, 0.7);
	}
}

/* ====== TABLET PORTRAIT (768px - 991px) ======
   平板直向模式，更大的封面和更寬敞的佈局 */
@media (min-width: 768px) and (max-width: 991px) {
	.sp-expanded .xp-modal {
		margin: 1.5rem auto;
		width: calc(100% - 48px);
		max-width: 600px;
		height: auto;
		max-height: calc(100vh - 3rem);
		border-radius: 28px;
		padding: 1.5rem;
		background: linear-gradient(160deg, #1a1a20 0%, #0c0c0e 100%);
		box-shadow: 0 24px 80px rgba(0, 0, 0, 0.5);
	}

	/* 頂部 */
	.sp-expanded .xp-head {
		padding: 0 0 1rem;
		margin-bottom: 1rem;
		border-bottom: 1px solid rgba(255, 255, 255, 0.06);
	}
	
	.xp-head-label {
		font-size: 0.7rem;
		letter-spacing: 0.12em;
	}
	
	.xp-head-title {
		font-size: 1rem;
		font-weight: 600;
	}
	
	#xp-close {
		width: 44px;
		height: 44px;
		font-size: 1.1rem;
	}

	/* 主內容區 */
	#xp-hero-panel {
		min-height: 0;
		max-height: 55vh;
		padding: 0.75rem 0;
	}

	.sp-expanded .xp-hero-row {
		flex-direction: column;
		align-items: center;
		gap: 1.25rem;
	}

	/* 封面 - 更大 */
	.sp-expanded .cover {
		width: min(70vw, 380px);
		max-height: 45vh;
		border-radius: 16px;
		box-shadow: 0 16px 56px rgba(0, 0, 0, 0.45);
	}

	/* 歌曲資訊 */
	.xp-title-line {
		font-size: 1.4rem;
		font-weight: 700;
		margin-bottom: 0.5rem;
	}

	.xp-artist-line {
		font-size: 1rem;
		color: rgba(255, 255, 255, 0.55);
	}

	/* 歌詞 */
	#xp-lyrics {
		max-height: 50vh;
		font-size: 1.1rem;
		line-height: 1.75;
		padding: 1rem;
	}
	
	#xp-lyrics .lyric-line {
		padding: 0.5rem 1rem;
		margin-bottom: 0.5rem;
		border-radius: 8px;
	}
	
	#xp-lyrics .lyric-line.active {
		font-size: 1.3rem;
		font-weight: 600;
		background: rgba(29, 185, 84, 0.12);
	}

	/* 進度條 */
	.sp-expanded .xp-progress {
		margin: 1rem 0;
	}
	
	.sp-expanded .xp-progress .progress {
		height: 6px;
		background: rgba(255, 255, 255, 0.1);
		border-radius: 3px;
	}
	
	.sp-expanded .xp-progress .progress-bar {
		background: linear-gradient(90deg, #1DB954, #1ed760);
		border-radius: 3px;
	}
	
	#xp-progress-handle {
		width: 14px;
		height: 14px;
	}

	/* 播放控制 */
	.sp-expanded .xp-transport-row {
		margin: 0.75rem 0;
		padding: 0.75rem 0;
	}
	
	.xp-transport-main {
		gap: 1.25rem;
	}
	
	.sp-expanded .btn-transport {
		width: 56px;
		height: 56px;
		font-size: 1.25rem;
		border-radius: 50%;
		background: transparent;
		border: none;
		color: #fff;
	}
	
	.sp-expanded .btn-transport:hover {
		background: rgba(255, 255, 255, 0.1);
	}
	
	.sp-expanded .btn-transport.btn-play {
		width: 76px;
		height: 76px;
		background: #fff;
		color: #000;
		font-size: 1.6rem;
		box-shadow: 0 6px 24px rgba(255, 255, 255, 0.2);
	}
	
	.sp-expanded .btn-transport.btn-play:hover {
		background: #f0f0f0;
		transform: scale(1.02);
	}
	
	/* 可選擇顯示次要控制按鈕 */
	.sp-expanded .btn-transport.btn-secondary-control {
		display: none !important;
	}

	/* 音量 */
	.xp-volume {
		display: flex !important;
		max-width: 320px;
		margin: 0.75rem auto 0;
		gap: 0.75rem;
	}
	
	.xp-volume i {
		font-size: 0.9rem;
		color: rgba(255, 255, 255, 0.5);
	}

	/* Tabs */
	.sp-expanded .xp-tabs {
		display: flex;
		justify-content: center;
		gap: 0.75rem;
		padding: 1rem 0;
		margin-top: 0.5rem;
	}
	
	.sp-expanded .xp-tabs .nav-link {
		min-width: 90px;
		min-height: 44px;
		padding: 0.6rem 1.25rem;
		font-size: 0.9rem;
		font-weight: 500;
		border-radius: 22px;
		background: rgba(255, 255, 255, 0.08);
		border: none;
		color: rgba(255, 255, 255, 0.7);
		transition: all 0.2s ease;
	}
	
	.sp-expanded .xp-tabs .nav-link:hover {
		background: rgba(255, 255, 255, 0.12);
	}
	
	.sp-expanded .xp-tabs .nav-link.active {
		background: #fff;
		color: #000;
		font-weight: 600;
	}

	/* 歌詞工具列 */
	.xp-lyrics-toolbar {
		padding: 0.75rem 0;
		gap: 0.75rem;
	}
	
	.xp-lyrics-title {
		font-size: 0.95rem;
	}
	
	.xp-lyrics-actions .btn {
		min-width: 40px;
		min-height: 40px;
	}
}

/* ====== LANDSCAPE OPTIMIZATION (max-height: 500px) ======
   橫向模式特別優化，雙欄佈局 */
@media screen and (orientation: landscape) and (max-height: 500px) {
	.sp-expanded .xp-modal {
		margin: 0.5rem auto;
		width: calc(100% - 16px);
		max-width: 100%;
		max-height: calc(100vh - 1rem);
		overflow-y: auto;
		border-radius: 16px;
		padding: 0.75rem 1rem;
	}
	
	.sp-expanded .xp-head {
		padding: 0.25rem 0 0.5rem;
	}
	
	#xp-close {
		width: 32px;
		height: 32px;
		font-size: 0.85rem;
	}
	
	/* 雙欄佈局 */
	.sp-expanded .xp-body-grid {
		flex-direction: row;
		gap: 1.25rem;
		align-items: flex-start;
	}
	
	.sp-expanded .xp-col-left {
		flex: 0 0 auto;
		max-width: 40%;
	}
	
	.sp-expanded .xp-col-right {
		flex: 1 1 auto;
		min-height: 150px;
		max-height: calc(100vh - 180px);
		overflow-y: auto;
	}
	
	/* 橫向封面 */
	.sp-expanded .cover {
		max-height: 28vh;
		width: auto;
		max-width: 100%;
		border-radius: 10px;
	}
	
	.xp-hero-meta {
		padding: 0.5rem 0;
	}
	
	.xp-title-line {
		font-size: 0.95rem;
	}
	
	.xp-artist-line {
		font-size: 0.8rem;
	}
	
	/* 橫向歌詞 */
	#xp-lyrics {
		max-height: calc(100vh - 200px);
		font-size: 0.85rem;
		line-height: 1.5;
		padding: 0.5rem;
	}
	
	#xp-lyrics .lyric-line {
		padding: 0.25rem 0.5rem;
		margin-bottom: 0.25rem;
	}
	
	#xp-lyrics .lyric-line.active {
		font-size: 0.95rem;
	}
	
	/* 控制區精簡 */
	.sp-expanded .xp-progress {
		margin: 0.4rem 0;
	}
	
	.sp-expanded .xp-transport-row {
		margin: 0.25rem 0;
		padding: 0.25rem 0;
	}
	
	.sp-expanded .btn-transport {
		width: 36px;
		height: 36px;
		font-size: 0.9rem;
	}
	
	.sp-expanded .btn-transport.btn-play {
		width: 48px;
		height: 48px;
		font-size: 1.1rem;
	}
	
	/* 隱藏 Tabs，橫向空間不夠 */
	.sp-expanded .xp-tabs {
		display: none;
	}
	
	/* 顯示兩個面板 */
	#xp-hero-panel,
	#xp-lyrics-section {
		display: block !important;
	}
}

/* ====== PWA 模式專屬優化：盡量吃滿裝置畫面 ======
   這裡利用 display-mode 媒體查詢偵測獨立安裝的 PWA，
   在直立與橫向時都讓封面與歌詞更充分使用可視高度。 */

@media all and (display-mode: standalone),
       all and (display-mode: fullscreen) {
	/* 移除多餘 margin，讓對話框幾乎貼齊螢幕邊緣（保留安全區） */
	.sp-expanded {
		padding-top: max(env(safe-area-inset-top, 0), 0.5rem);
		padding-bottom: max(env(safe-area-inset-bottom, 0), 0.5rem);
	}

	.sp-expanded .xp-modal {
		margin: 0.5rem auto;
		max-width: min(1100px, 100vw - 8px);
		max-height: calc(100vh - 1rem);
	}

	/* 直立：封面約 30vh，其餘留給歌詞 */
	@media (orientation: portrait) {
		.sp-expanded .cover {
			max-height: 30vh;
			width: auto;
		}
		.sp-expanded .lyrics-container {
			max-height: 55vh;
		}
	}

	/* 橫向：加大左右欄比例，歌詞吃滿右側高度 */
	@media (orientation: landscape) {
		.sp-expanded .xp-body-grid {
			grid-template-columns: minmax(260px, 40%) minmax(0, 1fr);
		}
		.sp-expanded .cover {
			max-height: 70vh;
			width: auto;
		}
		#xp-lyrics-section,
		#xp-devices-section {
			flex: 1 1 auto;
			min-height: 0;
		}
		#xp-lyrics,
		#xp-lyrics-desktop,
		#xp-devices-list {
			flex: 1 1 auto;
			min-height: 0;
			max-height: none;
		}
	}
}

/* 內頁 pseudo-fullscreen 模式：按鈕切換 view=fullscreen 時使用，不觸發瀏覽器原生 fullscreen */
.spotify-root.sp-fullscreen-mode .sp-main-container {
	max-width: none;
	padding: 0 1rem 1.25rem;
}

.spotify-root.sp-fullscreen-mode .sp-hero-player {
	margin-top: .5rem;
	border-radius: 0;
}

.spotify-root.sp-fullscreen-mode .sp-content-area {
	margin-top: 1rem;
}

.spotify-root.sp-fullscreen-mode .sp-tabs-nav {
	position: sticky;
	top: 0;
	z-index: 20;
	background: radial-gradient(circle at top, #111, #050505 60%);
}

/* ====== TOUCH AND GESTURE ENHANCEMENTS ====== */

/* Enhanced touch targets */
.sp-expanded .btn-transport {
	min-height: 44px;
	min-width: 44px;
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}

.sp-expanded .form-range {
	-webkit-appearance: none;
	appearance: none;
	height: 44px; /* Large touch target */
	background: transparent;
	cursor: pointer;
	touch-action: manipulation;
}

.sp-expanded .form-range::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	height: 20px;
	width: 20px;
	border-radius: 50%;
	background: #1db954;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.sp-expanded .form-range::-moz-range-thumb {
	height: 20px;
	width: 20px;
	border-radius: 50%;
	background: #1db954;
	cursor: pointer;
	border: none;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

/* Progress bar touch enhancements */
.sp-expanded #xp-progress-wrap {
	cursor: pointer;
	touch-action: none;
	padding: 10px 0; /* Larger touch area */
	margin: -10px 0;
}
/* Volume range track/thumb visibility in dark theme */
.sp-expanded .form-range{background:transparent}
.sp-expanded .form-range::-webkit-slider-runnable-track{height:6px;background:#1b1b1b;border-radius:4px}
.sp-expanded .form-range::-moz-range-track{height:6px;background:#1b1b1b;border-radius:4px}
.sp-expanded .form-range::-webkit-slider-thumb{background:#1db954;border:0}
.sp-expanded .form-range::-moz-range-thumb{background:#1db954;border:0}

/* ====== ACCESSIBILITY ENHANCEMENTS ====== */

.sp-expanded .btn-transport:focus-visible {
	outline: 2px solid #65ffa0;
	outline-offset: 3px;
}

.sp-expanded .form-range:focus-visible {
	outline: 2px solid #65ffa0;
	outline-offset: 2px;
}

/* ====== PERFORMANCE OPTIMIZATIONS ====== */

.sp-expanded .lyrics-container {
	transform: translateZ(0); /* Hardware acceleration */
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

/* Optimized animations for mobile */
@media (max-width: 767px) {
	.sp-expanded .cover {
		animation-duration: 0.2s; /* Faster animations on mobile */
	}
	
	.sp-expanded {
		animation-duration: 0.15s;
	}
}

/* Legacy responsive rules */
@media (max-width: 575.98px){
  .sp-mini-player .sp-mini-body{grid-template-columns:auto 1fr auto auto;gap:.6rem}
  .sp-mini-player .mp-meta{min-width:0;overflow:hidden}
  .sp-mini-player .mp-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .sp-mini-player .mp-artist{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .sp-mini-player .mp-lyrics-line{display:none}
}

/* 優先尊重使用者減少動效的偏好 */
@media (prefers-reduced-motion: reduce){
  .sp-expanded .lyrics-container{scroll-behavior:auto}
  .sp-expanded{animation:none}
  .sp-expanded .cover{animation:none}
  .sp-expanded .btn-transport{transition:none}
}

/* 視覺進場動畫 */
@keyframes xpOverlayIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes xpCoverIn{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}

/* 桌面版：整頁無滾動布局（overlay 不捲動，歌詞/裝置區域內捲），
   並讓封面與歌詞區在大螢幕上更平均利用空間。 */
@media (min-width: 992px){
	/* 桌機：保留卡片式展開，內容區域內部滾動 */
	.sp-expanded {
		overflow: hidden;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.sp-expanded .xp-modal {
		max-height: calc(100vh - 3rem);
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}
	.xp-body {
		flex: 1;
		min-height: 0;
		overflow: hidden;
	}
	#xp-lyrics-section, #xp-devices-section {
		flex: 1 1 auto;
		min-height: 0;
		display: flex;
		flex-direction: column;
	}
	#xp-lyrics-desktop, #xp-devices-list {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
	}
}

/* ====== ADDITIONAL RESPONSIVE ENHANCEMENTS ====== */

/* Better PWA and mobile app bar handling */
@supports (top: env(titlebar-area-height)) {
	.sp-mini-player {
		bottom: env(keyboard-inset-height, 0px);
	}
}

/* Enhanced support for iPhone notch and dynamic island */
@supports (padding: max(0px)) {
	.sp-expanded {
		padding-top: max(env(safe-area-inset-top, 0), 1rem);
		padding-bottom: max(env(safe-area-inset-bottom, 0), 1rem);
		padding-left: max(env(safe-area-inset-left, 0), 0.5rem);
		padding-right: max(env(safe-area-inset-right, 0), 0.5rem);
	}
	
	.sp-mini-player {
		padding-bottom: max(env(safe-area-inset-bottom, 0), 0.5rem);
		padding-left: max(env(safe-area-inset-left, 0), 0px);
		padding-right: max(env(safe-area-inset-right, 0), 0px);
	}
}

/* Improved touch scrolling performance */
.sp-expanded .lyrics-container,
.sp-expanded .xp-modal,
#xp-lyrics,
#xp-lyrics-desktop,
#xp-devices-list {
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	.sp-expanded .lyrics-container,
	.sp-expanded .xp-modal,
	#xp-lyrics,
	#xp-lyrics-desktop,
	#xp-devices-list {
		scroll-behavior: auto;
	}
}

/* Better support for very wide mobile screens */
@media (min-width: 414px) and (max-width: 896px) {
	.sp-mini-player .sp-mini-body {
		grid-template-columns: auto minmax(0, 1fr) auto auto;
		padding: 0.6rem 1rem;
	}
	
	.sp-mini-player .mp-meta {
		min-width: 0; /* Allow text truncation */
		max-width: none;
		overflow: hidden;
	}
	
	.sp-mini-player .mp-title,
	.sp-mini-player .mp-artist {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		max-width: 100%;
	}
}

/* Better desktop and large screen handling */
@media (min-width: 1400px) {
	.sp-expanded .xp-modal {
		max-width: 1200px;
		padding: 2.5rem;
	}

	/* 超寬螢幕：稍微放大封面與欄距，維持視覺平衡 */
	.sp-expanded .cover {
		max-width: 380px;
		max-height: 380px;
	}

	.xp-body-grid {
		gap: 3rem;
		grid-template-columns: minmax(300px, 400px) minmax(0, 1fr);
	}
	
	.xp-title-line {
		font-size: 1.4rem;
	}
	
	#xp-lyrics-desktop .lyric-line {
		font-size: 1.1rem;
		padding: 0.7rem 1.2rem;
	}
	
	#xp-lyrics-desktop .lyric-line.active {
		font-size: 1.3rem;
	}
}

/* Enhanced ultra-wide monitor support */
@media (min-width: 2560px) {
	.sp-expanded .xp-modal {
		max-width: 1500px;
		padding: 3rem;
	}

	.sp-expanded .cover {
		max-width: 450px;
		max-height: 450px;
	}
	
	.xp-body-grid {
		gap: 4rem;
		grid-template-columns: minmax(350px, 480px) minmax(0, 1fr);
	}
	
	.sp-expanded .btn-transport {
		width: 56px;
		height: 56px;
		font-size: 1.2rem;
	}
	
	.sp-expanded .btn-transport.btn-play {
		width: 72px;
		height: 72px;
		font-size: 1.5rem;
	}
	
	#xp-lyrics-desktop .lyric-line {
		font-size: 1.2rem;
		padding: 0.8rem 1.5rem;
	}
	
	#xp-lyrics-desktop .lyric-line.active {
		font-size: 1.45rem;
	}
}

/* ====== SWIPE GESTURE ENHANCEMENTS ====== */

/* Mini player swipe preparation */
.sp-mini-player {
	transform: translateY(0);
	transition: transform 0.2s ease-out;
	will-change: transform;
}

.sp-mini-player.sp-swiping {
	transition: none;
}

.sp-mini-player.sp-swipe-up {
	transform: translateY(-10px);
	box-shadow: 0 -8px 32px rgba(0,0,0,.5);
}

/* Swipe indicator */
.sp-swipe-indicator {
	position: absolute;
	top: -3px;
	left: 50%;
	transform: translateX(-50%);
	width: 40px;
	height: 4px;
	background: rgba(255,255,255,0.3);
	border-radius: 2px;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.sp-mini-player:hover .sp-swipe-indicator,
.sp-mini-player.sp-swiping .sp-swipe-indicator {
	opacity: 1;
}

/* Enhanced expanded player entrance */
.sp-expanded.sp-from-swipe {
	animation: xpSwipeIn 0.3s ease-out;
}

@keyframes xpSwipeIn {
	from {
		opacity: 0;
		transform: translateY(100px) scale(0.95);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

/* =========================================================
 * LYRICS RENDERING FIX (2025-10-03)
 * 解決歌詞顯示為 "0:18 (歌詞)" 的原始文字問題。
 * 隱藏時間戳記，優化歌詞行樣式與高亮效果。
 * ========================================================= */

.lyric-line {
    display: block;
    padding: 0.5rem 1rem;
    margin-bottom: 0.25rem;
    border-radius: 8px;
    transition: all 0.25s ease;
    color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    font-size: 1.1rem;
    font-weight: 500;
    text-align: left;
}

.lyric-line:hover {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.8);
}

.lyric-line.active {
    color: #ffffff;
    font-weight: 700;
    font-size: 1.25rem;
    transform: scale(1.02);
    transform-origin: left center;
    text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}

/* Hide timestamp by default to prevent "0:18 (Lyrics)" raw look */
.lyric-line .ts {
    display: none;
}

/* Ensure text is properly styled */
.lyric-line .tx {
    display: inline-block;
    line-height: 1.4;
    overflow-wrap: break-word;
    word-break: break-word;
    white-space: pre-wrap;
}

/* Empty state styling */
.lyrics-not-found {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 120px;
    text-align: center;
    color: rgba(255, 255, 255, 0.5);
    padding: 2rem 1rem;
    font-size: 0.95rem;
}

/* Optional: Show timestamp on hover for debugging/syncing if needed */
/* .lyric-line:hover .ts { display: inline-block; font-size: 0.8em; opacity: 0.5; margin-right: 0.5rem; } */
