    /* Toast notification */
    .toast-notification {
        position: fixed;
        top: 20px;
        right: 20px;
        z-index: 10000;
        min-width: 300px;
        padding: 16px 20px;
        border-radius: 8px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        display: none;
        animation: slideInRight 0.3s ease;
    }
    .toast-notification.show { display: block; }
    .toast-notification.success {
        background: #d4edda;
        border-left: 4px solid #28a745;
        color: #155724;
    }
    .toast-notification.error {
        background: #f8d7da;
        border-left: 4px solid #dc3545;
        color: #721c24;
    }
    @keyframes slideInRight {
        from { transform: translateX(100%); opacity: 0; }
        to { transform: translateX(0); opacity: 1; }
    }
    .btn-loading {
        position: relative;
        pointer-events: none;
        opacity: 0.7;
    }
    .btn-loading::after {
        content: '';
        position: absolute;
        width: 16px;
        height: 16px;
        top: 50%;
        left: 50%;
        margin-left: -8px;
        margin-top: -8px;
        border: 2px solid #ffffff;
        border-radius: 50%;
        border-top-color: transparent;
        animation: spinner 0.6s linear infinite;
    }
    @keyframes spinner {
        to { transform: rotate(360deg); }
    }