:root{
  --ssv-safe-top:env(safe-area-inset-top,0px);
  --ssv-safe-bottom:env(safe-area-inset-bottom,0px)
}

/*
  Feedback sutil mientras se arrastra: ligera escala + opacidad leve.
  Nada exagerado — solo para que se sienta que el elemento está
  siendo movido. La sombra NO va aquí: cada widget la agrega en su
  propio CSS, siguiendo su forma real (el corazón es un SVG sobre un
  botón transparente — un box-shadow genérico dibujaría un cuadrado
  visible alrededor del botón en vez de contornear el corazón).
*/
.is-dragging{
  transition:none !important;
  transform:scale(1.06);
  opacity:.92
}

/*
  Transición corta al hacer snap al lateral cuando se suelta —
  aplica solo top/left/right, nunca transform (así no interfiere con
  animaciones propias del corazón o del contador).
*/
.is-snapping{
  transition:top .22s cubic-bezier(.2,.8,.32,1),left .22s cubic-bezier(.2,.8,.32,1),right .22s cubic-bezier(.2,.8,.32,1)
}
