/* Feedback uses the existing controls without changing their layout. */
.hppn-feedback-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.hppn-save-error { position: fixed; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); left: 50%; transform: translateX(-50%); z-index: 12000; padding: 12px 18px; max-width: calc(100vw - 32px); border-radius: 12px; background: #202c29; color: #fff8ec; font: 500 14px/1.4 sans-serif; }
:is(.hppn-map-card-transport, .hppn-map-card-icon-btn, .page-search .control-btn, .page-search .control-btn-large, .page-search .action-pill, .tv-transport-btn, .tv-rail-btn) { touch-action: manipulation; }
:is(.hppn-map-card-transport, .hppn-map-card-icon-btn, .page-search .control-btn, .page-search .control-btn-large, .page-search .action-pill, .tv-transport-btn, .tv-rail-btn):active:not(:disabled) { opacity: .75; }
/* Loading text must not push the artist transport down between clicks. */
.page-search .loading-status, .page-search .loading-status:empty { display: block; min-height: 17px; }
/* Save/Saved and preview state changes retain the same hit targets. */
.tv-stage .tv-rail-save { min-width: 76px; }
.page-search #saveBtn[aria-pressed="true"] { background: var(--peach); color: var(--ink); }
@media (prefers-reduced-motion: no-preference) {
    :is(.hppn-map-card-icon-btn, .page-search .action-pill, .tv-rail-btn) { transition: background-color 100ms ease, color 100ms ease, opacity 80ms ease; }
}
