.app-ajax-feedback {
    position: fixed;
    top: calc(var(--header-height, 68px) + env(safe-area-inset-top, 0px) + 10px);
    right: max(12px, env(safe-area-inset-right, 0px));
    z-index: var(--z-feedback, 1100);
    width: min(460px, calc(100vw - 24px));
    max-height: calc(100vh - var(--header-height, 68px) - 24px);
    max-height: calc(100dvh - var(--header-height, 68px) - 24px);
    overflow-y: auto;
    overscroll-behavior: contain;
    pointer-events: none;
}
.app-ajax-feedback-item {
    pointer-events: auto;
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    box-shadow: 0 12px 36px rgba(15, 23, 42, .18);
    border-radius: .85rem;
    padding: .9rem 1rem;
    margin: 0;
    line-height: 1.9;
    overflow-wrap: anywhere;
}
.app-ajax-feedback-item .bi { margin-top: .28rem; flex: 0 0 auto; }
.app-ajax-feedback-text { flex: 1 1 auto; min-width: 0; white-space: pre-line; }
.app-ajax-feedback-item .btn-close { flex: 0 0 auto; margin-top: .35rem; }
form[aria-busy="true"] { cursor: progress; }
form[aria-busy="true"] button[type="submit"],
form[aria-busy="true"] button:not([type]),
form[aria-busy="true"] input[type="submit"] { opacity: .72; }
form[aria-busy="true"] button[type="submit"]::after,
form[aria-busy="true"] button:not([type])::after,
form[aria-busy="true"] input[type="submit"]::after {
    content: "";
    display: inline-block;
    width: .8rem;
    height: .8rem;
    margin-inline-start: .5rem;
    border: 2px solid currentColor;
    border-left-color: transparent;
    border-radius: 50%;
    vertical-align: -.08rem;
    animation: fws-ajax-spin .65s linear infinite;
}
.app-form-draft-restored { outline: 0; }
@keyframes fws-ajax-spin { to { transform: rotate(360deg); } }
@media (max-width: 575.98px) {
    .app-ajax-feedback { top: calc(var(--header-height, 68px) + env(safe-area-inset-top, 0px) + 8px); right: max(10px, env(safe-area-inset-right, 0px)); width: calc(100vw - 20px); max-height: calc(100dvh - var(--header-height, 68px) - 16px); }
    .app-ajax-feedback-item { padding: .75rem; font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
    form[aria-busy="true"] button[type="submit"]::after,
    form[aria-busy="true"] button:not([type])::after,
    form[aria-busy="true"] input[type="submit"]::after { animation: none; }
}
