.fad-popup { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 12px; }
.fad-popup[hidden] { display: none; }
.fad-popup__overlay { position: absolute; inset: 0; background: rgba(16,20,24,.5); }
.fad-popup__dialog {
    position: relative; width: min(440px, 100%); max-height: 90dvh; overflow-y: auto;
    background: #f4fbf7; border: 1px solid rgba(28,122,69,.35); border-radius: 16px;
    padding: 20px 18px; box-shadow: 0 24px 70px rgba(16,20,24,.35); color: #101418;
    opacity: 0; transform: translateY(14px) scale(.97); transition: opacity .18s, transform .18s;
}
.fad-popup.is-open .fad-popup__dialog { opacity: 1; transform: none; }
.fad-popup__close {
    position: absolute; top: 10px; right: 12px; width: 32px; height: 32px;
    border-radius: 50%; border: 1px solid #d7dde3; background: #fff; color: #101418;
    font-size: 20px; line-height: 1; cursor: pointer;
}
.fad-popup__close:hover { background: #1c7a45; color: #fff; border-color: #1c7a45; }
.fad-popup__title { margin: 0 0 4px; color: #1c7a45; font-size: 1.25rem; }
.fad-popup__sub { margin: 0 0 14px; color: #3c4650; font-size: .85rem; }
.fad-popup__form { display: grid; gap: 10px; }
.fad-popup__hp { position: absolute; left: -9999px; opacity: 0; height: 0; }
.fad-popup__label { display: grid; gap: 4px; font-size: .82rem; font-weight: 600; }
.fad-popup__input {
    border: 1px solid #d7dde3; border-radius: 10px; padding: 9px 12px; font: inherit;
    background: #fff; color: #101418;
}
.fad-popup__input:focus { outline: none; border-color: #1c7a45; box-shadow: 0 0 0 3px rgba(28,122,69,.15); }
.fad-popup__submit {
    border: none; border-radius: 10px; padding: 11px; background: #1c7a45; color: #fff;
    font-weight: 700; cursor: pointer; box-shadow: 0 8px 20px rgba(28,122,69,.35);
}
.fad-popup__submit:hover { background: #176339; }
.fad-popup__error { margin: 0; color: #c62828; font-size: .83rem; }
.fad-popup__ok { margin: 0; color: #1c7a45; font-weight: 700; font-size: .88rem; }
