[hidden] { display: none !important; }
.nl-popup { position: fixed; inset-inline: 0; bottom: 0; z-index: 1000; display: flex; justify-content: center; padding: 16px; pointer-events: none; }
.nl-popup__panel { pointer-events: auto; position: relative; width: min(440px, 100%); box-sizing: border-box; background: #fff; color: #111827; border-radius: 14px; box-shadow: 0 12px 40px rgba(0,0,0,.25); padding: 22px 22px 18px; }
.nl-popup__close { position: absolute; top: 8px; inset-inline-end: 10px; background: none; border: 0; font-size: 24px; line-height: 1; cursor: pointer; color: #374151; padding: 4px 8px; border-radius: 8px; }
.nl-popup__title { margin: 0 0 6px; font-size: 1.25rem; }
.nl-popup__text { margin: 0 0 14px; font-size: .95rem; color: #374151; }
.nl-popup__form { display: grid; gap: 8px; }
.nl-popup__label { font-size: .85rem; font-weight: 600; }
.nl-popup__input { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid #d1d5db; border-radius: 8px; font: inherit; }
.nl-popup__submit { padding: 10px 14px; border: 0; border-radius: 8px; background: var(--c-brand, #7c3aed); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.nl-popup__submit:disabled { opacity: .6; cursor: wait; }
.nl-popup__msg { margin: 2px 0 0; min-height: 1.2em; font-size: .9rem; color: #374151; }
.nl-popup__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.nl-popup__close:focus-visible, .nl-popup__input:focus-visible, .nl-popup__submit:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) { .nl-popup__panel { animation: nl-in .25s ease-out; } }
@keyframes nl-in { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }
