/* ===================== Notify — ธีม SweetAlert2 (dark + glass) =====================
   ใช้ token จาก style.css: --bg --ink --muted --line --glass --red --ok --warn --bad · ปุ่มใช้ .btn / .btn.ghost / .btn.danger */
.swal2-container{z-index:3000;font-family:var(--font)}
.swal2-container.swal2-backdrop-show{background:rgba(8,6,12,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.swal2-container:has(.swal2-toast),.swal2-container.swal2-no-backdrop{background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
body.swal2-toast-shown .swal2-container{padding:14px}

/* ---------- Toast ---------- */
.swal2-popup.nt-ok{--c:var(--ok);--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.swal2-popup.nt-err{--c:#ff7a8c;--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E")}
.swal2-popup.nt-warn{--c:var(--warn);--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v10M12 19v.01'/%3E%3C/svg%3E")}
.swal2-popup.nt-info{--c:#6cb6ff;--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 11v7M12 6v.01'/%3E%3C/svg%3E")}
.swal2-popup.swal2-toast.nt{
  width:auto;min-width:250px;max-width:min(390px,calc(100vw - 28px));margin:0;padding:12px 16px 12px 14px;cursor:pointer;overflow:hidden;
  border:1px solid color-mix(in srgb,var(--c) 40%,var(--line));border-radius:14px;color:var(--ink);
  background:linear-gradient(135deg,color-mix(in srgb,var(--c) 14%,transparent),transparent 55%),color-mix(in srgb,var(--bg) 78%,transparent);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 14px 36px rgba(0,0,0,.5),0 0 0 1px rgba(0,0,0,.2);
}
.swal2-popup.swal2-toast.nt .swal2-title{
  position:relative;display:block;flex:1;min-width:0;margin:0;padding:1px 0 1px 36px;
  font:inherit;font-size:.94rem;font-weight:400;line-height:1.6;text-align:left;color:var(--ink);white-space:pre-line;overflow-wrap:anywhere;
}
/* ไอคอนวางแบบ absolute ขนาดคงที่ → ไม่ถูกบีบ/ยืนตามความสูงข้อความหลายบรรทัด และไม่มีเงานอกกรอบให้โดนตัด */
.swal2-popup.swal2-toast.nt .swal2-title::before{
  content:"";position:absolute;left:0;top:1px;box-sizing:border-box;width:24px;height:24px;border-radius:50%;
  background:var(--ic) center/14px 14px no-repeat,var(--c);
}
.swal2-popup.swal2-toast.nt .swal2-timer-progress-bar-container{height:3px;background:rgba(255,255,255,.06)}
.swal2-popup.swal2-toast.nt .swal2-timer-progress-bar{background:var(--c);opacity:.8}

/* ---------- กล่องยืนยัน ---------- */
.swal2-popup.nt-dlg{
  --c:var(--accent-text);
  width:min(410px,calc(100vw - 32px));padding:28px 24px 22px;color:var(--ink);
  border:1px solid var(--line);border-radius:20px;
  background:radial-gradient(120% 70% at 50% -10%,rgba(var(--red-rgb),.16),transparent 60%),color-mix(in srgb,var(--bg) 84%,#fff 3%);
  -webkit-backdrop-filter:blur(22px) saturate(1.5);backdrop-filter:blur(22px) saturate(1.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 28px 70px rgba(0,0,0,.6);
}
.swal2-popup.nt-dlg.nt-danger{--c:var(--warn);background:radial-gradient(120% 70% at 50% -10%,rgba(255,196,64,.13),transparent 60%),color-mix(in srgb,var(--bg) 84%,#fff 3%)}
.swal2-popup.nt-dlg .swal2-icon{width:4.6em;height:4.6em;font-size:.82rem;margin:0 auto 14px;background:color-mix(in srgb,var(--c) 10%,transparent);border-color:color-mix(in srgb,var(--c) 55%,transparent);color:var(--c);box-shadow:0 0 0 7px color-mix(in srgb,var(--c) 8%,transparent)}
.swal2-popup.nt-dlg .swal2-icon .swal2-icon-content{font-family:var(--font)}
.swal2-popup.nt-dlg .swal2-title{padding:0;margin:0;font-size:1.18rem;font-weight:700;line-height:1.4;color:var(--ink)}
.swal2-popup.nt-dlg .swal2-html-container{margin:10px 0 0;padding:0;font-size:.94rem;line-height:1.65;color:var(--muted);white-space:pre-line;overflow-wrap:anywhere}
.swal2-popup.nt-dlg .swal2-actions{width:100%;margin:24px 0 0;gap:10px;flex-wrap:nowrap}
.swal2-popup.nt-dlg .swal2-actions .btn{flex:1;margin:0;min-height:42px;font-family:var(--font)}
.swal2-popup.nt-dlg .swal2-actions .btn:focus-visible{outline:2px solid var(--c);outline-offset:2px}

/* ---------- กล่องยืนยันสำรอง (Swal ไม่พร้อม) ---------- */
.nt-fb{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:16px;background:rgba(8,6,12,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.nt-fb-box{width:min(410px,100%);padding:28px 24px 22px;text-align:center;color:var(--ink);
  border:1px solid var(--line);border-radius:20px;background:color-mix(in srgb,var(--bg) 88%,#fff 3%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 28px 70px rgba(0,0,0,.6);animation:nt-fb-in .18s ease-out}
.nt-fb-t{margin:0;font-size:1.18rem;font-weight:700;color:var(--ink)}
.nt-fb-p{margin:10px 0 0;font-size:.94rem;line-height:1.65;color:var(--muted);white-space:pre-line;overflow-wrap:anywhere}
.nt-fb-a{display:flex;gap:10px;margin-top:24px}.nt-fb-a .btn{flex:1;margin:0}
@keyframes nt-fb-in{from{opacity:0;transform:scale(.96)}}
@media(prefers-reduced-motion:reduce){.swal2-popup,.swal2-container,.swal2-icon,.swal2-icon *,.nt-fb-box{animation:none!important;transition:none!important}}
