.feedback-stack {
    position: fixed;
    z-index: 300;
    top: 24px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: max-content;
    max-width: calc(100vw - 32px);
    pointer-events: none;
}
.feedback-toast {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 600px;
    padding: 12px 18px;
    border: 1px solid rgba(215, 225, 243, .9);
    border-radius: 16px;
    background: rgba(255, 255, 255, .97);
    color: #475367;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;
    font-size: 13px;
    font-weight: 550;
    line-height: 1.55;
    letter-spacing: .1px;
    box-shadow: 0 9px 30px #1f3a621a, 0 2px 5px #15355908;
    backdrop-filter: blur(18px);
    pointer-events: auto;
    animation: feedback-arrive .25s ease both;
}
.feedback-symbol {
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    padding: 0;
    line-height: 1;
    flex-shrink: 0;
    border-radius: 50%;
    background: #48bf28;
    color: #fff;
}
.is-error .feedback-symbol { background: #f05568; }
.is-warning .feedback-symbol { background: #e9a72c; }
.is-info .feedback-symbol { background: #597fee; }
.feedback-message { min-width: 0; overflow-wrap: anywhere; }
.feedback-toast.is-leaving { animation: feedback-leave .2s ease forwards; }
@keyframes feedback-arrive { from { opacity: 0; transform: translateY(-10px) scale(.97); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes feedback-leave { to { opacity: 0; transform: translateY(-6px) scale(.98); } }
@media (max-width: 600px) {
    .feedback-stack { top: max(14px, env(safe-area-inset-top)); max-width: calc(100vw - 24px); }
    .feedback-toast { font-size: 12px; border-radius: 14px; padding: 11px 12px; }
}
@media (prefers-reduced-motion: reduce) { .feedback-toast, .feedback-toast.is-leaving { animation: none; } }
