:root {
  --swex-ui-pink: #f22978;
  --swex-ui-pink-deep: #d80d63;
  --swex-ui-green: #22b573;
  --swex-ui-canvas: #f4f4f7;
  --swex-ui-ink: #17161b;
  --swex-ui-muted: #85838d;
  --swex-ui-line: rgba(31, 27, 38, .09);
}

/* Referral controls: equal columns, equal inner padding and no right overflow. */
.page-profile .referral-card {
  position: relative;
  overflow: hidden;
  border-color: rgba(31, 27, 38, .07);
  background:
    radial-gradient(circle at 100% 0, rgba(242, 41, 120, .075), transparent 38%),
    rgba(255, 255, 255, .96);
}

.page-profile .referral-card .button-pair {
  width: 100%;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  box-sizing: border-box;
}

.page-profile .referral-card .button-pair > button {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding-right: 9px;
  padding-left: 9px;
  gap: 7px;
  white-space: nowrap;
  overflow: hidden;
}

.page-profile .referral-card .button-pair > button svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

.page-profile .referral-link {
  border-color: rgba(31, 27, 38, .09);
  background: #f2f2f6;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .75);
}

/* Profile identity is informational; the old chevron suggested a dead action. */
.page-profile .profile-card {
  min-height: 116px;
  gap: 15px;
  border-color: rgba(31, 27, 38, .07);
  background:
    radial-gradient(circle at 96% 6%, rgba(242, 41, 120, .11), transparent 43%),
    rgba(255, 255, 255, .96);
}

.page-profile .profile-identity {
  flex: 1 1 auto;
  min-width: 0;
}

.page-profile .profile-chevron {
  display: none !important;
}

.plan-card .benefit {
  display: none !important;
}

/* Quick actions no longer belong to the home screen. This also hides a
   stale row if Telegram still has an older swex-connect.js in memory. */
.page-home .swex-utility-actions {
  display: none !important;
}

.swex-profile-promo {
  box-sizing: border-box;
  margin: 12px 0 23px;
  padding: 0;
  border: 1px solid rgba(31, 27, 38, .07);
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(250, 247, 250, .96));
  box-shadow: 0 12px 32px rgba(35, 28, 39, .055);
  overflow: hidden;
}

