:root {
        --custom-alert-bg: #1E1E1E; --custom-alert-text: #E0E0E0; --custom-alert-title: #fff;
        --custom-alert-border: #444; --custom-alert-overlay: rgba(0, 0, 0, .7);
        --custom-alert-btn-primary-bg: #4A90E2; --custom-alert-btn-primary-text: #fff;
        --custom-alert-btn-secondary-bg: #333; --custom-alert-btn-secondary-text: #E0E0E0;
    }
    .custom-alert-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--custom-alert-overlay); display: flex; align-items: center; justify-content: center; z-index: 1000; opacity: 0; transition: opacity .2s ease-in-out; }
    .custom-alert-overlay.active { opacity: 1; }
    .custom-alert-box { background: var(--custom-alert-bg); padding: 24px; border-radius: 12px; border: 1px solid var(--custom-alert-border); width: 90%; max-width: 400px; text-align: center; font-family: 'Inter', sans-serif; transform: scale(.95); transition: transform .2s ease-in-out; }
    .custom-alert-overlay.active .custom-alert-box { transform: scale(1); }
    .custom-alert-title { font-size: 20px; font-weight: 700; color: var(--custom-alert-title); margin: 0 0 10px 0; }
    .custom-alert-message { font-size: 16px; color: var(--custom-alert-text); margin: 0 0 24px 0; line-height: 1.5; }
    .custom-alert-buttons { display: flex; justify-content: center; gap: 12px; }
    .custom-alert-button { border: none; padding: 12px 24px; border-radius: 8px; font-size: 16px; font-weight: 500; cursor: pointer; transition: background-color .2s; flex-grow: 1; }
    .custom-alert-button.primary { background-color: var(--custom-alert-btn-primary-bg); color: var(--custom-alert-btn-primary-text); }
    .custom-alert-button.primary:hover { filter: brightness(1.1); }
    .custom-alert-button.secondary { background-color: var(--custom-alert-btn-secondary-bg); color: var(--custom-alert-btn-secondary-text); }
    .custom-alert-button.secondary:hover { filter: brightness(1.2); }

    .alert { padding: 12px 16px; margin-bottom: 16px; border-radius: 8px; font-weight: 500; text-align: left; border: 1px solid; }
    .alert-error { background-color: #4d2a2a; color: #ffc2c2; border-color: #883a3a; }
    .alert-success { background-color: #2a4d3e; color: #c2ffe5; border-color: #3a8862; }