/* TRACKER 2.152e — referral: invitation-code field on sign-up ("Invited by …", D2) + "X invited you" banner (D5). */
.sewa-ref-invite { margin: 0; }
.sewa-ref-invite-by { margin: 0 0 6px; padding: 8px 12px; border-radius: 10px; background: var(--sewa-accent-soft, #eaf4ff); color: var(--sewa-text-strong, #2b2f36); font-size: var(--sewa-font-size-sm, 14px); line-height: 1.45; overflow-wrap: anywhere; }
.sewa-ref-invite-by.is-error { background: var(--sewa-bg-soft, #f7f8fa); color: var(--sewa-field-error, #c41034); }
.sewa-ref-invite-input { text-transform: uppercase; letter-spacing: .08em; }
.sewa-ref-invite-input::placeholder { text-transform: none; letter-spacing: normal; }
.sewa-ref-banner { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 9990; display: flex; align-items: center; gap: 10px; max-width: 560px; margin: 0 auto; padding: 10px 8px 10px 16px; border-radius: 14px; background: var(--sewa-navy, #1f2a44); color: #fff; box-shadow: 0 8px 28px rgba(0, 0, 0, .25); font-size: var(--sewa-font-size-sm, 14px); line-height: 1.4; box-sizing: border-box; }
/* 2.152h: never over a dialog — on a phone the banner covered "Agree" of the rules dialog during sign-up */
body:has(.mfp-wrap) .sewa-ref-banner, body:has(.sewa-liab-modal:not([hidden])) .sewa-ref-banner, body:has(#sign-in-dialog:not(.mfp-hide)) .sewa-ref-banner { display: none; }
.sewa-ref-banner span { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.sewa-ref-banner button { flex: 0 0 auto; min-height: 44px; border: 0; border-radius: 10px; cursor: pointer; font: inherit; }
.sewa-ref-banner .sewa-ref-banner-cta { padding: 0 14px; background: #fff; color: var(--sewa-navy, #1f2a44); font-weight: 700; }
.sewa-ref-banner .sewa-ref-banner-x { width: 44px; padding: 0; background: transparent; color: #fff; font-size: 24px; line-height: 1; }
.sewa-ref-banner button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
