.bubble-alert.bubble-alert {
    position: fixed;
    z-index: 2200;
    top: calc(max(1rem, env(safe-area-inset-top)) + var(--bubble-offset, 0px));
    right: max(1rem, env(safe-area-inset-right));
    bottom: auto;
    left: auto;
    width: min(25rem, calc(100vw - 2rem - env(safe-area-inset-right) - env(safe-area-inset-left)));
    max-width: none;
    max-height: calc((100dvh - 4rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)) / 3);
    overflow: auto;
    margin: 0 !important;
    padding: .9rem 3.5rem .9rem 1.1rem;
    border: 1px solid var(--bs-alert-border-color, #d2e0d1);
    border-radius: 1rem;
    background: var(--bs-alert-bg, #edf4ed);
    color: var(--bs-alert-color, #355c46);
    box-shadow: 0 8px 28px #46351b26;
    font-size: .87rem;
    line-height: 1.65;
    overflow-wrap: anywhere;
    pointer-events: auto;
    transform: none;
    animation: bubble-alert-enter .18s ease-out;
}
.bubble-alert.is-error { --bs-alert-bg: #fcf0ec; --bs-alert-color: #8b4038; --bs-alert-border-color: #ebccc3; }
.bubble-alert[data-bubble-state="queued"], .bubble-alert[data-bubble-state="expired"] { display: none !important; }
.bubble-alert > :last-child { margin-bottom: 0; }
.bubble-alert-close {
    position: fixed;
    z-index: 2201;
    top: calc(max(1rem, env(safe-area-inset-top)) + var(--bubble-offset, 0px) + .25rem);
    right: calc(max(1rem, env(safe-area-inset-right)) + .25rem);
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: .75rem;
    background: transparent;
    color: #645b4e;
    font: inherit;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}
.bubble-alert-close:hover { background: #46351b0d; }
.bubble-alert-close:focus-visible { outline: 2px solid #916022; outline-offset: -3px; }
.bubble-alert-close[hidden] { display: none; }
@keyframes bubble-alert-enter {
    from { opacity: 0; transform: translateY(-.4rem); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) { .bubble-alert.bubble-alert { animation: none; } }
@media print {
    .bubble-alert.bubble-alert, .bubble-alert-close { display: none !important; }
}
