/* Feedback tàctil i visual: respecta la reducció de moviment. */
#app.fx-success::after,#app.fx-error::after,#app.fx-discovery::after{content:"";position:fixed;inset:0;z-index:350;pointer-events:none;animation:feedback-glow .95s ease-out both;box-shadow:inset 0 0 100px var(--fx-color);background:radial-gradient(ellipse at center,var(--fx-bg),transparent 72%)}
#app.fx-success{--fx-color:#38f2c980;--fx-bg:#3debc522}
#app.fx-error{--fx-color:#ffbd7670;--fx-bg:#ffad6520}
#app.fx-discovery{--fx-color:#be9aff90;--fx-bg:#ba92ff30}
@keyframes feedback-glow{0%{opacity:0;transform:scale(.98)}25%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.025)}}
.discovery-signal{font-size:12px;letter-spacing:.065em;font-weight:800;padding:12px 15px;margin:-5px 0 17px;border-radius:14px;border:1px solid #bda1f7a0;background:linear-gradient(100deg,#473171cc,#225671ba);color:#ffffff;animation:discovery-arrive .5s ease-out both}
@keyframes discovery-arrive{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.haptic-demo{margin-top:20px}.haptic-demo .demo-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.haptic-demo .demo-buttons .btn{flex:1;min-width:132px}.haptic-status{font-size:12px;color:#c6d4ee}
.haptic-toggle.is-off{opacity:.55}
@media(prefers-reduced-motion:reduce){#app.fx-success::after,#app.fx-error::after,#app.fx-discovery::after,.discovery-signal{animation:none!important;transition:none!important}#app.fx-success::after,#app.fx-error::after,#app.fx-discovery::after{box-shadow:none;background:none}}