.swex-profile-promo__button {
  display: grid;
  width: 100%;
  min-height: 72px;
  padding: 12px 14px;
  grid-template-columns: 42px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  border: 0;
  background: transparent;
  color: #1c1c1e;
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.swex-profile-promo__button:active {
  background: rgba(118, 118, 128, .075);
}

.swex-profile-promo__icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 13px;
  color: #e91e70;
  background: linear-gradient(145deg, #fff1f7, #f9dce9);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .82);
}

.swex-profile-promo__icon svg {
  display: block;
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.swex-profile-promo__copy {
  min-width: 0;
}

.swex-profile-promo__copy strong,
.swex-profile-promo__copy small {
  display: block;
}

.swex-profile-promo__copy strong {
  font-size: 15px;
  font-weight: 730;
  letter-spacing: -.22px;
}

.swex-profile-promo__copy small {
  margin-top: 3px;
  color: #8e8e93;
  font-size: 12px;
  font-weight: 510;
}

.swex-profile-promo__chevron {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #b1b1b6;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.swex-project-stage-notice {
  margin: 12px 0 4px;
  padding: 13px 14px 14px;
  border: 1px solid rgba(191, 123, 17, .17);
  border-radius: 17px;
  color: #453714;
  background: linear-gradient(145deg, rgba(255, 251, 239, .98), rgba(255, 246, 224, .94));
  box-shadow: 0 8px 22px rgba(121, 83, 20, .055);
}

.swex-project-stage-notice strong {
  display: block;
  color: #2f2716;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: -.18px;
}

.swex-project-stage-notice p {
  margin: 5px 0 0;
  color: #71613b;
  font-size: 12px;
  font-weight: 520;
  line-height: 1.42;
}

.swex-project-stage-notice--checkout {
  margin: 0 0 14px;
}

.page-subscription .continue-button:disabled {
  color: #96969e;
  background: #e9e9ee;
  box-shadow: none;
}

/* Native-looking iOS balance section. */
.swex-profile-finance {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 12px;
  min-height: 82px;
  margin: -7px 0 23px;
  padding: 14px 15px;
  border-radius: 22px;
  border: 1px solid rgba(31, 27, 38, .07);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(250, 247, 250, .96));
  box-shadow: 0 12px 32px rgba(35, 28, 39, .055);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.swex-profile-finance__icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  color: var(--swex-ui-pink);
  background: transparent;
  grid-row: 1 / 3;
}

.swex-profile-finance__icon svg {
  display: block;
  width: 44px;
  height: 44px;
  overflow: visible;
  filter: drop-shadow(0 7px 12px rgba(242, 41, 120, .16));
}

.swex-profile-finance__copy {
  min-width: 0;
  grid-row: 1 / 3;
}

.swex-profile-finance__copy strong {
  display: block;
  color: var(--swex-ui-ink);
  font-size: 15px;
  font-weight: 720;
  letter-spacing: -.25px;
}

.swex-profile-finance__copy span {
  display: block;
  margin-top: 4px;
  overflow: hidden;
  color: var(--swex-ui-muted);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.swex-profile-finance__amount {
  color: var(--swex-ui-ink);
  font-size: 21px;
  font-weight: 760;
  letter-spacing: -.65px;
  white-space: nowrap;
  grid-column: 3;
  grid-row: 1;
}

.swex-profile-finance__action {
  grid-column: 3;
  grid-row: 2;
  justify-self: end;
  color: var(--swex-ui-pink);
  font-size: 11px;
  font-weight: 700;
}

.swex-profile-finance:active {
  transform: scale(.992);
}

.page-profile .stats-card {
  overflow: hidden;
  border-color: rgba(31, 27, 38, .07);
  background: rgba(255, 255, 255, .96);
}

.page-profile .stats-card strong {
  color: var(--swex-ui-ink);
}

.page-profile .stats-card > div:first-child strong {
  color: var(--swex-ui-pink);
}

/* Live traffic: the number is real; unlimited plans use a quiet animated rail. */
.traffic-card.swex-traffic-live strong {
  font-variant-numeric: tabular-nums;
  letter-spacing: -.45px;
}

.traffic-card.swex-traffic-live > p {
  color: var(--muted);
}

/* The LTE quota uses a wider value (used / limit), so keep its explanatory
   copy in normal flow instead of overlaying it on top of the counter. */
.traffic-card.bs-traffic-card {
  min-height: 148px;
  padding-bottom: 44px;
}

.traffic-card.bs-traffic-card > div:first-child {
  min-width: 0;
}

.traffic-card.bs-traffic-card strong {
  white-space: nowrap;
  font-size: clamp(18px, 5.7vw, 23px);
}

.traffic-card.bs-traffic-card > p {
  position: static;
  max-width: none;
  margin-top: 8px;
  padding-right: 0;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  font-size: 13px;
  line-height: 1.3;
}

.traffic-card .progress-track span.swex-traffic-unlimited {
  width: 100% !important;
  background:
    linear-gradient(90deg, #f22978 0%, #ff73ad 46%, #f22978 100%);
  background-size: 180% 100%;
  opacity: .82;
  animation: swex-traffic-flow 2.6s ease-in-out infinite;
}

@keyframes swex-traffic-flow {
  0%, 100% { background-position: 0 0; }
  50% { background-position: 100% 0; }
}

/* Transparent vector mark inside the connect card, with a soft magenta aura. */
.swex-connect-hero {
  isolation: isolate;
  padding-right: 92px;
}

.swex-connect-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: -28px;
  right: -20px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(242, 41, 120, .3) 0,
    rgba(242, 41, 120, .1) 42%,
    transparent 72%
  );
  filter: blur(4px);
  pointer-events: none;
}

.swex-connect-hero-logo {
  position: absolute;
  z-index: 2;
  top: 7px;
  right: 7px;
  width: 82px;
  height: 82px;
  object-fit: contain;
  background: transparent;
  filter:
    drop-shadow(0 0 9px rgba(255, 43, 134, .4))
    drop-shadow(0 10px 16px rgba(0, 0, 0, .3));
  pointer-events: none;
  user-select: none;
}

.swex-connect-hero > :not(.swex-connect-hero-logo) {
  position: relative;
  z-index: 1;
}

.swex-connect-title,
.swex-connect-copy {
  max-width: 310px;
}

/* Telegram-like support queue with iOS grouped controls. */
.swex-support-shell {
  --swex-support-canvas: #f2f2f7;
}

.swex-support-queue {
  padding-right: 0;
  padding-left: 0;
  background: #f2f2f7;
}

.swex-support-tools {
  margin: 0;
  padding: 12px 14px 8px;
}

.swex-support-search input {
  height: 38px;
  border: 0;
  border-radius: 11px;
  background: #e7e7ec;
  box-shadow: inset 0 0 0 1px rgba(31, 27, 38, .025);
  font-size: 14px;
}

.swex-support-filter {
  margin: 0;
  padding: 0 14px 13px;
  gap: 3px;
}

.swex-support-filter {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.swex-support-filter button {
  height: 32px;
  border-radius: 9px;
  background: #e3e3e8;
  color: #777681;
}

.swex-support-filter button.is-selected {
  color: #fff;
  background: var(--swex-support-accent);
  box-shadow: 0 5px 14px rgba(242, 41, 120, .18);
}

.swex-support-ticket-list {
  display: block;
  overflow: hidden;
  border-top: 1px solid rgba(31, 27, 38, .06);
  border-bottom: 1px solid rgba(31, 27, 38, .06);
  background: #fff;
}

.swex-support-ticket {
  position: relative;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 11px;
  min-height: 76px;
  padding: 10px 13px;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.swex-support-ticket + .swex-support-ticket::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 76px;
  height: 1px;
  background: rgba(31, 27, 38, .075);
}

.swex-support-ticket:active {
  background: #ececf1;
  transform: none;
}

.swex-support-ticket .swex-support-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(31, 27, 38, .06);
}

.swex-support-ticket-name strong {
  font-size: 15px;
  letter-spacing: -.2px;
}

.swex-support-ticket-copy p {
  margin-top: 5px;
  color: #777681;
  font-size: 13px;
}

.swex-support-status {
  position: relative;
  gap: 5px;
  padding: 3px 7px 3px 6px;
  color: #168657;
  background: #e8f7f0;
}

.swex-support-status::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #20b474;
}

