div.dialog-backdrop {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(34, 34, 34, 0.4);
    z-index: 99;
}

/*
div.dialog-backdrop ~ div.dialog-backdrop {
    background-color: none;
}
*/

div.dialog {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background-color: white;
    display: flex;
    flex-direction: column;
    gap: 15px;
    font-size: 14px;
    padding: 30px 40px;
    min-width: 300px;
    max-width: 800px;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    z-index: 101;
}

div.dialog-header {
    font-weight: bold;
    font-size: 20px;
}

div.dialog button {
    align-self: flex-start;
    padding: 5px 20px;
    font-size: 15px;
}

div.spinner {
    position: fixed;
    z-index: 100; /* appear below dialog */
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(0deg);
    width: 50px;
    height: 50px;
    background-color: #f9e784;
    border: 5px solid #d05353;
    animation: spin 1.5s ease-out infinite;
}

@keyframes spin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}
