:root { --player-controls-h: 76px; --fm-dial-h: 44px; --player-h: calc(var(--player-controls-h) + var(--fm-dial-h)); }
.player { height: var(--player-controls-h); }
.fm-dial { position: fixed; bottom: var(--player-controls-h); inset-inline: 0; z-index: 100; height: var(--fm-dial-h); box-sizing: border-box; background: var(--surface); color: var(--text); border-top: 1px solid var(--border); padding: 5px 24px; }
.fm-dial-inner { height: 100%; width: 100%; }
.fm-dial-state { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.fm-dial-track { position: relative; height: 34px; margin: 0 7px; }
.fm-dial-ticks { position: absolute; inset: 0; display: flex; justify-content: space-between; }
.fm-dial-tick { position: relative; height: 7.2px; margin-top: 3px; width: 1px; background: var(--border); }
.fm-dial-tick-major { height: 13.2px; background: var(--muted2); }
.fm-dial-tick span { position: absolute; top: 19px; left: 0; transform: translateX(-50%); font: 11px 'Space Mono', monospace; color: var(--muted2); }
.fm-dial-needle { position: absolute; top: 0; bottom: 1px; left: 0; width: 3px; transform: translateX(-50%); background: var(--warn); box-shadow: 0 0 6px color-mix(in srgb, var(--warn) 40%, transparent); transition: box-shadow .15s, width .15s; }
.fm-dial-needle::before { content: ''; position: absolute; top: -1px; left: -3px; width: 9px; height: 4px; border-radius: 2px; background: var(--warn); }
.fm-dial-tuning .fm-dial-needle { width: 4px; box-shadow: 0 0 7px var(--warn), 0 0 16px color-mix(in srgb, var(--warn) 65%, transparent); }
.fm-dial-unavailable .fm-dial-needle { visibility: hidden; }
.fm-dial-unavailable .fm-dial-track { opacity: .45; }
@media(max-width:768px) {
    :root { --player-controls-h: 62px; --fm-dial-h: 40px; }
    .player { height: var(--player-controls-h); }
    .fm-dial { padding: 3px 14px; }
}
@media(max-width:600px) { .fm-dial-tick-minor-label span { display: none; } }
@media(prefers-reduced-motion:reduce) { .fm-dial-needle { transition: none; } }