.swex-support-status.is-closed {
  color: #85858e;
  background: #ededf1;
}

.swex-support-status.is-closed::before {
  background: #a9a9b1;
}

.swex-support-chat {
  background:
    linear-gradient(rgba(247, 247, 249, .94), rgba(242, 242, 246, .96)),
    radial-gradient(circle at 16% 8%, rgba(242, 41, 120, .08), transparent 34%);
}

.swex-support-bubble {
  border-radius: 18px 18px 18px 6px;
}

.swex-support-message.is-own .swex-support-bubble {
  border-radius: 18px 18px 6px 18px;
  background: linear-gradient(145deg, #ff3b8b, #e61268);
}

/* Renewal reuses the current subscription identity and starts from its
   purchased device count.  The note makes that behavior explicit. */
.checkout-sheet.swex-renewal-checkout header::after {
  content: "Ссылка останется прежней · срок увеличится на 30 дней";
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin-top: 12px;
  padding: 0 10px;
  border: 1px solid rgba(34, 181, 115, .14);
  border-radius: 999px;
  color: #168657;
  background: #eaf8f1;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: -.1px;
}

.checkout-sheet.swex-renewal-checkout .device-stepper {
  border-color: rgba(242, 41, 120, .2);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(255, 247, 251, .98));
  box-shadow:
    0 10px 24px rgba(242, 41, 120, .055),
    inset 0 1px 0 rgba(255, 255, 255, .8);
}

.checkout-sheet.swex-renewal-checkout .total-row {
  border-color: rgba(242, 41, 120, .16);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 1), rgba(255, 242, 248, .94));
}

.checkout-sheet.swex-renewal-checkout .total-row strong {
  color: var(--swex-ui-pink-deep);
  font-variant-numeric: tabular-nums;
}

.checkout-sheet .swex-checkout-discount {
  display: flex;
  min-height: 38px;
  margin: -2px 0 8px;
  padding: 9px 13px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #7c6871;
  border: 1px solid rgba(242, 41, 120, .12);
  border-radius: 13px;
  background: linear-gradient(135deg, rgba(255, 249, 252, .98), rgba(255, 240, 247, .9));
  font-size: 11px;
  font-weight: 670;
}

