html.theme-transition,
html.theme-transition *,
html.theme-transition *::before,
html.theme-transition *::after {
    transition: background-color 0.28s ease, color 0.22s ease, border-color 0.24s ease, box-shadow 0.24s ease, fill 0.22s ease, stroke 0.22s ease !important;
}

.app-notify,
.permit-action-trigger,
.permit-action-tile,
.visit-management-table tbody tr,
.report-pagination .btn,
.visit-state-badge,
.visit-time-badge,
.visit-companion-chip {
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

@keyframes notifySlideIn {
    from {
        opacity: 0;
        transform: translateY(-16px) scale(0.96);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes notifySlideOut {
    from {
        opacity: 1;
        transform: translateY(0) scale(1);
    }

    to {
        opacity: 0;
        transform: translateY(-12px) scale(0.95);
    }
}

@keyframes notifyBarShrink {
    from {
        width: 100%;
    }

    to {
        width: 0;
    }
}

@keyframes permitPopoverIn {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}
