.shake-leve { animation: shake 0.5s; }
.shake-forte { animation: shake 0.8s cubic-bezier(.36,.07,.19,.97) both; }
@keyframes shake {
  10%, 90% { transform: translateX(-2px); }
  20%, 80% { transform: translateX(4px); }
  30%, 50%, 70% { transform: translateX(-8px); }
  40%, 60% { transform: translateX(8px); }
}
.nudge-popup {
  position: fixed;
  margin-top: 120px; right: 20px; background: #000000; border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2); padding: 16px; z-index: 9999;
  display: flex; flex-direction: column; align-items: center;
  background: #2c2c2ccb;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(54, 54, 54, 0.808);
  border-radius: 12px;
  color: #f3f3f3;
}
.nudge-photo { width: 48px; height: 48px; border-radius: 50%; margin-bottom: 8px; }
.nudge-confirm {
  background: #2c2c2ccb;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(54, 54, 54, 0.808);
  border-radius: 12px;
  color: #f3f3f3;
}

.nudge-popup i {
    color: #4A90E2;
    font-size: 24px;
    margin-right: 8px;
}

.nudge-confirm button {
    background: #4A90E2;
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    cursor: pointer;
    margin-top: 12px;
    transition: background 0.3s ease;
}

@keyframes slideInRight {
  from { transform: translateX(120%); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
@keyframes slideOutRight {
  from { transform: translateX(0); opacity: 1; }
  to   { transform: translateX(120%); opacity: 0; }
}

.nudge-popup {
  animation: slideInRight 0.5s cubic-bezier(.36,.07,.19,.97) both;
}

.nudge-popup.saindo {
  animation: slideOutRight 0.5s cubic-bezier(.36,.07,.19,.97) both;
}