.checkout-sheet .swex-checkout-discount b {
  color: var(--swex-ui-pink-deep);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.checkout-sheet .swex-wallet-option {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-color: rgba(242, 41, 120, .14);
  background:
    radial-gradient(circle at 10% 0, rgba(255, 68, 145, .08), transparent 44%),
    rgba(255, 255, 255, .98);
}

.checkout-sheet .swex-wallet-option::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -24px;
  right: -16px;
  width: 88px;
  height: 72px;
  border-radius: 50%;
  background: rgba(242, 41, 120, .055);
  filter: blur(18px);
}

.checkout-sheet .swex-wallet-option.selected {
  border-color: var(--swex-ui-pink);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(255, 240, 247, .98));
  box-shadow:
    0 10px 28px rgba(242, 41, 120, .09),
    inset 0 0 0 1px rgba(242, 41, 120, .025);
}

.checkout-sheet .swex-wallet-logo {
  display: grid;
  place-items: center;
  color: #e91e70;
  background: transparent;
  box-shadow: none;
}

.checkout-sheet .swex-wallet-logo svg {
  width: 31px;
  height: 31px;
  filter: drop-shadow(0 2px 5px rgba(233, 30, 112, .15));
}

.checkout-sheet .swex-wallet-option > i {
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 14px;
  font-style: normal;
  font-weight: 800;
}

.checkout-sheet .swex-wallet-option.is-insufficient:not(.selected) {
  border-color: rgba(132, 132, 142, .16);
}

.checkout-sheet .swex-wallet-option.is-insufficient small {
  color: #8e8e93;
}

.checkout-sheet .swex-card-option {
  border-color: rgba(44, 92, 186, .13);
  background:
    radial-gradient(circle at 8% 0, rgba(44, 92, 186, .07), transparent 42%),
    rgba(255, 255, 255, .98);
}

