.message {
    min-height: 0;
    margin: 0;
    color: var(--light);
    font-size: .8rem;
    line-height: 1.5;
}

.message:not(:empty) {
    position: relative;
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: 15px;
    padding: 13px 15px;
    border: 1px solid rgba(98, 196, 255, .34);
    border-radius: 11px;
    background: linear-gradient(135deg, rgba(16, 67, 126, .78), rgba(8, 34, 73, .94));
    color: #eaf7ff;
    box-shadow: 0 12px 28px rgba(0, 7, 24, .22);
}

.message:not(:empty)::before {
    content: "✓";
    display: grid;
    flex: 0 0 25px;
    width: 25px;
    height: 25px;
    place-items: center;
    border-radius: 50%;
    background: #2589ff;
    color: #fff;
    font-size: .72rem;
    font-weight: 900;
}

.message.error {
    border-color: rgba(255, 137, 148, .44);
    background: rgba(90, 24, 38, .52);
    color: #ffd7da;
}

.message.error::before {
    content: "!";
    background: #d94b5a;
}

.message.redirecting { padding-right: 45px; }
.message.redirecting::after {
    content: "";
    position: absolute;
    right: 15px;
    width: 15px;
    height: 15px;
    border: 2px solid rgba(255, 255, 255, .28);
    border-top-color: #fff;
    border-radius: 50%;
    animation: message-spin .75s linear infinite;
}

@keyframes message-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .message.redirecting::after { animation: none; } }
