@keyframes slide-up {
    from { transform: translateY(100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
.animate-slide-up { animation: slide-up 0.3s ease-out; }
 #cashflow-calendar::-webkit-scrollbar { display: none; }
#cashflow-calendar { -ms-overflow-style: none; scrollbar-width: none; }
 #app { min-height: 100dvh; }
 .page > main {
    padding-bottom: calc(8rem + env(safe-area-inset-bottom)) !important;
}
 @supports (padding-top: env(safe-area-inset-top)) {
    .page > header { padding-top: calc(env(safe-area-inset-top) + 1rem) !important; }
}
 .safe-area-bottom {
    padding-top: 0.5rem;
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
}
 .safe-area-modal {
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
}
 @media print {
    body * { visibility: hidden; }
    #print-area, #print-area * { visibility: visible; }
    #print-area { position: absolute; left: 0; top: 0; }
}
