/* CashManager PWA - Custom Styles */

.pb-safe { padding-bottom: env(safe-area-inset-bottom, 0); }

/* Page transitions */
.page-enter { animation: fadeInUp 0.25s ease-out; }
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* PIN animations */
.pin-dot-filled { animation: pinPulse 0.2s ease-out; }
@keyframes pinPulse {
    0% { transform: scale(0.8); }
    50% { transform: scale(1.15); }
    100% { transform: scale(1); }
}
.num-btn:active { transform: scale(0.92); }

/* Toast */
.toast { animation: toastIn 0.4s ease-out; }
.toast-out { animation: toastOut 0.3s ease-in forwards; }
@keyframes toastIn {
    from { opacity: 0; transform: translateY(20px) scale(0.95); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes toastOut {
    to { opacity: 0; transform: translateY(20px) scale(0.95); }
}

/* Progress bar */
.progress-bar { transition: width 1s ease-out; }

/* FAB */
@keyframes gentleBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}
.fab-bounce { animation: gentleBounce 2s ease-in-out infinite; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Shake animation for wrong PIN */
.shake { animation: shake 0.5s ease-in-out; }
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-8px); }
    40% { transform: translateX(8px); }
    60% { transform: translateX(-6px); }
    80% { transform: translateX(6px); }
}
