:root{
  --brand:#14903D;
  --glass-bg:rgba(255,255,255,.72);
  --glass-border:rgba(20,144,61,.18);
  --text:#0b1f16;
  --muted:#4f6b5b;
}
.nl-overlay{position:fixed;inset:0;display:none;place-items:center;background:rgba(0,0,0,.35);backdrop-filter:saturate(120%) blur(2px);z-index:9999}
.nl-overlay[open]{display:grid}
.nl-modal{position:relative;width:min(92vw, 420px);border-radius:20px;padding:22px 20px;background:var(--glass-bg);border:1px solid var(--glass-border);
  box-shadow:0 10px 30px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  animation:pop .24s cubic-bezier(.2,.8,.2,1);
}
@keyframes pop{from{opacity:.3;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.nl-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--brand);background:rgba(20,144,61,.08);border:1px solid rgba(20,144,61,.18);padding:6px 10px;border-radius:999px;margin-bottom:10px}
h2{margin:6px 0 8px 0;font-size:22px;line-height:1.25;letter-spacing:.2px}
.nl-sub{margin:0 0 14px 0;font-size:14px;color:var(--muted)}
label{font-size:12px;color:#254332}
input[type="text"], input[type="email"]{width:100%;padding:12px 14px;border-radius:12px;border:1px solid rgba(0,0,0,.12);background:#fff;outline:none}
input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(20,144,61,.12)}
.nl-actions{display:flex;gap:10px;align-items:center;margin-top:4px}
.btn{appearance:none;border:none;cursor:pointer;border-radius:12px;padding:12px 14px;font-weight:700}
.btn-primary{background:var(--brand);color:#fff;flex:1}
.btn-ghost{background:transparent;border:1px solid rgba(0,0,0,.16);color:#25523f}
.btn:hover{filter:brightness(.97)} .btn:active{transform:translateY(1px)}
.nl-note{font-size:12px;color:var(--muted);margin-top:8px}
.nl-x{position:absolute;top:10px;right:10px;background:#fff;border:1px solid rgba(0,0,0,.12);width:34px;height:34px;border-radius:10px;display:grid;place-items:center;cursor:pointer}
.nl-x:hover{background:#f6f6f6}
.nl-success{display:none}
.nl-success.show{display:block}


/* Force top-right close button to render consistently across themes */
.nl-modal .nl-x{
  all: unset;
  position:absolute;
  top:10px; right:10px;
  width:34px; height:34px;
  display:grid; place-items:center;
  background:#fff !important;
  border:1px solid rgba(0,0,0,.12) !important;
  border-radius:10px !important;
  cursor:pointer;
  font-size:18px; line-height:1;
  color:#1a1a1a !important;
  box-shadow:0 1px 2px rgba(0,0,0,.08);
}
.nl-modal .nl-x::before{ content:'\00d7'; font-weight:700; }
.nl-overlay{ z-index: 999999 !important; }
