﻿:root{
  --nd-btn-text:#EDEBFF;
  --nd-btn-border:rgba(255,255,255,.16);
  --nd-btn-bg:rgba(255,255,255,.06);
  --nd-btn-shadow:0 8px 24px rgba(0,0,0,.35), inset 0 1px rgba(255,255,255,.12);
  --nd-btn-primary-bg:linear-gradient(135deg,#7B5CFF 0%,#8C76FF 45%,#9F8FFF 65%,#B7B0C6 100%);
  --nd-btn-primary-shadow:0 12px 30px rgba(123,92,255,.35), inset 0 1px rgba(255,255,255,.25), inset 0 -1px rgba(0,0,0,.25);
  --nd-btn-strong-shadow:0 18px 40px rgba(123,92,255,.35), inset 0 1px rgba(255,255,255,.25), inset 0 -1px rgba(0,0,0,.25);
  --nd-toast-bg:rgba(15,23,42,.94);
  --nd-toast-border:rgba(255,255,255,.12);
  --nd-toast-text:#e5e7eb;
}

:where(.btn, .vault-link, .vault-btn){
  appearance:none;
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid var(--nd-btn-border);
  background:var(--nd-btn-bg);
  color:var(--nd-btn-text);
  font:inherit;
  font-weight:800;
  text-decoration:none;
  text-transform:none;
  letter-spacing:.2px;
  cursor:pointer;
  user-select:none;
  overflow:hidden;
  isolation:isolate;
  box-shadow:var(--nd-btn-shadow);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease, opacity .2s ease;
}

:where(.btn, .vault-link, .vault-btn):hover{
  transform:translateY(-1px);
  background:linear-gradient(180deg, rgba(162,119,255,.18), rgba(255,255,255,.07));
  border-color:rgba(162,119,255,.24);
  box-shadow:0 14px 30px rgba(0,0,0,.30), inset 0 1px rgba(255,255,255,.18);
}

:where(.btn, .vault-link, .vault-btn):active{
  transform:translateY(1px) scale(.995);
}

:where(.btn, .btn2, .vault-link, .vault-btn)::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(115deg, rgba(255,255,255,0) 46%, rgba(255,255,255,.45) 50%, rgba(255,255,255,0) 54%);
  transform:translateX(-120%);
  transition:transform .6s cubic-bezier(.22,1,.36,1);
}

:where(.btn, .btn2, .vault-link, .vault-btn):hover::before{
  transform:translateX(120%);
}

:where(.btn, .btn2, .vault-link, .vault-btn)[disabled],
:where(.btn, .btn2, .vault-link, .vault-btn):disabled{
  opacity:.6;
  cursor:not-allowed;
  filter:saturate(.75) grayscale(.1);
  transform:none;
  box-shadow:none;
}

:where(.btn, .btn2, .vault-link, .vault-btn)[disabled]::before,
:where(.btn, .btn2, .vault-link, .vault-btn):disabled::before{
  display:none;
}

.btn.sm{
  min-height:36px;
  padding:0 14px;
  font-size:12px;
}

.btn.xl{
  min-height:60px;
  padding:0 32px;
  border-radius:16px;
  font-size:18px;
}

.btn.primary{
  border:none;
  background:var(--nd-btn-primary-bg);
  color:#fff;
  text-shadow:0 1px 0 rgba(0,0,0,.35);
  box-shadow:var(--nd-btn-primary-shadow);
}

.btn.ghost{
  background:rgba(255,255,255,.07);
  backdrop-filter:saturate(120%) blur(2px);
}

.btn.danger{
  background:#2a1517;
  border-color:#3a1f22;
  color:#ff9a9a;
}

.btn.danger:hover{
  background:#351a1d;
  border-color:#513036;
}

.btn.w100{
  width:100%;
}

:where(.btn2, .vault-btn-primary){
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:56px;
  padding:0 24px;
  border-radius:22px;
  border:1px solid rgba(147,123,255,.7);
  background:var(--nd-btn-primary-bg);
  color:#fff;
  font:inherit;
  font-size:16px;
  font-weight:900;
  text-decoration:none;
  text-transform:none;
  letter-spacing:.2px;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  box-shadow:var(--nd-btn-strong-shadow);
}

:where(.btn2, .vault-btn-primary).alt,
.btn2.alt{
  border:1px solid rgba(255,255,255,.25);
  color:#EDEBFF;
  background:linear-gradient(180deg,rgba(255,255,255,.20),rgba(255,255,255,.10));
  box-shadow:inset 0 1px rgba(255,255,255,.25), inset 0 -1px rgba(0,0,0,.15);
}

.nd-toast,
#msg,
.vault-notice{
  position:fixed;
  left:50%;
  bottom:max(18px, env(safe-area-inset-bottom, 0px));
  z-index:10020;
  width:min(620px, calc(100vw - 24px));
  margin:0;
  padding:0;
  border-radius:18px;
  border:1px solid transparent;
  background:var(--nd-toast-bg);
  color:var(--nd-toast-text);
  font-size:14px;
  font-weight:700;
  line-height:1.45;
  text-align:center;
  box-shadow:0 20px 60px rgba(2,6,23,.48);
  backdrop-filter:blur(18px) saturate(120%);
  -webkit-backdrop-filter:blur(18px) saturate(120%);
  transform:translate(-50%, 16px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease, transform .22s ease, visibility .22s ease, border-color .18s ease, background .18s ease;
}

#msg:not(:empty),
.nd-toast.is-visible,
.vault-notice.is-visible{
  opacity:1;
  visibility:visible;
  transform:translate(-50%, 0);
  padding:14px 16px;
}

#msg.ok,
.nd-toast.is-success,
.vault-notice.is-success{
  color:#dcfce7;
  background:rgba(11,38,24,.94);
  border-color:rgba(34,197,94,.34);
}

#msg.err,
.nd-toast.is-error,
.vault-notice.is-error{
  color:#ffe2e2;
  background:rgba(50,18,24,.95);
  border-color:rgba(255,107,107,.34);
}

#msg.info,
.nd-toast.is-info,
.vault-notice.is-info{
  color:#ede9fe;
  background:rgba(31,24,57,.95);
  border-color:rgba(162,119,255,.34);
}

#msg.promo,
.nd-toast.is-promo,
.vault-notice.is-promo{
  color:#f5f3ff;
  background:rgba(76,29,149,.92);
  border-color:rgba(196,181,253,.28);
}

@media (prefers-reduced-motion: reduce){
  :where(.btn, .btn2, .vault-link, .vault-btn, .vault-btn-primary, .nd-toast, #msg, .vault-notice){
    transition:none !important;
  }

  :where(.btn, .btn2, .vault-link, .vault-btn)::before{
    display:none !important;
  }
}
