.alert {
    border-radius: 12px;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 6px 14px rgba(0,0,0,0.08);
    transition: background 220ms ease, box-shadow 220ms ease, transform 180ms ease, filter 180ms ease, border-color 220ms ease;
    backdrop-filter: saturate(1.15) blur(2px);
}

.alert:hover,
.alert:focus-within {
    transform: translateY(-2px) scale(1.01);
    box-shadow: 0 16px 28px rgba(0,0,0,0.14), 0 6px 12px rgba(0,0,0,0.10);
    filter: saturate(1.04);
}


.alert.alert-info { background: linear-gradient(135deg, rgba(0,74,153,0.08), rgba(30,58,138,0.08)); border-color: rgba(0,74,153,0.25); }
.alert.alert-success { background: linear-gradient(135deg, rgba(17,181,138,0.08), rgba(13,150,104,0.08)); border-color: rgba(17,181,138,0.25); }
.alert.alert-warning { background: linear-gradient(135deg, rgba(245,158,11,0.10), rgba(217,119,6,0.10)); border-color: rgba(245,158,11,0.28); }
.alert.alert-danger { background: linear-gradient(135deg, rgba(220,38,38,0.10), rgba(185,28,28,0.10)); border-color: rgba(220,38,38,0.28); }

.alert.alert-info:hover { border-color: rgba(0,74,153,0.45); }
.alert.alert-success:hover { border-color: rgba(17,181,138,0.45); }
.alert.alert-warning:hover { border-color: rgba(245,158,11,0.48); }
.alert.alert-danger:hover { border-color: rgba(220,38,38,0.48); }


.alert .alert-link,
.alert a {
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dashed currentColor;
}
.alert .alert-link:hover,
.alert a:hover {
    text-decoration: none;
    border-bottom-style: solid;
}


.toast-container {
    position: fixed;
    right: 16px;
    top: var(--toast-top, 80px);
    z-index: 1045;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: auto;
    pointer-events: none;
}

.toast {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 320px;
    max-width: 460px;
    color: var(--brand-white, #FBFFFF);
    background: linear-gradient(135deg, #0f172a 0%, #1f2937 100%);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.12);
    transform: translateX(24px);
    opacity: 0;
    animation: toast-in 320ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
    pointer-events: auto;
}

.toast.hiding { animation: toast-out 240ms ease forwards; }

@keyframes toast-in {
    from { opacity: 0; transform: translateX(24px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes toast-out {
    from { opacity: 1; transform: translateX(0); }
    to   { opacity: 0; transform: translateX(24px); }
}

.toast-title { font-weight: 700; font-size: 0.95rem; margin: 0 0 2px 0; letter-spacing: 0.01em; }
.toast-message { font-size: 0.85rem; line-height: 1.25rem; opacity: 0.95; }
.toast-close { background: transparent; border: 0; color: inherit; opacity: 0.85; cursor: pointer; padding: 2px 4px; border-radius: 6px; align-self: center; }
.toast-close:hover { opacity: 1; }

.toast-success { background: linear-gradient(135deg, var(--brand-green, #11B58A) 0%, #0d9668 100%); }
.toast-info { background: linear-gradient(135deg, var(--brand-blue, #004A99) 0%, #1e3a8a 100%); }
.toast-warning { background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%); }
.toast-danger { background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%); }

@media (max-width: 768px) {
    .toast-container { right: 10px; left: 10px; width: auto; }
    .toast { min-width: auto; max-width: none; width: 100%; }
}
