.ns-promotion-entry{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:none;border:0;color:var(--ns-secondary);font:inherit;font-size:13px;line-height:24px;cursor:pointer;white-space:nowrap}
.ns-promotion-entry svg{width:24px;height:24px;color:#29a9df;flex-shrink:0}.ns-promotion-entry strong{color:#29a9df}.ns-promotion-entry:hover{color:#2ca5e0}.ns-promotion-entry:focus-visible{outline:2px solid #29a9df;outline-offset:4px;border-radius:6px}
.ns-promo-dialog{box-sizing:border-box;width:580px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);margin:auto;padding:26px;border:1px solid #e5e7eb;border-radius:22px;background:#fff;color:#111827;box-shadow:0 24px 80px #0003;overflow:auto;overscroll-behavior:contain;font-family:inherit;color-scheme:light}
.ns-promo-dialog::backdrop{background:#080c1466;backdrop-filter:blur(6px)}html.dark .ns-promo-dialog{background:#11131a;border-color:#272b38;color:#f3f4f6;color-scheme:dark}
.ns-promo-dialog [hidden]{display:none!important}.ns-promo-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.ns-promo-header p{margin:0 0 6px;color:#258fbd;font-size:11px;letter-spacing:.08em}.ns-promo-header h2{font-size:22px;font-weight:700;line-height:1.4;margin:0}.ns-promo-header h2:focus{outline:none}.ns-promo-close{padding:6px;width:40px;height:40px;font-size:28px;line-height:24px;color:#9ca3af;background:transparent;border:0;border-radius:10px;cursor:pointer}
.ns-promo-intro,.ns-promo-note{font-size:12px;line-height:1.8;color:#6b7280;margin:0 0 18px}html.dark .ns-promo-intro,html.dark .ns-promo-note{color:#9ca3af}
#ns-promo-details label{display:block;font-size:13px;font-weight:600;margin-bottom:16px}#ns-promo-details input{display:block;box-sizing:border-box;width:100%;margin-top:8px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:11px;background:#f9fafb;color:inherit;font:inherit;font-size:14px;font-weight:400;outline:none}html.dark #ns-promo-details input{background:#0b0e16;border-color:#2a2e3c}#ns-promo-details input:focus{border-color:#29a9df;box-shadow:0 0 0 3px #29a9df15}
.ns-promo-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:20px}.ns-promo-primary,.ns-promo-secondary{font:inherit;font-size:13px;font-weight:600;padding:12px 18px;border-radius:11px;cursor:pointer;border:0}.ns-promo-primary{background:#151923;color:#fff}.ns-promo-secondary{background:#f3f4f6;color:#4b5563}html.dark .ns-promo-primary{background:#f3f4f6;color:#111827}html.dark .ns-promo-secondary{background:#252936;color:#d1d5db}.ns-promo-dialog button:disabled{opacity:.45;cursor:not-allowed}.ns-promo-dialog button:focus-visible{outline:2px solid #29a9df;outline-offset:3px}
.ns-promo-contract{max-height:38dvh;overflow:auto;overscroll-behavior:contain;padding:18px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;font-size:12px;line-height:1.9}.ns-promo-contract h3{font-size:15px;font-weight:700;margin:0 0 8px}.ns-promo-contract h4{font-size:13px;font-weight:700;margin:18px 0 6px}.ns-promo-contract p{margin:0 0 8px}html.dark .ns-promo-contract{background:#0b0e16;border-color:#272b38}.ns-promo-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.8;margin-top:18px;cursor:pointer}.ns-promo-consent input{flex-shrink:0;width:16px;height:16px;margin:3px 0 0;accent-color:#1597ce}.ns-promo-success{text-align:center;padding:8px 0}.ns-promo-check{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;background:#29a9df15;color:#1597ce;font-size:30px;line-height:56px}.ns-promo-success>p{margin-bottom:14px}#ns-promo-receipt{font-size:10px;overflow-wrap:anywhere}#ns-promo-error{font-size:12px;color:#dc2626;line-height:1.7;margin:14px 0 0}#ns-promo-error:empty{display:none}
@media(max-width:640px){.ns-promotion-entry{font-size:11px;gap:6px;padding:8px 0}.ns-promo-dialog{padding:22px 18px;border-radius:18px}.ns-promo-header h2{font-size:20px}#ns-promo-details input{font-size:16px}.ns-promo-primary,.ns-promo-secondary{font-size:12px;padding:12px 14px}.ns-footer-links{gap:18px}.ns-footer-links .ns-community a{font-size:11px}}
.ns-promotion-links{display:flex;align-items:center;justify-content:center;gap:24px;width:100%}.ns-promotion-links .ns-community{padding:0}@media(max-width:640px){.ns-promotion-links{gap:18px}.ns-promotion-links .ns-community a{padding:8px 0}.ns-promotion-links svg{width:22px;height:22px}}

/* Step indicator sits at the lower left, alongside the action buttons. */
.ns-promo-actions{flex-wrap:wrap}.ns-promo-progress{margin-right:auto;color:#258fbd;font-size:11px;line-height:1.6;letter-spacing:.04em;white-space:nowrap;text-align:left}.ns-promo-header{align-items:center}
@media(max-width:400px){.ns-promo-actions{gap:8px}.ns-promo-progress{font-size:10px}.ns-promo-actions .ns-promo-primary,.ns-promo-actions .ns-promo-secondary{padding:12px 10px;font-size:11px}}

/* One stable container for every step; content never determines its size. */
.ns-promo-dialog{width:580px;height:min(620px,calc(100dvh - 28px));max-height:calc(100dvh - 28px);overflow:hidden}
.ns-promo-dialog[open]{display:flex;flex-direction:column}
.ns-promo-header{flex:0 0 auto;position:relative;z-index:2;align-items:center}
.ns-promo-dialog [data-promo-step="details"],.ns-promo-dialog [data-promo-step="agreement"]{display:flex;flex-direction:column;flex:1 1 0;min-height:0;margin:0}
.ns-promo-fields{flex:1 1 0;min-height:0;overflow:auto;overscroll-behavior:contain;padding:3px 3px 0;margin:0 -3px}
.ns-promo-dialog .ns-promo-actions{flex:0 0 auto;margin-top:18px}
.ns-promo-dialog [data-promo-step="agreement"]>.ns-promo-intro{flex:0 0 auto}
.ns-promo-dialog .ns-promo-contract{flex:1 1 0;min-height:0;max-height:none;overflow:auto}
#ns-promo-sign{flex:0 0 auto}
#ns-promo-error{flex:0 0 auto}
.ns-promo-dialog .ns-promo-success{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:76px 24px;pointer-events:none;box-sizing:border-box}
.ns-promo-success .ns-promo-check{flex:0 0 auto;margin:0 0 24px}
.ns-promo-success>p{margin:0 0 14px}
.ns-promo-success>.ns-promo-note{margin:0}

.ns-promo-success>.ns-promo-thanks{font-family:inherit;font-size:15px;font-weight:700;line-height:1.9}

.ns-promo-mail-row{display:flex;gap:10px;align-items:flex-end}.ns-promo-mail-row label{flex:1;min-width:0}.ns-promo-mail-row button{flex-shrink:0;margin-bottom:0}#ns-promo-mail-status:empty{display:none}#ns-promo-mail-status{margin:0;color:var(--ns-secondary)}

#ns-promo-details .ns-promo-mail-row{margin-bottom:16px;align-items:flex-end}#ns-promo-details .ns-promo-mail-row label{margin-bottom:0}#ns-promo-details .ns-promo-mail-row input,#ns-promo-details .ns-promo-mail-row button{height:48px;box-sizing:border-box}#ns-promo-details .ns-promo-mail-row button{margin:0;display:flex;align-items:center;justify-content:center;white-space:nowrap}

/* Compact form keeps all five fields visible in the shared dialog. */
#ns-promo-details label{font-size:12px;line-height:18px;margin-bottom:12px}#ns-promo-details input{height:40px;margin-top:6px;padding:9px 12px;font-size:13px;line-height:20px;border-radius:9px}#ns-promo-details .ns-promo-intro{font-size:11px;line-height:1.6;margin-bottom:14px}#ns-promo-details .ns-promo-mail-row{gap:10px;margin-bottom:12px}#ns-promo-details .ns-promo-mail-row label{margin-bottom:0}#ns-promo-details .ns-promo-mail-row input,#ns-promo-details .ns-promo-mail-row button{height:40px}#ns-promo-details .ns-promo-mail-row button{font-size:11px;padding:8px 12px;border-radius:9px}#ns-promo-mail-status{font-size:11px;line-height:16px}#ns-promo-mail-status:not(:empty){margin:-4px 0 10px}

#ns-promo-mail-send:disabled{background:#e5e7eb;color:#9ca3af;opacity:1;cursor:not-allowed}html.dark #ns-promo-mail-send:disabled{background:#252936;color:#6b7280}

#ns-promo-details .ns-promo-otp-heading{display:flex;align-items:center;gap:10px;min-width:0;height:18px;white-space:nowrap}#ns-promo-details #ns-promo-mail-status{margin:0!important;font-size:10px;line-height:18px;font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis}#ns-promo-details #ns-promo-mail-send{width:100px;min-width:100px;max-width:100px;flex:0 0 100px;padding-left:6px;padding-right:6px}
