@charset "utf-8";

/* ───────── 다이얼로그 (alert / confirm) ───────── */
.op_dialog {
    position:fixed; inset:0; z-index:99999;
    background:rgba(20,16,55,0.55);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    display:flex; align-items:center; justify-content:center;
    padding:20px;
    opacity:0; pointer-events:none;
    transition:opacity 0.2s;
}
.op_dialog.show { opacity:1; pointer-events:auto; }

.op_dialog .op_dlg_box {
    width:100%; max-width:340px;
    background:#fff;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.05);
    transform:scale(0.85) translateY(8px);
    transition:transform 0.25s cubic-bezier(0.18, 1.25, 0.4, 1.1);
}
.op_dialog.show .op_dlg_box { transform:scale(1) translateY(0); }

.op_dialog .op_dlg_title {
    padding:22px 22px 0;
    font-size:16px;
    font-weight:800;
    text-align: center;
    color:#1e1a4a;
    letter-spacing:-0.3px;
}
.op_dialog .op_dlg_msg {
    padding: 22px;
    font-size: 16px;
    text-align: center;
    line-height:1.6;
    color:#333;
    word-break:keep-all;
    white-space:normal;
}
.op_dialog .op_dlg_title + .op_dlg_msg { padding-top:10px; }

.op_dialog .op_dlg_btns {
    display:flex; gap:0;
    border-top:1px solid #eee;
}
.op_dialog .op_dlg_btn {
    flex:1;
    height:50px;
    border:0;
    background:#fff;
    font-size: 15px;
    font-weight:600;
    color:#666;
    cursor:pointer;
    transition:background 0.1s;
}
.op_dialog .op_dlg_btn:hover { background:#fafafa; }
.op_dialog .op_dlg_btn.ok    {color: var(--color-main);font-weight:800;}
.op_dialog .op_dlg_btn.ok:hover { background:#f4f2ff; }
.op_dialog .op_dlg_btn.cancel + .op_dlg_btn.ok { border-left:1px solid #eee; }

/* ───────── 토스트 ───────── */
.op_toast {
    position:fixed;
    left:50%; bottom:80px;
    transform:translate(-50%, 20px);
    padding:13px 22px;
    background:rgba(20,16,55,0.92);
    color:#fff;
    font-size:13.5px; font-weight:600;
    border-radius:24px;
    box-shadow:0 8px 24px rgba(20,16,55,0.35);
    z-index:99999;
    opacity:0;
    transition:transform 0.28s cubic-bezier(0.2,1.1,0.4,1.1), opacity 0.2s;
    max-width:80%;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.op_toast.show { opacity:1; transform:translate(-50%, 0); }
.op_toast.op_toast_ok  { background:#0a7c2a; }
.op_toast.op_toast_err { background:#b00020; }

/* 폼 필드 강조 깜빡임 (약관 미동의 등 가이드용) */
.focus_blink {
    animation:focus_blink_anim 1.6s ease-in-out;
    border-radius:8px;
}
@keyframes focus_blink_anim {
    0%   { box-shadow:0 0 0 0 rgba(72,52,212,0); background-color:transparent; }
    20%  { box-shadow:0 0 0 6px rgba(72,52,212,0.18); background-color:rgba(124,92,255,0.10); }
    50%  { box-shadow:0 0 0 6px rgba(72,52,212,0); background-color:rgba(124,92,255,0.10); }
    100% { box-shadow:0 0 0 0 rgba(72,52,212,0); background-color:transparent; }
}
