/* =============================================================
   AXAA Basket Mockups вЂ“ Thank You Pages
   Source: Figma nodes 1040:73505 | 1040:73519 | 1040:73533
   ============================================================= */

:root {
  --color-text-primary: #09034b;
  --color-text-secondary: #72798c;
  --color-text-white: #ffffff;

  --color-brand-primary: #ed1d51;
  --color-brand-dark: #09034b;

  --color-surface-page: #f5f6fa;
  --color-surface-secondary: #d9e1e7;
  --color-surface-divider: #ecf1f5;
  --color-surface-success: #e8f5e8;
  --color-surface-danger: #fde8ed;

  --color-accent-success: #059669;

  --font-family: "TT Prosto Sans", sans-serif;
  --radius-pill: 50px;
  --radius-card: 16px;
}

@font-face {
  font-family: "TT Prosto Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/imgs/2020/fonts/TT-Prosto-Sans-Regular.otf") format("opentype");
}

@font-face {
  font-family: "TT Prosto Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/imgs/2020/fonts/TT-Prosto-Sans-Bold.otf") format("opentype");
}

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  font-family: var(--font-family);
  color: var(--color-text-primary);
  background: var(--color-surface-page);
  -webkit-tap-highlight-color: transparent;
}

/* Убрать системную синюю подсветку тапа / дефолтный outline при tap */
.basket2-root button,
.basket2-root a,
.basket2-root [role="button"],
.basket2-root .b2-icon-btn,
.basket2-root .checkout-tile,
.basket2-root .address-card__body,
.basket2-root .line-radio,
.basket2-root .switch-toggle {
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

body.app {
  background: var(--color-surface-page);
}

img {
  display: block;
}

.text-h2 {
  font-family: var(--font-family);
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  font-style: normal;
}

/* Figma Body/Main — 14/20 Regular */
.text-body-main {
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  font-style: normal;
}

.text-body-main-bold {
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  font-style: normal;
}

.text-body-secondary {
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  font-style: normal;
}

.text-body-tertiary {
  font-family: var(--font-family);
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  font-style: normal;
}

.text-button-bold {
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  font-style: normal;
}

.kit-page {
  max-width: 1280px;
  margin: 0 auto;
  padding: 48px 32px;
}

.kit-section {
  margin-bottom: 80px;
}

.kit-section-title {
  margin-bottom: 28px;
  padding-bottom: 14px;
  border-bottom: 1px solid #444444;
  color: #ffffff;
  font-size: 22px;
  font-weight: 700;
  line-height: normal;
}

.kit-component-group {
  margin-bottom: 40px;
}

.kit-component-label {
  margin-bottom: 12px;
  color: var(--color-text-secondary);
  font-size: 10px;
  font-weight: 700;
  line-height: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.kit-row {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
}

.kit-preview {
  width: 100%;
  max-width: 393px;
  min-height: 852px;
  border-radius: 24px;
  border: 0;
  overflow: hidden;
  background: var(--color-surface-page);
}

.icon-wrap {
  position: relative;
  flex-shrink: 0;
}

.icon-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Figma "Small" icon frame is usually 20x20 вЂ” never shrink to glyph bounds */
.icon-wrap--small,
.icon-wrap--small-calendar,
.icon-wrap--small-profile,
.icon-wrap--small-payment,
.icon-wrap--small-sms,
.icon-wrap--small-star,
.icon-wrap--small-catalog {
  width: 20px;
  height: 20px;
}

/* Gift row: Figma Gift Icon = Small 20Г—20 inside pad 0 4 4 0 (24Г—24).
   Info next to gift/titles = Small 20Г—20 inside pad 1 0 0 4.
   agents6 used 16Г—16 optical sizes вЂ” NEW checkout frames use 20Г—20 Small. */
.icon-wrap--small-gift,
.icon-wrap--small-info {
  width: 20px;
  height: 20px;
}

.icon-wrap--medium {
  width: 32px;
  height: 32px;
}

.btn-big {
  width: 100%;
  min-height: 52px;
  border: none;
  border-radius: var(--radius-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 16px 24px;
  font: inherit;
  cursor: pointer;
  appearance: none;
}

.btn-big--red {
  background: var(--color-brand-primary);
  color: var(--color-text-white);
}

.btn-big--secondary {
  background: var(--color-surface-secondary);
  color: var(--color-text-primary);
}

.btn-big--primary {
  background: var(--color-brand-dark);
  color: var(--color-text-white);
}

.btn-big__text {
  display: block;
}

.purchase-result-page {
  position: relative;
  width: 100%;
  min-width: 320px;
  min-height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background: var(--color-surface-page);
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

.purchase-result-page__frame {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: 52px 20px 32px;
  background: var(--color-surface-page);
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.purchase-result-page__frame::-webkit-scrollbar {
  display: none;
}

.purchase-result-page__close {
  position: absolute;
  top: 32px;
  right: 32px;
  width: 32px;
  height: 32px;
}

.purchase-result-page__hero {
  width: 224px;
  height: 224px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.purchase-result-page__hero-image {
  position: relative;
  flex-shrink: 0;
}

.purchase-result-page__hero-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.purchase-result-page__hero-image--success,
.purchase-result-page__hero-image--gift {
  width: 218px;
  height: 185px;
}

.purchase-result-page__hero-image--pending {
  width: 203px;
  height: 185px;
}

.purchase-result-page__message {
  width: 100%;
  max-width: 353px;
  padding: 0 48px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: center;
  box-sizing: border-box;
}

.purchase-result-page__message-title {
  color: var(--color-text-primary);
}

.purchase-result-page__message-sub {
  color: var(--color-text-primary);
}

.purchase-info-card {
  width: 100%;
  border-radius: var(--radius-card);
  padding: 20px;
  box-sizing: border-box;
}

.purchase-info-card--neutral {
  background: var(--color-surface-divider);
}

.purchase-info-card--success {
  background: var(--color-surface-success);
}

.purchase-info-card--danger {
  background: var(--color-surface-danger);
}

.purchase-info-card--stack {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.purchase-info-card__text {
  color: var(--color-text-primary);
}

.purchase-info-card__text--muted {
  color: var(--color-text-secondary);
}

.line-bullet {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.line-bullet__bullet {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.line-bullet__bullet--dark {
  background: var(--color-brand-dark);
}

.line-bullet__bullet--success {
  background: var(--color-accent-success);
}

.line-bullet__bullet--accent {
  background: var(--color-brand-primary);
}

.line-bullet__title {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--color-text-primary);
}

.purchase-result-page__cards {
  width: 100%;
  max-width: 353px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.purchase-result-page__buttons {
  width: 100%;
  max-width: 353px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px 0;
}

/* =============================================================
   Checkout mockups вЂ“ Figma nodes 1040:73453 | 73466 | 73478
   ============================================================= */
:root {
  --color-surface-white: #ffffff;
  --color-text-disabled: #b7c2cb;
  --color-badge-positive: #ff8475;
  --color-badge-negative: #55d48c;
}

.text-body-tertiary-bold { font-size: 12px; font-weight: 700; line-height: 16px; }
.text-body-tertiary-strikethrough { font-size: 12px; font-weight: 400; line-height: 16px; text-decoration: line-through; }
.text-label-tiny { font-size: 10px; font-weight: 400; line-height: 12px; }
.text-label-tiny-bold { font-size: 10px; font-weight: 700; line-height: 12px; }

.icon-wrap--micro { width: 16px; height: 16px; }
.icon-wrap--micro img { width: 100%; height: 100%; }
/* Must win over any later .icon-wrap--small { 20Г—20 } */
.icon-wrap.icon-wrap--small-gift,
.icon-wrap.icon-wrap--small-info { width: 20px; height: 20px; margin-top: 0; }

.badge-package {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  width: fit-content;
  gap: 2px;
  padding: 2px 8px 2px 4px;
  border-radius: 8px;
  background: #ecf1f5;
  color: #09034b;
}
.badge-package__text {
  display: inline-flex;
  align-items: center;
  padding: 3px 0 1px;
  font-size: 10px;
  font-weight: 400;
  line-height: 12px;
  color: #09034b;
}

.checkout-page {
  position: relative;
  width: 100%;
  min-width: 320px;
  min-height: 100vh;
  height: 100dvh;
  margin: 0;
  overflow: hidden;
  background: var(--color-surface-page);
  box-sizing: border-box;
}
/* Mobile browser: страница = fixed body (visual viewport), не 100dvh —
   иначе absolute checkout-scroll уезжает под fixed CTA. */
body.basket2-root .cart-page,
body.basket2-root .checkout-page {
  min-height: 0;
  height: 100%;
  max-height: 100%;
}
.cart-header {
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  left: 0;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px;
  background: #fff;
  box-sizing: border-box;
}
.cart-header__title {
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
  color: var(--color-text-primary);
}
.cart-header .icon-wrap--small {
  position: relative;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cart-header .icon-wrap--small img {
  position: static;
  inset: auto;
  width: 20px;
  height: 20px;
  transform: none;
  object-fit: contain;
}
/* Glyph SVG viewBox 14Г—16 (Figma vector in Small 20Г—20). Never stretch to 20Г—20. */
.cart-header .icon-wrap--trash img,
.cart-header .icon-wrap--small:has(img[src*="trash"]) img {
  width: 14px;
  height: 16px;
}
.checkout-scroll {
  position: absolute;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 18px 20px 20px;
  scrollbar-width: none;
}
/*
 * Над белым place-nav (не выше — иначе полоса фона + shadow выглядят как
 * сплошное перекрытие). Высоту контейнера пишет checkout.js → --b2-checkout-cta-h.
 * Fallback ≈ pad 32 + btn 68 + gap 8 + disclaimer ~48.
 */
.checkout-page .checkout-scroll {
  bottom: calc(var(--b2-checkout-cta-h, 160px) + env(safe-area-inset-bottom, 0px));
}
/* Мобильный браузер (не app): небольшой запас, чтобы «Итого» не уезжало под CTA */
body.basket2-root:not(.app) .checkout-page .checkout-scroll {
  padding-bottom: 36px;
}
.checkout-scroll > * { flex-shrink: 0; }
.checkout-scroll::-webkit-scrollbar, .region-item__delivery-scroll::-webkit-scrollbar, .chip-picker__scroll::-webkit-scrollbar { display: none; }
.checkout-item, .region-item, .address-card, .chip-picker, .pay-card, .points-deduction, .order-summary { width: 100%; border-radius: 16px; background: #fff; }
.checkout-item { padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.checkout-item__main { display: flex; flex-direction: column; gap: 24px; }
.checkout-item__cart-row { display: flex; gap: 20px; align-items: flex-start; }
.cart-item__thumb { width: 128px; height: 76px; flex: 0 0 auto; overflow: hidden; border-radius: 8px; }
.cart-item__thumb img { width: 100%; height: 100%; object-fit: contain; }
.cart-item__thumb--cert { background: #c5ccd2; }
.cart-item__thumb--cert img { object-fit: cover; }
.checkout-item__info { display: flex; flex: 1; flex-direction: column; gap: 8px; min-width: 0; }
.cart-item__name { color: #09034b; font-size: 12px; font-weight: 700; line-height: 16px; }
.cart-item__price { color: #09034b; white-space: nowrap; }
.checkout-item__qty-badge { display: inline-flex; width: fit-content; height: 20px; align-items: center; padding: 2px 8px; border-radius: 50px; background: #d9e1e7; }
.checkout-item__gift-row, .checkout-item__contact-row, .region-item__region-row, .address-card__body, .points-deduction, .cart-receipt-row { display: flex; align-items: center; justify-content: space-between; }
.checkout-item__gift-row { gap: 12px; width: 100%; }
.checkout-item__gift {
  display: flex;
  gap: 2px;
  align-items: center;
  flex: 0 0 auto;
  max-width: calc(100% - 52px);
  color: #09034b;
}
.checkout-item__gift .text-body-tertiary { color: #09034b; }
/* Figma Gift Icon 24Г—24: pad 0 4 4 0 вЂ” Small top-aligned, shares bottom with 12/16 text */
.checkout-item__gift-icon {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  width: 24px;
  height: 24px;
  padding: 0 4px 4px 0;
  flex-shrink: 0;
  box-sizing: border-box;
}
/* Figma Icon Container 24Г—24: pad 1 0 0 4 вЂ” must be fixed 24Г—24 or center-align shifts icon down */
.checkout-item__gift-info,
.icon-info {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  width: 24px;
  height: 24px;
  padding: 1px 0 0 4px;
  flex-shrink: 0;
  box-sizing: border-box;
}
/* Figma 1685:32122 — i next to H2 («Самовывоз»): optical top pad for 18/24 */
.address-card__header .icon-info {
  padding: 2px 0 0 4px;
}
.b2-info-anchor {
  position: relative;
  display: block;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
}
.b2-info-anchor .cart-popover-wrap {
  right: auto;
  left: 50%;
  margin-left: -92px;
  bottom: calc(100% - 4px);
}
.address-card,
.region-item__info {
  overflow: visible;
}
.checkout-item__title-row,
.address-card__header,
.chip-picker__header,
.region-item__address-row {
  display: flex;
  align-items: flex-start;
  gap: 2px;
}
.checkout-item__title-row .text-h2,
.address-card__header .text-h2,
.chip-picker__header .text-h2 {
  margin: 0;
}
.switch-toggle {
  display: block;
  width: 40px;
  height: 24px;
  flex: 0 0 auto;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: hidden;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  outline: none;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
button.switch-toggle {
  border: 0;
  background: transparent;
}
.switch-toggle--off,
.switch-toggle--on { background: transparent; }
.switch-toggle__thumb,
.switch-toggle img {
  display: block;
  width: 40px;
  height: 24px;
}
.checkout-item__keeper { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.checkout-item__sep, .cart-summary__sep { height: 16px; padding: 7px 0 8px; }
.cart-summary__sep::before { display: block; height: 1px; content: ""; background: #ecf1f5; }
.checkout-item__title-row, .region-item__address-row { display: flex; align-items: flex-start; gap: 2px; }
.checkout-item__contact-text, .region-item__info-text, .pay-card__disclaimer { color: #72798c; }
/* Figma 1916:21279 / 21278 — Body/Tertiary 12/16: Secondary empty, Primary filled */
.checkout-item__contact-text p {
  margin: 0;
  font: inherit;
  color: inherit;
}
.checkout-item__contact-text--filled,
.checkout-item__contact-text--filled p {
  color: var(--color-text-primary, #09034b) !important;
}
/* Figma 1677:14106 / 14107 / 1685:32123 — region + address/buyer values are Text/Primary */
.region-item__region-text,
.address-card__text {
  color: var(--color-text-primary, #09034b) !important;
}

.region-item { display: flex; flex-direction: column; gap: 24px; padding: 20px 0; overflow: visible; }
.region-item__region, .region-item__info { display: flex; flex-direction: column; gap: 8px; padding: 0 20px; }
.region-item__region-left { display: flex; align-items: center; }
/* Figma Star/region icon: same optical box as Gift Icon (24Г—24, pad 0 4 4 0 + Small 20Г—20) */
.region-item__region-icon {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  width: 24px;
  height: 24px;
  padding: 0 4px 4px 0;
  flex-shrink: 0;
  box-sizing: border-box;
}
.region-item__region-icon .icon-wrap {
  width: 20px;
  height: 20px;
}
.region-item__delivery { display: flex; flex-direction: column; gap: 16px; }
.region-item__delivery-disclaimer { margin: 0; }
.region-item__delivery-title { padding: 0 20px; }
/*
 * region-item: padding 20px 0 (без горизонт.) — нельзя копировать pay-card
 * (margin -20 + pad 20), иначе чипсы прилипают к краю панели.
 * Отступы на row: и слева у первой, и справа у последней при доскролле.
 */
.region-item__delivery-scroll, .chip-picker__scroll {
  overflow-x: auto;
  margin: 0;
  padding: 0;
  scrollbar-width: none;
}
.region-item__delivery-row, .chip-picker__row {
  display: inline-flex;
  gap: 12px;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: content-box;
}
.checkout-tile { display: flex; position: relative; width: 144px; height: 64px; flex: 0 0 auto; flex-direction: column; justify-content: space-between; align-items: flex-start; padding: 8px 6px 10px 10px; border: 1px solid #d9e1e7; border-radius: 16px; box-sizing: border-box; overflow: visible; }
.checkout-tile--active { border-color: #09034b; }
/* Figma 1701:12281 Checkout Delivery1 — header 17px, title 12/16 centered with radio */
.checkout-tile__header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  height: 17px;
  min-height: 17px;
  max-height: 17px;
  padding-right: 22px;
  flex-shrink: 0;
  overflow: visible;
  box-sizing: border-box;
}
.checkout-tile__header > b {
  margin: 0;
  font-size: 12px;
  line-height: 16px;
  font-weight: 700;
  height: auto;
  overflow: visible;
}
.checkout-tile__footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  width: 100%;
  height: 26px;
  flex-shrink: 0;
}
.checkout-tile__desc {
  flex: 1 1 auto;
  min-width: 0;
  height: 26px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #09034b;
  /* «Доставка сегодня» — две строки в макете, без nowrap */
}
.checkout-tile__label--inactive, .checkout-tile__desc--inactive { color: #72798c; }
.badge-odds-wrap { display: flex; flex-direction: column; align-items: flex-start; padding-right: 3px; flex-shrink: 0; }
.pay-card__method-footer .badge-odds-wrap { padding-bottom: 2px; }
.badge-odds { display: inline-flex; align-items: center; justify-content: center; height: 16px; padding: 1px 5px 0; border-radius: 50px; color: #fff; box-sizing: border-box; white-space: nowrap; }
.badge-odds--positive { background: #ff8475; }.badge-odds--negative { background: #55d48c; }

.address-card, .pay-card, .order-summary { display: flex; flex-direction: column; gap: 8px; padding: 20px; }
.address-card__header { display: flex; align-items: flex-start; gap: 2px; }.address-card__body { gap: 8px; }.address-card__text { flex: 1; min-width: 0; }
.chip-picker { display: flex; flex-direction: column; gap: 16px; padding: 20px 0; overflow: hidden; }.chip-picker__header { display: flex; align-items: flex-start; gap: 2px; padding-left: 20px; }
.chip-date, .chip-time { display: flex; align-items: center; justify-content: center; border-radius: 50px; background: #d9e1e7; color: #09034b; white-space: nowrap; }
.chip-date { height: 40px; padding: 0 18px; }.chip-time { height: 24px; padding: 0 8px; }.chip--active { background: #72798c; color: #fff; }

.pay-card { gap: 24px; }.pay-card__section, .pay-card__split-conditions { display: flex; flex-direction: column; gap: 16px; }.pay-card__methods { display: flex; gap: 8px; }
.pay-card__method { display: flex; position: relative; min-width: 0; height: 64px; flex: 1; flex-direction: column; justify-content: space-between; padding: 8px 6px 8px 10px; border: 1px solid #d9e1e7; border-radius: 16px; box-sizing: border-box; overflow: visible; }
.pay-card__method--active { border-color: #09034b; }
.pay-card__method-footer { display: flex; align-items: flex-end; justify-content: space-between; width: 100%; height: 26px; flex-shrink: 0; }
/* Figma 1677:14109 — header 17px; titles top-aligned so 2-line «Оплата картой»
   first line matches single-line chips (center would lift wrapped titles up) */
.pay-card__method-header {
  display: flex;
  padding-right: 24px;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  height: 17px;
  min-height: 17px;
  max-height: 17px;
  flex-shrink: 0;
  overflow: visible;
  box-sizing: border-box;
}
.pay-card__method-header > b {
  width: 62px;
  height: auto;
  margin: 0;
  margin-right: -1px;
  word-break: break-word;
  line-height: 16px;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
  overflow: visible;
}
.pay-card__method-label--inactive { color: #72798c; }.pay-card__method-label--active { color: #09034b; }.pay-card__method-logo { display: flex; align-items: flex-end; }
/* Radio 22 in 17px header + pad-top 8 → center ~16.5 → top ~5.5; right matches pad 6 */
.pay-card__radio { position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; min-width: 22px; margin: 0; flex-shrink: 0; }
.pay-card__radio img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
/* Figma 1701:12281 — radio ~top 6.5 / right 6 (was 4/4 — title looked too low vs radio) */
.checkout-tile__radio {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 20px;
  height: 20px;
  min-width: 20px;
  flex-shrink: 0;
  margin: 0;
}
.checkout-tile__radio img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.icon-wrap--chevron { width: 20px; height: 20px; flex-shrink: 0; position: relative; }
.icon-wrap--chevron img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.pay-card__countdown { padding: 20px; border-radius: 8px; background: #f5ecef; color: #09034b; }
.split-condition {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px;
  border-radius: 16px;
  background: #f5f6fa;
}
.split-condition__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.split-condition__service {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.split-condition__logo {
  position: relative;
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 8px;
}
.split-condition__logo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.split-condition__text {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}
.split-months {
  display: flex;
  justify-content: space-between;
  padding: 4px;
  border-radius: 8px;
  background: #d9e1e7;
}
.split-months__tab {
  display: flex;
  width: 80px;
  height: 36px;
  align-items: center;
  justify-content: center;
  color: #72798c;
}
.split-months__tab--active {
  border-radius: 8px;
  background: #fff;
  color: #09034b;
  box-shadow: 0 1px 2px rgba(0,0,0,.25);
}
.split-schedule {
  display: flex;
  align-items: flex-start;
  gap: 11px;
}
.split-schedule__item {
  display: flex;
  flex: 1 0 0;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  width: 60px;
}
.split-schedule__line {
  position: relative;
  width: 100%;
  height: 4px;
  margin-bottom: 5px;
  flex-shrink: 0;
}
.split-schedule__line img {
  position: absolute;
  top: 0;
  left: -3.56%;
  width: calc(100% + 7.12%);
  height: 4px;
  display: block;
  max-width: none;
}
.split-schedule__date,
.split-schedule__amount {
  margin: 0;
  line-height: 16px;
}
.split-schedule__date {
  color: #72798c;
  white-space: nowrap;
}
.split-schedule__date--active {
  color: #09034b;
}
.split-schedule__amount {
  color: #09034b;
  white-space: nowrap;
  font-weight: 700;
}

.points-deduction {
  height: 64px;
  min-height: 64px;
  padding: 0 20px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.points-deduction__right,
.points-deduction__pts {
  display: flex;
  align-items: center;
  margin-top: 3px;
}
.points-deduction__right { gap: 18px; flex-shrink: 0; }
.points-deduction__pts { gap: 2px; }
/* Star: fixed box, static img — no absolute icon-wrap / no padding that shifts mid-line */
.points-deduction__star {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  line-height: 0; 
  overflow: hidden;
  margin-top: -3px;
}
.points-deduction__star img {
  position: static !important;
  inset: auto !important;
  display: block;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  border: 0;
  object-fit: contain;
}
.points-deduction__pts-val {
  display: block;
  line-height: 20px;
  margin: 0;
  padding: 0;
}
.points-star,
.cart-receipt-star {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  padding-bottom: 3px;
  flex-shrink: 0;
}
.cart-receipt-star .icon-wrap--micro { width: 16px; height: 16px; }
.cart-receipt-row { min-height: 16px; align-items: baseline; }.cart-receipt-row--h20 { min-height: 20px; }.cart-receipt-row--h24 { min-height: 24px; }.cart-receipt-row__label { display: flex; flex: 1; align-items: center; gap: 4px; }.cart-receipt-row__label--indented { padding-left: 36px; }.cart-receipt-row__amount { display: flex; align-items: center; justify-content: flex-end; gap: 2px; flex-shrink: 0; }.cart-receipt-row__amount-text--red { color: #ed1d51; }.cart-receipt-row__accordion-btn { width: 16px; height: 16px; border: 0; background: transparent; padding: 0; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; }.cart-receipt-row__accordion-btn img { position: static; width: 16px; height: 16px; object-fit: contain; display: block; }

.checkout-place-nav {
  position: fixed;
  z-index: 100;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  pointer-events: none;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.checkout-place-nav__shadow {
  height: 44px;
  margin-bottom: -20px;
  background: linear-gradient(transparent, rgba(0,0,0,.1));
}
.checkout-place-nav__container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 20px;
  border-radius: 16px 16px 0 0;
  background: #fff;
  pointer-events: auto;
}
.checkout-btn {
  display: flex;
  width: 100%;
  height: 68px;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 22px 24px;
  border: 0;
  border-radius: 50px;
  background: #ed1d51;
  color: #fff;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
/* Figma Big Button: label flex-1, price shrink-0 at opposite edges */
.checkout-btn__label {
  flex: 1 0 0;
  min-width: 0;
  text-align: left;
}
.checkout-btn__price {
  flex: 0 0 auto;
  white-space: nowrap;
  text-align: right;
}
.checkout-place-nav__disclaimer { max-width: 326px; color: #72798c; text-align: center; }
.checkout-place-nav__disclaimer-link { color: #ed1d51; }

.points-deduction .text-body-secondary,
.points-deduction > p,
.points-deduction__label {
  color: #09034b;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
}

/* =============================================================
   Cart mockups вЂ“ Figma nodes 1040:73397 | 73407вЂ“73443
   ============================================================= */
:root {
  --radius-badge-circle: 10px;
}

.cart-page {
  position: relative;
  width: 100%;
  min-width: 320px;
  min-height: 100vh;
  height: 100dvh;
  margin: 0;
  overflow: hidden;
  background: var(--color-surface-page);
  box-sizing: border-box;
}

/* Корзина / оформление: без выделения текста долгим тапом (нативные Copy/Share) */
.cart-page,
.checkout-page,
.basket2-root .fuzz.slideup,
.basket2-root .fuzz.fuzz--oferta,
.basket2-root .fuzz.fuzz--terms,
.basket2-root .map-page {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
.cart-page input,
.cart-page textarea,
.checkout-page input,
.checkout-page textarea,
.basket2-root .fuzz.slideup input,
.basket2-root .fuzz.slideup textarea,
.basket2-root .map-page input,
.basket2-root .map-page textarea {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

.cart-page--empty {
  display: flex;
  flex-direction: column;
}

.cart-page__body {
  position: absolute;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Если снова включим app-bottom-nav — тело пустой корзины над навбаром (60 = 73 × 393/480) */
.cart-page:not(.cart-page--no-app-nav) .cart-page__body {
  bottom: calc(60px + env(safe-area-inset-bottom, 0px));
}

.cart-header__spacer {
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
}

.cart-scroll {
  position: absolute;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 18px 20px 20px;
  scrollbar-width: none;
  box-sizing: border-box;
}

/* Над fixed CTA: высота белого body (pad 16+16 + btn 68) + safe-area; воздух снизу = gap 20 */
.cart-page--no-app-nav .cart-scroll {
  bottom: calc(100px + env(safe-area-inset-bottom, 0px));
}

/* С app-bottom-nav: CTA 100 + навбар 60 (--393) */
.cart-page:not(.cart-page--no-app-nav) .cart-scroll {
  bottom: calc(160px + env(safe-area-inset-bottom, 0px));
}

.cart-scroll::-webkit-scrollbar {
  display: none;
}

.cart-scroll > * {
  flex-shrink: 0;
}

.cart-item--card {
  position: relative;
  width: 100%;
  padding: 20px;
  border-radius: 16px;
  background: #fff;
  box-sizing: border-box;
  overflow: visible;
}

.cart-item__row {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

/* Figma Check Button Container 44Г—44 @ top/right 8, pad 12 в†’ 20Г—20 check */
.cart-item__check {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  width: 44px;
  height: 44px;
  padding: 12px;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  appearance: none;
  box-sizing: border-box;
}

.cart-item__check-box {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cart-item__check--on .cart-item__check-box {
  background: #09034b;
}

.cart-item__check--off .cart-item__check-box {
  background: #d9e1e7;
}

.cart-item__check .icon-wrap--micro {
  width: 16px;
  height: 16px;
}

.cart-page .cart-item__info {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: flex-start;
}

.cart-page .cart-item__details {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-start;
}

.cart-page .cart-item__name {
  color: #09034b;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  word-break: break-word;
}

.cart-page .cart-item__price {
  color: #09034b;
  white-space: nowrap;
}

.cart-item__statusline {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  /* Figma Statusline: gap row 0 / column 10 */
  gap: 0 10px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.status-item {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  height: 16px;
}

/* Figma Statusline Location: flex 1, min-width 120 — длинный текст не вылезает из карточки */
.status-item--location {
  flex: 1 0 0;
  min-width: 120px;
  max-width: 100%;
  height: auto;
  min-height: 16px;
  align-items: flex-start;
  flex-shrink: 1;
}

.status-item--location .icon-wrap {
  flex-shrink: 0;
}

.status-item--location .status-item__text {
  flex: 1 1 auto;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.statusline-group {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 16px;
  flex-shrink: 0;
}

.status-item__text {
  color: var(--color-text-primary);
  padding: 3px 0 1px;
}

.age-badge {
  width: 20px;
  height: 20px;
  border: 1px solid #09034b;
  border-radius: var(--radius-badge-circle);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px 2px 4px;
  flex-shrink: 0;
  box-sizing: border-box;
}

.age-badge__text {
  color: #09034b;
  text-align: center;
}

.qty-selector--cart {
  display: grid;
  grid-template-columns: 20px 1fr 20px;
  align-items: center;
  justify-items: center;
  width: 137px;
  height: 36px;
  padding: 8px 10px;
  border-radius: 50px;
  background: #d9e1e7;
  box-sizing: border-box;
  flex-shrink: 0;
}

.qty-selector__btn {
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  appearance: none;
}

.qty-selector--cart .qty-selector__btn img {
  display: block;
  object-fit: contain;
}

.qty-selector--cart .qty-selector__btn--minus img {
  width: 16px;
  height: 2px;
  max-width: 16px;
  max-height: 2px;
}

.qty-selector--cart .qty-selector__btn--plus img {
  /* Figma plus glyph 16Г—16 inside Small 20Г—20 */
  width: 16px;
  height: 16px;
  max-width: 16px;
  max-height: 16px;
}

.qty-selector--cart .qty-selector__btn--trash img {
  /* Figma trash glyph 14Г—16.5 inside Small 20Г—20 */
  width: 14px;
  height: 16px;
  max-width: 14px;
  max-height: 16px;
}

.qty-selector--cart .qty-selector__label {
  grid-column: 2;
  text-align: center;
  white-space: nowrap;
}

.qty-selector--cart .qty-selector__btn--trash,
.qty-selector--cart .qty-selector__btn--minus {
  grid-column: 1;
  justify-self: start;
}

.qty-selector--cart .qty-selector__btn--plus {
  grid-column: 3;
  justify-self: end;
}

.points-deduction--full {
  width: 100%;
  height: 64px;
  min-height: 64px;
  padding: 0 20px;
  border-radius: 16px;
  background: #fff;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.points-deduction__label {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: #09034b;
  line-height: 16px;
  margin-top: 4px;
}

.points-deduction__label--disabled,
.points-deduction__pts-val--disabled {
  color: var(--color-surface-secondary);
}

.order-summary--full {
  width: 100%;
  padding: 20px;
  border-radius: 16px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
}

.order-summary--with-popover {
  overflow: visible;
  position: relative;
}

.cart-receipt-row--h16 {
  min-height: 16px;
}

.cart-receipt-row--h20 {
  min-height: 20px;
}

.cart-receipt-row--h24 {
  min-height: 24px;
}

.cart-page .cart-receipt-row__label-text,
.cart-page .cart-receipt-row__amount-text {
  color: #09034b;
}

.cart-receipt-row__amount-text--red {
  color: #ed1d51;
}

.cart-bottom-nav {
  position: fixed;
  z-index: 110;
  right: 0;
  bottom: calc(60px + env(safe-area-inset-bottom, 0px));
  left: 0;
  display: flex;
  flex-direction: column;
  pointer-events: none;
}

/* Без app-bottom-nav: CTA у самого низа (миграция в старый UI) */
.cart-page--no-app-nav .cart-bottom-nav {
  bottom: 0;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.cart-bottom-nav__shadow {
  height: 44px;
  margin-bottom: -20px;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.1));
  flex-shrink: 0;
}

.cart-bottom-nav__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 20px;
  border-radius: 16px 16px 0 0;
  background: #fff;
  pointer-events: auto;
}

.cart-bottom-nav__split-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  width: 100%;
  box-sizing: border-box;
}

/* Figma Split Container 1685:32038 — карточка после калькуляции */
.cart-split-card {
  width: 100%;
  padding: 20px;
  border-radius: 16px;
  background: #fff;
  box-sizing: border-box;
}

.cart-split-card__block {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.cart-split-card__left {
  flex: 1 0 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.cart-split-card__title-row {
  display: flex;
  align-items: center;
  gap: 4px;
  height: 16px;
}

.cart-split-card__title {
  color: #09034b;
  white-space: nowrap;
}

.cart-split-card__sub {
  color: #72798c;
}

.cart-split-card__right {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
  color: inherit;
  flex-shrink: 0;
}

.cart-split-card__logo {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.cart-split-card__logo img {
  position: static;
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
}

.cart-split-card__price {
  color: #09034b;
  white-space: nowrap;
}

.cart-bottom-nav__split-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.cart-bottom-nav__split-title-row {
  display: flex;
  align-items: center;
  gap: 4px;
  height: 16px;
}

.cart-bottom-nav__split-title {
  color: #09034b;
  white-space: nowrap;
}

.cart-bottom-nav__split-sub {
  color: #72798c;
}

.cart-bottom-nav__split-right {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.b2-split-info.icon-wrap {
  cursor: pointer;
  border: 0;
  background: transparent;
  padding: 0;
}

.b2-yapay-split-widget {
  width: 100%;
  min-height: 208px;
  max-width: 100%;
}

.b2-yapay-split-widget .ya-pay-widget {
  width: 100% !important;
  max-width: 100%;
}

.b2-yapay-split-widget--checkout {
  min-height: 180px;
}

.sheet-split-yapay {
  gap: 24px;
  padding-bottom: 0;
}

.sheet-link-positive {
  color: var(--color-text-positive, #059669);
  text-decoration: none;
}

.fuzz.slideup .popup.popup--split {
  height: auto;
  max-height: calc(100dvh - var(--b2-sheet-top-gap, 12px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.fuzz.slideup .popup.popup--split.b2-popup-clamped {
  height: var(--b2-popup-max-height, calc(100dvh - var(--b2-sheet-top-gap, 12px))) !important;
  max-height: var(--b2-popup-max-height, calc(100dvh - var(--b2-sheet-top-gap, 12px))) !important;
}

/* Как recipient: handle/close снаружи скролла, крутится только .sheet__content */
.fuzz.slideup .popup.popup--split .sheet {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  max-height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

.fuzz.slideup .popup.popup--split.b2-popup-clamped .sheet {
  height: 100%;
}

.fuzz.slideup .popup.popup--split .sheet .sheet__content.sheet-split-yapay {
  flex: 0 0 auto;
  min-height: auto;
  overflow-x: hidden;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  gap: 24px;
  padding-bottom: 20px;
}

.fuzz.slideup .popup.popup--split.b2-popup-clamped .sheet .sheet__content.sheet-split-yapay {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

.fuzz.slideup .popup.popup--split .sheet-split-yapay {
  gap: 24px;
}

/* Виджет YaPay — не схлопывать: иначе наезжает на «Как это работает» */
#b2_split_fuzz .b2-yapay-split-widget,
.fuzz.slideup .popup.popup--split .b2-yapay-split-widget {
  flex-shrink: 0;
  min-height: 220px;
  position: relative;
  overflow: visible;
}

#b2_split_fuzz .b2-yapay-split-widget + .sheet-split-block,
.fuzz.slideup .popup.popup--split .b2-yapay-split-widget + .sheet-split-block {
  margin-top: 0;
}

.cart-bottom-nav__split-logo {
  width: 20px;
  height: 20px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cart-bottom-nav__split-logo img {
  /* Logo mark ~14Г—16 inside Small 20Г—20 вЂ” keep aspect; beat .icon-wrap img absolute fill */
  position: static !important;
  inset: auto !important;
  width: 14px !important;
  height: 16px !important;
  max-width: 14px;
  max-height: 16px;
  object-fit: contain;
  display: block;
}

.cart-bottom-nav__split-price {
  color: #09034b;
  white-space: nowrap;
}

/* Cart no-selection CTA: centered label only (Figma opacity 30%) */
.checkout-btn--select-items {
  align-items: center;
  justify-content: center;
  opacity: 0.3;
  cursor: not-allowed;
  pointer-events: none;
}

.checkout-btn--select-items .checkout-btn__label {
  flex: 1 1 auto;
  width: 100%;
  text-align: center;
}

/* Checkout disabled: same left/right layout as active, only faded */
.checkout-btn--disabled {
  opacity: 0.3;
  cursor: not-allowed;
  pointer-events: none;
}

.app-bottom-nav {
  position: fixed;
  z-index: 100;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  pointer-events: none;
}

/* CTA (cart-bottom-nav) sits above app nav вЂ” hide nav shadow so it does not paint over CTA */
.cart-page:has(.cart-bottom-nav) .app-bottom-nav__shadow {
  visibility: hidden;
}

/* Figma 16 Global Navigation 34:10824: shadow 24 + bar 73, items 54, icons 39, badge 20 */
.app-bottom-nav__shadow {
  height: 24px;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.1));
  flex-shrink: 0;
}

.app-bottom-nav__bar {
  display: flex;
  height: 73px;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  background: #fff;
  pointer-events: auto;
  box-sizing: content-box;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.app-bottom-nav__item {
  position: relative;
  display: flex;
  width: 54px;
  height: 54px;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.app-bottom-nav__icon {
  display: block;
  width: 39px;
  height: 39px;
  flex-shrink: 0;
}

.app-bottom-nav__icon img {
  display: block;
  width: 39px;
  height: 39px;
  max-width: none;
}

.app-bottom-nav__badge {
  position: absolute;
  top: 4px;
  right: 1px;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1px 2px 0;
  border: 2px solid #fff;
  border-radius: 12px;
  background: #ed1d51;
  color: #fff;
  box-sizing: border-box;
  overflow: hidden;
}

.app-bottom-nav__badge-text {
  display: block;
  font-family: var(--font-family, 'TT Prosto Sans', sans-serif);
  font-size: 10px;
  font-weight: 700;
  line-height: 10px;
  white-space: nowrap;
}

/* Корзина свёрстана на 393px, сайт — на 480px: те же пропорции × 393/480 (shadow 20, bar 60, items 44, icons 32, badge 16) */
.app-bottom-nav--393 .app-bottom-nav__shadow {
  height: 20px;
}

.app-bottom-nav--393 .app-bottom-nav__bar {
  height: 60px;
  padding: 0 20px;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.app-bottom-nav--393 .app-bottom-nav__item {
  width: 44px;
  height: 44px;
}

.app-bottom-nav--393 .app-bottom-nav__icon,
.app-bottom-nav--393 .app-bottom-nav__icon img {
  width: 32px;
  height: 32px;
}

.app-bottom-nav--393 .app-bottom-nav__badge {
  top: 3px;
  right: 1px;
  width: 16px;
  height: 16px;
  padding: 1px 1px 0;
  border-width: 1.5px;
  border-radius: 10px;
}

.app-bottom-nav--393 .app-bottom-nav__badge-text {
  font-size: 8px;
  line-height: 8px;
}

.cart-empty {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 22px;
  width: 100%;
  padding: 0 20px;
  box-sizing: border-box;
}

.cart-empty__hero {
  width: 224px;
  height: 224px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  align-self: center;
}

.cart-empty__hero img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.cart-empty__text-block {
  width: 100%;
  padding: 0 48px;
  text-align: center;
  box-sizing: border-box;
}

.cart-empty__title {
  color: #09034b;
}

.cart-empty__cta {
  width: 100%;
  align-self: stretch;
  box-sizing: border-box;
}

.icon-wrap--info-micro {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.icon-wrap--info-micro img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cart-receipt-popover-anchor {
  position: relative;
  width: 100%;
  overflow: visible;
}

/* Figma 2089:8526 — pin по центру иконки «i» */
.b2-earn-info-anchor {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}

.b2-earn-info {
  margin-top: -1px;
}

.b2-earn-info-anchor .cart-popover-wrap {
  right: auto;
  left: 50%;
  margin-left: -92px; /* half of 184px bubble */
  bottom: calc(100% + 4px);
}

.cart-popover-wrap {
  position: absolute;
  z-index: 40;
  display: none;
  flex-direction: column;
  align-items: center;
  width: 184px;
  bottom: calc(100% + 8px);
  right: 8px;
  left: auto;
  pointer-events: auto;
}

.cart-popover-wrap.is-open {
  display: inline-flex;
}

.cart-popover-wrap--total {
  bottom: calc(100% + 8px);
  right: 8px;
  left: auto;
}

.popover__body {
  position: relative;
  width: 100%;
  padding: 16px 28px 16px 16px;
  border-radius: 16px;
  background: #09034b;
  box-sizing: border-box;
  margin-bottom: -3px; /* Figma: pin overlaps bubble edge */
}

.popover__text {
  width: 140px;
  color: #fff;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  margin: 0;
}

.popover__close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Figma 2089:8526 — Small close 20×20 (не 10×10) */
.popover__close img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
}

.popover__pin {
  width: 12px;
  height: 12px;
  margin-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(180deg);
  flex-shrink: 0;
}

.popover__pin img {
  width: 10.4px;
  height: 9px;
  object-fit: contain;
  display: block;
}


/* =============================================================
   SECTION вЂ” BOTTOM SHEETS (Figma 1040:76665вЂ“1040:78186)
   Ported from figma/agents6/styles.css вЂ” append-only
   ============================================================= */


:root {
  --color-surface-tertiary: #ecf1f5;
  --color-surface-error: #fde8ed;
  --color-surface-chip-active: #72798c;
  --color-text-error: #ed1d51;
  --color-text-positive: #059669;
}

.switch {
  width: 40px;
  height: 24px;
  position: relative;
  flex-shrink: 0;
}

.switch img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Controls: Radio Button  (node 846:33160)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.radio-button {
  width: 24px;
  height: 24px;
  position: relative;
  flex-shrink: 0;
}

.radio-button img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Controls: Chip / Date Choice  (node 846:33169)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.chip-date {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 13px 18px;
  border-radius: var(--radius-pill);
}

.chip-date--default  { background: var(--color-surface-secondary); color: var(--color-text-primary); }
.chip-date--active   { background: var(--color-text-secondary);    color: var(--color-text-white);   }
.chip-date--disabled { background: var(--color-surface-secondary); color: var(--color-text-disabled);}

.chip-date__text {
  text-align: center;
  white-space: nowrap;
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Controls: Chip / Time Choice  (node 846:33182)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.chip-time {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  padding: 5px 8px;
  border-radius: var(--radius-pill);
  overflow: hidden;
}

.chip-time--default  { background: var(--color-surface-secondary); color: var(--color-text-primary); }
.chip-time--active   { background: var(--color-text-secondary);    color: var(--color-text-white);   }
.chip-time--disabled { background: var(--color-surface-secondary); color: var(--color-text-disabled);}

.chip-time__text {
  text-align: center;
  white-space: nowrap;
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Controls: Text Input Single-line  (node 846:33215)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.input-single {
  background: var(--color-surface-tertiary);
  display: flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 16px;
  border-radius: var(--radius-card);
  width: 283px;
  overflow: hidden;
  border: 1px solid transparent;
  box-sizing: border-box;
}

.input-single--error {
  background: var(--color-surface-error);
}

.input-single__text {
  flex: 1 0 0;
  min-width: 1px;
  overflow: hidden;
}

.input-single__text--placeholder { color: var(--color-text-secondary); }
.input-single__text--filled      { color: var(--color-text-secondary); }
.input-single__text--active      { color: var(--color-text-primary);   }
.input-single__text--error       { color: var(--color-text-error);     }

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Controls: Text Input Multi-line  (node 846:33211)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.input-multi {
  background: var(--color-surface-tertiary);
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: var(--radius-card);
  width: 283px;
  height: 80px;
  overflow: hidden;
  border: 1px solid transparent;
  box-sizing: border-box;
}

.input-multi__text {
  flex: 1 0 0;
  min-width: 1px;
  color: var(--color-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Controls: Type Telephone  (node 846:33265)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.input-tel {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 283px;
}

.input-tel__code {
  background: var(--color-surface-tertiary);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 0 16px;
  border-radius: var(--radius-card);
  width: 64px;
  flex-shrink: 0;
  overflow: hidden;
}

.input-tel__code-text {
  color: var(--color-text-secondary);
  text-align: center;
  flex: 1 0 0;
  min-width: 1px;
}

.input-tel__number {
  background: var(--color-surface-tertiary);
  flex: 1 0 0;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 16px;
  border-radius: var(--radius-card);
  min-width: 1px;
  overflow: hidden;
  border: 1px solid transparent;
  box-sizing: border-box;
}

.input-tel__number--error {
  background: var(--color-surface-error);
}

.input-tel__number-text {
  flex: 1 0 0;
  min-width: 1px;
  overflow: hidden;
}

.input-tel__number-text--placeholder { color: var(--color-text-secondary); }
.input-tel__number-text--filled      { color: var(--color-text-secondary); }
.input-tel__number-text--active      { color: var(--color-text-primary);   }
.input-tel__number-text--error       { color: var(--color-text-error);     }
.line-radio {
  display: flex;
  gap: 48px;
  align-items: center;
  width: 280px;
}

.line-radio__text {
  flex: 1 0 0;
  min-width: 1px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--color-text-primary);
}

.line-radio__title {
  color: var(--color-text-primary);
}

.line-radio__hint {
  color: #72798c;
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Card Radio  (node 846:37514)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.card-radio {
  display: flex;
  gap: 16px;
  align-items: center;
  width: 320px;
}

.card-radio__card {
  background: var(--color-surface-tertiary);
  flex: 1 0 0;
  min-width: 1px;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 80px;
  padding: 8px 16px;
  border-radius: var(--radius-card);
  overflow: hidden;
}

.card-radio__card .icon-wrap {
  align-self: center;
  flex-shrink: 0;
}

.card-radio__text {
  flex: 1 0 0;
  min-width: 1px;
  color: var(--color-text-secondary);
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  text-overflow: ellipsis;
  max-height: 60px; /* 3 Г— line-height 20px */
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Line Switch  (node 846:37543)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.line-switch {
  display: flex;
  gap: 48px;
  align-items: center;
  width: 305px;
}

.line-switch__text {
  flex: 1 0 0;
  min-width: 1px;
  color: var(--color-text-primary);
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   Line Bullet  (node 846:29673)
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
.line-bullet {
  display: flex;
  gap: 16px;
  align-items: center;
}

.line-bullet__bullet {
  width: 28px;
  height: 28px;
  box-sizing: border-box;
  background: var(--color-surface-secondary);
  border-radius: 8px;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.line-bullet__bullet--dark {
  background: #09034b;
}

.line-bullet__bullet--success {
  background: #059669;
}

.line-bullet__bullet--accent {
  background: #ed1d51;
}

.line-bullet__text {
  flex: 1 0 0;
  min-width: 1px;
  color: var(--color-text-primary);
}
.icon-wrap {
  position: relative;
  flex-shrink: 0;
}

.icon-wrap img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  top: 0;
  left: 0;
}

.icon-wrap__vector {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.icon-wrap__vector img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.icon-wrap__vector--4x16 { width: 4px; height: 16px; }
.icon-wrap__vector--10x18 { width: 10px; height: 18px; }
.icon-wrap__vector--12x11 { width: 12px; height: 11px; }
.icon-wrap__vector--12x16 { width: 12px; height: 16px; }
.icon-wrap__vector--14x14 { width: 14px; height: 14px; }
.icon-wrap__vector--14x16 { width: 14px; height: 16px; }
.icon-wrap__vector--15x18 { width: 15px; height: 18px; }
.icon-wrap__vector--16x13 { width: 16px; height: 13px; }
.icon-wrap__vector--16x14 { width: 16px; height: 14px; }
.icon-wrap__vector--16x16 { width: 16px; height: 16px; }
.icon-wrap__vector--18x14 { width: 18px; height: 14px; }
.icon-wrap__vector--18x16 { width: 18px; height: 16px; }
.icon-wrap__vector--7x7 { width: 7.657px; height: 7.657px; }
.icon-wrap__vector--10x10 { width: 10px; height: 10px; }
.icon-wrap__vector--8x10  { width: 8px;  height: 10px; }

.icon-wrap__vector--16x13-down { top: calc(50% - 0.5px); }
.icon-wrap__vector--16x13-up { top: calc(50% + 0.5px); }
.icon-wrap__vector--18x16-down { top: calc(50% - 1px); }
.sheet {
  background: var(--color-surface-white);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: hidden;
  width: 100%;
  min-width: 320px;
  max-width: 393px;
  margin: 0 auto;
  box-sizing: border-box;
}

.sheet--base {
  border-radius: 24px 24px 0 0;
  padding: 32px 20px 20px;
  gap: 16px;
  min-height: 0;
}

.sheet--compact {
  min-height: 0;
}

.sheet--burger {
  border-radius: 24px 24px 0 0;
  min-height: 434px;
}

.sheet--up {
  border-radius: 0 0 24px 24px;
  padding: 20px 20px 32px;
  gap: 16px;
  min-height: 266px;
}

/* Full-width grab zone (like legacy .grab); visual bar via ::after */
.sheet__handle {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transform: none;
  width: 100%;
  height: 44px;
  background: transparent;
  border-radius: 0;
  pointer-events: auto;
  cursor: default;
  touch-action: none;
  z-index: 2;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.sheet__handle::selection {
  background: transparent;
}
.sheet__handle::after {
  content: '';
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  width: 62px;
  height: 4px;
  background: var(--color-surface-chip-active);
  border-radius: 2px;
  pointer-events: none;
}

.sheet__handle--bottom {
  top: auto;
  bottom: 0;
}
.sheet__handle--bottom::after {
  top: auto;
  bottom: 12px;
}

.sheet__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 20px;
  height: 20px;
  z-index: 3;
  background: transparent;
  border: none;
  padding: 0;
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.sheet__close__icon {
  width: 20px;
  height: 20px;
  position: relative;
  flex-shrink: 0;
}

.sheet__close__icon img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.sheet__close--bottom {
  top: auto;
  bottom: 12px;
}

.sheet__header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  flex-shrink: 0;
}

.sheet__title {
  flex: 1 0 0;
  text-align: center;
  color: var(--color-text-primary);
}

.sheet__content {
  flex: 1 0 0;
  min-height: 120px;
  background: var(--color-surface-tertiary);
  border-radius: 8px;
}

.sheet-burger__header,
.sheet-burger__footer {
  width: 100%;
  height: 144px;
  background: var(--color-surface-tertiary);
  flex-shrink: 0;
}

.sheet-burger__content {
  width: 100%;
  flex: 1 0 0;
  min-height: 80px;
  background: var(--color-surface-secondary);
  opacity: 0.4;
}

/* в”Ђв”Ђв”Ђ Popover в”Ђв”Ђв”Ђ */
.popover {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  width: 184px;
}

.popover__body {
  background: var(--color-brand-dark);
  border-radius: 16px;
  padding: 16px 28px 16px 16px;
  position: relative;
  width: 100%;
}

.popover__text {
  color: var(--color-surface-white);
  width: 140px;
  white-space: pre-line;
  font-family: var(--font-family);
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
}

.popover__close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.popover__close img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
}

.popover__pin {
  width: 12px;
  height: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(180deg);
  margin-top: 0;
}

.popover__pin img {
  width: 10.4px;
  height: 9px;
  object-fit: contain;
  display: block;
}

/* в”Ђв”Ђв”Ђ Snackbar в”Ђв”Ђв”Ђ */
.snackbar {
  padding: 0 20px;
  width: 100%;
  min-width: 320px;
  max-width: 393px;
  margin: 0 auto;
  box-sizing: border-box;
}

.snackbar__container {
  background: var(--color-brand-dark);
  border-radius: 16px;
  padding: 16px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.snackbar__message {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-right: 16px;
}

.snackbar__text {
  color: var(--color-surface-white);
  line-height: 20px;
}

.snackbar__amount {
  color: var(--color-surface-white);
}

.snackbar__actions {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.snackbar__btn {
  padding: 8px 12px;
  border-radius: 16px;
  cursor: pointer;
  white-space: nowrap;
  font-family: var(--font-family);
  font-size: 12px;
  font-weight: 700;
  line-height: normal;
}

.snackbar__btn--outline {
  background: transparent;
  border: 1px solid var(--color-surface-white);
  color: var(--color-surface-white);
}

.snackbar__btn--solid {
  background: var(--color-surface-white);
  border: none;
  color: var(--color-brand-dark);
}

.snackbar__close {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Figma Small close 20×20 (как popover / styles_mobile) — не 10×10 */
.snackbar__close img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
}

.snackbar__info-row {
  display: flex;
  gap: 16px;
  align-items: center;
  padding-right: 16px;
}

.snackbar__icon {
  width: 36px;
  height: 36px;
  border-radius: 50px;
  background: #f5f6fa;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.snackbar__icon--success {
  background: #9ef0bf;
}
.snackbar__icon--error {
  background: var(--color-surface-danger, #fde8ed);
}

.snackbar__icon-inner {
  width: 20px;
  height: 20px;
  position: relative;
  flex-shrink: 0;
}

.snackbar__icon-inner img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.split-logo-wrap {
  width: 112px;
  height: 32px;
  position: relative;
  flex-shrink: 0;
  margin: 0 auto;
}

.split-logo-wrap__vector {
  width: 112px;
  height: 32px;
  position: relative;
}

.split-logo-wrap__vector img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.split-slide-wrap {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  max-width: 100%;
}

.split-slide-wrap::-webkit-scrollbar {
  display: none;
}

.split-slide-wrap img {
  display: block;
  width: 481px;
  height: 123px;
  max-width: none;
}
/* в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ
   SECTION 12 вЂ” SHEET SCREENS (457:3188вЂ“457:3343)
   в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ */

.sheet-page {
  min-height: 100vh;
  min-width: 320px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  background: #f5f6fa;
}

.sheet-page .sheet {
  width: 100%;
  max-width: 393px;
}

.sheet-page .sheet__content {
  background: transparent;
  min-height: 0;
  flex: 0 0 auto;
}

.sheet__content--stack {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  align-items: stretch;
}

.sheet__content--stack-16 {
  gap: 16px;
}

.sheet-btn-row {
  display: flex;
  gap: 16px;
  width: 100%;
}

.sheet-btn-row .btn-big {
  flex: 1 0 0;
  min-width: 0;
}

.sheet-disclaimer {
  text-align: center;
  color: var(--color-text-secondary);
}

.sheet-disclaimer--left {
  text-align: left;
}

.sheet-link-positive {
  color: var(--color-text-positive, #059669);
  text-decoration: none;
}

.sheet-subtitle {
  color: var(--color-text-primary);
}

.sheet-page .input-single,
.sheet-page .input-multi {
  width: 100%;
}

.sheet-page .input-tel {
  width: 100%;
}

.sheet-page .input-tel__number {
  flex: 1 0 0;
  min-width: 0;
}

.input-multi--tall {
  height: 96px;
  align-items: flex-start;
  position: relative;
}

.input-multi--tall .input-multi__text {
  height: 100%;
  padding-right: 28px;
  box-sizing: border-box;
}

.input-multi--tall .b2-input-clear {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
}

.input-row-pair {
  display: flex;
  gap: 8px;
  width: 100%;
}

.input-row-pair .input-single {
  flex: 1 0 0;
  width: auto;
  min-width: 0;
}

.sheet-chip-scroll {
  overflow-x: auto;
  width: calc(100% + 40px);
  max-width: none;
  margin-left: -20px;
  margin-right: -20px;
  padding-left: 20px;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
}

.sheet-chip-scroll::-webkit-scrollbar {
  display: none;
}

.sheet-chip-row {
  display: inline-flex;
  gap: 10px;
  padding-right: 20px;
}

.sheet-split-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.sheet-split-headline {
  text-align: center;
  color: var(--color-text-primary);
}

.sheet-split-sub {
  text-align: center;
  color: var(--color-text-primary);
}

.sheet-split-section-title {
  text-align: center;
  color: var(--color-text-primary);
}

.sheet-page .split-condition {
  width: 100%;
}

.line-bullet--sheet {
  align-items: flex-start;
}

.line-bullet--sheet .line-bullet__bullet {
  background: var(--color-surface-error);
}

.line-bullet--sheet .line-bullet__bullet .icon-wrap,
.line-bullet--sheet .line-bullet__bullet .icon-wrap--small {
  width: 20px;
  height: 20px;
  position: relative;
  flex-shrink: 0;
}

.line-bullet--sheet .line-bullet__bullet .icon-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.sheet-burger-header {
  background: var(--color-surface-error);
  padding: 50px 0 32px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sheet-burger-images {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0 20px 0 24px;
  box-sizing: border-box;
}

.sheet-burger-thumb {
  width: 128px;
  height: 76px;
  border-radius: 8px;
  border: 3px solid var(--color-surface-white);
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}

.sheet-burger-thumb img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sheet-burger-arrow {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  margin: 0 12px 0 16px;
  position: relative;
}

.sheet-burger-arrow img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.sheet-burger-upsell {
  /* Figma Uppsell composite frame; source PNGs are 330×252 (2×) */
  width: 165px;
  height: 126px;
  flex-shrink: 0;
  position: relative;
  overflow: visible;
}

.sheet-burger-upsell__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.sheet-burger-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 20px 0;
  width: 100%;
  box-sizing: border-box;
}

.sheet-burger-bullets {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  justify-content: center;
  width: 100%;
  max-width: 280px;
  margin: 0 auto;
}

.sheet-burger-bullet {
  display: flex;
  gap: 12px;
  align-items: center;
  width: 128px;
}

.sheet-burger-bullet__icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--color-brand-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 4px;
  box-sizing: border-box;
}

.sheet-burger-bullet__icon .icon-wrap {
  width: 20px;
  height: 20px;
}

.sheet-burger-bullet__text {
  flex: 1 0 0;
  min-width: 0;
  color: var(--color-text-primary);
}

.btn-big--outline {
  background: transparent;
  border: 1px solid var(--color-text-quaternary, #b7c2cb);
  color: var(--color-text-primary);
}

.sheet-burger-footer {
  padding: 20px;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.sheet-page .card-radio {
  width: 100%;
}

.sheet-page .card-radio__card {
  height: 80px;
}

.btn-big__icon {
  width: 20px;
  height: 20px;
  position: relative;
  flex-shrink: 0;
}

.btn-big__icon-vector {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.btn-big__icon-vector img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.btn-big__icon-vector--16x16 { width: 16px; height: 16px; }
.btn-big__icon-vector--14x16 { width: 14px; height: 16px; }
.btn-big__icon-vector--16x14 { width: 16px; height: 14px; }

.btn-big--disabled {
  background: var(--color-surface-secondary);
  color: var(--color-text-disabled);
  cursor: not-allowed;
}

.sheet-page .line-radio {
  width: 100%;
}

.sheet-page .line-switch {
  width: 100%;
}

.sheet--base.sheet--no-header {
  padding-top: 40px;
}

.sheet--up .sheet__header {
  padding-bottom: 0;
}

@media (max-width: 393px) {
  .sheet-page .sheet {
    max-width: 100vw;
  }
}
.sheet-page--specimen {
  justify-content: center;
  padding: 48px 20px;
  box-sizing: border-box;
}

.sheet-page--specimen .snackbar {
  width: 100%;
  max-width: 393px;
  padding: 0;
}

/* в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ
   New card form вЂ” 1040:73493
   Offer / rules вЂ” 1069:16978
   в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ */
body.app--white {
  background: #fff;
}

.checkout-page--white {
  background: #fff;
}

.form-scroll {
  position: absolute;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: stretch;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 24px 20px 40px;
  box-sizing: border-box;
  scrollbar-width: none;
}

.form-scroll::-webkit-scrollbar {
  display: none;
}

.form-scroll__lead {
  width: 100%;
  text-align: center;
  color: var(--color-text-primary);
}

.form-field {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  height: 48px;
  padding: 0 16px;
  border-radius: 16px;
  background: #f2f4f7;
  box-sizing: border-box;
  overflow: hidden;
}

.form-field__text {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--color-text-secondary);
}

.form-field-row {
  display: flex;
  gap: 8px;
  width: 100%;
  align-items: center;
}

.form-field-row .form-field {
  flex: 1 1 0;
  min-width: 0;
}

.form-scroll__note {
  width: 100%;
  text-align: center;
  color: var(--color-text-secondary);
}

.offer-page .cart-header {
  border-bottom: 1px solid var(--color-surface-divider);
}

/* Figma 1677:6772 — full-page doc modals (oferta / terms), not bottom sheets */
.fuzz.fuzz--oferta,
.fuzz.fuzz--terms {
  background: var(--color-surface-page, #f5f6fa);
  overflow: hidden;
}
.fuzz.fuzz--oferta .popup.popup--oferta,
.fuzz.fuzz--terms .popup.popup--terms {
  position: absolute;
  inset: 0;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0 !important;
  border-radius: 0;
  background: var(--color-surface-page, #f5f6fa);
  overflow: hidden;
  box-sizing: border-box;
}
.fuzz.fuzz--oferta .offer-page,
.fuzz.fuzz--terms .offer-page {
  position: relative;
  width: 100%;
  height: 100%;
  background: var(--color-surface-page, #f5f6fa);
  overflow: hidden;
}
.fuzz.fuzz--oferta .cart-header,
.fuzz.fuzz--terms .cart-header {
  position: fixed;
  z-index: 10001;
  top: 0;
  right: 0;
  left: 0;
}
.fuzz.fuzz--oferta .cart-header button.icon-wrap,
.fuzz.fuzz--terms .cart-header button.icon-wrap {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.offer-scroll {
  position: absolute;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-start;
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 20px 20px 40px;
  box-sizing: border-box;
  scrollbar-width: none;
}

.offer-scroll::-webkit-scrollbar {
  display: none;
}

/* HTML из /docs/* внутри модалки соглашения / ПД */
#b2-agreement-content,
#b2-privacy-content {
  display: block;
  color: var(--color-text-primary);
  font-size: 14px;
  line-height: 20px;
}
#b2-agreement-content table,
#b2-privacy-content table {
  width: 100%;
  border-collapse: collapse;
}
#b2-agreement-content h1,
#b2-agreement-content h3,
#b2-privacy-content h1,
#b2-privacy-content h3,
#b2-agreement-content strong,
#b2-privacy-content strong {
  color: var(--color-text-primary);
}
#b2-agreement-content a,
#b2-privacy-content a {
  color: var(--color-text-primary);
  text-decoration: none;
}

.offer-scroll__title {
  width: 100%;
  color: var(--color-text-primary);
}

.offer-scroll__intro {
  width: 100%;
  color: var(--color-text-primary);
}

.offer-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  padding: 16px 0;
  margin: 0;
  box-sizing: border-box;
}

.offer-list__item {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  width: 100%;
}

.offer-list__num {
  flex: 0 0 24px;
  width: 24px;
  color: var(--color-text-primary);
}

.offer-list__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.offer-list__text {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--color-text-primary);
}

.offer-sublist {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 0;
}

.offer-sublist__item {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  width: 100%;
}

.offer-sublist__bullet {
  flex: 0 0 16px;
  width: 16px;
  text-align: center;
  color: var(--color-text-primary);
}

.offer-sep {
  width: 100%;
  height: 16px;
  flex-shrink: 0;
  background: linear-gradient(
    to bottom,
    transparent 7px,
    var(--color-surface-divider) 7px,
    var(--color-surface-divider) 8px,
    transparent 8px
  );
}

.line-bullet--offer-link {
  width: 100%;
  align-items: flex-start;
}

.line-bullet__bullet--plain {
  background: transparent;
  padding: 4px;
}

.offer-link {
  color: var(--color-brand-primary);
}


/* basket2 runtime overrides */
body.app { background: var(--color-surface-page); }
body.app.basket2-root {
  --b2-sheet-top-gap: max(62px, env(safe-area-inset-top, 0px));
}

/* Корневой скролл заблокирован — bounce/rubber-band только во внутренних scrollport'ах */
:root {
  --b2-sheet-top-gap: max(12px, env(safe-area-inset-top, 0px));
}

html.basket2-html,
body.basket2-root {
  overflow: hidden;
  height: 100%;
  overscroll-behavior: none;
}

body.basket2-root {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: 100%;
}

.cart-page,
.checkout-page,
.purchase-result-page {
  overscroll-behavior: none;
}

/*
 * Внутренний контент: физика прокрутки + натяжение (rubber-band).
 * Навбары (header / bottom CTA / app-nav) — position:fixed и сюда не входят.
 * contain глушит bounce в WebKit/WebView → y:auto + scroll.
 */
.basket2-root .cart-scroll,
.basket2-root .checkout-scroll,
.basket2-root .cart-page__body,
.basket2-root .offer-scroll,
.basket2-root .purchase-result-page__frame {
  overflow-x: hidden;
  overflow-y: scroll;
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  will-change: transform;
}

.basket2-root .cart-scroll.b2-overscrolling,
.basket2-root .checkout-scroll.b2-overscrolling,
.basket2-root .cart-page__body.b2-overscrolling,
.basket2-root .offer-scroll.b2-overscrolling,
.basket2-root .purchase-result-page__frame.b2-overscrolling {
  overflow-y: hidden;
}

/* Пустая корзина: блок по центру экрана; +1px — лёгкий bounce на iOS */
.basket2-root .cart-page__body > .cart-empty {
  width: 100%;
  min-height: calc(100% + 1px);
  box-sizing: border-box;
  justify-content: center;
}
.basket2-pay-disabled { opacity: 0.45; pointer-events: none; }
.checkout-tile[data-delivery] { cursor: pointer; }
.pay-card__method { cursor: pointer; }

/* runtime: fuzz + snackbar + sheets (как include/styles_mobile_2020.css) */
.fuzz {
  display: none;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 10000;
  overflow: hidden;
}
.fuzz.slideup {
  z-index: 10000;
}
/* Полная ширина экрана; высота задаётся slideUp(percent), по умолчанию ~2/3 */
.fuzz.slideup .popup {
  display: block;
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  height: 67%;
  max-height: calc(100dvh - var(--b2-sheet-top-gap));
  bottom: -100%;
  background: transparent;
  border-radius: 24px 24px 0 0;
  transition: bottom 0.45s ease, transform 0.38s cubic-bezier(0.32, 0.72, 0, 1);
  z-index: 10001;
  overflow: hidden;
  box-sizing: border-box;
  will-change: transform;
  touch-action: pan-y;
}
.fuzz.slideup .popup.popup--dragging {
  transition: none;
}
.fuzz.slideup .popup.popup--snap-back {
  transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1);
}
.fuzz.slideup .popup.popup--dismissing {
  transition: none; /* inline transition set in JS from current offset */
  pointer-events: none;
}
.fuzz.slideup .popup.active:not(.popup--recipient) {
  bottom: 0;
}
.fuzz.slideup .popup.popup--recipient.active,
.fuzz.slideup #div_b2_gift.popup.active {
  bottom: var(--b2-popup-bottom, 0);
}
.fuzz.slideup .popup .sheet {
  background: var(--color-surface-white);
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  height: 100%;
  max-height: none;
  border-radius: 24px 24px 0 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
  padding: 0;
}
.fuzz.slideup .popup.popup--dragging .sheet {
  overflow: hidden;
  overscroll-behavior: none;
}
.fuzz.slideup .popup .sheet.sheet--base {
  padding: 32px 20px 20px;
  gap: 16px;
}
/* Figma 1510:61437 — Unregistered Sheet (base08): те же отступы, что у base */
.fuzz.slideup .popup .sheet.sheet--base08 {
  padding: 32px 20px 20px;
  gap: 16px;
  box-shadow: 0 -7px 14.1px rgba(0, 0, 0, 0.1);
}
.fuzz.slideup .popup .sheet.sheet--base.sheet--no-header {
  padding-top: 40px;
}
.fuzz.slideup .popup .sheet.sheet--burger {
  padding: 0;
  gap: 0;
  min-height: 0;
}
/* Контент шторок — как в макетах: без серой растяжки */
.fuzz.slideup .popup .sheet .sheet__content {
  background: transparent;
  flex: 0 0 auto;
  min-height: 0;
  border-radius: 0;
  width: 100%;
}
.fuzz.slideup .popup.popup--compact:not(.popup--recipient) {
  height: auto !important;
  max-height: calc(100dvh - var(--b2-sheet-top-gap));
}
.fuzz.slideup .popup.popup--recipient,
.fuzz.slideup #div_b2_gift.popup {
  height: auto;
  max-height: var(--b2-popup-max-height, calc(100dvh - var(--b2-sheet-top-gap)));
  overflow: hidden;
}
/* Figma 1508:14238 Sheet/Base — gap 16 header→content; высота по контенту (424), pb 20 */
.fuzz.slideup .popup.popup--compact .sheet.sheet--buyer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: auto !important;
  min-height: 0 !important;
  max-height: none;
  overflow: hidden;
  padding-bottom: 0;
  gap: 16px;
}
.fuzz.slideup .popup.popup--compact .sheet.sheet--buyer .sheet__header {
  flex-shrink: 0;
  padding: 12px;
}
.fuzz.slideup .popup.popup--compact .sheet.sheet--buyer .sheet__content {
  flex: 0 0 auto;
  min-height: 0;
  padding-bottom: 24px;
}
.sheet--buyer .sheet__footer {
  width: 100%;
  padding: 0 0 20px;
  box-sizing: border-box;
  flex-shrink: 0;
  background: var(--color-surface-white);
}
.fuzz.slideup .popup .sheet.sheet--upsell {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Figma 2151:11379 — pt 32; горизонталь на scroll/footer; кнопки на фиксированной плашке */
  padding: 32px 0 0;
  gap: 0;
  height: auto;
  max-height: inherit;
  min-height: 0;
  overflow: hidden;
  /* Градиенты сверху слева и справа (апдейт 2151:11459) */
  background:
    radial-gradient(ellipse 42% 37% at 0% 0%, rgba(207, 210, 245, 1) 0%, rgba(207, 209, 245, 0) 100%),
    radial-gradient(ellipse 42% 37% at 100% 0%, rgba(239, 223, 236, 1) 0%, rgba(239, 223, 236, 0) 100%),
    #f5f6fa;
}
.fuzz.slideup .popup.popup--upsell {
  height: auto;
  max-height: calc(100dvh - var(--b2-sheet-top-gap));
}
.fuzz.slideup .popup.popup--upsell .sheet__close {
  top: 0;
  right: 0;
  width: 44px;
  height: 44px;
  z-index: 3;
}
/* Figma 2151:11379 Sheet / Upsell — scroll body + fixed footer */
.sheet--upsell {
  box-sizing: border-box;
}
.sheet-upsell__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 0 20px;
  box-sizing: border-box;
  /* Контент прибит к верху; при нехватке высоты уходит под футер */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}
.sheet-upsell__header {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
  padding: 12px 0 20px;
  text-align: center;
  flex-shrink: 0;
}
.sheet-upsell__pretitle {
  width: 100%;
  margin: 0;
  color: var(--color-text-primary);
}
.sheet-upsell__title {
  width: 100%;
  margin: 0;
  color: var(--color-text-primary);
}
.sheet-upsell__content {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  min-width: 0;
  flex-shrink: 0;
  /* Запас, чтобы последние блоки можно было проскроллить из-под серой плашки */
  padding-bottom: 8px;
}
.sheet-upsell-cards {
  position: relative;
  display: flex;
  gap: 12px;
  align-items: stretch;
  width: 100%;
}
.sheet-upsell-card {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-surface-white);
  border-radius: 16px;
  overflow: hidden;
}
.sheet-upsell-card__media {
  height: 100px;
  width: 100%;
  overflow: hidden;
  flex-shrink: 0;
}
.sheet-upsell-card__media--cert {
  background: #ecf1f5;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sheet-upsell-card__media--cert img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: scale(1.05);
  transform-origin: center center;
  display: block;
}
.sheet-upsell-card__media:not(.sheet-upsell-card__media--cert) img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sheet-upsell-card__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 8px 8px 0;
  flex: 1 1 auto;
  min-height: 0;
}
.sheet-upsell-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 20px;
  padding: 4px;
  border-radius: 8px;
  align-self: flex-start;
  max-width: 100%;
  box-sizing: border-box;
  line-height: 0;
}
.sheet-upsell-badge__icon {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
.sheet-upsell-badge__icon img,
.sheet-upsell-badge__icon svg {
  width: 12px;
  height: 12px;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}
.sheet-upsell-badge--course {
  background: #e5f0fe;
  color: var(--color-text-primary);
}
.sheet-upsell-badge--hit {
  background: #ff6002;
  color: var(--color-text-white);
}
.sheet-upsell-badge__text {
  font-size: 10px;
  line-height: 12px;
  font-weight: 400;
  white-space: nowrap;
  display: block;
  transform: translateY(1px);
}
.sheet-upsell-card__title {
  margin: 0;
  height: 48px;
  overflow: hidden;
  font-size: 12px;
  line-height: 16px;
  font-weight: 700;
  color: var(--color-text-primary);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.sheet-upsell-card__price {
  margin: 0;
  margin-top: auto;
  padding: 8px 12px;
  color: var(--color-text-primary);
}
.sheet-upsell-cards__arrow {
  position: absolute;
  left: 50%;
  top: 34px;
  transform: translateX(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--color-surface-white);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  box-sizing: border-box;
  z-index: 2;
  pointer-events: none;
}
.sheet-upsell-cards__arrow img {
  width: 20px;
  height: 20px;
  display: block;
  object-fit: contain;
}
.sheet-upsell-plus {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px 0;
  border-radius: 16px;
  background: var(--color-surface-white);
  width: 100%;
  box-sizing: border-box;
}
.sheet-upsell-plus__title {
  margin: 0;
  padding: 0 23px;
  color: var(--color-text-primary);
}
.sheet-upsell-line {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 20px;
  min-height: 20px;
  width: 100%;
  box-sizing: border-box;
}
.sheet-upsell-line[hidden] {
  display: none !important;
}
.sheet-upsell-line__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  align-self: center;
  margin-top: -2px;
}
.sheet-upsell-line__star {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  align-self: center;
  margin-top: -2px;
}
.sheet-upsell-line__icon img,
.sheet-upsell-line__icon svg,
.sheet-upsell-line__star img,
.sheet-upsell-line__star svg {
  width: 20px;
  height: 20px;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}
.sheet-upsell-line__text {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--color-text-primary);
}
.sheet-upsell-line__bonus {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  white-space: nowrap;
  line-height: 20px;
}
.sheet-upsell-line__bonus .text-body-main-bold {
  color: var(--color-text-primary);
}
.sheet-upsell__footer {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px;
  width: 100%;
  flex-shrink: 0;
  box-sizing: border-box;
  background: #f5f6fa;
  position: relative;
  z-index: 2;
}

.fuzz.slideup .popup.popup--burger {
  height: auto;
  max-height: calc(100dvh - var(--b2-sheet-top-gap));
}
/* Clear-cart sheet (Figma 1677:6499): pt 40px */
.fuzz.slideup .popup.popup--compact .sheet.sheet--compact {
  padding-top: 40px;
}
/* Fullscreen delivery map modal */
.fuzz.slideup.fuzz--map {
  background: #ecf1f5;
}
.fuzz.slideup .popup.popup--map {
  height: 100%;
  max-height: 100%;
  border-radius: 0;
  background: #ecf1f5;
  overflow: hidden;
  touch-action: auto;
  will-change: auto;
  /* Нельзя анимировать bottom/transform: YaDelivery меряет проекцию
     в момент createWidget — на мобиле тап по кластеру тогда зумит наружу. */
  bottom: 0;
  transition: none;
}
.fuzz.slideup .popup.popup--map .b2-map-layer,
.fuzz.slideup .popup.popup--map .map-page__map {
  touch-action: none;
}
.fuzz.slideup .popup.popup--map .b2-map-panel {
  touch-action: pan-y;
  transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1);
}
.fuzz.slideup .popup.popup--map.popup--dragging .b2-map-panel {
  transition: none;
}
.fuzz.slideup .popup.popup--map .b2-map-panel.b2-map-panel--snap-back {
  transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1);
}
.fuzz.slideup .popup.popup--map.popup--dismissing .b2-map-panel {
  pointer-events: none;
}
.fuzz.slideup .popup.popup--map.active {
  bottom: 0;
}
body.b2-map-open {
  overflow: hidden;
}
/* position:fixed на body ломает touch-проекцию ymaps внутри fullscreen-карты. */
body.basket2-root.b2-map-open {
  position: static;
  inset: auto;
  width: 100%;
  height: 100%;
}
/* map-page--modal must beat later .map-page { max-width: 393px } */
.map-page.map-page--modal {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 100%;
  margin: 0;
  background: #ecf1f5;
  overflow: hidden;
}
.map-page--modal .b2-map-layer[hidden],
.map-page--modal .b2-map-panel[hidden] {
  display: none !important;
}
/* Курьер / срочная: карта под шапкой; пин в центре карты */
.map-page.map-page--modal.map-page--courier .map-page__map--courier {
  position: absolute;
  top: 52px;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: auto;
  z-index: 1;
  overflow: hidden;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express {
  z-index: 4;
  display: flex;
  flex-direction: column;
  max-height: calc(100% - 72px);
  padding: 12px 0 0;
  overflow: hidden;
  transition: transform 0.32s cubic-bezier(0.32, 0.72, 0, 1);
}
/* sheet--base08 даёт 20px по бокам с большей специфичностью — поля уже имеют 20px от scroll/footer */
.fuzz.slideup .popup .map-page.map-page--modal.map-page--courier .sheet.sheet--base08.sheet--map-express,
.map-page.map-page--modal.map-page--courier .sheet.sheet--base08.sheet--map-express {
  padding-left: 0;
  padding-right: 0;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express .sheet-express-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 20px;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express .sheet__content {
  padding-left: 0;
  padding-right: 0;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express .sheet-express-footer {
  flex: 0 0 auto;
  padding: 12px 20px max(20px, env(safe-area-inset-bottom, 0px));
  background: transparent;
  box-shadow: none;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express .input-multi.input-multi--tall {
  width: 100%;
  max-width: 100%;
  height: 96px;
  min-height: 96px;
  flex-shrink: 0;
  margin: 0;
}
/* Peek: адрес + кв/этаж + кнопка (подъезд/домофон и комментарий — только в full) */
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-peek {
  max-height: none;
  padding-bottom: 0;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-peek .sheet-express-extra {
  display: none !important;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-peek .sheet-express-scroll {
  flex: 0 0 auto;
  overflow: hidden;
  padding-bottom: 0;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-peek .sheet-express-hint {
  display: none !important;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-peek .sheet-express-footer {
  padding-top: 16px;
  padding-bottom: max(16px, env(safe-area-inset-bottom, 0px));
}
/* Handle-only: ровно та же шапка/полоска, что в peek и full (без раздувания padding) */
.map-page.map-page--modal.map-page--courier .sheet.sheet--base08.sheet--map-overlay.sheet--map-express.is-collapsed {
  padding: 0 !important;
  gap: 0 !important;
  min-height: 0 !important;
  max-height: 56px !important;
  height: 56px !important;
  overflow: hidden;
  box-sizing: border-box;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-collapsed .sheet-express-scroll,
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-collapsed .sheet-express-footer {
  display: none !important;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-collapsed .sheet__handle {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  width: 100%;
  height: 56px;
  flex: 0 0 auto;
}
/* чёрточка — как в остальных состояниях (top: 12px), не по центру */
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-collapsed .sheet__handle::after {
  top: 12px;
  height: 4px;
  width: 62px;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express .sheet__handle {
  height: 56px;
  z-index: 6;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express .sheet-express-scroll {
  padding-top: 8px;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-expand-drag .sheet-express-scroll {
  overflow: hidden;
}
.map-page.map-page--modal.map-page--courier .sheet--map-express.is-map-dragging {
  pointer-events: none;
}
.b2-courier-center-pin {
  display: none;
  position: absolute;
  left: 50%;
  top: 50%;
  width: 48px;
  height: 56px;
  margin-left: -24px;
  margin-top: -54px;
  z-index: 3;
  pointer-events: none;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.3));
  transition: transform 0.12s ease;
}
.b2-courier-center-pin img {
  display: block;
  width: 48px;
  height: 56px;
  object-fit: contain;
}
.map-page.map-page--modal.map-page--courier .b2-courier-center-pin:not([hidden]) {
  display: block;
}
.map-page.map-page--modal.map-page--courier .b2-courier-center-pin.is-dragging {
  transform: translateY(-8px) scale(1.05);
}
.ymaps-2-1-79-suggest-items,
.ymaps-2-1-79-islets_suggest-items {
  z-index: 10050 !important;
}
.b2-suggest-wrap {
  position: relative;
  z-index: 6;
}
.b2-suggest-list {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: #fff;
  border: 1px solid #e2e4e8;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  max-height: 220px;
  overflow-y: auto;
  z-index: 10050;
}
.b2-suggest-list[hidden] {
  display: none !important;
}
.b2-suggest-list__item {
  padding: 10px 14px;
  font-size: 14px;
  line-height: 1.35;
  color: #1a2744;
  cursor: pointer;
}
.b2-suggest-list__item:hover,
.b2-suggest-list__item:focus {
  background: #f3f5f8;
}
.map-page--modal .ymaps-2-1-79-gotoymaps,
.map-page--modal .ymaps-2-1-79-gototech,
.map-page--modal .ymaps-2-1-79-map-copyrights-promo {
  display: none !important;
}
/* Шторка на карте: на всю ширину + padding как sheet--base08 в Figma (32/20/20) */
.fuzz.slideup .popup.popup--map .sheet,
.fuzz.slideup .popup.popup--map .sheet.sheet--base,
.fuzz.slideup .popup.popup--map .sheet.sheet--base08,
.map-page.map-page--modal .sheet.sheet--map-overlay {
  height: auto !important;
  max-height: calc(100% - 72px);
  min-height: 0;
  min-width: 0;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 32px 20px 20px;
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
  background: #fff;
  border-radius: 24px 24px 0 0;
  box-shadow: 0 -7px 14.1px rgba(0, 0, 0, 0.1);
  gap: 16px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 4;
}
.fuzz.slideup .popup.popup--map .map-page__map,
.map-page.map-page--modal .map-page__map {
  z-index: 1;
}
.fuzz.slideup .popup.popup--map .map-page__close,
.map-page.map-page--modal .map-page__close {
  z-index: 5;
}
.fuzz.slideup .line-radio,
.fuzz.slideup .line-switch {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.fuzz.slideup .input-single,
.fuzz.slideup .input-multi,
.fuzz.slideup .input-tel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.fuzz.slideup .input-tel__number {
  flex: 1 1 auto;
  min-width: 0;
}
.fuzz.slideup .sheet-split-block {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.fuzz.slideup .sheet-subtitle {
  width: 100%;
  margin: 0;
  text-align: left;
  color: var(--color-text-primary);
}
.fuzz.slideup .sheet-agreement {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.fuzz.slideup .input-single input,
.fuzz.slideup .input-tel__number input,
.fuzz.slideup .input-multi textarea,
.fuzz.slideup .input-single input.text-body-main,
.fuzz.slideup .input-tel__number input.text-body-main {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
  outline: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  font-style: normal;
  /* Figma Type Single-line / +7 — Body/Main 14/20; primary только в focus */
  color: var(--color-text-secondary);
  resize: none;
}
.fuzz.slideup .input-tel__code-text,
.fuzz.slideup .input-tel__code-text.text-body-main {
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  font-style: normal;
}
/* Figma 1916:20666 Sheet / Recipient — surface/input-default, +7 всегда secondary */
.fuzz.slideup .sheet--recipient .input-single:not(.input-single--error),
.fuzz.slideup .sheet--recipient .input-tel__code,
.fuzz.slideup .sheet--recipient .input-tel:not(.input-tel--error) .input-tel__number {
  background: #f2f4f7;
}
.fuzz.slideup .sheet--recipient .input-tel__code-text {
  color: var(--color-text-secondary);
}
.fuzz.slideup .sheet--recipient .input-tel:focus-within .input-tel__code-text {
  color: var(--color-text-secondary);
}
.fuzz.slideup .sheet--recipient .input-single:not(.input-single--error) input,
.fuzz.slideup .sheet--recipient .input-tel:not(.input-tel--error) .input-tel__number input {
  -webkit-text-fill-color: var(--color-text-secondary);
}
/* Focus: primary только у введённого текста; placeholder остаётся Secondary
   (как на buyer/guest — без -webkit-text-fill на всём input при пустом поле) */
.fuzz.slideup .sheet--recipient .input-single:focus-within:not(.input-single--error) input:not(:placeholder-shown),
.fuzz.slideup .sheet--recipient .input-tel:not(.input-tel--error) .input-tel__number:focus-within input:not(:placeholder-shown) {
  color: var(--color-text-primary);
  -webkit-text-fill-color: var(--color-text-primary);
}
.fuzz.slideup .sheet--recipient .input-single:focus-within:not(.input-single--error) input:placeholder-shown,
.fuzz.slideup .sheet--recipient .input-tel:not(.input-tel--error) .input-tel__number:focus-within input:placeholder-shown {
  color: var(--color-text-secondary);
  -webkit-text-fill-color: var(--color-text-secondary);
}
.fuzz.slideup .sheet--recipient .input-single input::placeholder,
.fuzz.slideup .sheet--recipient .input-tel__number input::placeholder {
  color: var(--color-text-secondary);
  -webkit-text-fill-color: var(--color-text-secondary);
  opacity: 1;
}

/* Figma 2044:9473 — error: pink bg + red text (било перебито правилами выше) */
.fuzz.slideup .sheet--recipient .input-tel--error .input-tel__number,
.fuzz.slideup .sheet--recipient .input-tel__number--error,
.fuzz.slideup .sheet--recipient .input-single--error {
  background: var(--color-surface-error, #fde8ed) !important;
}
.fuzz.slideup .sheet--recipient .input-tel--error .input-tel__number input,
.fuzz.slideup .sheet--recipient .input-tel__number--error input,
.fuzz.slideup .sheet--recipient .input-single--error input {
  color: var(--color-text-error, #ed1d51) !important;
  -webkit-text-fill-color: var(--color-text-error, #ed1d51) !important;
}
.fuzz.slideup .input-multi textarea {
  min-height: 64px;
}
.fuzz.slideup .input-single input::placeholder,
.fuzz.slideup .input-tel__number input::placeholder,
.fuzz.slideup .input-multi textarea::placeholder {
  color: var(--color-text-secondary);
}
/* Figma 1510:63052 — focus: primary text + chip-active border; clear stays #09034b */
.input-single:focus-within:not(.input-single--error),
.input-tel__number:focus-within,
.input-tel:not(.input-tel--error) .input-tel__number:focus-within,
.input-multi:focus-within {
  border-color: var(--color-surface-chip-active);
}
.input-single:focus-within:not(.input-single--error) input,
.input-tel__number:focus-within input,
.input-tel:not(.input-tel--error) .input-tel__number:focus-within input,
.input-multi:focus-within textarea,
.fuzz.slideup .input-single:focus-within:not(.input-single--error) input,
.fuzz.slideup .input-tel:not(.input-tel--error) .input-tel__number:focus-within input,
.fuzz.slideup .input-multi:focus-within textarea {
  color: var(--color-text-primary);
}
.input-tel--error .input-tel__number:focus-within,
.input-tel__number--error:focus-within,
.input-single--error:focus-within {
  border-color: transparent;
}
.fuzz.slideup .radio-button {
  position: relative;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}
.fuzz.slideup .radio-button img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: none;
}
.fuzz.slideup .line-radio .radio-button .b2-radio-off { display: block; }
.fuzz.slideup .line-radio.is-selected .radio-button .b2-radio-off { display: none; }
.fuzz.slideup .line-radio.is-selected .radio-button .b2-radio-on { display: block; }
.fuzz.slideup .line-switch .switch {
  position: relative;
  width: 40px;
  height: 24px;
  flex-shrink: 0;
}
.fuzz.slideup .line-switch .switch img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: none;
}
.fuzz.slideup .line-switch .switch .b2-switch-off { display: block; }
.fuzz.slideup .line-switch.is-on .switch .b2-switch-off { display: none; }
.fuzz.slideup .line-switch.is-on .switch .b2-switch-on { display: block; }
/* Figma 1677:7155 Content — date / time / timezone as siblings with gap 24 */
.fuzz.slideup .sheet-gift-schedule {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}
.fuzz.slideup .sheet-gift-schedule__hint {
  color: var(--color-text-secondary);
  margin: 0;
}
.fuzz.slideup .input-single--select {
  padding-right: 12px;
}
.fuzz.slideup .input-single--select select {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
  outline: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: var(--color-text-primary);
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2372798C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right center;
  padding-right: 20px;
}
/* Mobiscroll above basket2 sheets (fuzz z-index 10000) */
.dw-persp,
.dwo,
.dw {
  z-index: 11000 !important;
}
.fuzz.slideup .sheet-chip-row .chip-date,
.fuzz.slideup .sheet-chip-row .chip-time {
  border: 0;
  cursor: pointer;
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
}
.fuzz.slideup .b2-input-clear {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  flex-shrink: 0;
}
/* Figma 2040:12610 — все snackbar сверху, у первой карточки (52 header + 18 scroll pad) */
.basket2-root .snackbar-wrap {
  position: fixed;
  left: 0;
  right: 0;
  top: 70px;
  bottom: auto;
  z-index: 11000;
  display: none;
  pointer-events: none;
}
.basket2-root .snackbar-wrap:not([style*="display: none"]) {
  pointer-events: auto;
}
.basket2-root.app .snackbar-wrap {
  top: 120px;
}
.basket2-root .snackbar-wrap .snackbar--v2 {
  padding: 0 20px;
  width: 100%;
  min-width: 0;
  max-width: 393px;
  margin: 0 auto;
  box-sizing: border-box;
}
.basket2-root .snackbar-wrap .snackbar--v2 .snackbar__container {
  background: var(--color-brand-dark, #09034b);
  border-radius: 16px;
  padding: 16px;
}
.basket2-root .snackbar-wrap .snackbar--v2 .snackbar__text {
  color: #fff;
  font-size: 14px;
  line-height: 20px;
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.checkout-tile, .pay-card__method, .b2-open-gift, .b2-open-buyer, .b2-open-map, .b2-open-address, .b2-open-pvz, .b2-open-region,
.chip-time {
  cursor: pointer;
}
/* Figma 1706:7962 / 7963 — кликабельна только строка с текстом + шевроном */
.address-card__body.b2-open-map,
.address-card__body.b2-open-buyer {
  cursor: pointer;
}

/* Anchors used as buttons/nav: mockups use div/button/span — no underline */
.basket2-root a.btn-big,
.basket2-root a.checkout-btn,
.basket2-root a.app-bottom-nav__item,
.basket2-root a.icon-wrap,
.basket2-root a.b2-icon-btn,
.basket2-root .checkout-place-nav__disclaimer-link {
  text-decoration: none;
}
.basket2-root a.btn-big:hover,
.basket2-root a.checkout-btn:hover,
.basket2-root a.app-bottom-nav__item:hover,
.basket2-root a.icon-wrap:hover,
.basket2-root a.b2-icon-btn:hover,
.basket2-root .checkout-place-nav__disclaimer-link:hover {
  text-decoration: none;
}

/* Native <button> tiles: kill UA chrome, keep Figma border/padding from .checkout-tile / .pay-card__method */
button.checkout-tile,
button.pay-card__method {
  appearance: none;
  -webkit-appearance: none;
  background: #fff;
  margin: 0;
  box-shadow: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.promo-block .input-single {
  border: 1px solid var(--color-surface-divider);
  border-radius: 12px;
  padding: 12px;
  font-family: var(--font-family);
}

/* Reset native button chrome for header/icon hits (match Figma span icon-wrap) */
.b2-icon-btn,
.cart-header button.icon-wrap,
button.icon-wrap {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  box-shadow: none;
  color: inherit;
  font: inherit;
}
.cart-header button.icon-wrap--trash img {
  width: 14px;
  height: 16px;
}

/* cart / checkout summary accordion + switch as button */
#b2-summary-toggle.is-collapsed img,
#b2-sum-goods-toggle.is-collapsed img,
#b2-sum-del-toggle.is-collapsed img { transform: rotate(180deg); }
.points-deduction .switch-toggle.b2-icon-btn,
.checkout-item .switch-toggle.b2-icon-btn {
  width: 40px;
  height: 24px;
  min-height: 0;
  padding: 0;
  line-height: 0;
}
.basket2-busy { pointer-events: none; opacity: 0.72; transition: opacity 0.15s ease; }

/* Figma 1921:21952 / 1921:21958 — loader Cart ↔ Checkout (spec 1918:21814) */
:root {
  --color-text-quaternary: #b7c2cb;
}

.b2-page-loader {
  position: fixed;
  top: 52px;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface-page);
  pointer-events: none;
}

.b2-page-loader[hidden] {
  display: none !important;
}

.b2-page-loader__spinner {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 4px solid var(--color-text-quaternary);
  border-top-color: var(--color-brand-primary);
  animation: b2-loader-spin 0.9s linear infinite;
  flex-shrink: 0;
}

@keyframes b2-loader-spin {
  to { transform: rotate(360deg); }
}

body.b2-page-loading #b2-cart .cart-scroll,
body.b2-page-loading #b2-cart .cart-page__body,
body.b2-page-loading #b2-cart .cart-bottom-nav,
body.b2-page-loading #b2-checkout .checkout-scroll,
body.b2-page-loading #b2-checkout .checkout-place-nav {
  visibility: hidden;
}

/* Pay submit: spinner + «Переход к оплате...» — футер остаётся видимым */
body.b2-checkout-paying {
  cursor: wait;
}
body.b2-checkout-paying #b2-checkout {
  pointer-events: none;
}
body.b2-page-loading.b2-checkout-paying #b2-checkout .checkout-place-nav {
  visibility: visible;
  pointer-events: none;
}
body.b2-page-loading.b2-checkout-paying .b2-page-loader {
  /* leave room for checkout CTA footer (~ button + disclaimer) */
  bottom: 148px;
  background: var(--color-surface-page);
}
.checkout-btn--pending {
  justify-content: center;
  align-items: center;
}
.checkout-btn--pending .checkout-btn__label {
  flex: 0 1 auto;
  text-align: center;
}
.checkout-btn--pending .checkout-btn__price[hidden] {
  display: none !important;
}

.basket2-root.app .b2-page-loader {
  top: 102px;
}

.checkout-scroll > .b2-block-enter {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.checkout-scroll > .b2-block-enter.b2-block-enter--visible {
  opacity: 1;
  transform: none;
}

.cart-receipt-row__amount-text--red { color: var(--color-brand-primary); }
.promo-block .input-single {
  height: 48px;
  border: 1px solid var(--color-surface-divider);
  border-radius: 12px;
  padding: 12px;
  background: #fff;
  font-family: var(--font-family);
  box-sizing: border-box;
}
.promo-block--cart { padding: 0; }
.promo-block__label { display: block; padding: 0 0 4px; }
.promo-block__row { display: flex; gap: 8px; margin-top: 8px; align-items: stretch; }
.promo-block__row .input-single { flex: 1; min-width: 0; }
.promo-block__apply { width: auto; min-width: 72px; padding: 0 16px; height: 48px; flex-shrink: 0; }
.map-page .input-multi { width: 100%; box-sizing: border-box; }
.map-page .input-multi--tall { min-height: 96px; padding: 12px 16px; border-radius: 16px; background: #ecf1f5; border: 1px solid transparent; box-sizing: border-box; position: relative; }
.map-page .input-multi--tall:focus-within {
  border-color: var(--color-surface-chip-active, #72798c);
}
.map-page .input-multi--tall .input-multi__text,
.map-page .input-multi--tall textarea {
  width: 100%;
  min-height: 72px;
  border: 0;
  background: transparent;
  resize: none;
  outline: none;
  font-family: var(--font-family);
  color: var(--color-text-secondary);
  padding-right: 28px;
  box-sizing: border-box;
}
.map-page .input-multi--tall .b2-input-clear {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
}
.map-page .input-single input,
.map-page .input-tel__number input {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
  outline: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: var(--color-text-secondary);
}
.map-page .input-single:focus-within:not(.input-single--error) input,
.map-page .input-multi--tall:focus-within textarea {
  color: var(--color-text-primary);
}
.map-page .input-single--error {
  background: var(--color-surface-error, #fde8ed) !important;
}
.map-page .input-single--error input {
  color: var(--color-text-error, #ed1d51) !important;
  -webkit-text-fill-color: var(--color-text-error, #ed1d51) !important;
}
.map-page .sheet-disclaimer { margin: 0; color: #72798c; font-size: 12px; line-height: 16px; }
.map-page .sheet-disclaimer--left { text-align: left; }

/* === v2 DS sync (checkout pay, sheets, maps, popover) === */
.pay-card__methods--scroll { overflow-x: auto; flex-wrap: nowrap; margin: 0 -20px; padding: 0 20px; scrollbar-width: none; }
.pay-card__methods--scroll::-webkit-scrollbar { display: none; }
.pay-card__methods--scroll .pay-card__method { flex: 0 0 100px; width: 100px; min-width: 100px; }
/* Figma 1685:32109 Checkout Email Block — inside pay-card (already padded 20px) */
.checkout-email-block {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
  padding: 0;
  box-sizing: border-box;
}
.checkout-email-block__text {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--color-text-primary, #09034b);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.switch-toggle--small { width: 36px; height: 20px; border: 0; background: transparent; }
.switch-toggle--small .switch-toggle__thumb, .switch-toggle--small img { width: 36px; height: 20px; }
button.switch-toggle--small {
  width: 36px;
  height: 20px;
  min-width: 36px;
  min-height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
}
.pay-card__message { margin: 0; width: 100%; box-sizing: border-box; padding: 20px; border-radius: 8px; background: #ecf1f5; color: #72798c; }
.order-summary--collapsed .cart-receipt-row--h16 { display: none; }
.order-summary--collapsed .b2-sum-goods-details,
.order-summary--collapsed .b2-sum-del-details { display: none !important; }
.checkout-btn--centered { justify-content: center; }
/* Figma 1685:32117 Agreement 1 — Primary links (not brand red) */
.checkout-place-nav__disclaimer {
  max-width: 353px;
  margin: 0 auto;
  text-align: center;
  color: var(--color-text-secondary, #72798c);
}
.checkout-place-nav__disclaimer-link {
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  color: var(--color-text-primary, #09034b);
  cursor: pointer;
  text-decoration: underline;
}
a.checkout-place-nav__disclaimer-link {
  text-decoration: underline;
}
.sheet-chip-scroll { overflow-x: auto; width: calc(100% + 40px); max-width: none; margin-left: -20px; margin-right: -20px; padding-left: 20px; scrollbar-width: none; }
.sheet-chip-scroll::-webkit-scrollbar { display: none; }
.sheet-chip-row { display: inline-flex; gap: 10px; padding-right: 20px; }
.sheet__header--recipient {
  padding-top: 12px;
  padding-bottom: 12px;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}
.sheet__header--recipient .sheet__title { text-align: center; }
/* Figma 1916:20666 / Dev 1.2 — wrap-content; без пустой зоны; scroll только при clamp/keyboard */
.fuzz.slideup .popup.popup--recipient.active,
.fuzz.slideup #div_b2_gift.popup.active {
  bottom: var(--b2-popup-bottom, 0);
}
.fuzz.slideup .popup.popup--recipient.b2-popup-keyboard.active,
.fuzz.slideup #div_b2_gift.popup.b2-popup-keyboard.active {
  bottom: var(--b2-popup-bottom, 0);
  height: var(--b2-popup-max-height) !important;
  max-height: var(--b2-popup-max-height) !important;
  transition: transform 0.25s ease;
}
.fuzz.slideup .popup.popup--recipient.b2-popup-clamped.active,
.fuzz.slideup #div_b2_gift.popup.b2-popup-clamped.active {
  height: var(--b2-popup-max-height) !important;
  max-height: var(--b2-popup-max-height) !important;
}
/* Горизонтальный pad на content/header/footer — чипсы bleed к краю шторки (clip-to-padding: false) */
.fuzz.slideup .popup .sheet.sheet--recipient {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 32px 0 0;
  padding-bottom: 0;
  gap: 0;
  height: auto;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}
.fuzz.slideup .popup.popup--recipient.b2-popup-keyboard .sheet.sheet--recipient,
.fuzz.slideup .popup.popup--recipient.b2-popup-clamped .sheet.sheet--recipient,
.fuzz.slideup #div_b2_gift.popup.b2-popup-keyboard .sheet.sheet--recipient,
.fuzz.slideup #div_b2_gift.popup.b2-popup-clamped .sheet.sheet--recipient {
  height: 100%;
}
.fuzz.slideup .popup .sheet.sheet--recipient .sheet__header {
  flex-shrink: 0;
}
.fuzz.slideup .popup .sheet.sheet--recipient .sheet__content {
  flex: 0 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: visible;
  padding: 20px 20px; /* Figma 2044:9473 — зазор header → inputs; pad сюда, не на sheet */
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.fuzz.slideup .popup.popup--recipient.b2-popup-keyboard .sheet.sheet--recipient .sheet__content,
.fuzz.slideup .popup.popup--recipient.b2-popup-clamped .sheet.sheet--recipient .sheet__content,
.fuzz.slideup #div_b2_gift.popup.b2-popup-keyboard .sheet.sheet--recipient .sheet__content,
.fuzz.slideup #div_b2_gift.popup.b2-popup-clamped .sheet.sheet--recipient .sheet__content {
  flex: 1 1 auto;
  overflow-y: auto;
}
/* Schedule на всю ширину шторки; первый/последний чип с inset 20px */
.fuzz.slideup .sheet--recipient .sheet-gift-schedule {
  width: calc(100% + 40px);
  max-width: none;
  margin-left: -20px;
  margin-right: -20px;
  box-sizing: border-box;
}
.fuzz.slideup .sheet--recipient .sheet-chip-scroll {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 20px;
  padding-right: 0;
  box-sizing: border-box;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
}
.fuzz.slideup .sheet--recipient .sheet-chip-row {
  padding-right: 20px;
}
.fuzz.slideup .sheet--recipient .b2-gift-timezone-row {
  margin-left: 20px;
  margin-right: 20px;
  width: auto;
  max-width: none;
  box-sizing: border-box;
}
.sheet--recipient .sheet__footer {
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
  flex: 0 0 auto;
  flex-shrink: 0;
  background: var(--color-surface-white);
}
.sheet--recipient .sheet__content.sheet__content--stack {
  gap: 24px;
}
.sheet__content--radios { gap: 24px; }
/* Figma 1677:7005 / 1701:12309 — timezone sheet fits all rows, no inner scroll */
.fuzz.slideup .popup.popup--timezone {
  height: auto !important;
  max-height: calc(100% - 20px);
}
.fuzz.slideup .popup.popup--timezone .sheet.sheet--timezone {
  height: auto;
  overflow: hidden;
}
.fuzz.slideup .popup.popup--timezone .line-radio {
  min-height: 24px;
}
.btn-big--stack { flex-direction: column; gap: 0; padding-top: 8px; padding-bottom: 8px; line-height: 0; }
.btn-big__sub { display: block; font-size: 12px; line-height: 16px; font-weight: 400; color: inherit; opacity: 0.95; }
.sheet-agreement { text-align: center; color: var(--color-text-secondary); margin: 0; }
.sheet-agreement__link {
  color: var(--color-text-primary);
  text-decoration: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  font: inherit;
  cursor: pointer;
  display: inline;
}
.sheet--base08 { border-radius: 24px 24px 0 0; padding: 32px 20px 20px; gap: 16px; min-height: 0; box-shadow: 0 -7px 14.1px rgba(0, 0, 0, 0.1); }
.sheet-pvz-search { display: flex; align-items: center; gap: 8px; height: 48px; padding: 0 16px; background: #ecf1f5; border-radius: 16px; width: 100%; box-sizing: border-box; }
.sheet-pvz-note { color: #72798c; font-size: 12px; line-height: 16px; margin: 0; }
/* Figma 1510:47842: title center, lines/note left (not center) */
.sheet-pvz-lines { display: flex; flex-direction: column; gap: 4px; width: 100%; text-align: left; }

/* Keep Figma optical pad (1 0 0 4) — do not zero padding on gift/info hitboxes */
.checkout-item__gift-info,
button.checkout-item__gift-info.b2-icon-btn,
button.icon-info.b2-icon-btn {
  border: none;
  background: transparent;
  width: 24px;
  height: 24px;
  padding: 1px 0 0 4px;
  box-sizing: border-box;
}
.input-single--select { position: relative; }
.input-single--select select { width: 100%; border: 0; background: transparent; appearance: none; outline: none; font: inherit; color: inherit; }

/* Error state — Figma 1510:61689 / 47032: pink only on number/single field, +7 stays tertiary */
.input-tel--error .input-tel__number,
.input-tel__number--error {
  background: var(--color-surface-error);
}
.input-tel--error .input-tel__number input,
.input-tel__number--error input,
.fuzz.slideup .input-tel--error .input-tel__number input,
.fuzz.slideup .input-tel__number--error input {
  color: var(--color-text-error);
}
.input-tel--error .input-tel__code,
.input-tel--error .input-tel__code-text {
  background: var(--color-surface-tertiary);
  color: var(--color-text-secondary);
}
.input-single--error {
  background: var(--color-surface-error);
}
.input-single--error input {
  color: var(--color-text-error);
}
.input-tel__error-icon,
.input-single__error-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.input-tel__error-icon[hidden],
.input-single__error-icon[hidden] {
  display: none !important;
}
.input-tel__error-icon img,
.input-single__error-icon img {
  width: 20px;
  height: 20px;
  display: block;
}
.fuzz.slideup .input-tel,
.fuzz.slideup .input-single {
  position: static;
}
.fuzz.slideup .input-tel.has-error .input-tel__number,
.fuzz.slideup .input-tel--error .input-tel__number {
  /* icon is in-flow on the left; clear stays on the right via flex */
  padding-right: 16px;
}
.basket2-root--map { max-width: none; margin: 0; padding: 0; overflow: hidden; }
.map-page { position: relative; width: 100%; max-width: 393px; min-height: 100vh; margin: 0 auto; background: #ecf1f5; overflow: hidden; }
.map-page--full,
.map-page--live {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 100%;
  margin: 0;
  z-index: 40;
  background: #ecf1f5;
}
.map-page__map { position: absolute; inset: 0; overflow: hidden; }
.map-page__map img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.map-page__map--ymaps img {
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  object-fit: fill !important;
  display: inline !important;
}
.map-page__map--ymaps { width: 100%; height: 100%; }
/* Only the root map container — NOT placemark overlays (they are also <ymaps>) */
.map-page__map--ymaps > ymaps {
  width: 100% !important;
  height: 100% !important;
}
.map-page__map--ymaps .ymaps-2-1-79-image {
  width: 48px !important;
  height: 56px !important;
  background-repeat: no-repeat !important;
}
.map-page__close {
  position: absolute;
  top: max(16px, calc(12px + env(safe-area-inset-top, 0px)));
  right: max(16px, calc(12px + env(safe-area-inset-right, 0px)));
  z-index: 5;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50px;
  background: #fff;
  box-shadow: 0 0 9.8px rgba(0,0,0,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
}
.map-page__close img { width: 20px; height: 20px; display: block; }
/* Зум Яндекс.Карт — слева от крестика, поверх карты */
.map-page.map-page--modal .ymaps-2-1-79-zoom,
.map-page.map-page--modal .ymaps-2-1-79-controls__control_toolbar {
  z-index: 4 !important;
}
.map-page.map-page--modal .ymaps-2-1-79-float-button,
.map-page.map-page--modal .ymaps-2-1-79-zoom__plus,
.map-page.map-page--modal .ymaps-2-1-79-zoom__minus {
  box-shadow: 0 0 9.8px rgba(0, 0, 0, 0.25);
}
.sheet--map-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  max-height: calc(100% - 72px);
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
  background: #fff;
  box-sizing: border-box;
  padding-bottom: max(20px, env(safe-area-inset-bottom, 0px));
}
/* Офис самовывоза: свёрнутый сниппет (только title) — Figma 2209:9098 */
.b2-map-panel[data-map-panel="office"].is-collapsed {
  overflow: hidden;
  padding-bottom: max(16px, env(safe-area-inset-bottom, 0px));
}
.b2-map-panel[data-map-panel="office"].is-collapsed .sheet__content {
  display: none;
}
.b2-map-panel[data-map-panel="office"].is-collapsed .sheet__header {
  padding-top: 12px;
  padding-bottom: 12px;
}
.map-page .sheet { width: 100%; max-width: none; margin: 0; }
.map-page.map-page--modal { max-width: none; }
.map-page .sheet__content { background: transparent; min-height: 0; flex: 0 0 auto; }
.map-page .sheet__header { position: relative; width: 100%; }
.map-page .sheet__title { margin: 0; text-align: center; }
.map-page .sheet-pvz-lines { text-align: left; }
.map-page .sheet-pvz-note { text-align: left; }
.cart-receipt-popover-anchor { position: relative; width: 100%; overflow: visible; }
/* Не полагаться на [hidden] в Android WebView — display:inline-flex его перебивает */
.cart-popover-wrap {
  position: absolute;
  z-index: 40;
  display: none;
  flex-direction: column;
  align-items: center;
  width: 184px;
  bottom: calc(100% + 8px);
  right: 8px;
  left: auto;
  pointer-events: auto;
}
.cart-popover-wrap.is-open {
  display: inline-flex;
}
/* Popover не должен поднимать scroll над CTA/футером */
.cart-page.b2-popover-open .cart-bottom-nav,
.checkout-page.b2-popover-open .checkout-place-nav {
  z-index: 110;
}
.popover__body { position: relative; width: 100%; padding: 16px 28px 16px 16px; border-radius: 16px; background: #09034b; box-sizing: border-box; margin-bottom: -3px; }
.popover__text { width: 140px; color: #fff; font-size: 12px; line-height: 16px; margin: 0; }
.popover__close { position: absolute; top: 8px; right: 8px; width: 20px; height: 20px; padding: 0; border: 0; background: transparent; cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center; }
.popover__close img { width: 20px; height: 20px; object-fit: contain; display: block; }
.popover__pin { width: 12px; height: 12px; margin-top: 0; display: flex; align-items: center; justify-content: center; transform: rotate(180deg); flex-shrink: 0; }
.popover__pin img { width: 10.4px; height: 9px; display: block; }

.basket2-root.app .fuzz.slideup .popup:not(.popup--map) {
  max-height: calc(100dvh - max(62px, env(safe-area-inset-top, 0px)));
}

/* App WebView: отступ под status bar; белая шапка тянется вверх (native background=white) */
.basket2-root.app .cart-header,
.basket2-root.app .checkout-page > .cart-header {
  top: 0;
  padding-top: 50px;
  height: calc(52px + 50px);
  box-sizing: border-box;
}

/* App: thanks / waiting — вся страница с крестиком ниже status bar */
.basket2-root.app .purchase-result-page__frame {
  top: 50px;
}
.basket2-root.app .cart-scroll,
.basket2-root.app .cart-page__body {
  top: 102px;
}
.basket2-root.app .checkout-page .checkout-scroll {
  top: 102px;
}

/* Doc modals (оферта / условия / соглашение / ПД): тот же отступ под app-шапку */
.basket2-root.app .offer-page .offer-scroll,
.basket2-root.app .fuzz.fuzz--oferta .offer-scroll,
.basket2-root.app .fuzz.fuzz--terms .offer-scroll {
  top: 102px;
  padding-top: 20px;
}

/* App: карты — крестик и виджет ПВЗ ниже status bar (~50px) */
.basket2-root.app .map-page__close,
.basket2-root.app .fuzz.slideup .popup.popup--map .map-page__close {
  top: 66px; /* 50 status + 16 gap */
}
.offer-page .offer-scroll {
  /* keep absolute scroll region from .offer-scroll; do not collapse to static pad */
  padding: 20px 20px 40px;
  overflow-y: auto;
}
.offer-scroll__title { margin: 0; width: 100%; color: var(--color-text-primary); }
.offer-scroll__intro { margin: 0; width: 100%; color: var(--color-text-primary); }
.offer-list {
  list-style: none;
  margin: 0;
  padding: 16px 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  box-sizing: border-box;
}
.offer-list__item { display: flex; gap: 8px; align-items: flex-start; width: 100%; }
/* /docs/?ajax=1 markup inside terms sheet */
.terms-scroll {
  color: var(--color-text-primary, #09034b);
  font-size: 14px;
  line-height: 20px;
  -webkit-overflow-scrolling: touch;
}
.terms-scroll table {
  width: 100% !important;
  border-collapse: collapse;
}
.terms-scroll td {
  display: block;
  width: 100%;
  padding: 0 0 24px;
  box-sizing: border-box;
}
.terms-scroll h2,
.terms-scroll h3 {
  margin: 0 0 12px;
  font-size: 18px;
  line-height: 24px;
  font-weight: 700;
  color: var(--color-text-primary, #09034b);
}
.terms-scroll h3 {
  font-size: 14px;
  line-height: 20px;
  margin-top: 8px;
}
.terms-scroll p,
.terms-scroll li {
  margin: 0 0 8px;
  color: var(--color-text-secondary, #72798c);
  font-size: 14px;
  line-height: 20px;
}
.terms-scroll ol,
.terms-scroll ul {
  margin: 0 0 12px;
  padding-left: 20px;
}
.terms-scroll a {
  color: var(--color-text-primary, #09034b);
  text-decoration: underline;
}
.offer-footer-link { display: block; margin-top: 16px; color: #ed1d51; text-decoration: underline; }
.snackbar--v2 .snackbar__icon img { width: 20px; height: 20px; }
/* Figma 1677:7151 / 1701:12308 — GMT row: #d9e1e7 fill, primary text, chevron right, no border */
.b2-gift-timezone-row {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  height: 48px;
  padding: 0 16px;
  box-sizing: border-box;
  margin: 0;
  border: 0;
  border-radius: var(--radius-card, 16px);
  background: var(--color-surface-secondary, #d9e1e7);
  color: var(--color-text-primary, #09034b);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  text-align: left;
  font: inherit;
  outline: none;
  box-shadow: none;
}
.b2-gift-timezone-row:focus,
.b2-gift-timezone-row:focus-visible,
.b2-gift-timezone-row:active {
  border: 0;
  outline: none;
  box-shadow: none;
}
.b2-gift-timezone-row #b2-gift-timezone-label {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--color-text-primary, #09034b);
}
.b2-gift-timezone-row .icon-wrap {
  flex: 0 0 auto;
}
.b2-guest-phone-wrap { position: relative; }

/* PVZ sheet only: header with back arrow; widget below header (not under it) */
.map-page.map-page--modal.map-page--pvz {
  background: #fff;
}
.map-page.map-page--modal.map-page--pvz > .map-page__close {
  display: none !important;
}
.map-page.map-page--modal.map-page--courier > .map-page__close {
  display: none !important;
}
.map-page.map-page--modal.map-page--pvz .map-page__pvz-header,
.map-page.map-page--modal.map-page--courier .map-page__pvz-header {
  position: absolute;
  z-index: 6;
  top: 0;
  right: 0;
  left: 0;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px;
  box-sizing: border-box;
  background: #fff;
  border-bottom: 1px solid var(--color-surface-divider, #ecf1f5);
}
.map-page.map-page--modal.map-page--pvz .map-page__pvz-title,
.map-page.map-page--modal.map-page--courier .map-page__pvz-title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  text-align: center;
  color: var(--color-text-primary, #09034b);
}
.map-page.map-page--modal.map-page--pvz .map-page__pvz-header .icon-wrap--small,
.map-page.map-page--modal.map-page--courier .map-page__pvz-header .icon-wrap--small {
  position: relative;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.map-page.map-page--modal.map-page--pvz .map-page__pvz-header .icon-wrap--small img,
.map-page.map-page--modal.map-page--courier .map-page__pvz-header .icon-wrap--small img {
  /* как в .cart-header: сбросить absolute/inset у .icon-wrap img */
  position: static;
  inset: auto;
  width: 20px;
  height: 20px;
  transform: none;
  object-fit: contain;
  display: block;
  margin: 0;
}
.map-page.map-page--modal.map-page--pvz .map-page__pvz-back,
.map-page.map-page--modal.map-page--courier .map-page__pvz-back {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
/* Курьер: карта под шапкой */
.map-page.map-page--modal.map-page--courier .map-page__map--courier {
  top: 52px;
  height: auto;
}
.basket2-root.app .map-page.map-page--modal.map-page--courier .map-page__pvz-header {
  top: 0;
  padding-top: 50px;
  height: calc(52px + 50px);
}
.basket2-root.app .map-page.map-page--modal.map-page--courier .map-page__map--courier {
  top: calc(52px + 50px);
}
/* Must beat later `.map-page__map { inset: 0 }` */
.map-page.map-page--modal.map-page--pvz .map-page__map.map-page__map--pvz-widget,
.map-page.map-page--modal.map-page--pvz #b2-pvz-map {
  position: absolute !important;
  inset: auto !important;
  top: 52px !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: auto !important;
  z-index: 1;
  overflow: hidden;
  background: #ecf1f5;
}
.map-page.map-page--modal.map-page--pvz .b2-delivery-widget,
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #ecf1f5;
  touch-action: none;
}
/* YaDelivery ставит overflow:scroll на section → scrollbar съедает ~15px,
   size (650) ≠ map (635) → тап по кластеру зумит «наружу»/влево. */
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget > section,
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget .widget__wrapper {
  overflow: hidden !important;
  max-width: 100% !important;
  max-height: 100% !important;
  box-sizing: border-box !important;
  touch-action: none;
}
/* На ≤750px виджет задаёт карте высоту innerHeight−120 вместо нашего size */
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget .widget__wrapper,
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget .widget__map,
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget #ydw-map {
  height: 100% !important;
}
/* Мобильная плашка виджета (≤750px): на всю ширину, заголовок в одну строку */
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget .widget__header {
  left: 0 !important;
  right: 0 !important;
  width: auto !important;
  box-sizing: border-box !important;
}
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget .widget__title {
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
  min-width: 0;
}
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget .widget__title-text {
  font-size: min(20px, 5.4vw) !important;
  line-height: 24px !important;
  white-space: nowrap !important;
}
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget .widget__title-text-second {
  font-size: min(17px, 4.6vw) !important;
}
/* Ввод адреса: плашка не растёт снизу до 300px и не прыгает за клавиатурой —
   встаёт сверху под кнопкой «назад» виджета (top 16px + 40px). */
.map-page.map-page--modal.map-page--pvz #b2-delivery-widget .widget__header.ydw-widget__header-mobile {
  top: 64px !important;
  bottom: auto !important;
  height: auto !important;
  padding-bottom: 16px !important;
  border-radius: var(--border-radius, 16px) !important;
}
/* Пока виджет не перенёс карту из точки 0,0 (океан) в город */
.map-page.map-page--modal.map-page--pvz #b2-pvz-map.is-centering::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 20;
  background: #ecf1f5;
}
.map-page.map-page--modal.map-page--pvz #b2-pvz-map.is-centering::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 21;
  width: 32px;
  height: 32px;
  margin: -16px 0 0 -16px;
  border: 3px solid rgba(0, 0, 0, 0.1);
  border-top-color: var(--color-brand-dark);
  border-radius: 50%;
  animation: b2-pvz-spin 0.8s linear infinite;
}
@keyframes b2-pvz-spin {
  to { transform: rotate(360deg); }
}
.map-page.map-page--modal.map-page--pvz .b2-map-panel {
  display: none !important;
}

.basket2-root.app .map-page.map-page--modal.map-page--pvz .map-page__pvz-header {
  top: 0;
  padding-top: 50px;
  height: calc(52px + 50px);
}
.basket2-root.app .map-page.map-page--modal.map-page--pvz .map-page__map.map-page__map--pvz-widget,
.basket2-root.app .map-page.map-page--modal.map-page--pvz #b2-pvz-map {
  top: 102px !important;
}
