/* 커스텀 확인 모달 */
.confirm-modal_overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 99999;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.confirm-modal_overlay.is-open { display: flex; }
.confirm-modal {
    background: var(--card, #fff);
    border-radius: var(--r-3xl, 20px);
    padding: var(--sp-9, 36px) var(--sp-8, 32px) var(--sp-7, 28px);
    max-width: 400px;
    width: 90%;
    text-align: center;
    box-shadow: 0 24px 60px rgba(0,0,0,0.18);
    animation: confirmFadeIn 0.2s ease;
}
@keyframes confirmFadeIn {
    from { opacity: 0; transform: translateY(12px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.confirm-modal_icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.confirm-modal_icon svg {
    width: 28px;
    height: 28px;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.confirm-modal_icon--purple { background: var(--purple-soft, #f3f0ff); }
.confirm-modal_icon--purple svg { stroke: var(--purple, #6d28d9); fill: none; }
.confirm-modal_icon--blue { background: #eff6ff; }
.confirm-modal_icon--blue svg { stroke: #2563eb; fill: none; }
.confirm-modal_icon--amber { background: #fffbeb; }
.confirm-modal_icon--amber svg { stroke: #d97706; fill: none; }
.confirm-modal_title {
    font-size: var(--fs-modal-title, 17px);
    font-weight: 700;
    color: #222;
    margin-bottom: var(--sp-2, 8px);
    line-height: var(--lh-snug, 1.3);
}
.confirm-modal_desc {
    font-size: var(--fs-body-sm, 14px);
    color: #666;
    line-height: var(--lh-relaxed, 1.6);
    margin-bottom: var(--sp-6, 24px);
}
.confirm-modal_desc strong { color: #333; font-weight: 600; }
.confirm-modal_btns {
    display: flex;
    gap: var(--sp-2h, 10px);
}
.confirm-modal_btn {
    flex: 1;
    padding: 13px;
    border-radius: var(--r-lg, 12px);
    font-size: var(--fs-body-sm, 14px);
    font-weight: 600;
    cursor: pointer;
    border: none;
    transition: all 0.2s;
}
.confirm-modal_btn--cancel {
    background: #f3f4f6;
    color: #555;
}
.confirm-modal_btn--cancel:hover { background: #e5e7eb; }
.confirm-modal_btn--purple {
    background: linear-gradient(135deg, var(--purple, #6d28d9), #5b21b6);
    color: #fff;
}
.confirm-modal_btn--purple:hover { background: linear-gradient(135deg, #7c3aed, var(--purple, #6d28d9)); }
.confirm-modal_btn--blue {
    background: #2563eb;
    color: #fff;
}
.confirm-modal_btn--blue:hover { background: #1d4ed8; }