/* Shared notification system — toast popups */
.notify-container {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    pointer-events: none;
}

.notify {
    padding: 0.6rem 1.2rem;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    color: #fff;
    pointer-events: auto;
    opacity: 0;
    transform: translateX(100%);
    transition: opacity 0.3s, transform 0.3s;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.notify-show {
    opacity: 1;
    transform: translateX(0);
}

.notify-hide {
    opacity: 0;
    transform: translateX(100%);
}

.notify-success { background: #009942; }
.notify-error   { background: #c0392b; }
.notify-warning { background: #b45309; }
.notify-info    { background: #374151; }

.notify-spinner {
    display: inline-block;
    width: 0.85em;
    height: 0.85em;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: notify-spin 0.6s linear infinite;
    vertical-align: -0.1em;
    margin-right: 0.45em;
}
@keyframes notify-spin {
    to { transform: rotate(360deg); }
}