/* Fixed notifications use viewport coordinates, so the body's safe-area offset does not protect them. */
.toast-container {
    top: calc(env(safe-area-inset-top, 0px) + 20px);
    right: calc(env(safe-area-inset-right, 0px) + 20px);
    max-width: calc(100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px) - 40px);
    max-height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 40px);
    overflow-y: auto;
}
@media (max-width: 768px), (hover: none) and (pointer: coarse) {
    .toast-container {
        top: calc(var(--app-top, 0px) + env(safe-area-inset-top, 0px) + 20px);
        max-height: calc(var(--app-height, 100dvh) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 40px);
    }
}
.project-completion { flex-wrap: wrap; min-width: 0; max-width: 420px; }
.project-completion .toast-message { flex: 1 1 100%; min-width: 0; display: flex; flex-direction: column; gap: 4px; overflow-wrap: anywhere; line-height: 1.5; }
.project-completion-head { font-size: 14px; }
.project-completion-request { font-size: 12px; opacity: .7; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-completion-summary { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.project-completion button { cursor: pointer; border: 1px solid #a7c5b0; border-radius: 6px; background: transparent; color: inherit; padding: 4px 10px; }
/* Let pointer events carry the swipe-to-dismiss gesture instead of the browser scrolling or selecting text. */
@media (pointer: coarse) { .project-completion { touch-action: none; user-select: none; -webkit-user-select: none; } }
