.pv-dialog-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 20px;

    background: rgba(0, 0, 0, 0.55);
}

.pv-dialog-overlay.pv-dialog-visible {
    display: flex;
}

.pv-dialog-box {
    width: 100%;
    max-width: 420px;

    background: #ffffff;
    border-radius: 16px;

    box-shadow:
        0 12px 40px
        rgba(0, 0, 0, 0.30);

    overflow: hidden;

    animation: pvDialogOpen 0.18s ease-out;
}

@keyframes pvDialogOpen {

    from {
        opacity: 0;
        transform: scale(0.94);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.pv-dialog-header {
    padding: 17px 20px;

    background: #0d6efd;
    color: #ffffff;

    font-size: 20px;
    font-weight: bold;
}

.pv-dialog-header.success {
    background: #198754;
}

.pv-dialog-header.error {
    background: #dc3545;
}

.pv-dialog-header.warning {
    background: #ffc107;
    color: #212529;
}

.pv-dialog-body {
    padding: 22px 20px;

    color: #222222;
    font-size: 16px;
    line-height: 1.55;

    white-space: pre-line;
    overflow-wrap: anywhere;
}

.pv-dialog-footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;

    padding: 14px 20px 20px;
}

.pv-dialog-button {
    min-width: 95px;

    border: none;
    border-radius: 9px;

    padding: 12px 18px;

    font-size: 16px;
    font-weight: bold;

    cursor: pointer;
}

.pv-dialog-confirm {
    background: #0d6efd;
    color: #ffffff;
}

.pv-dialog-confirm.success {
    background: #198754;
}

.pv-dialog-confirm.error {
    background: #dc3545;
}

.pv-dialog-confirm.warning {
    background: #ffc107;
    color: #212529;
}

.pv-dialog-cancel {
    background: #e9ecef;
    color: #212529;
}

.pv-dialog-button:active {
    transform: scale(0.97);
}

.pv-dialog-button:focus {
    outline: 3px solid rgba(13, 110, 253, 0.25);
}

body.pv-dialog-open {
    overflow: hidden;
}