.checkout-sheet .swex-card-option.selected {
  border-color: var(--swex-ui-pink);
  background: linear-gradient(135deg, #fff, #fff3f8);
  box-shadow: 0 10px 28px rgba(242, 41, 120, .085);
}

.checkout-sheet .swex-card-logo {
  display: grid;
  place-items: center;
  color: #3159d9;
  background: transparent;
  box-shadow: none;
}

.checkout-sheet .swex-card-logo svg {
  width: 31px;
  height: 31px;
  filter: drop-shadow(0 2px 5px rgba(49, 89, 217, .14));
}

.checkout-sheet .payment-logo.swex-custom-payment-logo {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  overflow: hidden;
  place-items: center;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.checkout-sheet .payment-logo.swex-custom-payment-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.checkout-sheet .payment-logo.swex-custom-payment-logo.is-sbp img {
  width: 88%;
  height: 88%;
  filter: drop-shadow(0 3px 7px rgba(35, 42, 55, .11));
}

.checkout-sheet .payment-logo.swex-custom-payment-logo.is-crypto img {
  border-radius: 13px;
  box-shadow: 0 7px 18px rgba(42, 158, 215, .16);
}

.checkout-sheet .swex-platega-crypto-option {
  border-color: rgba(242, 41, 120, .13);
  background:
    radial-gradient(circle at 8% 0, rgba(242, 41, 120, .075), transparent 42%),
    rgba(255, 255, 255, .98);
}

.checkout-sheet .swex-platega-crypto-option.selected {
  border-color: var(--swex-ui-pink);
  background: linear-gradient(135deg, #fff, #fff3f8);
  box-shadow: 0 10px 28px rgba(242, 41, 120, .085);
}

.checkout-sheet .swex-platega-crypto-logo {
  display: grid;
  place-items: center;
  color: #7c4ce0;
  background: transparent;
  box-shadow: none;
}

.checkout-sheet .swex-platega-crypto-logo svg {
  width: 31px;
  height: 31px;
  filter: drop-shadow(0 2px 5px rgba(124, 76, 224, .14));
}

.checkout-sheet .payment-option.is-unavailable {
  opacity: .54;
  filter: saturate(.55);
  cursor: default;
}

.checkout-sheet .payment-option.is-unavailable > i {
  display: none;
}

.checkout-sheet .swex-wallet-feedback {
  min-height: 18px;
  margin: 9px 4px 2px;
  color: #6e6e73;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
}

.checkout-sheet .swex-wallet-feedback[data-status="success"] {
  color: #168657;
}

.checkout-sheet .swex-wallet-feedback[data-status="error"] {
  color: #c63243;
}

.checkout-sheet .swex-wallet-feedback[data-status="pending"] {
  color: #7b5b15;
}

.checkout-sheet .swex-shortfall-methods {
  margin: 4px 0 12px;
  padding: 12px;
  border: 1px solid rgba(242, 41, 120, .14);
  border-radius: 17px;
  background: rgba(251, 246, 249, .92);
}

.checkout-sheet .swex-shortfall-methods > strong {
  display: block;
  margin-bottom: 9px;
  color: var(--swex-ui-ink);
  font-size: 12px;
}

.checkout-sheet .swex-shortfall-methods > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.checkout-sheet .swex-shortfall-methods button {
  min-width: 0;
  min-height: 36px;
  padding: 7px 9px;
  border: 1px solid rgba(31, 27, 38, .08);
  border-radius: 11px;
  color: #625d66;
  background: #fff;
  font: inherit;
  font-size: 11px;
  font-weight: 650;
}

.checkout-sheet .swex-shortfall-methods button.selected {
  border-color: rgba(242, 41, 120, .34);
  color: #d81767;
  background: rgba(242, 41, 120, .08);
}

body.swex-topup-open {
  overflow: hidden;
}

body.swex-lte-store-open {
  overflow: hidden;
}

.bs-traffic-card {
  min-height: 152px;
  padding-bottom: 59px;
}

.bs-traffic-card .progress-track {
  bottom: 57px;
}

.bs-traffic-card > p {
  bottom: 81px;
}

.swex-lte-buy {
  position: absolute;
  right: 18px;
  bottom: 13px;
  min-height: 34px;
  padding: 0 14px;
  border: 0;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(180deg, #ff3e96 0%, #f70a72 100%);
  box-shadow: 0 7px 16px rgba(247, 10, 114, 0.22), inset 0 1px rgba(255,255,255,.34);
  font-size: 12px;
  font-weight: 720;
}

.swex-lte-buy:active {
  transform: scale(.97);
}

.swex-lte-buy:disabled {
  opacity: .42;
  box-shadow: none;
}

.swex-lte-store {
  position: fixed;
  inset: 0;
  z-index: 240;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-top: var(--safe-top);
  background: rgba(20, 20, 25, .38);
  -webkit-backdrop-filter: blur(9px);
  backdrop-filter: blur(9px);
  opacity: 0;
  transition: opacity .2s ease;
}

.swex-lte-store.is-visible {
  opacity: 1;
}

.swex-lte-store__sheet {
  width: min(100%, 520px);
  max-height: calc(100dvh - var(--safe-top));
  overflow-y: auto;
  padding: 27px 17px calc(19px + var(--safe-bottom));
  border: 1px solid rgba(25, 25, 31, .1);
  border-bottom: 0;
  border-radius: 28px 28px 0 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 88% 0%, rgba(247,10,114,.09), transparent 34%),
    rgba(252,252,254,.98);
  box-shadow: 0 -22px 64px rgba(20,20,25,.2);
  transform: translateY(30px);
  transition: transform .28s cubic-bezier(.2,.78,.25,1);
}

.swex-lte-store.is-visible .swex-lte-store__sheet {
  transform: translateY(0);
}

.swex-lte-store__grabber {
  display: block;
  width: 38px;
  height: 5px;
  margin: -14px auto 18px;
  border-radius: 999px;
  background: #d4d4d9;
}

.swex-lte-store__sheet header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.swex-lte-store__sheet header span {
  display: block;
  color: var(--accent);
  letter-spacing: .9px;
  font-size: 10px;
  font-weight: 780;
}

.swex-lte-store__sheet h2 {
  margin-top: 5px;
  letter-spacing: -.75px;
  font-size: 27px;
  line-height: 1.05;
}

.swex-lte-store__close {
  display: grid;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #5e5e67;
  background: #ececf1;
  font-size: 25px;
  font-weight: 300;
}

.swex-lte-store__balance,
.swex-lte-store__total {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.swex-lte-store__balance {
  margin-top: 20px;
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 15px;
  color: var(--muted);
  background: rgba(255,255,255,.84);
  font-size: 13px;
}

.swex-lte-store__balance strong {
  color: var(--ink);
  font-size: 15px;
}

.swex-lte-store__stepper {
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding: 15px;
  border: 1px solid rgba(247,10,114,.17);
  border-radius: 19px;
  background: linear-gradient(135deg, #fff 0%, #fff5f9 100%);
}

.swex-lte-store__stepper button {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(25,25,31,.12);
  border-radius: 15px;
  color: var(--accent);
  background: #fff;
  font-size: 27px;
  font-weight: 450;
}

.swex-lte-store__stepper div {
  text-align: center;
}

.swex-lte-store__stepper strong,
.swex-lte-store__stepper span {
  display: block;
}

.swex-lte-store__stepper strong {
  letter-spacing: -.5px;
  font-size: 25px;
}

.swex-lte-store__stepper span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
}

.swex-lte-store__presets {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
  margin-top: 10px;
}

.swex-lte-store__presets button {
  min-height: 39px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--muted);
  background: #fff;
  font-size: 12px;
  font-weight: 660;
}

.swex-lte-store__presets button.is-selected {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--accent-soft);
  box-shadow: inset 0 0 0 1px rgba(247,10,114,.08);
}

.swex-lte-store__sheet aside {
  display: grid;
  gap: 4px;
  margin-top: 14px;
  padding: 13px 14px;
  border-radius: 15px;
  color: #66543b;
  background: #fff8e9;
  font-size: 11px;
  line-height: 1.42;
}

.swex-lte-store__sheet aside strong {
  color: #4e3b20;
  font-size: 12px;
}

.swex-lte-store__total {
  margin-top: 18px;
  padding: 0 3px;
  font-size: 14px;
}

.swex-lte-store__total strong {
  letter-spacing: -.5px;
  font-size: 23px;
}

.swex-lte-store__feedback {
  min-height: 17px;
  margin: 7px 3px 0;
  color: var(--danger);
  font-size: 11px;
  line-height: 1.35;
}

.swex-lte-store__submit {
  width: 100%;
  min-height: 54px;
  margin-top: 5px;
  border: 0;
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(180deg, #ff3190 0%, #f70a72 100%);
  box-shadow: 0 10px 24px rgba(247,10,114,.27), inset 0 1px rgba(255,255,255,.35);
  font-size: 16px;
  font-weight: 740;
}

.swex-lte-store__submit:disabled {
  opacity: .58;
  box-shadow: none;
}

.swex-topup-backdrop,
.swex-topup-success {
  position: fixed;
  z-index: 2147483000;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 14px;
  opacity: 0;
  background: rgba(20, 17, 23, .32);
  backdrop-filter: blur(10px);
  transition: opacity .22s ease;
}

.swex-topup-backdrop.is-visible,
.swex-topup-success.is-visible {
  opacity: 1;
}

.swex-topup-sheet {
  width: min(100%, 460px);
  padding: 10px 16px calc(16px + env(safe-area-inset-bottom));
  border: 1px solid rgba(255, 255, 255, .85);
  border-radius: 29px;
  color: var(--swex-ui-ink);
  background: rgba(252, 250, 252, .98);
  box-shadow: 0 26px 70px rgba(31, 20, 31, .22);
  transform: translateY(24px);
  transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}

.swex-topup-backdrop.is-visible .swex-topup-sheet {
  transform: translateY(0);
}

.swex-topup-grabber {
  display: block;
  width: 38px;
  height: 5px;
  margin: 0 auto 13px;
  border-radius: 999px;
  background: #d8d3d9;
}

.swex-topup-sheet header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.swex-topup-sheet header span {
  color: var(--swex-ui-pink);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.swex-topup-sheet h2 {
  margin: 3px 0 0;
  font-size: 25px;
  letter-spacing: -.7px;
}

.swex-topup-close {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  color: #6d6870;
  background: #ece9ed;
  font-size: 24px;
  line-height: 1;
}

.swex-topup-current {
  margin: 18px 0 11px;
  padding: 12px 14px;
  border-radius: 15px;
  color: #77717a;
  background: #f0edf1;
  font-size: 12px;
}

.swex-topup-current strong {
  float: right;
  color: var(--swex-ui-ink);
}

.swex-topup-amount {
  display: block;
  padding: 13px 15px;
  border: 1px solid rgba(31, 27, 38, .08);
  border-radius: 18px;
  background: #fff;
}

.swex-topup-amount > span:first-child {
  display: block;
  margin-bottom: 4px;
  color: #938d96;
  font-size: 11px;
  font-weight: 650;
}

.swex-topup-amount > span:last-child {
  display: flex;
  align-items: baseline;
}

.swex-topup-amount input {
  min-width: 0;
  width: 100%;
  border: 0;
  outline: 0;
  color: var(--swex-ui-ink);
  background: transparent;
  font: inherit;
  font-size: 29px;
  font-weight: 760;
}

.swex-topup-amount b {
  color: #938d96;
  font-size: 22px;
}

.swex-topup-presets,
.swex-topup-methods > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-top: 9px;
}

.swex-topup-presets button,
.swex-topup-methods button {
  min-width: 0;
  min-height: 38px;
  padding: 7px 4px;
  border: 1px solid rgba(31, 27, 38, .08);
  border-radius: 12px;
  color: #6c6670;
  background: #fff;
  font: inherit;
  font-size: 10px;
  font-weight: 680;
}

.swex-topup-presets button.selected,
.swex-topup-methods button.selected {
  border-color: rgba(242, 41, 120, .36);
  color: #d81767;
  background: rgba(242, 41, 120, .08);
}

.swex-topup-methods {
  margin-top: 17px;
}

.swex-topup-methods > strong {
  font-size: 13px;
}

.swex-topup-feedback {
  min-height: 30px;
  margin: 13px 2px 10px;
  color: #8b858e;
  font-size: 11px;
  line-height: 1.35;
}

.swex-topup-commission,
.swex-commission-note {
  position: relative;
  margin: 11px 2px 0;
  padding-left: 18px;
  color: #77717a;
  font-size: 11px;
  line-height: 1.4;
}

.swex-topup-commission::before,
.swex-commission-note::before {
  content: "i";
  position: absolute;
  left: 0;
  top: 1px;
  display: grid;
  place-items: center;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  color: #d81767;
  background: rgba(242, 41, 120, .1);
  font-size: 9px;
  font-weight: 800;
}

.swex-commission-note {
  margin: 0 2px 11px;
}

.swex-topup-submit,
.swex-topup-success button {
  width: 100%;
  min-height: 50px;
  border: 0;
  border-radius: 15px;
  color: #fff;
  background: linear-gradient(135deg, #f22a79, #ee5b98);
  box-shadow: 0 12px 24px rgba(242, 41, 120, .22);
  font: inherit;
  font-size: 14px;
  font-weight: 760;
}

.swex-topup-submit:disabled {
  opacity: .48;
  box-shadow: none;
}

.swex-topup-success {
  align-items: center;
}

.swex-topup-success section {
  width: min(100%, 340px);
  padding: 25px;
  border-radius: 28px;
  text-align: center;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 26px 70px rgba(31, 20, 31, .22);
}

.swex-topup-success__check {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  margin: 0 auto 15px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, #f22a79, #ee6ba5);
  box-shadow: 0 12px 25px rgba(242, 41, 120, .24);
  font-size: 28px;
  font-weight: 800;
}

.swex-topup-success h2 {
  margin: 0;
  font-size: 24px;
}

.swex-topup-success p {
  margin: 8px 0 21px;
  color: #817b84;
  font-size: 13px;
}

.subscription-link-card.swex-trial-pending .link-field,
.subscription-link-card.swex-trial-pending .button-pair > .secondary-button {
  display: none !important;
}

.subscription-link-card.swex-trial-pending .button-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.subscription-link-card.swex-trial-pending .button-pair > .primary-button {
  width: 100%;
  min-height: 54px;
  border-radius: 17px;
}

.checkout-sheet .pay-button.swex-payment-success {
  background: linear-gradient(135deg, #20b474, #11945e);
  box-shadow: 0 10px 24px rgba(17, 148, 94, .2);
}

body.swex-purchase-success-open {
  overflow: hidden;
}

.swex-purchase-success {
  position: fixed;
  z-index: 100020;
  inset: 0;
  display: grid;
  place-items: center;
  padding:
    max(24px, env(safe-area-inset-top))
    20px
    max(24px, env(safe-area-inset-bottom));
  background: rgba(16, 16, 20, .28);
  opacity: 0;
  -webkit-backdrop-filter: blur(10px) saturate(112%);
  backdrop-filter: blur(10px) saturate(112%);
  transition: opacity 220ms ease;
}

.swex-purchase-success.is-visible {
  opacity: 1;
}

.swex-purchase-success.is-finishing {
  opacity: 0;
  pointer-events: none;
}

.swex-purchase-success-card {
  position: relative;
  width: min(100%, 336px);
  overflow: hidden;
  padding: 19px 18px 16px;
  border: 1px solid rgba(255, 255, 255, .86);
  border-radius: 30px;
  color: #111116;
  background:
    radial-gradient(circle at 50% 13%, rgba(251, 168, 197, .16), transparent 35%),
    rgba(255, 255, 255, .98);
  box-shadow:
    0 26px 70px rgba(24, 20, 25, .22),
    0 3px 14px rgba(24, 20, 25, .08),
    inset 0 1px 0 #fff;
  text-align: center;
  transform: translateY(14px) scale(.965);
  transition:
    transform 330ms cubic-bezier(.2, .82, .2, 1),
    opacity 220ms ease;
}

.swex-purchase-success.is-visible .swex-purchase-success-card {
  transform: translateY(0) scale(1);
}

.swex-purchase-success.is-finishing .swex-purchase-success-card {
  opacity: 0;
  transform: translateY(8px) scale(.985);
}

.swex-purchase-success-animation {
  position: relative;
  width: 146px;
  height: 146px;
  margin: -4px auto 1px;
}

.swex-purchase-success-animation::before {
  content: "";
  position: absolute;
  inset: 30px;
  border-radius: 50%;
  background: rgba(251, 168, 197, .22);
  filter: blur(22px);
}

.swex-purchase-success-animation > svg:not(.swex-purchase-success-fallback) {
  position: relative;
  z-index: 1;
  width: 100% !important;
  height: 100% !important;
}

.swex-purchase-success-fallback {
  position: absolute;
  z-index: 1;
  inset: 23px;
  width: 100px;
  height: 100px;
  overflow: visible;
  fill: none;
  stroke: #f22978;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.swex-purchase-success-fallback circle {
  fill: rgba(251, 168, 197, .17);
  stroke-width: 4;
}

.swex-purchase-success-fallback path {
  stroke-width: 7;
}

.swex-purchase-success-animation.is-lottie-ready
  .swex-purchase-success-fallback {
  display: none;
}

.swex-purchase-success-kicker {
  display: block;
  margin-top: -2px;
  color: #f22978;
  font-size: 10px;
  font-weight: 780;
  letter-spacing: 2.25px;
  line-height: 1;
}

.swex-purchase-success-card h2 {
  margin: 10px 0 7px;
  font-size: 24px;
  font-weight: 760;
  letter-spacing: -.65px;
  line-height: 1.08;
}

.swex-purchase-success-card p {
  margin: 0 auto 20px;
  max-width: 260px;
  color: #6e6e73;
  font-size: 14px;
  font-weight: 480;
  letter-spacing: -.12px;
  line-height: 1.42;
}

.swex-purchase-success-button {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 17px;
  color: #fff;
  background: #f22978;
  box-shadow:
    0 11px 24px rgba(242, 41, 120, .22),
    inset 0 1px 0 rgba(255, 255, 255, .24);
  font: inherit;
  font-size: 16px;
  font-weight: 720;
  letter-spacing: -.2px;
  -webkit-tap-highlight-color: transparent;
  transition:
    transform 120ms ease,
    filter 120ms ease;
}

.swex-purchase-success-button:active {
  filter: brightness(.96);
  transform: scale(.985);
}

@media (max-width: 374px) {
  .page-profile .referral-card .button-pair > button {
    padding-right: 6px;
    padding-left: 6px;
    gap: 5px;
    font-size: 12.5px;
  }

  .swex-profile-finance {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 10px;
    padding-right: 12px;
    padding-left: 12px;
  }

  .swex-profile-finance__icon {
    width: 42px;
    height: 42px;
  }

  .swex-profile-finance__amount {
    font-size: 18px;
  }

  .swex-connect-hero {
    padding-right: 78px;
  }

  .swex-connect-hero-logo {
    width: 70px;
    height: 70px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .traffic-card .progress-track span.swex-traffic-unlimited {
    animation: none;
  }

  .swex-purchase-success,
  .swex-purchase-success-card,
  .swex-purchase-success-button {
    transition: none;
  }
}
