/* 공통 알림(토스트)·확인창. 로그인 모달과 같은 톤: 흰 카드, 둥근 모서리, Pretendard, 파란 주 버튼. */
.lx-toast-host { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); display: flex; flex-direction: column; gap: 8px; z-index: 3200; pointer-events: none; width: max-content; max-width: min(92vw, 520px); }
.lx-toast { pointer-events: auto; display: inline-flex; align-items: center; gap: 10px; padding: 12px 16px 12px 12px; border-radius: 12px; background: #1D1E22; color: #fff; font-family: var(--learnix-font-sans, "Pretendard", sans-serif); font-size: 14px; font-weight: 600; line-height: 1.45; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.22); opacity: 0; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease; cursor: pointer; text-align: left; }
.lx-toast.is-in { opacity: 1; transform: translateY(0); }
.lx-toast-icon { flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 900; background: rgba(255,255,255,0.14); }
.lx-toast.is-success .lx-toast-icon { background: #22c55e; color: #052e16; }
.lx-toast.is-error .lx-toast-icon { background: #f87171; color: #450a0a; }
.lx-toast.is-info .lx-toast-icon { background: #60a5fa; color: #0c1a3a; }
.lx-toast-text { color: #fff; }

.lx-confirm-overlay { position: fixed; inset: 0; z-index: 3100; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(15, 23, 42, 0.42); opacity: 0; transition: opacity .18s ease; box-sizing: border-box; }
.lx-confirm-overlay.is-in { opacity: 1; }
.lx-confirm { width: 100%; max-width: 420px; background: #fff; border-radius: 20px; box-shadow: 0 24px 60px rgba(15, 23, 42, 0.25); padding: 28px 28px 24px; box-sizing: border-box; text-align: left; font-family: var(--learnix-font-sans, "Pretendard", sans-serif); transform: translateY(10px) scale(.98); transition: transform .18s ease; }
.lx-confirm-overlay.is-in .lx-confirm { transform: none; }
.lx-confirm-title { margin: 0 0 10px; font-size: 18px; font-weight: 800; color: #0f172a; letter-spacing: -0.01em; text-align: left; }
.lx-confirm.is-danger .lx-confirm-title { color: #b91c1c; }
.lx-confirm-message { margin: 0; color: #475569; font-size: 14.5px; line-height: 1.65; text-align: left; }
.lx-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.lx-btn { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 18px; border-radius: 12px; font-family: inherit; font-size: 14px; font-weight: 800; cursor: pointer; transition: transform .16s ease, background-color .16s ease, opacity .16s ease; }
.lx-btn:focus-visible { outline: 2px solid #93c5fd; outline-offset: 2px; }
.lx-btn:active { transform: translateY(1px); }
.lx-btn-ghost { background: #F1F5F9; color: #334155; }
.lx-btn-ghost:hover { background: #E2E8F0; }
.lx-btn-primary { background: linear-gradient(180deg, #3f76ff 0%, #2858e6 100%); color: #fff; }
.lx-btn-primary:hover { filter: brightness(1.05); }
.lx-btn-danger { background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%); color: #fff; }
.lx-btn-danger:hover { filter: brightness(1.05); }
@media (max-width: 520px) { .lx-confirm { padding: 22px 20px 18px; border-radius: 16px; } .lx-confirm-actions { flex-direction: column-reverse; } .lx-btn { width: 100%; min-height: 46px; } .lx-toast-host { bottom: 18px; } }
