/* ── TOKENS ──────────────────────────────────────────────────────────────── */

:root {
  /* Бренд: глубокая бордо-красная гамма + кленовое золото для премиума */
  --red:        #d61f37;
  --red-d:      #a8182c;
  --red-dd:     #6a0018;     /* почти бордо */
  --red-l:      #fce8eb;
  --red-xl:     #fff5f6;
  --red-glow:   rgba(214,31,55,.28);

  /* Премиум-золото (для club, premium-бейджей) */
  --gold:       #c89232;     /* кленовое золото, чуть приглушённое — премиум */
  --gold-l:     #f6e8c4;
  --gold-xl:    #fcf6e4;
  --gold-d:     #8b6420;
  --gold-glow:  rgba(200,146,50,.25);

  /* Премиум-нейтрали — холодный графит, не серый */
  --ink-1:      #0d0608;     /* основной текст */
  --ink-2:      #2a1f24;     /* вторичный */
  --ink-3:      #5a4a52;     /* tertiary */
  --ink-4:      #8b7d83;     /* hint / muted */
  --ink-5:      #c9bdc1;     /* divider */

  /* Тёплая третичная гамма — cream для нейтральных секций.
     Раньше всё было либо красное либо холодное-белое; cream добавляет
     уюта между ними и работает как премиум-фон у Aesop/Le Labo. */
  --cream:      #f9f0e3;     /* основной */
  --cream-xl:   #fdfaf3;     /* очень светлый, для bg-soft */
  --cream-d:    #f0e0c5;     /* акцентный — sweet-check, reward items */

  /* Тема */
  --tg-bg-color:           #ffffff;
  --tg-text-color:         #0d0608;
  --tg-hint-color:         #8b7d83;
  --tg-link-color:         #d61f37;
  --tg-button-color:       #d61f37;
  --tg-button-text-color:  #ffffff;
  --tg-secondary-bg-color: #ffffff;
  --tg-section-bg-color:   #ffffff;

  /* Алиасы — семантические для компонентов */
  --bg:           #ffffff;
  --bg-soft:      var(--cream-xl);  /* warm cream, не холодное #fafafa */
  --surface:      #ffffff;
  --surface-2:    var(--cream-xl);
  --dark:         var(--ink-1);
  --text:         var(--ink-1);
  --text-2:       var(--ink-2);
  --muted:        var(--ink-4);
  --border:       rgba(13,6,8,.06);
  --border-strong:rgba(13,6,8,.10);
  --premium-line: linear-gradient(135deg,rgba(200,146,50,.25),rgba(214,31,55,.18));

  /* Геометрия — inset-скругления (continuous corners) */
  --r:          24px;     /* card radius */
  --r-img:      20px;     /* image inside card (delta 4 для continuous) */
  --r-sm:       14px;
  --r-pill:     999px;
  --r-tab:      28px;
  --hh:         58px;
  --nh:         64px;

  /* Премиум-тени: послойные — ближний слой + дальний glow */
  --shadow-xs:     0 1px 2px rgba(13,6,8,.04), 0 1px 1px rgba(13,6,8,.02);
  --shadow-sm:     0 2px 4px rgba(13,6,8,.04), 0 4px 12px rgba(13,6,8,.04);
  --shadow-md:     0 4px 8px rgba(13,6,8,.05), 0 12px 24px rgba(13,6,8,.06);
  --shadow:        0 4px 12px rgba(13,6,8,.06), 0 16px 36px -10px rgba(13,6,8,.10);
  --shadow-card:   0 1px 3px rgba(13,6,8,.04), 0 8px 24px rgba(214,31,55,.08);
  --shadow-glow:   0 4px 12px rgba(214,31,55,.18), 0 12px 32px -8px rgba(180,30,40,.40);
  --shadow-gold:   0 4px 12px rgba(200,146,50,.18), 0 12px 32px -8px rgba(140,98,30,.30);

  /* Анимация — spring */
  --t:          .25s cubic-bezier(.34,1.56,.64,1);
  --t-fast:     .18s cubic-bezier(.25,.46,.45,.94);
  --t-slow:     .42s cubic-bezier(.22,1,.36,1);

  /* Глассморф */
  --glass:      rgba(255,255,255,.72);
  --glass-b:    rgba(255,255,255,.45);
  --blur:       blur(20px) saturate(180%);

  /* Премиум mesh-градиенты */
  --mesh-red:
    radial-gradient(at 22% 18%, #f03a55 0%, transparent 52%),
    radial-gradient(at 82% 0%,  #d61f37 0%, transparent 60%),
    radial-gradient(at 72% 100%, #6a0018 0%, transparent 52%),
    linear-gradient(135deg, #d61f37 0%, #a8182c 100%);
  --mesh-gold:
    radial-gradient(at 25% 20%, #f0c66a 0%, transparent 55%),
    radial-gradient(at 85% 80%, #8b6420 0%, transparent 50%),
    linear-gradient(135deg, #c89232 0%, #8b6420 100%);
  --mesh-premium:
    radial-gradient(at 20% 25%, #2a1820 0%, transparent 60%),
    radial-gradient(at 80% 0%, #c89232 0%, transparent 35%),
    radial-gradient(at 70% 100%, #d61f37 0%, transparent 50%),
    linear-gradient(135deg, #1a0010 0%, #4a0a18 100%);
  --grad-text-red:
    linear-gradient(135deg, #d61f37 0%, #a8182c 60%, #6a0018 100%);
  --grad-text-gold:
    linear-gradient(135deg, #d4a040 0%, #c89232 50%, #8b6420 100%);

  /* Шрифт-стек — Inter Variable приоритетный */
  --ff-body: 'Inter','Manrope',-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
  --ff-display: 'Playfair Display','Inter',serif;
  font-feature-settings: 'cv11', 'ss01', 'ss03';
  font-optical-sizing: auto;
}

/* ─── Тёплая dark mode — wine bordeaux + warm cream акценты ─────────────────
   Тренд 2026: вместо «инверсии в чёрно-белое» — глубокая брендовая темнота.
   Поверхности — deep wine, текст — warm cream, акценты остаются красно-золотыми.
   ВАЖНО: dark-режим сейчас намеренно отключён в tg-bridge.js (бренд-решение).
   Стили готовы — для активации достаточно убрать tg-light forсing. */
html.tg-dark {
  /* Surfaces (warm bordeaux вместо холодного серого) */
  --bg:           #160409;
  --bg-soft:      #1f0710;
  --surface:      #1c050c;
  --surface-2:    #240a14;

  /* Text — warm cream, не чисто-белое */
  --ink-1:        #f4e8db;
  --ink-2:        #e2d3c4;
  --ink-3:        #b9a99c;
  --ink-4:        #a89b94;
  --ink-5:        #7a6c64;
  --text:         var(--ink-1);
  --text-2:       var(--ink-2);
  --muted:        var(--ink-4);

  /* TG-vars — для нативной шапки Telegram */
  --tg-bg-color:           #160409;
  --tg-secondary-bg-color: #1f0710;
  --tg-section-bg-color:   #1c050c;
  --tg-text-color:         #f4e8db;
  --tg-hint-color:         #a89b94;

  /* Borders / shadows — мягкие, на тёплых тонах */
  --border:        rgba(255,235,220,.07);
  --border-strong: rgba(255,235,220,.11);
  --shadow-xs:     0 1px 2px rgba(0,0,0,.4);
  --shadow-sm:     0 2px 12px rgba(0,0,0,.4);
  --shadow-md:     0 4px 8px rgba(0,0,0,.45), 0 12px 24px rgba(0,0,0,.4);
  --shadow:        0 12px 36px -8px rgba(0,0,0,.6);
  --shadow-card:   0 4px 24px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,235,220,.04);
  --shadow-glow:   0 4px 12px rgba(214,31,55,.22), 0 12px 32px -8px rgba(214,31,55,.30);

  /* Glass — на тёплом тёмном */
  --glass:      rgba(28,5,12,.72);
  --glass-b:    rgba(28,5,12,.48);

  /* Cream-токены тоже темнеют — для случаев где они применяются */
  --cream:      #2a141a;
  --cream-xl:   #1f0a12;
  --cream-d:    #3a1f28;
}

/* Body + ключевые surfaces в dark — переопределяем хардкод #fff */
html.tg-dark body{background:var(--bg);color:var(--text)}
html.tg-dark .header{background:rgba(28,5,12,.86);border-bottom-color:var(--border)}
html.tg-dark .bnav{background:rgba(28,5,12,.86)}
html.tg-dark .cat-modal__sheet{background:linear-gradient(180deg,rgba(36,10,20,.98) 0%,var(--surface) 18%);color:var(--text)}
html.tg-dark .pcard-pr,
html.tg-dark .ccat,
html.tg-dark .bento-card{background:var(--surface);border-color:var(--border);color:var(--text)}
html.tg-dark .cat-chip{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
html.tg-dark .reward-item{
  background:linear-gradient(180deg,var(--surface-2) 0%,var(--surface) 100%);
  border-color:var(--cream-d);color:var(--text);
}
html.tg-dark .msg--bot .msg__bubble{background:var(--surface-2);color:var(--text)}
html.tg-dark .msg--bot .msg__bubble.is-streaming{
  background:linear-gradient(135deg,var(--surface-2) 0%,#2a0d18 100%);
}
html.tg-dark .pcard-pr-skel{background:var(--surface);border-color:var(--border)}
html.tg-dark .pcard-pr-skel__img,
html.tg-dark .pcard-pr-skel__line{
  background:linear-gradient(110deg,var(--surface-2) 8%,var(--cream-d) 18%,var(--surface-2) 33%);
  background-size:200% 100%;
}

/* ─── Broader dark overrides — cart/profile/club/forms ──────────────────── */
/* Корзина / Чекаут */
html.tg-dark .cart-item,
html.tg-dark .cart-form,
html.tg-dark .cart-foot,
html.tg-dark .co-summary,
html.tg-dark .co-shop-card,
html.tg-dark .co-deltype__tab,
html.tg-dark .co-deltype__tab--on,
html.tg-dark .shop-picker__item,
html.tg-dark .shops-modal__sheet{background:var(--surface);color:var(--text);border-color:var(--border)}
html.tg-dark .co-deltype{background:var(--surface-2)}
html.tg-dark .co-sum__img{background:var(--surface-2)}
html.tg-dark .shop-picker__item:hover{background:var(--cream)}

/* Профиль (iOS Wallet стиль — у него собственные --ap-* токены) */
html.tg-dark #tab-profile{--ap-ink:#f4e8db;--ap-grey:#a89b94;--ap-grey-2:#7a6c64;
  --ap-hairline:rgba(255,235,220,.08);--ap-bg:#160409}
html.tg-dark .prof-row,
html.tg-dark .prof-card,
html.tg-dark .prof-row--toggle{background:var(--surface);color:var(--text);border-color:var(--border)}
html.tg-dark .prof-row--toggle:hover{background:var(--surface-2)}
html.tg-dark .prof-row__ic{background:var(--surface-2)}

/* Клуб / лояльность */
html.tg-dark .club-card,
html.tg-dark .club-tile,
html.tg-dark .loyalty-bar,
html.tg-dark .reward-card{background:var(--surface);border-color:var(--border);color:var(--text)}

/* Story viewer, sweet-check, holiday — уже на тёмной/градиентной подложке, не трогаем */

/* Формы — input/textarea/select по всему UI */
html.tg-dark input,
html.tg-dark textarea,
html.tg-dark select{
  background:var(--surface);color:var(--text);
  border-color:var(--border-strong);
}
html.tg-dark input::placeholder,
html.tg-dark textarea::placeholder{color:var(--muted)}
html.tg-dark .of-photo-input__btn,
html.tg-dark .of-chip,
html.tg-dark .of-portions__btn{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
html.tg-dark .of-chip:hover{background:var(--cream);border-color:rgba(214,31,55,.4)}

/* Gift wizard, B2B, reviews модалки */
html.tg-dark .modal-form,
html.tg-dark .gw-card,
html.tg-dark .rv-item,
html.tg-dark .holiday-card{background:var(--surface);color:var(--text);border-color:var(--border)}

/* Search autocomplete */
html.tg-dark .menu-ac,
html.tg-dark .menu-ac__item{background:var(--surface);color:var(--text);border-color:var(--border)}
html.tg-dark .menu-ac__item:hover{background:var(--surface-2)}
html.tg-dark .menu-ac__ph{background:var(--surface-2)}

/* Promo-strip, chat-related elements */
html.tg-dark .chat-input{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
html.tg-dark .chat-suggestion{background:var(--surface);color:var(--text);border-color:var(--border-strong)}

/* Empty states */
html.tg-dark .empty-state,
html.tg-dark .cat-empty,
html.tg-dark .cat-loading{color:var(--muted)}

/* Cart hint badges — мягкие цветные плашки, оставляем но переводим на тёмные тона */
html.tg-dark .cart-hint--bonus{background:#3a2a14;color:#f0c66a}
html.tg-dark .cart-hint--warn{background:#3a1410;color:#ff9a82;border-color:#5a2418}

/* Кнопки */
html.tg-dark .btn-outline{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
html.tg-dark .btn-outline:hover{background:var(--surface-2);border-color:var(--red)}
html.tg-dark .btn-ghost{color:var(--text)}

/* Catalog category tile background — heavy hardcoded; делаем surface */
html.tg-dark .ccat__name{color:var(--text)}

/* Sticky cat chips */
html.tg-dark .sticky-cat{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
html.tg-dark .sticky-cat--active{background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff}

/* ── RESET ───────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--ff-body);
  font-feature-settings:'cv02','cv03','cv04','cv11','ss01','ss03';
  background:#ffffff;color:var(--text);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
a{color:var(--red);text-decoration:none}
b,strong{font-weight:700}

/* Картинки — плавный fade-in после загрузки (cheap blur-up без LQIP) */
img[loading]{opacity:0;transition:opacity .35s ease, filter .35s ease;filter:blur(8px) saturate(.8)}
img[loading].loaded,img[loading]:not([src=""]){opacity:1;filter:blur(0) saturate(1)}
img.loaded{opacity:1;filter:blur(0) saturate(1)}

/* Inline-иконки SVG */
[data-icon]{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:0}
.ic{display:inline-block;flex-shrink:0;vertical-align:middle}

/* ── HEADER ──────────────────────────────────────────────────────────────── */
.header{
  position:sticky;top:0;z-index:200;
  height:var(--hh);
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);
  display:flex;align-items:center;
  gap:8px;
  padding:0 14px;
  border-bottom:1px solid rgba(13,6,8,.05);
  flex-wrap:nowrap;
  overflow:hidden;
}
.header::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:var(--premium-line);opacity:.4;pointer-events:none;
}
.header > * { flex-shrink: 0; }
.header__logo{
  height:30px;max-width:100px;
  object-fit:contain;
  flex-shrink:1;min-width:0;
}
.header__name{
  font-family:'Playfair Display',serif;
  font-size:20px;color:var(--red);font-weight:800;letter-spacing:.3px;
  white-space:nowrap;
}
.header__phone{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;font-weight:700;
  color:var(--red);
  background:var(--red-l);
  border-radius:999px;padding:7px 14px;
  border:1px solid rgba(214,31,55,.15);
  transition:all var(--t-fast);letter-spacing:.2px;
  white-space:nowrap;
  line-height:1;
}
.header__phone:hover{background:var(--red);color:#fff;box-shadow:0 4px 16px var(--red-glow)}
.header__phone-num{display:inline-block;white-space:nowrap}

/* Узкий экран (≤380px): телефон без цифр — только иконка-кнопка */
@media (max-width: 380px) {
  .header{padding:0 10px;gap:6px}
  .header__logo{height:28px;max-width:80px}
  .header__phone{padding:8px;border-radius:50%}
  .header__phone-num{display:none}
}
/* Очень узкий (≤320px): убрать счётчики */
@media (max-width: 320px) {
  .hdr-counters{display:none !important}
}

/* ── MAIN ────────────────────────────────────────────────────────────────── */
.main{min-height:calc(100vh - var(--hh) - 88px);padding-bottom:calc(96px + env(safe-area-inset-bottom))}

/* ── TABS ────────────────────────────────────────────────────────────────── */
.tab{display:none}
.tab.active{display:block;animation:tabSlide .32s cubic-bezier(.22,1,.36,1)}
.tab.active.tab-back{animation:tabSlideBack .32s cubic-bezier(.22,1,.36,1)}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes tabSlide{
  from{opacity:0;transform:translateX(16px) scale(.99)}
  to  {opacity:1;transform:translateX(0)    scale(1)}
}
@keyframes tabSlideBack{
  from{opacity:0;transform:translateX(-16px) scale(.99)}
  to  {opacity:1;transform:translateX(0)     scale(1)}
}

/* ── HERO ────────────────────────────────────────────────────────────────── */
.hero{
  background:linear-gradient(150deg,#8a0020 0%,var(--red-d) 35%,var(--red) 65%,#f03a55 100%);
  color:#fff;text-align:center;padding:40px 24px 32px;
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 50% at 80% 10%,rgba(255,255,255,.12) 0%,transparent 60%),
    radial-gradient(ellipse 40% 40% at 10% 90%,rgba(255,100,80,.2) 0%,transparent 50%);
}
.hero::after{
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  pointer-events:none;
}
.hero>*{position:relative}
.hero--sm{padding:24px 20px 20px}
.hero__tag{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);
  border-radius:24px;padding:5px 16px;
  font-size:12px;font-weight:700;letter-spacing:.6px;
  margin-bottom:16px;backdrop-filter:blur(8px);
  text-transform:uppercase;
}
.hero__h1{
  font-family:var(--ff-display);
  font-size:clamp(34px, 9vw, 44px);font-weight:800;line-height:1.05;margin-bottom:14px;
  letter-spacing:-.6px;
  text-wrap:balance;
}
.hero__p{font-size:15px;opacity:.85;line-height:1.55;margin-bottom:26px;letter-spacing:-.1px}
.btn-hero{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.15);color:#fff;
  font-weight:700;font-size:14px;
  padding:13px 32px;border-radius:32px;border:1.5px solid rgba(255,255,255,.35);
  cursor:pointer;backdrop-filter:blur(8px);
  box-shadow:0 8px 32px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.2);
  transition:all var(--t);letter-spacing:.3px;
}
.btn-hero:hover{background:rgba(255,255,255,.25);transform:translateY(-2px);box-shadow:0 12px 40px rgba(0,0,0,.2)}
.btn-hero:active{transform:scale(.96)}

/* Hero cinematic background — AI-generated фото + Ken Burns анимация (zoom+pan).
   Default фон уже задан CSS, JS может перезаписать на свежий торт месяца. */
.hero__bg{
  position:absolute;inset:0;
  background-image:url('/assets/hero-cinema.jpg');
  background-position:center;background-size:cover;
  opacity:.5; /* виден сразу, не ждём JS */
  transition:opacity .4s ease-out;
  animation:heroKenBurns 18s ease-in-out infinite alternate;
  z-index:0;will-change:transform;
}
.hero__bg.loaded{opacity:.5}
@keyframes heroKenBurns{
  from{transform:scale(1) translate(0,0)}
  to  {transform:scale(1.12) translate(-2%, 1.5%)}
}
@media (prefers-reduced-motion: reduce){
  .hero__bg{animation:none}
}
.hero__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(120,5,30,.55) 0%, rgba(214,31,55,.4) 100%);
  pointer-events:none;
}
.hero__content{position:relative;z-index:1}

/* Home page: padding-bottom для bottom-nav */
#tab-home{padding-bottom:90px}

/* ═══ BENTO GRID — асимметричная сетка на главной (тренд 2026) ════════ */
.home-bento{
  display:grid;
  grid-template-columns:1.45fr 1fr 1fr;
  grid-template-rows:84px 84px;
  gap:8px;
  padding:14px 14px 6px;
}
.bento-card{
  position:relative;overflow:hidden;
  background:#fff;
  border:1px solid var(--border-strong);
  border-radius:18px;
  padding:12px 14px;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;
  gap:6px;cursor:pointer;
  box-shadow:var(--shadow-xs);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
  text-align:left;
  font-family:var(--ff-body);
}
.bento-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--red-l)}
.bento-card:active{transform:scale(.97);box-shadow:0 1px 3px rgba(13,6,8,.06)}
.bento-card__ic{
  width:38px;height:38px;border-radius:12px;
  background:var(--bg-soft);
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--red);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 2px rgba(13,6,8,.04);
}
.bento-card__t{
  font-size:13px;font-weight:700;color:var(--text);
  letter-spacing:-.2px;line-height:1.15;
}
.bento-card__sub{
  font-size:11px;font-weight:600;color:var(--muted);
  letter-spacing:-.05px;line-height:1.2;
}
/* Hero — спан 1×2 (полная высота слева) с фирменным mesh */
.bento-card--hero{
  grid-row:1/3;
  background:var(--mesh-red);
  border-color:transparent;
  color:#fff;
  box-shadow:var(--shadow-glow);
}
.bento-card--hero .bento-card__ic{
  width:48px;height:48px;border-radius:14px;
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
}
.bento-card--hero .bento-card__t{
  font-family:var(--ff-display);font-weight:700;font-size:18px;
  color:#fff;letter-spacing:-.3px;
}
.bento-card--hero .bento-card__sub{color:rgba(255,255,255,.85);font-weight:600}
.bento-card--hero::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 70% 50% at 110% 0%,rgba(255,255,255,.18) 0%,transparent 60%);
  pointer-events:none;
}
/* Gold accent — для iPhone-розыгрыша */
.bento-card--gold{
  background:linear-gradient(135deg,var(--gold-xl) 0%,#fff 100%);
  border-color:var(--gold-l);
}
.bento-card--gold .bento-card__ic{background:var(--gold-xl);color:var(--gold-d)}
/* Club accent — для VIP-карты */
.bento-card--club{
  background:linear-gradient(135deg,#fff 0%,var(--red-xl) 100%);
  border-color:var(--red-l);
}
.bento-card--club .bento-card__ic{background:var(--red-l);color:var(--red)}

/* Узкие экраны: hero на полную ширину сверху, остальные 2×2 ниже */
@media (max-width: 380px) {
  .home-bento{
    grid-template-columns:1fr 1fr;
    grid-template-rows:96px 76px 76px;
    gap:6px;
  }
  .bento-card--hero{grid-column:1/3;grid-row:1/2}
}

/* Backward-compat — старые home-story классы могут остаться в кэше */
.home-stories{display:none}

/* Sweet Confessor — эмпатичный entry в чат с Машей */
.confessor-card{
  display:flex;align-items:center;gap:12px;
  margin:6px 14px 8px;padding:14px 14px;width:calc(100% - 28px);
  background:
    radial-gradient(ellipse 80% 60% at 110% 10%, rgba(214,31,55,.10) 0%, transparent 60%),
    linear-gradient(180deg, var(--cream-xl) 0%, #fff 100%);
  border:1px solid var(--cream-d);
  border-radius:18px;
  cursor:pointer;
  box-shadow:var(--shadow-xs),inset 0 1px 0 rgba(255,255,255,.7);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
  font-family:var(--ff-body);text-align:left;
}
.confessor-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--red-l)}
.confessor-card:active{transform:scale(.98);box-shadow:0 1px 3px rgba(13,6,8,.06)}
.confessor-card__ic{
  width:40px;height:40px;border-radius:12px;
  background:linear-gradient(135deg, var(--gold-xl) 0%, var(--cream-d) 100%);
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--gold-d);flex-shrink:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}
.confessor-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.confessor-card__t{
  font-family:var(--ff-display);font-size:15px;font-weight:700;
  color:var(--text);letter-spacing:-.2px;line-height:1.2;
}
.confessor-card__sub{
  font-size:11.5px;font-weight:500;color:var(--muted);
  letter-spacing:-.05px;line-height:1.35;
}
.confessor-card__chev{color:var(--muted);flex-shrink:0;display:inline-flex}
html.tg-dark .confessor-card{
  background:
    radial-gradient(ellipse 80% 60% at 110% 10%, rgba(214,31,55,.18) 0%, transparent 60%),
    linear-gradient(180deg, var(--surface-2) 0%, var(--surface) 100%);
  border-color:var(--border-strong);
}
html.tg-dark .confessor-card__ic{
  background:linear-gradient(135deg, var(--cream-d) 0%, var(--cream) 100%);
  color:var(--gold-l);
}

/* Home emotional row — confessor + selfie бок о бок */
.home-emo-row{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin:0 14px 8px;
}
.confessor-card--compact{
  margin:0;width:100%;
  padding:12px 12px;gap:10px;
}
.confessor-card--compact .confessor-card__ic{width:36px;height:36px;border-radius:10px}
.confessor-card--compact .confessor-card__t{font-size:14px}
.confessor-card--compact .confessor-card__sub{font-size:11px}
.confessor-card--compact .confessor-card__chev{display:none}

.selfie-card{
  display:flex;align-items:center;gap:10px;
  padding:12px 12px;width:100%;
  background:
    radial-gradient(ellipse 80% 60% at 110% 10%, rgba(232, 138, 168, .18) 0%, transparent 60%),
    linear-gradient(180deg, #fff5f7 0%, #fff 100%);
  border:1px solid #fad6df;
  border-radius:18px;cursor:pointer;
  box-shadow:var(--shadow-xs),inset 0 1px 0 rgba(255,255,255,.7);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
  font-family:var(--ff-body);text-align:left;
}
.selfie-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:#e88aa8}
.selfie-card:active{transform:scale(.97);box-shadow:0 1px 3px rgba(13,6,8,.06)}
.selfie-card__ic{
  width:36px;height:36px;border-radius:10px;
  background:linear-gradient(135deg, #e88aa8 0%, var(--red) 100%);
  display:inline-flex;align-items:center;justify-content:center;
  color:#fff;flex-shrink:0;font-size:20px;
  box-shadow:0 4px 12px rgba(232,138,168,.30), inset 0 1px 0 rgba(255,255,255,.2);
}
.selfie-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.selfie-card__t{
  font-family:var(--ff-display);font-size:14px;font-weight:700;
  color:var(--text);letter-spacing:-.2px;line-height:1.2;
}
.selfie-card__sub{
  font-size:11px;font-weight:500;color:var(--muted);
  letter-spacing:-.05px;
}
html.tg-dark .selfie-card{
  background:
    radial-gradient(ellipse 80% 60% at 110% 10%, rgba(232, 138, 168, .20) 0%, transparent 60%),
    linear-gradient(180deg, var(--surface-2) 0%, var(--surface) 100%);
  border-color:rgba(232,138,168,.3);
}

/* Selfie-cake модалка */
.selfie-h{padding:24px 20px 6px;text-align:center}
.selfie-h__t{
  font-family:var(--ff-display);font-size:22px;font-weight:700;
  color:var(--text);letter-spacing:-.3px;margin-bottom:6px;
}
.selfie-h__sub{font-size:13px;color:var(--muted);line-height:1.45}

.selfie-body{padding:8px 18px 22px}

.selfie-upload{
  display:block;cursor:pointer;
  margin:8px 0 16px;
}
.selfie-upload__inner{
  border:2px dashed var(--border-strong);
  border-radius:16px;padding:32px 20px;
  text-align:center;
  background:var(--bg-soft);
  transition:border-color var(--t-fast),background var(--t-fast);
}
.selfie-upload:hover .selfie-upload__inner{
  border-color:var(--red);background:var(--red-xl);
}
.selfie-upload__ic{font-size:42px;margin-bottom:10px;line-height:1}
.selfie-upload__t{
  font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px;
}
.selfie-upload__sub{font-size:12px;color:var(--muted)}

.selfie-tips{
  display:flex;flex-direction:column;gap:6px;
  padding:0 4px;
}
.selfie-tip{
  font-size:11px;color:var(--muted);line-height:1.4;
  letter-spacing:-.05px;
}

/* Preview + результат */
.selfie-preview{
  position:relative;border-radius:14px;overflow:hidden;
  margin-bottom:14px;aspect-ratio:1/1;max-width:240px;margin-left:auto;margin-right:auto;
  background:#000;
}
.selfie-preview img{
  width:100%;height:100%;object-fit:cover;display:block;opacity:.85;
}
.selfie-preview__overlay{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.6) 100%);
  color:#fff;text-align:center;padding:0 16px;
}
.selfie-preview__t{
  font-family:var(--ff-display);font-size:17px;font-weight:700;
  margin-bottom:6px;
}
.selfie-preview__sub{font-size:12px;opacity:.85}

.selfie-pick{padding:8px 0}
.selfie-pick__img{
  display:block;margin:0 auto 8px;
  max-width:280px;width:100%;
  border-radius:14px;border:2px solid var(--gold-l);
  box-shadow:var(--shadow-sm);
}
.selfie-pick__lbl{
  text-align:center;font-size:12px;font-weight:700;
  letter-spacing:.4px;text-transform:uppercase;color:var(--gold-d);
  padding:8px;margin-bottom:14px;
}
.selfie-pick__actions{
  display:flex;flex-direction:column;gap:8px;
}
html.tg-dark .selfie-upload__inner{background:var(--surface-2);border-color:var(--border-strong)}
html.tg-dark .selfie-pick__img{border-color:var(--cream-d)}

/* ═══ AI-конструктор торта на заказ ═══════════════════════════════════════ */
.concept-cta{
  display:flex;align-items:center;gap:12px;
  margin:0 14px 16px;padding:14px 14px;width:calc(100% - 28px);
  background:
    radial-gradient(ellipse 70% 60% at 0% 0%, rgba(200,146,50,.16) 0%, transparent 60%),
    linear-gradient(135deg, #fcf6e4 0%, #fdfaf3 100%);
  border:1.5px solid var(--gold-l);
  border-radius:18px;cursor:pointer;
  box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.8);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
  font-family:var(--ff-body);text-align:left;
}
.concept-cta:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--gold)}
.concept-cta:active{transform:scale(.98);box-shadow:0 1px 3px rgba(13,6,8,.08)}
.concept-cta__ic{
  width:44px;height:44px;border-radius:13px;
  background:linear-gradient(135deg, var(--gold) 0%, var(--gold-d) 100%);
  display:inline-flex;align-items:center;justify-content:center;
  color:#fff;flex-shrink:0;
  box-shadow:0 4px 12px rgba(200,146,50,.35), inset 0 1px 0 rgba(255,255,255,.2);
}
.concept-cta__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.concept-cta__t{
  font-family:var(--ff-display);font-size:16px;font-weight:700;
  color:var(--text);letter-spacing:-.2px;line-height:1.2;
}
.concept-cta__sub{
  font-size:12px;font-weight:500;color:var(--ink-3);
  letter-spacing:-.05px;line-height:1.35;
}
.concept-cta__chev{color:var(--gold-d);flex-shrink:0;display:inline-flex}

/* Модалка-конструктор: header */
.concept-h{padding:24px 20px 6px;text-align:center}
.concept-h__t{
  font-family:var(--ff-display);font-size:22px;font-weight:700;
  color:var(--text);letter-spacing:-.3px;margin-bottom:6px;
}
.concept-h__sub{font-size:13px;color:var(--muted);line-height:1.45}

.concept-body{padding:8px 18px 22px}
.concept-input{
  width:100%;padding:14px 14px;font-size:15px;line-height:1.5;
  font-family:var(--ff-body);color:var(--text);
  background:#fff;border:1.5px solid var(--border-strong);
  border-radius:14px;resize:vertical;min-height:96px;
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.concept-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,146,50,.15)}
.concept-hint{
  display:flex;justify-content:space-between;align-items:center;
  margin:8px 4px 12px;font-size:11px;color:var(--muted);
}
.concept-cnt{font-feature-settings:"tnum" 1}
.concept-generate-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(135deg,var(--gold) 0%,var(--gold-d) 100%);
  box-shadow:var(--shadow-gold);
}
.concept-cost-hint{
  text-align:center;font-size:11px;color:var(--muted);
  margin-top:10px;letter-spacing:-.05px;
}

/* Loading state */
.concept-loading{padding:8px 0 16px}
.concept-loading__title{
  font-family:var(--ff-display);font-size:17px;font-weight:700;
  text-align:center;margin-bottom:6px;color:var(--text);
}
.concept-loading__sub{
  text-align:center;font-size:12px;color:var(--muted);
  margin-bottom:18px;
}
.concept-skel-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.concept-skel{
  aspect-ratio:1/1;border-radius:14px;
  background:linear-gradient(110deg,#f4f4f5 8%,#fafafb 18%,#f4f4f5 33%);
  background-size:200% 100%;
  animation:skelShimmer 1.4s infinite linear;
}

/* Results */
.concept-results-h{
  font-size:14px;font-weight:600;color:var(--text);
  margin-bottom:10px;padding:0 2px;
}
.concept-results-grid{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;
  margin-bottom:14px;
}
.concept-result{
  position:relative;aspect-ratio:1/1;
  border:2px solid var(--border-strong);border-radius:14px;
  overflow:hidden;cursor:pointer;padding:0;
  /* Skeleton-фон: shimmer-градиент пока картинка не загрузилась */
  background:linear-gradient(110deg,#f4f4f5 8%,#fafafb 18%,#f4f4f5 33%);
  background-size:200% 100%;
  animation:skelShimmer 1.4s infinite linear;
  transition:transform var(--t),border-color var(--t),box-shadow var(--t);
}
/* Когда картинка загрузилась — отключаем shimmer (img.loaded маркер) */
.concept-result:has(img.loaded){animation:none;background:#fff}
.concept-result:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:var(--shadow-gold)}
.concept-result:active{transform:scale(.96)}
.concept-result img{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:0;transition:opacity .35s ease;
}
.concept-result img.loaded{opacity:1}
.concept-result__lbl{
  position:absolute;left:6px;bottom:6px;
  background:rgba(13,6,8,.75);color:#fff;
  font-size:10px;font-weight:700;letter-spacing:.3px;
  padding:3px 8px;border-radius:8px;text-transform:uppercase;
  backdrop-filter:blur(6px);
}
.concept-retry{width:100%;margin-bottom:8px}
.concept-disclaimer{
  font-size:11px;color:var(--muted);
  text-align:center;line-height:1.4;
  padding:6px 0 0;
}

/* Submit form */
.concept-submit-h{
  font-family:var(--ff-display);font-size:18px;font-weight:700;
  text-align:center;color:var(--text);margin-bottom:14px;
}
.concept-submit-preview{
  margin:0 auto 16px;max-width:200px;
  border:2px solid var(--gold-l);border-radius:14px;overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.concept-submit-preview img{width:100%;height:auto;display:block}
.concept-submit-label{
  text-align:center;font-size:11px;font-weight:700;
  letter-spacing:.3px;text-transform:uppercase;
  padding:6px;background:var(--gold-xl);color:var(--gold-d);
}
.concept-submit-form{display:flex;flex-direction:column;gap:0}
.concept-back{width:100%;margin-top:8px}

/* Error & Success */
.concept-error{padding:24px 0;text-align:center}
.concept-error__t{font-size:14px;color:var(--text);margin-bottom:16px;line-height:1.4}
.concept-error .btn-outline{margin:0 auto}
.concept-success{padding:32px 0 16px;text-align:center}
.concept-success__ic{font-size:48px;margin-bottom:10px}
.concept-success__t{
  font-family:var(--ff-display);font-size:20px;font-weight:700;
  color:var(--text);margin-bottom:8px;
}
.concept-success__sub{
  font-size:13px;color:var(--muted);
  line-height:1.5;margin-bottom:18px;
}

/* Dark overrides */
html.tg-dark .concept-cta{
  background:
    radial-gradient(ellipse 70% 60% at 0% 0%, rgba(200,146,50,.20) 0%, transparent 60%),
    linear-gradient(135deg, var(--surface-2) 0%, var(--surface) 100%);
  border-color:var(--cream-d);
}
html.tg-dark .concept-input{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
html.tg-dark .concept-result{background:var(--surface);border-color:var(--border-strong)}
html.tg-dark .concept-submit-preview{border-color:var(--cream-d)}
html.tg-dark .concept-submit-label{background:var(--cream);color:var(--gold-l)}
html.tg-dark .concept-skel{
  background:linear-gradient(110deg,var(--surface-2) 8%,var(--cream-d) 18%,var(--surface-2) 33%);
  background-size:200% 100%;
}

/* ═══ Cinematic Onboarding «33 года Марии» ═══════════════════════════════ */
.onb{
  position:fixed;inset:0;z-index:2000;
  background:#000;
  display:flex;flex-direction:column;
  animation:onbFadeIn .35s ease-out;
}
.onb--closing{animation:onbFadeOut .35s ease-out forwards}
@keyframes onbFadeIn{from{opacity:0}to{opacity:1}}
@keyframes onbFadeOut{from{opacity:1}to{opacity:0}}

.onb__track{
  flex:1;display:flex;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.onb__track::-webkit-scrollbar{display:none}

.onb__panel{
  flex:0 0 100%;height:100%;
  scroll-snap-align:start;
  position:relative;overflow:hidden;
}
/* Fallback-gradient если фото нет (на случай отсутствия /assets/onboarding/) */
.onb__panel--sepia{background:linear-gradient(160deg,#2a1810 0%,#5a3a20 50%,#8a6840 100%)}
.onb__panel--classic{background:linear-gradient(160deg,#1a2820 0%,#3a4a3a 50%,#5a6850 100%)}
.onb__panel--now{background:linear-gradient(160deg,var(--red-dd) 0%,var(--red-d) 50%,var(--red) 100%)}

.onb__photo{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  /* Лёгкий zoom на старте — Ken Burns эффект */
  animation:onbKenBurns 14s ease-in-out infinite alternate;
  /* Если фото 404 — background-image просто не применится, fallback-gradient ниже виден */
}
@keyframes onbKenBurns{
  from{transform:scale(1) translate(0,0)}
  to  {transform:scale(1.08) translate(-1%, 1%)}
}
.onb__vignette{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(0,0,0,.7) 0%, transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 30%, transparent 60%, rgba(0,0,0,.6) 100%);
}
.onb__content{
  position:absolute;left:0;right:0;bottom:140px;
  padding:0 32px;color:#fff;text-align:center;
  display:flex;flex-direction:column;gap:12px;
  animation:onbContentIn .8s .2s cubic-bezier(.22,1,.36,1) backwards;
}
@keyframes onbContentIn{
  from{opacity:0;transform:translateY(24px)}
  to  {opacity:1;transform:translateY(0)}
}
.onb__year{
  font-family:var(--ff-display);
  font-size:64px;font-weight:800;letter-spacing:-2px;
  line-height:1;opacity:.95;
  text-shadow:0 4px 20px rgba(0,0,0,.4);
  font-feature-settings:"tnum" 1;
}
.onb__h{
  font-family:var(--ff-display);
  font-size:28px;font-weight:700;line-height:1.15;
  letter-spacing:-.4px;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
  text-wrap:balance;
}
.onb__body{
  font-size:15px;font-weight:500;line-height:1.5;
  opacity:.88;letter-spacing:-.1px;
  max-width:340px;margin:0 auto;
  text-shadow:0 1px 8px rgba(0,0,0,.3);
}

.onb__skip{
  position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;
  z-index:3;
  background:rgba(255,255,255,.14);color:#fff;
  border:1px solid rgba(255,255,255,.22);
  padding:8px 14px;border-radius:999px;
  font-size:12px;font-weight:600;letter-spacing:.2px;
  cursor:pointer;backdrop-filter:blur(8px);
  font-family:var(--ff-body);
}
.onb__skip:active{transform:scale(.94)}

.onb__dots{
  position:absolute;left:50%;bottom:88px;z-index:3;
  display:flex;gap:8px;transform:translateX(-50%);
}
.onb__dot{
  width:6px;height:6px;border-radius:50%;
  background:rgba(255,255,255,.35);
  transition:all .3s ease;
}
.onb__dot.is-active{
  width:20px;border-radius:3px;background:#fff;
  box-shadow:0 2px 10px rgba(255,255,255,.5);
}

.onb__nav{
  position:absolute;left:0;right:0;bottom:calc(24px + env(safe-area-inset-bottom));
  display:flex;justify-content:center;z-index:3;
  padding:0 24px;
}
.onb__cta{
  background:#fff;color:var(--text);
  border:none;padding:14px 40px;
  border-radius:999px;font-size:15px;font-weight:700;
  letter-spacing:-.1px;cursor:pointer;
  box-shadow:0 8px 24px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.6);
  transition:transform var(--t);font-family:var(--ff-body);
}
.onb__cta:hover{transform:translateY(-2px)}
.onb__cta:active{transform:scale(.96)}

/* Fullscreen story viewer */
.story-viewer{
  position:fixed;inset:0;z-index:1100;
  background:#000;
  display:none;align-items:center;justify-content:center;
  animation:storyIn .2s ease-out;
}
@keyframes storyIn{from{opacity:0}to{opacity:1}}
.story-viewer__inner{
  position:relative;width:100%;max-width:480px;height:100%;
  background:linear-gradient(180deg, #1a0a14 0%, #2a1428 100%);
  display:flex;flex-direction:column;
  color:#fff;
}
.story-viewer__bars{
  display:flex;gap:4px;padding:8px 14px 0;
  position:absolute;top:0;left:0;right:0;z-index:2;
}
.story-viewer__bar{
  flex:1;height:3px;background:rgba(255,255,255,.25);
  border-radius:2px;overflow:hidden;
}
.story-viewer__bar-fill{
  display:block;height:100%;background:#fff;width:0%;
  transition:width 5s linear;
}
.story-viewer__bar--active .story-viewer__bar-fill{width:100%}
.story-viewer__bar--done .story-viewer__bar-fill{width:100%;transition:none}
.story-viewer__close{
  position:absolute;top:20px;right:16px;z-index:2;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.15);color:#fff;
  border:none;font-size:20px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.story-viewer__content{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:60px 28px 100px;
}
.story-viewer__emoji{
  font-size:120px;text-align:center;line-height:1;margin-bottom:24px;
}
.story-viewer__photo{
  width:260px;height:260px;border-radius:24px;
  background-size:cover;background-position:center;
  margin:0 auto 24px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.story-viewer__title{
  font-family:'Playfair Display',serif;
  font-size:32px;font-weight:700;text-align:center;
  letter-spacing:-.5px;line-height:1.15;margin-bottom:12px;
}
.story-viewer__sub{
  font-size:15px;color:rgba(255,255,255,.85);
  text-align:center;line-height:1.5;
}
.story-viewer__cta{
  position:absolute;bottom:32px;left:28px;right:28px;
  padding:14px;border-radius:14px;
  background:var(--red);color:#fff;border:none;
  font-size:15px;font-weight:700;cursor:pointer;
  box-shadow:0 8px 24px rgba(214,31,55,.4);
}
.story-viewer__nav{
  position:absolute;top:0;width:30%;height:100%;cursor:pointer;
  z-index:1;
}
.story-viewer__nav--prev{left:0}
.story-viewer__nav--next{right:0}

/* ═══ MENU/CATALOG v2 ═══════════════════════════════════════════════════════ */

/* Компактный header вкладки Меню — заменяет старый красный hero */
.menu-header{
  padding:14px 16px 8px;background:#fff;
  border-bottom:1px solid rgba(0,0,0,.05);
}
.menu-header__title{
  font-family:var(--ff-display);
  font-size:24px;font-weight:700;color:var(--text);letter-spacing:-.4px;
}
.menu-header__sub{font-size:12px;color:var(--muted);margin-top:2px}

/* Sticky category switcher в products view */
.cat-stickycats{
  position:sticky;top:0;z-index:10;
  display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding:10px 14px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(0,0,0,.05);
  scrollbar-width:none;
}
.cat-stickycats::-webkit-scrollbar{display:none}
.sticky-cat{
  flex-shrink:0;padding:7px 13px;border-radius:18px;
  background:#f2f2f7;color:var(--text);border:none;
  font-size:12.5px;font-weight:600;cursor:pointer;
  white-space:nowrap;letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.sticky-cat:hover{background:#e5e5ea}
.sticky-cat--active{background:var(--red);color:#fff}
.sticky-cat--active:hover{background:var(--red-d)}

/* Suggested searches */
.cat-suggested{padding:10px 14px 0}
.cat-suggested__h{
  font-size:11px;color:var(--muted);font-weight:600;
  letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px;
}
.cat-suggested__chips{display:flex;flex-wrap:wrap;gap:6px}
.cat-suggested__chip{
  padding:6px 12px;border-radius:16px;
  background:#fff;border:1px solid rgba(0,0,0,.08);
  font-size:12px;color:var(--text);cursor:pointer;
  transition:all var(--t-fast);
}
.cat-suggested__chip:hover{background:#f2f2f7;border-color:transparent}
.cat-suggested__chip:active{transform:scale(.95)}

/* Search counter */
.cat-search-counter{
  padding:10px 14px;font-size:13px;color:var(--muted);
}
.cat-search-counter b{color:var(--text);font-weight:600}

/* Empty search */
.cat-search-empty{
  text-align:center;padding:40px 20px;
}
.cat-search-empty__ic{font-size:42px;margin-bottom:12px;opacity:.4}
.cat-search-empty__h{font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px}
.cat-search-empty__s{font-size:13px;color:var(--muted);margin-bottom:18px}

/* Load-more sentinel */
.cat-load-more{padding:20px 14px;text-align:center}
.cat-load-more__btn{
  padding:12px 28px;border-radius:24px;
  background:#fff;border:1px solid rgba(0,0,0,.08);
  font-size:13px;font-weight:600;color:var(--text);cursor:pointer;
}
.cat-load-more__btn:hover{background:#f2f2f7;border-color:transparent}

/* Product modal — quantity selector */
.cat-modal__actions{
  display:flex;align-items:center;gap:8px;
  padding:12px 16px calc(env(safe-area-inset-bottom, 12px) + 12px);
}
.cat-modal__qty{
  display:flex;align-items:center;background:#f2f2f7;
  border-radius:12px;padding:2px;
}
.cat-modal__qty-btn{
  width:38px;height:38px;border:none;background:transparent;
  font-size:18px;font-weight:600;color:var(--text);
  cursor:pointer;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast);
}
.cat-modal__qty-btn:hover{background:rgba(0,0,0,.05)}
.cat-modal__qty-btn:active{transform:scale(.9)}
.cat-modal__qty-val{
  min-width:26px;text-align:center;
  font-size:16px;font-weight:700;color:var(--text);
  font-feature-settings:"tnum" 1;
}
.cat-modal__share{
  width:44px;height:44px;border-radius:12px;
  background:#f2f2f7;color:var(--muted);
  border:none;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.cat-modal__add-main{
  flex:1;height:46px;border-radius:14px;font-size:14px;font-weight:700;
}

/* Allergen chips */
.cat-modal__allergens{padding:0 18px 14px}
.cat-modal__allergens-h{
  font-size:11px;color:var(--muted);font-weight:600;
  letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px;
}
.cat-modal__allergens-list{display:flex;flex-wrap:wrap;gap:6px}
.allerg-chip{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 10px;border-radius:12px;
  background:#fff5e6;color:#9c6a06;
  border:1px solid #f0d990;
  font-size:11.5px;font-weight:600;
}
/* Diet-chip — зелёный вариант: «подходит для» (sugar-free / vegan / ...) */
.allerg-chip--diet{
  background:#eafbef;color:#0a6b34;border-color:#a8e4be;
}

/* Diet-фильтр chip-row под sticky-cats */
.cat-dietchips{
  position:sticky;top:48px;z-index:9;
  display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding:6px 14px 8px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(0,0,0,.05);
  scrollbar-width:none;
}
.cat-dietchips::-webkit-scrollbar{display:none}
.diet-chip{
  flex-shrink:0;padding:6px 11px;border-radius:14px;
  background:#f2f2f7;color:var(--text);border:1px solid transparent;
  font-size:12px;font-weight:600;cursor:pointer;
  white-space:nowrap;letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.diet-chip:hover{background:#e5e5ea}
.diet-chip--on{background:#0a6b34;color:#fff;border-color:#0a6b34}
.diet-chip--on:hover{background:#085426;border-color:#085426}
.diet-chip--reset{background:transparent;color:var(--muted);text-decoration:underline}
.diet-chip--reset:hover{background:transparent;color:var(--red)}
.cat-chip--diet{background:#eafbef;color:#0a6b34;border-color:#a8e4be}
.cat-chip--diet:hover{background:#d6f5e1;border-color:#0a6b34;color:#0a6b34}

/* Diet-бейджи под названием в карточке товара (grid) — компактные, зелёные */
.pcard-pr__diet{
  display:flex;flex-wrap:wrap;gap:3px;margin:2px 0 0;
}
.pcard-pr__diet-chip{
  display:inline-flex;align-items:center;gap:2px;
  font-size:10px;font-weight:600;color:#0a6b34;
  background:#eafbef;border:1px solid #a8e4be;
  padding:1px 6px;border-radius:8px;
  line-height:1.4;letter-spacing:-.1px;
}

/* Похожие товары в product modal */
.cat-modal__similar{padding:14px 18px 0;border-top:1px solid rgba(0,0,0,.06);margin-top:6px}
.cat-modal__similar-h{
  font-size:11px;color:var(--muted);font-weight:600;
  letter-spacing:.4px;text-transform:uppercase;margin-bottom:10px;
}
.cat-modal__similar-grid{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;
}
.cat-modal__similar-item{
  background:#fff;border-radius:10px;
  cursor:pointer;overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  transition:transform var(--t-fast);
}
.cat-modal__similar-item:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(0,0,0,.06)}
.cat-modal__similar-item img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.cat-modal__similar-name{
  padding:6px 8px 2px;font-size:11px;font-weight:600;color:var(--text);
  line-height:1.2;overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  min-height:28px;
}
.cat-modal__similar-price{padding:0 8px 8px;font-size:11px;font-weight:700;color:var(--red)}

/* Product modal — sale badge поверх hero */
.cat-modal__sale{
  position:absolute;top:14px;right:14px;
  background:var(--red);color:#fff;
  font-weight:800;font-size:12px;letter-spacing:-.2px;
  padding:5px 10px;border-radius:10px;
  box-shadow:0 4px 12px rgba(214,31,55,.3);
}

/* Photo zoom modal — fullscreen */
.photo-zoom{
  position:fixed;inset:0;z-index:1000;
  background:rgba(0,0,0,.95);
  display:none;align-items:center;justify-content:center;
  padding:20px;
}
.photo-zoom img{
  max-width:100%;max-height:100%;
  object-fit:contain;border-radius:10px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.photo-zoom__close{
  position:absolute;top:20px;right:20px;
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.15);color:#fff;
  border:none;font-size:24px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
}

/* ═══ CART HINTS (cashback, free delivery, min order) ════════════════════ */
.cart-hints{padding:8px 14px;display:flex;flex-direction:column;gap:6px}
.cart-hint{
  font-size:12.5px;padding:8px 12px;border-radius:10px;
  line-height:1.4;
}
.cart-hint b{font-weight:700}
.cart-hint--info{background:#eef5ff;color:#0a5cc6}
.cart-hint--success{background:#e8f8ec;color:#0a8a36}
.cart-hint--bonus{background:#fff5e6;color:#9c6a06}
.cart-hint--warn{background:#fff0eb;color:#c63a0a;border:1px solid #ffdbcc}

/* ═══ CHECKOUT v2 ═══════════════════════════════════════════════════════ */

/* Summary заказа в checkout (collapsible) */
.co-summary{
  margin:0 14px 14px;padding:0;
  background:#f8f8fa;border-radius:12px;overflow:hidden;
}
.co-summary__head{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 14px;cursor:pointer;font-size:13px;font-weight:600;
  color:var(--text);list-style:none;
}
.co-summary__head::-webkit-details-marker{display:none}
.co-summary__chev{
  font-size:12px;color:var(--muted);transition:transform .2s;
}
.co-summary[open] .co-summary__chev{transform:rotate(180deg)}
.co-summary__list{padding:0 14px 12px}
.co-sum__row{
  display:flex;align-items:center;gap:10px;
  padding:8px 0;border-top:1px solid rgba(0,0,0,.05);
}
.co-sum__row:first-child{border-top:none}
.co-sum__img{
  width:40px;height:40px;border-radius:8px;background:#fff;
  flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.co-sum__img img{width:100%;height:100%;object-fit:cover}
.co-sum__ph{font-size:18px;opacity:.4}
.co-sum__body{flex:1;min-width:0}
.co-sum__name{
  font-size:13px;font-weight:500;color:var(--text);line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.co-sum__meta{font-size:11.5px;color:var(--muted);margin-top:2px}
.co-sum__price{
  font-size:13px;font-weight:700;color:var(--text);
  font-feature-settings:"tnum" 1;flex-shrink:0;
}

/* Доставка / Самовывоз tabs */
.co-deltype{
  display:flex;gap:8px;margin-bottom:14px;
  padding:4px;background:#f2f2f7;border-radius:12px;
}
.co-deltype__tab{
  flex:1;padding:11px 8px;border:none;background:transparent;
  border-radius:9px;font-size:13px;font-weight:600;color:var(--text);
  cursor:pointer;transition:all var(--t-fast);
  letter-spacing:-.1px;
}
.co-deltype__tab:hover{background:rgba(0,0,0,.04)}
.co-deltype__tab--on{
  background:#fff;color:var(--text);
  box-shadow:0 2px 6px rgba(0,0,0,.08);
}

/* Мои награды modal */
.rewards-h{
  font-family:'Playfair Display',serif;
  font-size:24px;font-weight:700;text-align:center;
  margin:8px 0 4px;color:var(--text);letter-spacing:-.3px;
}
.rewards-sub{
  font-size:13px;color:#86868b;text-align:center;
  margin-bottom:16px;
}
.rewards-list{
  display:flex;flex-direction:column;gap:8px;
  max-height:60vh;overflow-y:auto;margin-bottom:12px;
}
.reward-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 14px;
  background:linear-gradient(180deg,var(--cream-xl) 0%,#fff 100%);
  border:1.5px solid var(--cream-d);
  border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}
.reward-item__emoji{font-size:30px;flex-shrink:0;line-height:1}
.reward-item__body{flex:1;min-width:0}
.reward-item__lbl{
  font-size:15px;font-weight:700;color:var(--text);
  letter-spacing:-.2px;margin-bottom:3px;
}
.reward-item__hint{
  font-size:12px;color:#86868b;letter-spacing:-.05px;
  line-height:1.4;margin-bottom:4px;
}
.reward-item__meta{
  font-size:11px;color:#a8a8ad;letter-spacing:.1px;
}
.rewards-foot{
  text-align:center;font-size:11px;color:#86868b;
  padding:8px 4px;border-top:1px solid var(--border,#e5e5ea);
  letter-spacing:-.05px;line-height:1.5;
}

/* ─── Game zone: Wheel + Streak + Secret-of-day ───────────────────────── */

/* Secret of the day — sticky card на Home */
.secret-card{
  margin:8px 16px 12px;padding:14px 14px 12px;
  background:linear-gradient(135deg, #1c1c1e 0%, #2c2c2e 100%);
  color:#fff;border-radius:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  position:relative;overflow:hidden;
}
.secret-card::before{
  content:'';position:absolute;top:-50%;right:-30%;
  width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle, rgba(248,165,27,.18) 0%, transparent 70%);
  pointer-events:none;
}
.secret-card__top{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:10px;position:relative;z-index:1;
}
.secret-card__badge{
  font-size:11px;font-weight:700;letter-spacing:.6px;
  text-transform:uppercase;
  background:rgba(255,255,255,.15);padding:4px 10px;
  border-radius:10px;backdrop-filter:blur(8px);
}
.secret-card__count{font-size:11px;color:rgba(255,255,255,.7);font-feature-settings:"tnum" 1}
.secret-card__body{
  display:flex;align-items:center;gap:12px;cursor:pointer;
  position:relative;z-index:1;
}
.secret-card__img{
  width:64px;height:64px;border-radius:12px;overflow:hidden;
  background:rgba(255,255,255,.08);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.secret-card__img img{width:100%;height:100%;object-fit:cover}
.secret-card__ph{font-size:32px;opacity:.5}
.secret-card__txt{flex:1;min-width:0}
.secret-card__name{
  font-size:14px;font-weight:600;color:#fff;
  margin-bottom:4px;letter-spacing:-.2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.secret-card__price{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.secret-card__old{
  font-size:12px;color:rgba(255,255,255,.5);text-decoration:line-through;
  font-feature-settings:"tnum" 1;
}
.secret-card__new{
  font-size:16px;font-weight:700;color:#fff;
  font-feature-settings:"tnum" 1;
}
.secret-card__off{
  font-size:11px;font-weight:700;color:#f8a51b;
  background:rgba(248,165,27,.18);padding:2px 6px;border-radius:4px;
}
.secret-card__cta{
  width:36px;height:36px;border-radius:50%;
  background:#d61f37;color:#fff;border:none;
  font-size:18px;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:transform var(--t-fast);
}
.secret-card__cta:hover{transform:scale(1.08)}

/* Daily streak — 7 dots */
.streak-card{
  margin:0 16px 12px;padding:12px 14px;
  background:#fff;border:1px solid var(--border,#e5e5ea);
  border-radius:14px;
}
.streak-card__lbl{
  font-size:12px;font-weight:600;color:var(--text);
  letter-spacing:-.1px;margin-bottom:8px;
}
.streak-card__lbl span{color:var(--ap-red,#d61f37);font-weight:700}
.streak-card__dots{display:flex;gap:6px;margin-bottom:8px}
.streak-dot{
  flex:1;min-width:0;text-align:center;
  height:24px;line-height:24px;font-size:11px;font-weight:600;
  background:#f2f2f7;color:#86868b;border-radius:6px;
  transition:all var(--t-fast);
}
.streak-dot--on{background:#d61f37;color:#fff}
.streak-dot--cur{
  box-shadow:0 0 0 3px rgba(214,31,55,.25);
  animation:streakPulse 1.5s ease-in-out infinite;
}
@keyframes streakPulse{
  0%,100%{box-shadow:0 0 0 3px rgba(214,31,55,.25)}
  50%{box-shadow:0 0 0 6px rgba(214,31,55,.1)}
}
.streak-card__hint{
  font-size:11px;color:#86868b;letter-spacing:-.05px;
}

/* Wheel card — entry на Club page */
.wheel-card{
  margin:14px 0;
  background:linear-gradient(135deg, #d61f37 0%, #ec4267 50%, #f8a51b 100%);
  color:#fff;border-radius:16px;padding:16px 18px;
  box-shadow:0 8px 24px rgba(214,31,55,.25);
  cursor:pointer;
  transition:transform var(--t-fast);
}
.wheel-card:hover{transform:translateY(-1px)}
.wheel-card__row{display:flex;align-items:center;gap:12px}
.wheel-card__body{flex:1;min-width:0}
.wheel-card__h{
  font-size:17px;font-weight:700;letter-spacing:-.2px;
  margin-bottom:3px;
}
.wheel-card__sub{
  font-size:12px;opacity:.95;letter-spacing:-.05px;line-height:1.4;
}
.wheel-card__btn{
  background:#fff;color:var(--ap-red,#d61f37);
  border:none;padding:10px 18px;border-radius:22px;
  font-size:13px;font-weight:700;cursor:pointer;
  font-family:inherit;flex-shrink:0;
  transition:transform var(--t-fast);
}
.wheel-card__btn:hover{transform:scale(1.04)}
.wheel-card__btn--off{
  background:rgba(255,255,255,.25);color:#fff;cursor:not-allowed;
}

/* Wheel modal */
.wheel-modal{
  position:fixed;inset:0;z-index:1200;
  background:rgba(0,0,0,.6);backdrop-filter:blur(8px);
  display:flex;align-items:flex-end;justify-content:center;
  animation:wheelModalIn .3s cubic-bezier(.4,0,.2,1);
}
@keyframes wheelModalIn{from{opacity:0}to{opacity:1}}
.wheel-modal__sheet{
  background:#fff;width:100%;max-width:420px;
  border-radius:24px 24px 0 0;padding:18px 20px 28px;
  position:relative;max-height:90vh;overflow:hidden;
  animation:wheelSheetUp .35s cubic-bezier(.4,0,.2,1);
}
@keyframes wheelSheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.wheel-modal__close{
  position:absolute;top:14px;right:14px;
  width:32px;height:32px;border:none;background:#f2f2f7;
  border-radius:50%;font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-family:inherit;
}
.wheel-modal__h{
  font-family:'Playfair Display',serif;
  font-size:24px;font-weight:700;text-align:center;
  margin:8px 0 4px;letter-spacing:-.3px;
}
.wheel-modal__sub{
  font-size:12px;color:#86868b;text-align:center;
  margin-bottom:16px;
}
.wheel-modal__container{
  position:relative;display:flex;justify-content:center;
  margin:0 auto 16px;padding:18px 0 0;
}
.wheel-modal__pointer{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  font-size:24px;color:#d61f37;z-index:2;
  text-shadow:0 2px 4px rgba(0,0,0,.2);
}
.wheel-modal__svg{
  width:280px;height:280px;
}
#wheel-rotation{transform-origin:140px 140px}
.wheel-modal__cta{margin-bottom:8px}
.wheel-modal__result{
  text-align:center;padding:0 12px;
  min-height:90px;
}
.wheel-result__emoji{
  font-size:48px;margin-bottom:8px;line-height:1;
}
.wheel-result__emoji--anim{
  animation:wheelPop .6s cubic-bezier(.34, 1.56, .64, 1);
}
@keyframes wheelPop{
  0%{transform:scale(0);opacity:0}
  60%{transform:scale(1.3);opacity:1}
  100%{transform:scale(1);opacity:1}
}
.wheel-result__lbl{
  font-size:17px;font-weight:700;color:var(--text);
  letter-spacing:-.2px;margin-bottom:6px;
}
.wheel-result__sub{
  font-size:12px;color:#86868b;letter-spacing:-.05px;
}

/* Sticky promo banner */
.promo-strip{
  display:flex;align-items:center;gap:8px;
  padding:9px 14px;
  background:linear-gradient(90deg, #d61f37 0%, #ec4267 70%, #f8a51b 100%);
  color:#fff;font-size:13px;font-weight:600;
  letter-spacing:-.1px;
  position:sticky;top:0;z-index:50;
  cursor:pointer;
  animation:promoStripIn .35s cubic-bezier(.4, 0, .2, 1);
}
@keyframes promoStripIn{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}
.promo-strip__t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.promo-strip__c{
  font-size:11px;font-weight:500;opacity:.95;
  letter-spacing:-.05px;flex-shrink:0;
}
.promo-strip__x{
  width:24px;height:24px;background:rgba(255,255,255,.18);
  border:none;color:#fff;border-radius:50%;
  font-size:16px;line-height:1;cursor:pointer;
  font-family:inherit;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--t-fast);
}
.promo-strip__x:hover{background:rgba(255,255,255,.3)}

/* Loyalty progress bar (Apple Wallet стиль) */
.loyalty-bar{
  background:#fff;border:1px solid var(--border,#e5e5ea);
  border-radius:14px;padding:12px 14px;
  display:flex;flex-direction:column;gap:8px;
  cursor:pointer;transition:all var(--t-fast);
}
.loyalty-bar:hover{border-color:rgba(214,31,55,.3)}
.loyalty-bar--home{margin:8px 0 4px}
.loyalty-bar__row{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:8px;
}
.loyalty-bar__name{
  font-size:13px;font-weight:600;color:var(--text);
  letter-spacing:-.1px;
}
.loyalty-bar__prog{
  font-size:11px;color:#86868b;letter-spacing:-.05px;
  font-feature-settings:"tnum" 1;
  white-space:nowrap;
}
.loyalty-bar__track{
  height:6px;background:#f2f2f7;border-radius:3px;overflow:hidden;
}
.loyalty-bar__fill{
  height:100%;
  background:linear-gradient(90deg, #d61f37 0%, #ec4267 50%, #f8a51b 100%);
  border-radius:3px;
  transition:width .8s cubic-bezier(.4, 0, .2, 1);
}

/* Notification preference toggles */
.prof-row--toggle{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;background:#fff;
  border:1px solid var(--border,#e5e5ea);
  border-radius:12px;cursor:pointer;
  margin-bottom:6px;width:100%;
  transition:background var(--t-fast);
}
.prof-row--toggle:hover{background:#fafafa}
.prof-row--toggle .prof-row__body{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px}
.prof-toggle{
  position:relative;width:44px;height:24px;
  background:#e9e9eb;border-radius:24px;
  flex-shrink:0;cursor:pointer;
  transition:background var(--t-fast);
}
.prof-toggle[data-on="true"]{background:#34c759}
.prof-toggle__dot{
  position:absolute;top:2px;left:2px;
  width:20px;height:20px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);
  transition:transform var(--t-fast);
}
.prof-toggle[data-on="true"] .prof-toggle__dot{transform:translateX(20px)}
.prof-toggle--locked{background:#34c759;opacity:.6;cursor:not-allowed}
.prof-toggle--locked .prof-toggle__dot{transform:translateX(20px)}

/* Menu autocomplete dropdown */
.menu-ac{
  position:relative;margin:0 14px;
  background:#fff;border:1px solid var(--border,#e5e5ea);
  border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08);
  z-index:10;overflow:hidden;
}
.menu-ac__item{
  display:flex;align-items:center;gap:10px;
  width:100%;padding:8px 12px;
  background:transparent;border:none;cursor:pointer;
  font-family:inherit;text-align:left;
  border-bottom:1px solid rgba(0,0,0,.04);
  transition:background var(--t-fast);
}
.menu-ac__item:hover{background:#f9f9fb}
.menu-ac__item:last-child{border-bottom:none}
.menu-ac__img{
  width:36px;height:36px;border-radius:8px;
  background:#f2f2f7;overflow:hidden;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.menu-ac__img img{width:100%;height:100%;object-fit:cover}
.menu-ac__ph{font-size:18px;opacity:.4}
.menu-ac__body{flex:1;min-width:0}
.menu-ac__name{
  font-size:13px;font-weight:600;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  letter-spacing:-.1px;
}
.menu-ac__cat{font-size:11px;color:#86868b;margin-top:1px}
.menu-ac__price{
  font-size:12px;font-weight:700;color:var(--text);
  font-feature-settings:"tnum" 1;flex-shrink:0;
}

/* Готовые наборы (home) */
.home-bundles{
  display:flex;flex-direction:column;gap:8px;
  padding:0 16px;margin-bottom:20px;
}
.home-bundle{
  display:flex;align-items:center;gap:12px;
  width:100%;padding:14px 14px;
  background:#fff;border:1px solid var(--border,#e5e5ea);
  border-radius:14px;cursor:pointer;
  font-family:inherit;text-align:left;
  transition:all var(--t-fast);
}
.home-bundle:hover{border-color:rgba(214,31,55,.3);box-shadow:0 4px 12px rgba(0,0,0,.04)}
.home-bundle:active{transform:scale(.99)}
.home-bundle__ic{
  font-size:28px;width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;
  background:#f2f2f7;border-radius:12px;flex-shrink:0;
}
.home-bundle__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.home-bundle__t{
  font-size:15px;font-weight:600;color:var(--text);
  letter-spacing:-.2px;
}
.home-bundle__sub{
  font-size:12px;color:#86868b;letter-spacing:-.1px;
}
.home-bundle__price{
  font-size:13px;font-weight:700;color:var(--text);
  font-feature-settings:"tnum" 1;flex-shrink:0;
}

/* Bundle preview modal */
.bundle-h{
  font-family:'Playfair Display',serif;
  font-size:24px;font-weight:700;text-align:center;
  margin:8px 0 4px;color:var(--text);letter-spacing:-.3px;
}
.bundle-sub{
  font-size:13px;color:#86868b;text-align:center;
  margin-bottom:16px;
}
.bundle-list{
  display:flex;flex-direction:column;gap:8px;
  max-height:50vh;overflow-y:auto;margin-bottom:16px;
}
.bundle-row{
  display:flex;align-items:center;gap:10px;
  padding:8px;background:#f9f9fb;border-radius:10px;
}
.bundle-row__img{
  width:48px;height:48px;border-radius:8px;overflow:hidden;
  background:#f2f2f7;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.bundle-row__img img{width:100%;height:100%;object-fit:cover}
.bundle-row__ph{font-size:24px;opacity:.4}
.bundle-row__body{flex:1;min-width:0}
.bundle-row__name{
  font-size:13px;font-weight:600;color:var(--text);
  margin-bottom:2px;letter-spacing:-.1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bundle-row__meta{font-size:11px;color:#86868b}
.bundle-row__sum{
  font-size:13px;font-weight:700;color:var(--text);
  font-feature-settings:"tnum" 1;flex-shrink:0;
}
.bundle-total{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:14px 4px;font-size:14px;color:var(--text);
  border-top:1px solid var(--border,#e5e5ea);
}
.bundle-total b{font-size:18px;font-feature-settings:"tnum" 1}
.bundle-cta{margin-top:4px}

/* Referral modal */
.ref-h{
  font-family:'Playfair Display',serif;
  font-size:24px;font-weight:700;text-align:center;
  margin:8px 0 6px;color:var(--text);letter-spacing:-.3px;
}
.ref-h__sum{color:var(--ap-red,#d61f37)}
.ref-sub{
  font-size:13px;color:#86868b;text-align:center;
  margin-bottom:18px;letter-spacing:-.1px;line-height:1.45;
  padding:0 8px;
}
.ref-code-box{
  background:#f2f2f7;border-radius:14px;padding:18px 16px;text-align:center;
  margin-bottom:12px;
}
.ref-code-box__lbl{
  font-size:11px;font-weight:600;letter-spacing:.6px;
  text-transform:uppercase;color:#86868b;margin-bottom:8px;
}
.ref-code-box__code{
  font-family:'SF Mono',Menlo,Consolas,monospace;
  font-size:22px;font-weight:700;color:var(--text);
  letter-spacing:.5px;margin-bottom:12px;user-select:all;
}
.ref-code-box__copy{
  background:#fff;border:1.5px solid var(--border);
  padding:8px 16px;border-radius:18px;cursor:pointer;
  font-size:12px;font-weight:600;color:var(--text);
  font-family:inherit;letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.ref-code-box__copy:hover{border-color:rgba(214,31,55,.4)}
.ref-stat{
  text-align:center;font-size:13px;color:#86868b;
  margin-bottom:14px;letter-spacing:-.1px;
}
.ref-stat b{color:var(--text)}
.ref-share-btn{
  text-decoration:none;text-align:center;display:block;
}

/* Saved address chips (checkout) */
.co-addr-chips{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;
}
.co-addr-chip{
  padding:7px 12px;border:1.5px solid var(--border);background:#fff;
  border-radius:18px;font-size:12px;font-weight:600;color:var(--text);
  cursor:pointer;transition:all var(--t-fast);
  font-family:inherit;letter-spacing:-.1px;
}
.co-addr-chip:hover{border-color:rgba(214,31,55,.3)}
.co-addr-chip--on{background:var(--ap-ink,#1c1c1e);color:#fff;border-color:var(--ap-ink,#1c1c1e)}
.co-addr-chip--new{color:var(--ap-red,#d61f37);border-style:dashed}

/* Address list modal (Profile) */
.addr-list__h{
  font-family:'Playfair Display',serif;
  font-size:20px;font-weight:700;text-align:center;
  margin:8px 0 14px;color:var(--text);
}
.addr-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;max-height:60vh;overflow-y:auto}
.addr-empty{text-align:center;color:#86868b;font-size:13px;padding:24px 12px}
.addr-item{
  display:flex;align-items:center;gap:8px;
  padding:12px 14px;background:#fff;border:1.5px solid var(--border);
  border-radius:12px;transition:all var(--t-fast);
}
.addr-item--default{border-color:rgba(214,31,55,.4);background:rgba(214,31,55,.02)}
.addr-item__body{flex:1;min-width:0;cursor:pointer}
.addr-item__label{
  font-size:14px;font-weight:600;color:var(--text);
  margin-bottom:2px;letter-spacing:-.2px;
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.addr-item__badge{
  font-size:10px;font-weight:600;text-transform:uppercase;
  letter-spacing:.3px;color:var(--ap-red,#d61f37);
  background:rgba(214,31,55,.1);padding:2px 6px;border-radius:4px;
}
.addr-item__address{
  font-size:12px;color:#86868b;letter-spacing:-.1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.addr-item__edit, .addr-item__del{
  width:28px;height:28px;border:none;background:transparent;
  border-radius:6px;font-size:15px;cursor:pointer;color:#86868b;
  display:flex;align-items:center;justify-content:center;
  font-family:inherit;
}
.addr-item__del{font-size:20px;line-height:1}
.addr-item__edit:hover, .addr-item__del:hover{background:rgba(0,0,0,.05);color:var(--text)}
.addr-list__add{margin-top:4px}

/* Shop picker button */
.co-shop-btn{
  width:100%;text-align:left;padding:12px 14px;
  background:#fff;border:1.5px solid var(--border);
  border-radius:10px;font-size:14px;color:var(--text);cursor:pointer;
  font-family:inherit;
}
.co-shop-btn:hover{border-color:rgba(214,31,55,.3)}

/* Shop picker modal */
.shop-picker__h{
  font-family:'Playfair Display',serif;
  font-size:20px;font-weight:700;text-align:center;
  padding:18px 16px 12px;color:var(--text);
}
.shop-picker__list{
  padding:0 14px 20px;
  display:flex;flex-direction:column;gap:6px;
}
.shop-picker__item{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;background:#fff;
  border:1px solid rgba(0,0,0,.06);border-radius:12px;
  cursor:pointer;text-align:left;width:100%;
  transition:all var(--t-fast);
}
.shop-picker__item:hover{border-color:rgba(214,31,55,.3);background:#fff5f7}
.shop-picker__pin{font-size:20px;flex-shrink:0}
.shop-picker__body{flex:1;min-width:0}
.shop-picker__name{font-size:14px;font-weight:600;color:var(--text)}
.shop-picker__area{font-size:12px;color:var(--muted);margin-top:2px}
.shop-picker__dist{
  font-size:12px;font-weight:700;color:var(--text);
  background:#f2f2f7;padding:4px 8px;border-radius:10px;
  font-feature-settings:"tnum" 1;flex-shrink:0;
}
.shop-picker__geo{
  margin:0 14px 12px;padding:10px 14px;
  background:#fff;border:1.5px dashed var(--border,#e5e5ea);
  border-radius:12px;font-size:13px;font-weight:600;
  color:var(--text);cursor:pointer;width:calc(100% - 28px);
  font-family:inherit;letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.shop-picker__geo:hover{border-color:rgba(214,31,55,.4);color:var(--ap-red,#d61f37)}
.shop-picker__geo--ok{
  border-style:solid;background:rgba(48,209,88,.08);
  border-color:rgba(48,209,88,.4);color:#2da548;
}

/* Date picker (custom beyond chips) */
.co-date-picker{
  display:block;margin-top:8px;
  padding:8px 12px;border:1px solid var(--border);
  border-radius:8px;font-size:13px;color:var(--text);
  background:#fff;width:auto;
  font-family:inherit;
}

/* Checkbox для подарочной упаковки */
.co-checkbox{
  display:flex !important;flex-direction:column;
  padding:12px 14px;background:#fff8ec;border:1px solid #f0d990;
  border-radius:10px;cursor:pointer;
  margin:8px 0;
}
.co-checkbox input{margin-right:8px;accent-color:var(--red)}
.co-checkbox__t{
  font-size:14px;font-weight:600;color:var(--text);
  display:flex;align-items:center;
}
.co-checkbox__t::before{
  content:'';display:inline-block;width:18px;height:18px;
  border:2px solid var(--red);border-radius:4px;margin-right:10px;
  vertical-align:middle;transition:all var(--t-fast);
}
.co-checkbox input{display:none}
.co-checkbox input:checked + .co-checkbox__t::before{
  background:var(--red);
  background-image:linear-gradient(45deg,transparent 30%,#fff 30%,#fff 40%,transparent 40%,transparent 50%,#fff 50%,#fff 65%,transparent 65%);
}
.co-checkbox__s{font-size:11px;color:var(--muted);margin-top:4px;margin-left:28px}

/* Breakdown */
.co-breakdown{
  background:#f8f8fa;border-radius:12px;
  padding:12px 14px;margin:8px 0 4px;
}
.co-breakdown__row{
  display:flex;justify-content:space-between;align-items:center;
  padding:5px 0;font-size:13px;color:var(--text);
}
.co-breakdown__row b{font-weight:700;font-feature-settings:"tnum" 1}
.co-breakdown__row--bonus span,
.co-breakdown__row--bonus b{color:#9c6a06}
.co-breakdown__row--total{
  border-top:1px solid rgba(0,0,0,.08);margin-top:4px;padding-top:10px;
  font-size:15px;font-weight:700;
}
.co-breakdown__row--total b{color:var(--red);font-size:17px}

/* Cart open — затемнить фон, скрыть просвечивающий контент */
body.cart-open #cart-modal{
  background:rgba(0,0,0,.55);backdrop-filter:blur(4px);
}
body.cart-open{overflow:hidden}

/* Chat open — тот же фикс */
body.chat-open #ai-chat-modal{
  background:rgba(0,0,0,.55);backdrop-filter:blur(4px);
}
body.chat-open{overflow:hidden}

/* ═══ ORDER FORM v2 ═══════════════════════════════════════════════════════ */

#tab-order{padding-bottom:90px}

/* Info banner про min сумма + срок */
.of-info-banner{
  margin:12px 16px 16px;padding:12px 14px;
  background:#fff8ec;border:1px solid #f0d990;
  border-radius:12px;
  display:flex;gap:10px;align-items:flex-start;
}
.of-info-banner__ic{font-size:18px;flex-shrink:0;line-height:1.4}
.of-info-banner__text{font-size:13px;color:#7a4f00;line-height:1.45}
.of-info-banner__text b{color:#5a3a00;font-weight:700}

/* Chips группы (Повод/Стиль/Начинка/Бюджет/Доставка) */
.of-chips{
  display:flex;flex-wrap:wrap;gap:6px;
  padding:2px 0;
}
.of-chip{
  padding:7px 13px;border-radius:18px;
  background:#fff;border:1px solid rgba(0,0,0,.12);
  font-size:12.5px;font-weight:500;color:var(--text);
  cursor:pointer;white-space:nowrap;
  letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.of-chip:hover{border-color:rgba(214,31,55,.3);background:#fff8f9}
.of-chip:active{transform:scale(.95)}
.of-chip--on{
  background:var(--red);color:#fff;border-color:transparent;
  font-weight:600;
}
.of-chip--on:hover{background:var(--red-d);border-color:transparent}
.of-chip--sm{padding:5px 10px;font-size:11.5px}

/* Порций — qty selector + presets */
.of-portions{
  display:flex;align-items:center;background:#fff;
  border:1.5px solid var(--border);border-radius:10px;
  overflow:hidden;
}
.of-portions__btn{
  width:38px;height:42px;border:none;background:transparent;
  font-size:18px;font-weight:600;color:var(--text);
  cursor:pointer;
}
.of-portions__btn:hover{background:#f2f2f7}
.of-portions__inp{
  flex:1;text-align:center;border:none !important;border-radius:0 !important;
  font-weight:600;font-feature-settings:"tnum" 1;
}
.of-portions-presets{
  display:flex;gap:5px;margin-top:6px;flex-wrap:wrap;
}

/* Multi-photo grid */
.of-photos{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:8px;
}
.of-photo-cell{
  aspect-ratio:1/1;border-radius:12px;
  background:#f2f2f7;
  position:relative;overflow:hidden;
  cursor:pointer;
}
.of-photo-cell--filled img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.of-photo-rm{
  position:absolute;top:4px;right:4px;
  width:24px;height:24px;border-radius:50%;
  background:rgba(0,0,0,.6);color:#fff;border:none;
  font-size:14px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.of-photo-add{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:1.5px dashed rgba(0,0,0,.15);
  background:transparent;
  cursor:pointer;
  transition:all var(--t-fast);
}
.of-photo-add:hover{border-color:var(--red);background:rgba(214,31,55,.04)}
.of-photo-add__plus{
  font-size:24px;color:var(--muted);line-height:1;margin-bottom:4px;
}
.of-photo-add__t{font-size:11px;color:var(--muted);font-weight:500}

/* Terms checkbox — adapted */
.of-terms{
  margin:14px 0 16px !important;
}

/* Chat empty state — visual entry buttons */
.chat-empty-cats{
  display:flex;gap:8px;padding:16px;justify-content:center;flex-wrap:wrap;
}
.chat-empty-cat{
  flex:1;min-width:90px;max-width:120px;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:14px;
  padding:14px 8px;cursor:pointer;
  transition:all var(--t-fast);
}
.chat-empty-cat:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.06);border-color:rgba(214,31,55,.2)}
.chat-empty-cat:active{transform:scale(.95)}
.chat-empty-cat__ic{font-size:24px;line-height:1}
.chat-empty-cat__t{font-size:11.5px;font-weight:600;color:var(--text);letter-spacing:-.1px;text-align:center}

/* AI product card — кнопка + В корзину */
.ai-pcard{position:relative}
.ai-pcard__add{
  position:absolute;bottom:6px;right:6px;
  width:28px;height:28px;border-radius:50%;
  background:var(--red);color:#fff;border:none;
  font-size:18px;font-weight:600;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(214,31,55,.35);
  z-index:2;transition:all .15s;
}
.ai-pcard__add:hover{transform:scale(1.1)}
.ai-pcard__add:active{transform:scale(.9)}
.ai-pcard__add--added{
  background:#1ea75c;
  animation:aiPcardAdded .8s ease;
}
.ai-pcard__add--added::before{content:'✓';font-size:16px}
.ai-pcard__add--added{font-size:0}
@keyframes aiPcardAdded{
  0%{transform:scale(.5)}
  50%{transform:scale(1.15)}
  100%{transform:scale(1)}
}

/* Follow-up suggestions chips */
.chat-followup{
  display:flex;gap:7px;padding:8px 14px 0;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.chat-followup::-webkit-scrollbar{display:none}
.chat-followup .chip{flex-shrink:0}

/* Markdown bold/italic/lists в bot message */
.msg__bubble b{color:inherit;font-weight:700}
.msg__bubble i{font-style:italic}
.msg__bubble .msg-list{
  margin:6px 0 4px;padding-left:18px;
  font-size:13.5px;line-height:1.5;
}
.msg__bubble .msg-list li{margin:3px 0}

/* Long message collapse */
.msg-collapse__btn{
  display:block;margin-top:6px;
  background:none;border:none;color:var(--red);
  font-size:12.5px;font-weight:600;cursor:pointer;padding:0;
  letter-spacing:-.1px;
}
.msg-collapse__btn:hover{text-decoration:underline}

/* Sticky search bar */
.home-search{
  margin:-18px 16px 14px;padding:13px 16px;
  background:#fff;border-radius:14px;
  box-shadow:0 6px 20px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.04);
  display:flex;align-items:center;gap:10px;
  cursor:pointer;position:relative;z-index:2;
  transition:transform var(--t-fast);
}
.home-search:active{transform:scale(.98)}
.home-search__ic{color:var(--muted);display:flex;align-items:center}
.home-search__ph{font-size:14px;color:var(--muted);font-weight:500;letter-spacing:-.1px}

/* Категории chips — horizontal scroll */
.home-cats{
  display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding:0 16px 14px;scrollbar-width:none;
}
.home-cats::-webkit-scrollbar{display:none}
.home-cat{
  flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px;
  background:#fff;border:none;border-radius:14px;
  padding:12px 14px;min-width:74px;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
  cursor:pointer;transition:all var(--t-fast);
}
.home-cat:hover{box-shadow:0 4px 14px rgba(0,0,0,.07);transform:translateY(-2px)}
.home-cat:active{transform:scale(.95)}
.home-cat__ic{font-size:24px;line-height:1}
.home-cat__t{font-size:11.5px;font-weight:600;color:var(--text);letter-spacing:-.1px}

/* Persona block (для verified юзера) */
.home-persona{
  margin:0 16px 14px;padding:16px;
  background:#fff;border-radius:14px;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.home-persona__row{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.home-persona__hi{
  font-family:var(--ff-display);
  font-size:18px;font-weight:700;color:var(--text);
  letter-spacing:-.3px;line-height:1.2;
}
.home-persona__stat{
  margin-top:3px;font-size:12px;color:var(--muted);
}
.home-persona__chip{
  flex-shrink:0;display:inline-flex;align-items:center;gap:6px;
  background:#fff8ec;color:#9c6a06;border:1px solid #f0d990;
  padding:6px 11px;border-radius:24px;font-size:12px;font-weight:600;
  cursor:pointer;
}
.home-persona__reorder{
  margin-top:14px;padding-top:12px;border-top:1px solid rgba(0,0,0,.05);
  display:flex;align-items:center;gap:12px;
}
.home-persona__reorder-text{flex:1;min-width:0}
.home-persona__reorder-lbl{
  font-size:11px;color:var(--muted);font-weight:600;
  text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;
}
.home-persona__reorder-items{
  font-size:13px;color:var(--text);font-weight:500;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.home-persona__reorder-btn{
  flex-shrink:0;background:var(--red);color:#fff;border:none;
  padding:9px 14px;border-radius:10px;font-size:12px;font-weight:700;
  cursor:pointer;
}
.home-persona__reorder-btn:active{transform:scale(.96)}

/* Compact club chip (вместо большого banner'а) */
.home-club-chip{
  width:calc(100% - 32px);margin:0 16px 14px;
  display:flex;align-items:center;gap:12px;
  background:#fff;border:none;border-radius:14px;
  padding:14px 16px;cursor:pointer;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
  text-align:left;
  transition:all var(--t-fast);
}
.home-club-chip:hover{box-shadow:0 4px 14px rgba(0,0,0,.07);transform:translateY(-1px)}
.home-club-chip__ic{
  width:38px;height:38px;border-radius:10px;flex-shrink:0;
  background:rgba(214,31,55,.08);color:var(--red);
  display:flex;align-items:center;justify-content:center;
}
.home-club-chip__body{flex:1;min-width:0}
.home-club-chip__t{font-size:14px;font-weight:700;color:var(--text);letter-spacing:-.2px}
.home-club-chip__s{font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.3}
.home-club-chip__chev{color:var(--muted);display:flex;align-items:center}

/* Скоро праздник — горизонтальная карточка над «Хит недели» */
.promo-holiday{
  --holiday-accent:#d61f37;
  width:calc(100% - 32px);margin:0 16px 14px;
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--holiday-accent) 12%, #fff) 0%, #fff 70%);
  border:1px solid color-mix(in srgb, var(--holiday-accent) 22%, #eee);
  border-radius:14px;
  padding:12px 14px;cursor:pointer;text-align:left;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
  transition:all var(--t-fast);
  font-family:inherit;
}
.promo-holiday:hover{box-shadow:0 4px 14px rgba(0,0,0,.07);transform:translateY(-1px)}
.promo-holiday:active{transform:scale(.99)}
.promo-holiday__emoji{
  flex-shrink:0;width:42px;height:42px;border-radius:11px;
  background:#fff;border:1px solid color-mix(in srgb, var(--holiday-accent) 18%, #eee);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;line-height:1;
}
.promo-holiday__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.promo-holiday__row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.promo-holiday__t{
  font-size:14px;font-weight:700;color:var(--text);
  letter-spacing:-.2px;line-height:1.2;
}
.promo-holiday__countdown{
  font-size:11.5px;font-weight:700;
  color:var(--holiday-accent);
  background:color-mix(in srgb, var(--holiday-accent) 10%, #fff);
  padding:1px 8px;border-radius:8px;
  letter-spacing:-.1px;
}
.promo-holiday__hint{font-size:11.5px;color:var(--muted);line-height:1.3}
.promo-holiday__cta{
  flex-shrink:0;color:var(--holiday-accent);font-size:18px;font-weight:700;
  margin-left:4px;
}

/* Торт месяца — крупная карточка с фото */
.promo--feature{
  margin:0 16px 14px;padding:0;
  background:#fff;border-radius:14px;
  overflow:hidden;cursor:pointer;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
  display:flex;flex-direction:column;
}
.promo--feature:hover{box-shadow:0 6px 20px rgba(0,0,0,.08)}
.promo__feature-img{
  aspect-ratio:16/9;background-size:cover;background-position:center;
  background-color:#f2f2f7;
  position:relative;
}
.promo__feature-body{padding:14px 16px 16px;position:relative}
.promo--feature .promo__badge{
  position:absolute;top:-14px;right:14px;
  background:var(--red);color:#fff;
  font-weight:800;font-size:14px;
  padding:6px 14px;border-radius:18px;
  box-shadow:0 4px 14px rgba(214,31,55,.35);
}
.promo--feature .promo__name{
  font-family:var(--ff-display);
  font-size:18px;font-weight:700;color:var(--text);
  letter-spacing:-.3px;margin-bottom:4px;line-height:1.2;
}
.promo--feature .promo__desc{
  font-size:13px;color:var(--muted);line-height:1.4;margin-bottom:10px;
}
.promo__countdown{
  font-size:11px;color:var(--red);font-weight:600;
  margin-bottom:10px;letter-spacing:-.1px;
}
.promo__cta{
  font-size:14px;color:var(--red);font-weight:700;
  display:inline-flex;align-items:center;gap:4px;
}

/* ── BENTO ───────────────────────────────────────────────────────────────── */
.bento{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  gap:10px;padding:16px 14px 6px;
}
/* Вариант: только row из 2 sm-карточек, без big-блока сверху */
.bento--row{grid-template-rows:auto;padding-top:10px}
.bento__big{
  grid-column:1 / span 2;
  background:var(--mesh-premium);
  color:#fff;border-radius:28px;padding:26px 24px 22px;
  cursor:pointer;position:relative;overflow:hidden;
  box-shadow:0 18px 48px -12px rgba(40,8,20,.45);
  transition:transform var(--t),box-shadow var(--t);
}
.bento__big::before{
  /* премиум-золотая обводка сверху */
  content:'';position:absolute;inset:0;border-radius:28px;
  padding:1px;background:linear-gradient(135deg,rgba(212,160,64,.55),rgba(212,160,64,0) 40%,rgba(214,31,55,.4));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
}
.bento__big::before{
  content:'';position:absolute;top:-40%;right:-20%;
  width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.18),transparent 60%);
  pointer-events:none;
}
.bento__big::after{
  content:'';position:absolute;bottom:-30%;left:-10%;
  width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(247,201,72,.15),transparent 60%);
  pointer-events:none;
}
.bento__big:active{transform:scale(.98)}
.bento__big>*{position:relative;z-index:1}
.bento__eye{
  display:inline-block;font-size:11px;font-weight:700;letter-spacing:.8px;
  text-transform:uppercase;opacity:.85;margin-bottom:14px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);
  padding:5px 12px;border-radius:24px;backdrop-filter:blur(8px);
}
.bento__h{
  font-family:var(--ff-display);
  font-size:clamp(22px, 6vw, 28px);font-weight:800;line-height:1.08;letter-spacing:-.6px;
  margin-bottom:10px;text-wrap:balance;
}
.bento__sub{font-size:12px;opacity:.78;line-height:1.55;margin-bottom:14px}
.bento__cta{
  display:inline-block;font-size:13px;font-weight:700;
  padding:8px 18px;border-radius:24px;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(8px);
}

.bento__sm{
  border-radius:20px;padding:18px 16px;cursor:pointer;
  position:relative;overflow:hidden;min-height:120px;
  display:flex;flex-direction:column;justify-content:center;
  transition:transform var(--t),box-shadow var(--t);
}
.bento__sm:active{transform:scale(.96)}
.bento__sm--gold{
  background:var(--mesh-gold);
  color:#fff;box-shadow:var(--shadow-gold);
  position:relative;
}
.bento__sm--gold::before{
  content:'';position:absolute;inset:0;border-radius:inherit;
  padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.5),rgba(255,255,255,0));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;
}
.bento__sm--light{
  background:#fff;color:var(--text);
  border:1px solid var(--border);box-shadow:var(--shadow-card);
}
.bento__sm-ic{font-size:26px;margin-bottom:8px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.18))}
.bento__sm-t{font-size:15px;font-weight:800;line-height:1.2;margin-bottom:4px;letter-spacing:-.2px}
.bento__sm-s{font-size:12px;opacity:.85;line-height:1.4;font-weight:500}

/* ── SECTION HEADING — премиум-стиль ─────────────────────────────────────── */
.sh{display:flex;align-items:center;gap:14px;padding:24px 14px 12px}
.sh__line{flex:1;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(13,6,8,.10) 50%,transparent 100%)}
.sh__text{
  font-family:var(--ff-display);font-size:17px;font-weight:800;
  color:var(--text);white-space:nowrap;letter-spacing:-.2px;
  font-variation-settings:'wght' 800;
  position:relative;padding-bottom:2px;
}
.sh__text::after{
  /* тонкая золотая черта под заголовком */
  content:'';position:absolute;left:50%;bottom:-3px;transform:translateX(-50%);
  width:24px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--gold-d),var(--gold),var(--gold-d));
  opacity:.7;
}

.section-desc{font-size:13px;color:var(--muted);padding:0 14px 14px;line-height:1.6;font-weight:500}

/* ── PROMOS ──────────────────────────────────────────────────────────────── */
.promos{display:flex;gap:10px;padding:0 14px 6px;overflow-x:auto;scrollbar-width:none}
.promos::-webkit-scrollbar{display:none}
.promo{
  min-width:165px;max-width:195px;border-radius:var(--r);
  padding:16px 14px;flex-shrink:0;position:relative;overflow:hidden;
}
.promo::after{
  content:'';position:absolute;top:-40%;right:-30%;
  width:120px;height:120px;border-radius:50%;
  background:rgba(255,255,255,.07);pointer-events:none;
}
.promo--red {background:linear-gradient(140deg,var(--red-d),var(--red),#f03a55);color:#fff;box-shadow:0 8px 28px var(--red-glow)}
.promo--gold{background:linear-gradient(140deg,#b06010,var(--gold),#f0c050);color:#fff;box-shadow:0 8px 28px rgba(232,160,48,.3)}
.promo--dark{background:linear-gradient(140deg,#0d0d1a,#1e1e3e,#2d1054);color:#fff;box-shadow:0 8px 28px rgba(20,10,40,.3)}
.promo__badge{
  display:inline-block;background:rgba(255,255,255,.2);
  border:1px solid rgba(255,255,255,.3);
  border-radius:24px;padding:3px 11px;
  font-size:11px;font-weight:800;margin-bottom:8px;letter-spacing:.3px;
  backdrop-filter:blur(4px);
}
.promo__name{font-size:13px;font-weight:700;margin-bottom:5px;line-height:1.3}
.promo__desc{
  font-size:11px;opacity:.85;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.promo__note{font-size:10px;opacity:.7;margin-top:5px}

/* ── CONTACTS ────────────────────────────────────────────────────────────── */
.contacts-wrap{
  margin:0 14px;background:var(--surface);
  border-radius:var(--r);
  box-shadow:var(--shadow-card);
  border:1px solid rgba(214,31,55,.07);
  overflow:hidden;
}
.contact-row{
  display:flex;align-items:center;gap:14px;
  padding:14px 18px;border-bottom:1px solid rgba(214,31,55,.06);
  font-size:14px;cursor:pointer;color:var(--text);
  transition:background var(--t-fast);
}
.contact-row:last-of-type{border-bottom:none}
.contact-row:hover{background:var(--red-l)}
.cr-icon{font-size:20px;flex-shrink:0}
.btn-outline{
  display:block;width:calc(100% - 32px);margin:14px auto 18px;
  background:transparent;border:2px solid var(--red);
  color:var(--red);font-weight:700;font-size:14px;
  padding:12px;border-radius:var(--r-sm);cursor:pointer;
  transition:all var(--t-fast);font-family:'Inter',sans-serif;
  letter-spacing:.3px;
}
.btn-outline:hover{background:var(--red);color:#fff;box-shadow:0 6px 24px var(--red-glow)}

/* ── CATALOG (Меню) ──────────────────────────────────────────────────────── */
.cat-search{position:relative;padding:0 14px 12px}
.cat-search__inp{
  width:100%;padding:13px 40px 13px 16px;
  border:1px solid var(--border);border-radius:14px;
  background:var(--surface);font-size:14px;font-family:inherit;
  outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.cat-search__inp:focus{border-color:var(--red);box-shadow:0 0 0 4px rgba(214,31,55,.1)}
.cat-search__clear{
  position:absolute;right:24px;top:50%;transform:translateY(-50%);
  background:#eee;border:none;border-radius:50%;
  width:24px;height:24px;cursor:pointer;color:#666;
  font-size:11px;line-height:1;
}

.cat-bread{
  display:flex;align-items:center;gap:10px;padding:0 14px 12px;
  font-size:13px;
}
.cat-bread__back{
  background:none;border:none;color:var(--red);font-weight:700;cursor:pointer;
  font-family:inherit;font-size:13px;padding:4px 0;
}
.cat-bread__name{color:var(--muted);font-weight:600}

.cat-cats{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
  padding:4px 14px 10px;
}
.ccat{
  position:relative;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:20px 14px 16px;cursor:pointer;
  box-shadow:var(--shadow-card);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  min-height:140px;
  background-color:var(--surface);background-size:cover;background-position:center;
  transition:transform var(--t),box-shadow var(--t);
  font-family:inherit;
}
.ccat:active{transform:scale(.96);box-shadow:0 1px 3px rgba(13,6,8,.06)}
.ccat:hover{transform:translateY(-2px);box-shadow:0 10px 28px var(--red-glow)}
.ccat__ic{font-size:36px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.12))}
.ccat__name{font-size:14px;font-weight:700;color:var(--text);text-align:center}
.ccat__count{
  position:absolute;top:10px;right:10px;
  background:var(--red);color:#fff;
  font-size:11px;font-weight:800;padding:3px 8px;border-radius:12px;
  box-shadow:0 2px 8px var(--red-glow);
}

/* ── Chip-фильтры ─────────────────────────────────────────────────────────── */
.cat-chips{
  display:flex;gap:8px;padding:0 14px 14px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.cat-chips::-webkit-scrollbar{display:none}
.cat-chip{
  flex-shrink:0;scroll-snap-align:start;
  display:inline-flex;align-items:center;gap:6px;
  background:#fff;
  border:1px solid var(--border-strong);
  border-radius:999px;
  padding:9px 16px 9px 14px;
  font-family:var(--ff-body);font-size:13px;font-weight:600;
  color:var(--text);letter-spacing:-.1px;
  cursor:pointer;
  white-space:nowrap;
  transition:transform var(--t-fast),background var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast);
  box-shadow:var(--shadow-xs);
  font-variation-settings:'wght' 600;
}
.cat-chip [data-icon]{color:var(--ink-3);transition:color var(--t-fast)}
.cat-chip:hover{border-color:var(--red);color:var(--red);box-shadow:var(--shadow-sm)}
.cat-chip:hover [data-icon]{color:var(--red)}
.cat-chip:active{transform:scale(.94);background:var(--red-xl);border-color:var(--red)}
.cat-chip--diet [data-icon]{color:#0a6b34}
.cat-chip--diet:hover [data-icon]{color:#0a6b34}
.cat-chip--wish [data-icon]{color:var(--red)}
.cat-chip--mood [data-icon]{color:var(--gold-d)}

.cat-products{padding:4px 14px 10px}
.cat-products-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.pcard-pr{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:6px;
  cursor:pointer;
  box-shadow:var(--shadow-card);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
  position:relative;
  isolation:isolate;
}
.pcard-pr:active{transform:scale(.96);box-shadow:0 1px 3px rgba(13,6,8,.06)}
.pcard-pr:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(214,31,55,.15)}
.pcard-pr__body{padding:10px 8px 4px}
.pcard-pr__img{
  aspect-ratio:4/5;background-color:var(--gold-l);
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  border-radius:var(--r-img);
}
.pcard-pr__pic{
  width:100%;height:100%;object-fit:cover;display:block;
}
.pcard-pr__pic[loading]{opacity:0;filter:blur(10px)}
.pcard-pr__pic.loaded{opacity:1;filter:blur(0)}
.pcard-pr__add{
  position:absolute;right:8px;bottom:8px;
  width:38px;height:38px;border-radius:50%;border:0;
  background:var(--mesh-red);
  color:#fff;
  font-size:22px;font-weight:700;line-height:1;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:var(--shadow-glow);
  transition:transform .18s cubic-bezier(.34,1.56,.64,1);
  z-index:2;padding:0;
}
.pcard-pr__add:active{transform:scale(.88)}
.pcard-pr__add:hover{transform:scale(1.08)}
.pcard-pr__add.added{background:#1ea75c;animation:pcardAddedPop .8s ease}
@keyframes pcardAddedPop{
  0%   {transform:scale(1)}
  30%  {transform:scale(1.25)}
  100% {transform:scale(1)}
}
.pcard-pr__add.added::before{content:'✓';font-size:18px}
.pcard-pr__add.added{font-size:0}
.pcard-pr__noimg{font-size:36px;opacity:.5}
.pcard-pr__name{
  font-size:14px;font-weight:600;color:var(--text);line-height:1.32;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:36px;margin-bottom:10px;
  letter-spacing:-.1px;
  font-variation-settings:'wght' 600;
}
.pcard-pr__row{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}
.pcard-pr__price{
  font-size:18px;font-weight:800;white-space:nowrap;letter-spacing:-.4px;
  background:linear-gradient(135deg,var(--red) 0%,var(--red-d) 60%,#7a1020 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  font-variation-settings:'wght' 800;
}
.pcard-pr__cta{font-size:14px;color:var(--muted);opacity:.7;font-weight:600}

.cat-empty,.cat-loading{
  text-align:center;color:var(--muted);font-size:13px;
  padding:40px 14px;grid-column:1/-1;
}
/* Под текстом loading'а — лёгкий sweep-shimmer для perceived speed */
.cat-loading{position:relative;overflow:hidden}
.cat-loading::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(214,31,55,.05) 45%,
    rgba(200,146,50,.06) 55%,
    transparent 100%);
  animation:catLoadingSweep 1.6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes catLoadingSweep{
  from{transform:translateX(-100%)}
  to  {transform:translateX(100%)}
}

/* Хит-бейдж и вес на карточке товара */
.pcard-pr__img{position:relative}
.pcard-pr__hit{
  position:absolute;top:8px;left:8px;
  background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;
  font-size:10px;font-weight:800;letter-spacing:.4px;
  padding:3px 8px;border-radius:8px;text-transform:uppercase;
  box-shadow:0 4px 10px var(--red-glow);
}
.pcard-pr__w{
  display:inline-block;font-size:11px;color:var(--muted);
  background:var(--gold-l);padding:2px 6px;border-radius:6px;
  margin-bottom:6px;
}

/* Модалка детальной карточки товара */
.cat-modal{
  position:fixed;inset:0;
  background:rgba(13,6,8,.42);
  backdrop-filter:blur(6px) saturate(1.1);
  -webkit-backdrop-filter:blur(6px) saturate(1.1);
  display:flex;align-items:flex-end;justify-content:center;z-index:1000;
}
/* Liquid Glass sheet — мягкий top edge + inner highlight (тренд 2026, iOS 26) */
.cat-modal__sheet{
  width:100%;max-width:560px;max-height:92vh;overflow-y:auto;
  background:linear-gradient(180deg, rgba(255,255,255,.985) 0%, #fff 18%);
  border-radius:28px 28px 0 0;
  position:relative;animation:slideUp .32s cubic-bezier(.22,1,.36,1);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 1px 0 0 rgba(13,6,8,.03),
    inset -1px 0 0 rgba(13,6,8,.03),
    0 -20px 60px -8px rgba(13,6,8,.18);
}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.cat-modal__close{
  position:absolute;top:10px;right:14px;z-index:2;
  width:32px;height:32px;border-radius:50%;border:none;
  background:rgba(255,255,255,.94);font-size:24px;line-height:1;
  cursor:pointer;color:#444;box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.cat-modal__hero{
  width:100%;aspect-ratio:4/3;background-color:var(--gold-l);
  border-radius:24px 24px 0 0;
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.cat-modal__pic{width:100%;height:100%;object-fit:cover;display:block}
.cat-modal__hit{
  position:absolute;top:14px;left:14px;
  background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;
  font-size:11px;font-weight:800;letter-spacing:.5px;
  padding:5px 12px;border-radius:10px;text-transform:uppercase;
  box-shadow:0 6px 14px var(--red-glow);
}
.cat-modal__title{
  font-family:'Playfair Display',serif;font-size:22px;font-weight:700;
  color:var(--text);line-height:1.25;padding:18px 18px 4px;
}
.cat-modal__price{
  font-size:20px;font-weight:800;color:var(--red);
  padding:0 18px 12px;
}
.cat-modal__props{
  padding:0 18px 12px;display:flex;flex-direction:column;gap:6px;
  font-size:13px;color:#333;
}
.cat-modal__props span b{color:var(--muted);font-weight:600;margin-right:4px}
.cat-modal__desc{
  padding:6px 18px 16px;font-size:14px;color:#333;line-height:1.55;
  white-space:pre-wrap;border-top:1px solid rgba(0,0,0,.06);
  margin-top:6px;padding-top:14px;
}
/* Sticky CTA-bar внизу sheet — стандартный e-com pattern */
.cat-modal__actions{
  position:sticky;bottom:0;left:0;right:0;z-index:5;
  display:flex;align-items:center;gap:10px;
  padding:12px 16px calc(env(safe-area-inset-bottom, 12px) + 12px);
  background:#fff;border-top:1px solid rgba(0,0,0,.07);
  box-shadow:0 -6px 18px rgba(0,0,0,.06);
}
.cat-modal__actions .cat-modal__share{
  flex-shrink:0;width:46px;height:46px;border-radius:50%;
  padding:0;display:flex;align-items:center;justify-content:center;
  border:1.5px solid rgba(214,31,55,.18);background:rgba(214,31,55,.06);
}
.cat-modal__actions .cat-modal__share svg{width:20px;height:20px}
.cat-modal__actions .cat-modal__share span{display:none}
.cat-modal__actions .btn-full{flex:1;height:46px;font-size:15px;border-radius:14px}

/* ── SHOPS modal ────────────────────────────────────────────────────────── */
.shops{padding:18px 20px 24px}
.shops__h{
  font-family:'Playfair Display',serif;font-size:24px;font-weight:700;
  color:var(--text);text-align:center;margin-bottom:4px;
}
.shops__sub{text-align:center;color:var(--muted);font-size:13px;margin-bottom:18px}
.shops__group{margin-bottom:18px}
.shops__city{
  font-family:'Inter',sans-serif;font-weight:800;font-size:13px;
  color:var(--red);letter-spacing:1px;text-transform:uppercase;
  padding:8px 0 6px;border-bottom:1px solid rgba(214,31,55,.18);margin-bottom:8px;
}
.shop{
  font-size:13px;color:var(--text);padding:8px 0;line-height:1.4;
  border-bottom:1px solid rgba(0,0,0,.05);
}
.shop:last-child{border-bottom:none}
.shop__t{display:inline-block;color:var(--muted);font-size:11px;margin-left:6px}
.shops__cta{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.shops__cta .btn-full{margin:0;display:flex;justify-content:center;align-items:center;text-decoration:none}

/* ── SWEET CHECK — user tickets card ────────────────────────────────────── */
.sc-my{
  background:linear-gradient(135deg,#fff7e8 0%,#fff 100%);
  border:1.5px solid rgba(232,160,48,.35);
  border-radius:18px;padding:22px 20px 20px;text-align:center;
  margin:14px 0 18px;
  box-shadow:0 6px 22px rgba(232,160,48,.18);
  position:relative;overflow:hidden;
}
.sc-my::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 80% 0%,rgba(255,215,80,.18) 0%,transparent 50%);
  pointer-events:none;
}
.sc-my--gold{
  background:linear-gradient(135deg,#fff5d4 0%,#fff8e7 100%);
  border-color:#e8a030;
  box-shadow:0 8px 28px rgba(232,160,48,.35);
}
.sc-my--empty{
  background:#fafafa;border-color:rgba(0,0,0,.08);box-shadow:none;
}
.sc-my__h{
  font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px;
}
.sc-my__big{
  font-family:'Playfair Display',serif;font-weight:900;
  font-size:64px;line-height:1;color:var(--red);
  text-shadow:0 4px 12px rgba(214,31,55,.18);
  margin-bottom:6px;
}
.sc-my--empty .sc-my__big{color:var(--muted);text-shadow:none}
.sc-my__sub{font-size:13px;color:#444;margin-bottom:8px}
.sc-my__chance{
  display:inline-block;padding:6px 14px;border-radius:20px;
  background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;
  font-size:12px;font-weight:700;letter-spacing:.4px;
  box-shadow:0 4px 12px var(--red-glow);
}

/* Активная неделя — квест */
.sc-week{
  background:linear-gradient(135deg,#0a8a4a 0%,#10a85b 100%);color:#fff;
  border-radius:16px;padding:16px 18px;margin-top:14px;
  box-shadow:0 8px 24px rgba(10,138,74,.28);
  position:relative;overflow:hidden;
}
.sc-week::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 100% 0%,rgba(255,255,255,.15) 0%,transparent 60%);
  pointer-events:none;
}
.sc-week__tag{
  font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;
  opacity:.92;margin-bottom:6px;
}
.sc-week__h{
  font-family:'Playfair Display',serif;font-size:18px;font-weight:700;
  margin-bottom:6px;
}
.sc-week__task{font-size:13px;line-height:1.4;opacity:.95;margin-bottom:8px}
.sc-week__reward{
  display:inline-block;background:rgba(255,255,255,.22);
  padding:4px 12px;border-radius:14px;font-size:12px;font-weight:700;
  backdrop-filter:blur(10px);
}

/* Правила Сладкого чека */
.sc-rules{
  background:var(--surface);border-radius:14px;padding:14px 16px 12px;
  margin-top:14px;border:1px solid rgba(0,0,0,.05);
}
.sc-rules h4{
  font-family:'Inter',sans-serif;font-weight:800;font-size:13px;
  letter-spacing:.4px;text-transform:uppercase;
  color:var(--red);margin:0 0 8px;
}
.sc-rules ul{margin:0;padding-left:18px;list-style:none}
.sc-rules li{
  font-size:13px;color:#333;line-height:1.5;padding:4px 0;
  position:relative;padding-left:18px;
}
.sc-rules li::before{
  content:'•';position:absolute;left:0;color:var(--red);font-weight:900;
}

/* ── FAB AI чат ─────────────────────────────────────────────────────────── */
.fab-ai{
  position:fixed;
  right:14px;
  bottom:calc(96px + env(safe-area-inset-bottom));
  z-index:300;
  width:56px;height:56px;border-radius:50%;
  background:var(--mesh-red);color:#fff;
  border:none;
  cursor:pointer;
  box-shadow:var(--shadow-glow);
  display:flex;align-items:center;justify-content:center;
  transition:transform .15s, box-shadow .15s;
  padding:0;
}
.fab-ai:active{transform:scale(.92)}
.fab-ai:hover{transform:translateY(-2px);box-shadow:0 16px 36px -8px rgba(180,30,40,.55)}
.fab-ai::before{
  content:'';position:absolute;inset:-3px;border-radius:50%;
  background:radial-gradient(circle,rgba(214,31,55,.45) 0%,transparent 70%);
  animation:fabPulse 2.4s ease-in-out infinite;
  z-index:-1;pointer-events:none;
}
@keyframes fabPulse{
  0%,100%{transform:scale(.92);opacity:.45}
  50%{transform:scale(1.18);opacity:0}
}

/* ── Header cart button ─────────────────────────────────────────────────── */
.header__cart{
  background:var(--mesh-red);color:#fff;
  border:none;border-radius:12px;padding:6px 10px;
  font-family:var(--ff-body);font-size:13px;font-weight:700;
  cursor:pointer;display:inline-flex;gap:4px;align-items:center;
  box-shadow:var(--shadow-glow);
  transition:transform var(--t);
  white-space:nowrap;line-height:1;
}
.header__cart:active{transform:scale(.94)}
.header__cart.cart-bump{animation:cartBump .35s cubic-bezier(.34,1.56,.64,1)}
@keyframes cartBump{
  0%{transform:scale(1)}
  40%{transform:scale(1.18)}
  100%{transform:scale(1)}
}

/* Корзина-toast — снизу, чтобы не перекрывать шапку */
.cart-toast{
  position:fixed;left:50%;
  bottom:calc(96px + env(safe-area-inset-bottom));
  transform:translateX(-50%) translateY(20px);
  background:rgba(20,15,15,.92);color:#fff;
  padding:11px 22px;border-radius:999px;font-size:13px;font-weight:600;
  box-shadow:0 12px 36px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.08) inset;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  opacity:0;pointer-events:none;transition:opacity .25s, transform .25s;
  z-index:2000;max-width:90vw;text-align:center;
}
.cart-toast.show{opacity:1;transform:translateX(-50%) translateY(-8px)}

/* Cart modal — пустая */
.cart-empty{padding:40px 20px;text-align:center}
.cart-empty__ic{font-size:64px;margin-bottom:12px}
.cart-empty__h{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;margin-bottom:6px}
.cart-empty__sub{color:var(--muted);font-size:14px;margin-bottom:18px}

.cart-h{
  font-family:'Playfair Display',serif;font-size:20px;font-weight:700;
  padding:18px 18px 10px;
}
.cart-list{padding:0 18px 14px}
.cart-i{
  display:grid;grid-template-columns:64px 1fr;gap:12px;
  padding:12px 0;border-bottom:1px solid rgba(0,0,0,.06);
}
.cart-i:last-child{border-bottom:none}
.cart-i__img{
  width:64px;height:64px;border-radius:10px;
  background-color:var(--gold-l);background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
}
.cart-i__name{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:4px}
.cart-i__sum{font-size:12px;color:#444;margin-bottom:6px}
.cart-i__qty{display:flex;gap:8px;align-items:center;font-size:13px}
.cart-i__qty button{
  background:#f2f2f2;border:none;border-radius:8px;
  width:28px;height:28px;font-size:14px;font-weight:700;cursor:pointer;
}
.cart-i__qty span{min-width:20px;text-align:center;font-weight:700}
.cart-i__del{
  background:transparent !important;border:none;color:var(--muted);
  font-size:11px !important;font-weight:500 !important;width:auto !important;height:auto !important;
  margin-left:auto;padding:0 6px;cursor:pointer;
}
.cart-i__del:hover{color:var(--red)}

.cart-foot{padding:0 18px 24px;display:flex;flex-direction:column;gap:8px}
.cart-total{
  font-size:16px;color:var(--text);text-align:center;
  padding:10px 0;border-top:1px solid rgba(0,0,0,.06);
}
.cart-total b{color:var(--red);font-size:18px}

.cart-form{padding:0 18px 24px;display:flex;flex-direction:column;gap:10px}
.cart-form label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);font-weight:600;gap:4px}
.cart-form input, .cart-form textarea{
  width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(0,0,0,.12);
  font-family:'Inter',sans-serif;font-size:14px;color:var(--text);background:#fff;
  resize:none;
}
.cart-form input:focus, .cart-form textarea:focus{
  outline:none;border-color:var(--red);
}
.cart-form__hint{font-size:12px;color:var(--muted);margin-top:6px;text-align:center}
.cart-form__status{text-align:center;font-size:13px;padding:6px 0}

.cart-success{padding:34px 20px 20px;text-align:center}
.cart-success__ic{font-size:64px;margin-bottom:10px}
.cart-success__h{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;margin-bottom:6px;color:#0a8a4a}
.cart-success__sub{color:var(--muted);font-size:14px;margin-bottom:14px}

/* ── AI chat product cards ──────────────────────────────────────────────── */
.ai-pgrid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));
  gap:8px;margin-top:10px;padding-top:10px;
  border-top:1px solid rgba(0,0,0,.06);
}
.ai-pcard{
  background:#fff;border-radius:12px;overflow:hidden;
  cursor:pointer;border:1px solid rgba(0,0,0,.06);
  transition:transform .15s, box-shadow .15s;
}
.ai-pcard:active{transform:scale(.97)}
.ai-pcard:hover{box-shadow:0 6px 20px rgba(0,0,0,.08)}
.ai-pcard__img{
  aspect-ratio:1/1;background-color:var(--gold-l);
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.ai-pcard__pic{width:100%;height:100%;object-fit:cover;display:block}
.ai-pcard__hit{
  position:absolute;top:6px;left:6px;
  background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;
  font-size:10px;font-weight:800;padding:2px 6px;border-radius:6px;
  box-shadow:0 2px 6px var(--red-glow);
}
.ai-pcard__body{padding:8px 10px}
.ai-pcard__name{
  font-size:11px;font-weight:600;color:var(--text);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:28px;margin-bottom:4px;
}
.ai-pcard__price{font-size:12px;font-weight:800;color:var(--red)}
.ai-pcard__rating{
  display:flex;align-items:center;gap:2px;
  font-size:10.5px;color:var(--text);margin-top:2px;
}
.ai-pcard__rating-star{color:#f0a020;font-size:11px}
.ai-pcard__rating-cnt{color:var(--muted);font-size:10px}


/* ── BUTTONS ─────────────────────────────────────────────────────────────── */
.btn-full{
  display:block;width:calc(100% - 28px);margin:4px 14px 14px;
  background:var(--mesh-red);color:#fff;
  font-family:var(--ff-body);font-weight:700;font-size:15px;
  padding:15px;border-radius:18px;border:none;cursor:pointer;
  box-shadow:var(--shadow-glow);
  transition:transform var(--t),box-shadow var(--t),font-variation-settings .2s;
  font-variation-settings:'wght' 700;
  letter-spacing:-.1px;
}
.btn-full:hover{transform:translateY(-1px);box-shadow:0 12px 44px -8px rgba(180,30,40,.55);font-variation-settings:'wght' 760}
.btn-full:active{transform:scale(.97);font-variation-settings:'wght' 800}

/* ── CLUB — белый премиум-hero ───────────────────────────────────────────── */
.club-hero{
  background:#ffffff;
  padding:28px 24px 22px;text-align:center;color:var(--text);
  position:relative;
  border-bottom:1px solid var(--border);
}
.club-hero::after{
  /* премиум золото→красный hairline снизу */
  content:'';position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);
  width:120px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--red) 70%,transparent);
  opacity:.6;
}
.club-hero__logo{
  height:42px;margin-bottom:14px;
  object-fit:contain;
}
.club-hero__h{
  font-family:var(--ff-display);
  font-size:30px;font-weight:800;margin-bottom:6px;letter-spacing:-.6px;
  background:var(--grad-text-red);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.club-hero__p{
  font-size:13px;color:var(--muted);font-weight:500;letter-spacing:.6px;
  text-transform:uppercase;
}

.levels{padding:0 14px;display:flex;flex-direction:column;gap:8px}
.lv{
  display:flex;align-items:center;justify-content:space-between;
  background:var(--surface);border-radius:var(--r-sm);
  padding:16px 18px;
  box-shadow:var(--shadow-card);
  border:1px solid rgba(214,31,55,.06);
  border-left:4px solid transparent;
  transition:transform var(--t),box-shadow var(--t);
}
.lv:hover{transform:translateX(2px)}
.lv--1{border-left-color:#bbb}
.lv--2{border-left-color:var(--gold);box-shadow:0 4px 20px rgba(232,160,48,.12)}
.lv--3{border-left-color:var(--red);box-shadow:0 4px 20px var(--red-glow)}
.lv__left{display:flex;align-items:center;gap:14px}
.lv__icon{font-size:24px}
.lv__name{font-size:15px;font-weight:700}
.lv__cond{font-size:12px;color:var(--muted);margin-top:3px}
.lv__pct{font-family:'Playfair Display',serif;font-size:28px;font-weight:800;color:var(--red)}

.benefits{padding:0 14px;display:flex;flex-direction:column;gap:1px}
.bf{
  display:flex;gap:14px;align-items:flex-start;
  background:var(--surface);padding:16px;
  border-bottom:1px solid rgba(214,31,55,.06);font-size:14px;
}
.bf:first-child{border-radius:var(--r-sm) var(--r-sm) 0 0}
.bf:last-child{border-radius:0 0 var(--r-sm) var(--r-sm);border-bottom:none}
.bf__ic{font-size:22px;flex-shrink:0;margin-top:1px}
.bf__sub{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5}

.infobox{
  margin:10px 14px 0;
  background:linear-gradient(135deg,#fffbf0,var(--gold-l));
  border:1px solid rgba(232,160,48,.3);
  border-radius:var(--r-sm);padding:13px 16px;
  font-size:13px;color:#7a5000;line-height:1.6;
}

/* Partners */
.pcard{
  display:flex;align-items:flex-start;gap:14px;
  background:#fff;border-radius:14px;
  padding:14px;margin:0 0 10px;
  border:none;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
  transition:box-shadow var(--t-fast);
}
.pcard:hover{box-shadow:0 4px 14px rgba(0,0,0,.07)}
.pcard__logo{
  width:48px;height:48px;border-radius:12px;
  background:#f5f5f7;display:flex;align-items:center;
  justify-content:center;font-size:22px;flex-shrink:0;
  overflow:hidden;
}
.pcard__logo-img{width:100%;height:100%;object-fit:cover}
.pcard__info{flex:1;min-width:0}
.pcard__row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.pcard__name{font-size:14px;font-weight:700;color:var(--text);line-height:1.2}
.pcard__desc{
  font-size:12px;color:var(--muted);margin-top:2px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.pcard__badge{
  background:#fff5f7;color:var(--red);
  font-size:11px;font-weight:800;
  padding:4px 9px;border-radius:8px;white-space:nowrap;flex-shrink:0;
  letter-spacing:-.2px;
}
.pcard__btn{
  display:inline-flex;align-items:center;gap:4px;
  margin-top:10px;padding:7px 12px;
  background:#fff;color:var(--red);
  border:1px solid #ffd0d8;
  border-radius:8px;font-size:12px;font-weight:600;
  text-decoration:none;cursor:pointer;
  transition:all var(--t-fast);
}
.pcard__btn:hover{background:var(--red);color:#fff;border-color:var(--red)}
/* Partners list container */
#partners-list{display:flex;flex-direction:column;gap:0}

/* ── СЛАДКИЙ ЧЕК ─────────────────────────────────────────────────────────── */
.check-hero{
  background:linear-gradient(150deg,#8a0020 0%,var(--red-d) 40%,var(--red) 70%,#f03a55 100%);
  color:#fff;text-align:center;padding:36px 24px 28px;position:relative;overflow:hidden;
}
.check-hero::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 50% 60% at 90% 80%,rgba(255,255,255,.1),transparent 60%),
    radial-gradient(ellipse 40% 40% at 5% 10%,rgba(255,80,60,.15),transparent 50%);
}
.check-hero>*{position:relative}
.check-hero__stars{font-size:16px;letter-spacing:10px;color:rgba(255,255,255,.6);margin-bottom:12px}
.check-hero__h{
  font-family:'Playfair Display',serif;
  font-size:30px;font-weight:800;margin-bottom:10px;letter-spacing:-.3px;
}
.check-hero__p{font-size:14px;opacity:.8;line-height:1.6}

.prizes{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px}
.prize{
  border-radius:var(--r);padding:18px 14px;text-align:center;
  position:relative;overflow:hidden;
  transition:transform var(--t);
}
.prize:hover{transform:translateY(-2px)}
.prize--1{
  grid-column:1/-1;
  background:linear-gradient(140deg,#b8860b,#ffd700,#ffb300);
  color:#3d2000;
  box-shadow:0 8px 32px rgba(255,215,0,.3);
}
.prize--2{
  background:linear-gradient(140deg,#555,#aaa,#e0e0e0);
  color:#1a1a1a;
  box-shadow:0 4px 20px rgba(0,0,0,.15);
}
.prize--3{
  background:linear-gradient(140deg,#8b4513,#c07030,#f0a050);
  color:#2d1800;
  box-shadow:0 4px 20px rgba(139,69,19,.25);
}
.prize__place{font-size:18px;margin-bottom:6px}
.prize__icon{font-size:32px;margin-bottom:6px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.15))}
.prize__name{font-size:13px;font-weight:800;letter-spacing:.2px}

.steps{padding:0 14px}
.step{
  display:flex;gap:16px;align-items:flex-start;
  padding:16px 0;border-bottom:1px solid rgba(214,31,55,.08);font-size:14px;
}
.step:last-child{border-bottom:none}
.step__n{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;
  font-size:15px;font-weight:800;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 4px 12px var(--red-glow);
}
.step__s{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}

/* ── SUB TABS ────────────────────────────────────────────────────────────── */
.sub-tabs{
  display:flex;background:var(--bg);
  border-bottom:1px solid rgba(214,31,55,.1);
  padding:0 6px;gap:4px;
}
.sub-tab{
  flex:1;border:none;background:transparent;
  padding:14px;font-size:14px;font-weight:600;
  font-family:'Inter',sans-serif;
  color:var(--muted);cursor:pointer;
  border-bottom:2px solid transparent;transition:color var(--t-fast),border-color var(--t-fast);
  letter-spacing:.2px;
}
.sub-tab.active{color:var(--red);border-bottom-color:var(--red)}

/* ── GAME SELECTOR ───────────────────────────────────────────────────────── */
.game-selector{display:flex;gap:8px;padding:14px 14px 8px;overflow-x:auto;scrollbar-width:none}
.game-selector::-webkit-scrollbar{display:none}
.gbtn{
  flex:1;padding:11px;
  border:1.5px solid var(--border);
  background:var(--surface);border-radius:var(--r-sm);
  font-size:13px;font-weight:600;cursor:pointer;
  font-family:'Inter',sans-serif;
  color:var(--muted);transition:all var(--t-fast);
}
.gbtn.active{
  background:linear-gradient(135deg,var(--red),var(--red-d));
  border-color:transparent;color:#fff;
  box-shadow:0 4px 16px var(--red-glow);
}

.score-bar{
  display:flex;align-items:center;gap:10px;
  background:var(--surface);border-radius:var(--r-sm);
  padding:10px 16px;margin:0 14px 10px;font-size:14px;
  box-shadow:var(--shadow-card);
  border:1px solid rgba(214,31,55,.07);
}
.score-bar span{flex:1}
.btn-sm{
  background:var(--red-l);color:var(--red-d);border:none;border-radius:10px;
  padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer;
  font-family:'Inter',sans-serif;transition:all var(--t-fast);
}
.btn-sm:hover{background:var(--red);color:#fff;box-shadow:0 3px 12px var(--red-glow)}

/* Memory */
.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 14px}
.memory-card{
  aspect-ratio:1;
  background:linear-gradient(135deg,var(--red),var(--red-d));
  border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  font-size:26px;cursor:pointer;user-select:none;
  transition:transform .14s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 4px 14px var(--red-glow);
}
.memory-card:active{transform:scale(.88)}
.memory-card .front{display:none}
.memory-card .back{font-size:18px;color:rgba(255,255,255,.4)}
.memory-card.flipped{
  background:var(--surface);
  box-shadow:0 2px 12px rgba(0,0,0,.08);
  border:1.5px solid rgba(214,31,55,.15);
}
.memory-card.flipped .front{display:flex;width:100%;height:100%;align-items:center;justify-content:center}
.memory-card.flipped .back{display:none}
.memory-card.matched{
  background:linear-gradient(135deg,#e8faf0,#c8f0d8);
  box-shadow:none;pointer-events:none;
  border:1.5px solid rgba(52,211,153,.3);
}

/* Flappy */
.flappy-canvas{
  display:block;width:calc(100% - 28px);height:380px;margin:0 14px;
  border-radius:var(--r);box-shadow:var(--shadow);
  background:#87CEEB;touch-action:none;cursor:pointer;
}
.game-tip{text-align:center;font-size:12px;color:var(--muted);padding:8px;letter-spacing:.2px}

/* ── 2048 ────────────────────────────────────────────────────────────────── */
.g2048-wrap{padding:0 14px}
.g2048-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
  background:var(--red-d);border-radius:var(--r);padding:8px;
  position:relative;
  box-shadow:var(--shadow);
}
.g2c{
  aspect-ratio:1;border-radius:12px;background:#fce8eb;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;transition:background .12s;
}
.g2e{font-size:clamp(18px,7vw,30px);line-height:1}
.g2n{font-size:clamp(9px,3vw,13px);font-weight:700;color:rgba(0,0,0,.5);line-height:1}
.g2c-2   {background:#fce8eb}
.g2c-4   {background:#f9d0d7}
.g2c-8   {background:#f4a8b3}
.g2c-16  {background:#ee7080}
.g2c-32  {background:#e8304a} .g2c-32 .g2n{color:rgba(255,255,255,.8)}
.g2c-64  {background:#d61f37} .g2c-64 .g2n{color:rgba(255,255,255,.8)}
.g2c-128 {background:#e8a030} .g2c-128 .g2n{color:rgba(255,255,255,.8)}
.g2c-256 {background:#f7c948} .g2c-256 .g2n{color:rgba(0,0,0,.5)}
.g2c-512 {background:#8b5cf6} .g2c-512 .g2n{color:rgba(255,255,255,.8)}
.g2c-1024{background:#6d28d9} .g2c-1024 .g2n{color:rgba(255,255,255,.8)}
.g2c-2048{background:linear-gradient(135deg,#d61f37,#e8a030)} .g2c-2048 .g2n{color:#fff}
.g2-over{
  position:absolute;inset:0;border-radius:var(--r);
  background:rgba(26,0,16,.65);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
}
.g2-over__box{
  background:#fff;border-radius:var(--r);padding:22px 32px;text-align:center;
  display:flex;flex-direction:column;gap:12px;
  box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.g2-over__box div:first-child{font-size:18px;font-weight:700}
.g2-over__score{font-size:15px;color:var(--red);font-weight:600}
.g2-over__box button{
  background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;
  border:none;border-radius:12px;
  padding:12px 28px;font-size:14px;font-weight:700;cursor:pointer;
  box-shadow:0 4px 16px var(--red-glow);
}

/* ── ПЕКАРНЯ v2 ──────────────────────────────────────────────────────────── */
.bk-header{
  background:linear-gradient(135deg,#8a0020 0%,var(--red-d) 40%,var(--red) 80%,#f03a55 100%);
  color:#fff;padding:16px 18px 14px;
  position:relative;overflow:hidden;
}
.bk-header::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 80% at 90% 30%,rgba(255,255,255,.1),transparent);
}
.bk-header>*{position:relative}
.bk-header__title{font-size:12px;opacity:.78;margin-bottom:4px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}
.bk-header__count{font-size:38px;font-weight:800;letter-spacing:-2px;line-height:1}
.bk-header__row{display:flex;gap:14px;margin-top:8px}
.bk-stat{display:flex;align-items:baseline;gap:3px;font-size:13px}
.bk-stat__ic{font-size:14px}
.bk-stat__lb{font-size:11px;opacity:.7}

.bk-arena{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#fff0f3 0%,#fde0e6 100%);
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:24px 0 16px;min-height:200px;
  border-bottom:1px solid rgba(214,31,55,.1);
}
.bk-arena__bg{position:absolute;inset:0;pointer-events:none}
@keyframes bkSteam{
  0%{opacity:0;transform:translateY(0) scaleX(1)}
  40%{opacity:.45}
  100%{opacity:0;transform:translateY(-55px) scaleX(1.8)}
}
.bk-steam{
  position:absolute;bottom:65px;width:10px;height:28px;
  border-radius:50%;background:rgba(255,255,255,.8);
  animation:bkSteam 2.2s ease-out infinite;
}
.bk-steam--1{left:43%;animation-delay:0s}
.bk-steam--2{left:50%;animation-delay:.65s;width:7px}
.bk-steam--3{left:57%;animation-delay:1.3s}

.bk-cake-btn{
  font-size:84px;line-height:1;background:none;border:none;
  cursor:pointer;position:relative;z-index:1;
  filter:drop-shadow(0 10px 24px rgba(214,31,55,.45));
  -webkit-tap-highlight-color:transparent;
  transition:transform .1s ease;
}
@keyframes bkPop{0%{transform:scale(1)}40%{transform:scale(.8)}70%{transform:scale(1.1)}100%{transform:scale(1)}}
.bk-cake-pop{animation:bkPop .26s ease}
.bk-arena__hint{font-size:12px;color:var(--muted);margin-top:8px;z-index:1;font-weight:500}

@keyframes bkFloat{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-65px) scale(1.3)}}
.bk-float{
  position:absolute;font-size:19px;font-weight:800;
  color:var(--red);pointer-events:none;z-index:10;
  animation:bkFloat .95s ease-out forwards;
  text-shadow:0 2px 10px var(--red-glow);
}
@keyframes bkToast{0%{opacity:0;transform:translateY(10px)}15%{opacity:1;transform:translateY(0)}80%{opacity:1}100%{opacity:0}}
.bk-toast{
  position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  background:rgba(20,0,10,.88);backdrop-filter:blur(8px);
  color:#fff;font-size:12px;font-weight:600;
  padding:7px 16px;border-radius:24px;white-space:nowrap;z-index:20;
  animation:bkToast 3s ease forwards;pointer-events:none;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
}

.bk-section-title{
  font-size:11px;font-weight:700;color:var(--muted);
  letter-spacing:.8px;text-transform:uppercase;
  padding:12px 18px 4px;
}

.bk-miles-wrap{padding:0 0 4px}
.bk-miles{display:flex;gap:8px;padding:4px 16px 8px;overflow-x:auto;scrollbar-width:none}
.bk-miles::-webkit-scrollbar{display:none}
.bk-mile{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  min-width:64px;background:var(--surface);border-radius:14px;
  padding:9px 7px;border:1.5px solid var(--border);
  opacity:.38;transition:opacity var(--t-fast),border-color var(--t-fast),transform var(--t);
  flex-shrink:0;
}
.bk-mile--done{opacity:1;border-color:var(--gold);background:var(--gold-l);transform:scale(1.05);box-shadow:0 4px 14px rgba(232,160,48,.2)}
.bk-mile__ic{font-size:22px}
.bk-mile__name{font-size:9px;font-weight:700;text-align:center;color:var(--muted);line-height:1.2}
.bk-mile--done .bk-mile__name{color:#a07010}
.bk-mile__prog{width:100%;height:3px;background:var(--border);border-radius:2px;margin-top:3px}
.bk-mile__prog div{height:100%;background:linear-gradient(90deg,var(--red),var(--gold));border-radius:2px;transition:width .35s}

.bk-upgrades{display:flex;flex-direction:column;gap:8px;padding:4px 12px 80px}
.bk-upg{
  display:flex;align-items:center;gap:12px;
  background:var(--surface);border-radius:16px;
  padding:12px;border:1.5px solid var(--border);
  opacity:.46;transition:opacity var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
}
.bk-upg--can{opacity:1;border-color:rgba(214,31,55,.2);box-shadow:var(--shadow-card)}
.bk-upg__left{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:42px}
.bk-upg__emoji{font-size:30px;line-height:1}
.bk-upg__cnt{font-size:11px;font-weight:700;color:var(--red)}
.bk-upg__mid{flex:1;min-width:0}
.bk-upg__name{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px}
.bk-upg__tag{
  font-size:10px;background:var(--gold);color:#fff;
  border-radius:6px;padding:1px 6px;font-weight:800;
}
.bk-upg__flavor{font-size:11px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bk-upg__bar{height:4px;background:var(--border);border-radius:2px;margin-top:5px}
.bk-upg__fill{height:100%;background:linear-gradient(90deg,var(--red),var(--gold));border-radius:2px;transition:width .3s}
.bk-upg__next{font-size:10px;color:var(--muted);margin-top:3px}
.bk-upg__btn{
  display:flex;flex-direction:column;align-items:center;
  background:var(--bg);color:var(--muted);border:none;
  border-radius:12px;padding:9px 11px;cursor:default;
  flex-shrink:0;min-width:54px;transition:background var(--t-fast),box-shadow var(--t-fast);
}
.bk-upg__btn--on{
  background:linear-gradient(135deg,var(--red),var(--red-d));
  color:#fff;cursor:pointer;
  box-shadow:0 4px 14px var(--red-glow);
}
.bk-upg__price{font-size:13px;font-weight:700;line-height:1}
.bk-upg__priceic{font-size:12px}

/* ── CHAT ────────────────────────────────────────────────────────────────── */
.chat-wrap{
  display:flex;flex-direction:column;
  height:calc(100vh - var(--hh) - var(--nh) - 46px);
  padding:0 14px 8px;
}
.chat-messages{flex:1;overflow-y:auto;padding:14px 0 4px;display:flex;flex-direction:column;gap:2px}
.msg{display:flex;gap:6px;align-items:flex-end;max-width:100%}
.msg--bot{justify-content:flex-start}
.msg--user{justify-content:flex-end;margin-left:auto}
/* Группировка как в TG: подряд идущие сообщения одного автора жмутся ближе */
.msg + .msg--bot{margin-top:2px}
.msg + .msg--user{margin-top:2px}
.msg--bot:not(.msg--grouped){margin-top:10px}
.msg--user:not(.msg--grouped){margin-top:10px}
.msg:first-child{margin-top:0}

.msg__av,.msg__avatar{
  width:28px;height:28px;border-radius:50%;
  background:linear-gradient(135deg,var(--red-l),#f9d0d7);
  font-size:14px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 2px 6px rgba(214,31,55,.18);
}
/* В группе не повторяем аватар — оставляем пустое место такой же ширины */
.msg--grouped .msg__av,
.msg--grouped .msg__avatar{visibility:hidden}

.msg__bbl,.msg__bubble{
  max-width:78%;padding:8px 12px;border-radius:18px;
  font-size:14px;line-height:1.45;word-break:break-word;
  position:relative;
}
.msg--bot .msg__bbl,
.msg--bot .msg__bubble{
  background:#f1f3f5;color:#1a1a1a;
  border-bottom-left-radius:6px;
}
.msg--user .msg__bbl,
.msg--user .msg__bubble{
  background:var(--red);color:#fff;
  border-bottom-right-radius:6px;
}
.msg--user .msg__av,
.msg--user .msg__avatar{display:none}
/* Группированные сообщения — без хвостика (просто округлые) */
.msg--bot.msg--grouped .msg__bbl,
.msg--bot.msg--grouped .msg__bubble{border-bottom-left-radius:18px}
.msg--user.msg--grouped .msg__bbl,
.msg--user.msg--grouped .msg__bubble{border-bottom-right-radius:18px}

/* Time как в TG: маленькая метка в нижнем правом углу bubble (float — обтекает текст) */
.msg__time{
  float:right;font-size:10px;opacity:.55;
  margin:4px 0 -2px 8px;white-space:nowrap;
  font-feature-settings:"tnum" 1;line-height:1;
  position:relative;top:4px;
}
.msg--user .msg__time{color:rgba(255,255,255,.85);opacity:1}
/* Карточки товаров — на новой строке, не перекрываются с time */
.msg__bubble .ai-pgrid{clear:both}

/* AI streaming: тонкая «волна» бегает по бабблу пока модель отвечает */
.msg--bot .msg__bubble.is-streaming{
  overflow:hidden;
  background:linear-gradient(135deg,#f1f3f5 0%,#f5eff0 100%);
}
.msg--bot .msg__bubble.is-streaming::after{
  content:'';position:absolute;top:0;left:-50%;
  width:45%;height:100%;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(214,31,55,.06) 35%,
    rgba(200,146,50,.10) 50%,
    rgba(214,31,55,.06) 65%,
    transparent 100%);
  animation:bubbleShimmer 1.6s ease-in-out infinite;
  pointer-events:none;
  border-radius:inherit;
}
@keyframes bubbleShimmer{
  from{transform:translateX(0)}
  to{transform:translateX(335%)}
}

/* ── PROFILE TAB — Apple Wallet / iOS Settings style ─────────────────────── */
#tab-profile{
  --ap-ink:#0a0a0a;--ap-grey:#6e6e73;--ap-grey-2:#98989d;
  --ap-hairline:rgba(60,60,67,.12);--ap-bg:#f2f2f7;
  --ap-red:#d61f37;--ap-radius:14px;
}
#tab-profile.active{background:#f2f2f7}
#tab-profile, #tab-profile *{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Helvetica Neue",system-ui,sans-serif;
}

/* Hero — компактная плашка, аватар грей */
#tab-profile .prof-hero{
  display:flex;align-items:center;gap:14px;
  padding:24px 20px 20px;background:transparent;
  border-bottom:none;
}
#tab-profile .prof-hero__av{
  width:60px;height:60px;border-radius:50%;
  background:#e5e5ea;color:var(--ap-ink);
  font-size:24px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;box-shadow:none;
  letter-spacing:-.5px;
}
#tab-profile .prof-hero__info{flex:1;min-width:0}
#tab-profile .prof-hero__name{
  font-family:inherit;font-size:22px;font-weight:700;
  color:var(--ap-ink);line-height:1.15;
  letter-spacing:-.5px;
  display:flex;align-items:center;gap:6px;
}
#tab-profile .prof-hero__phone{
  margin-top:3px;font-size:13px;color:var(--ap-grey);
  overflow:hidden;text-overflow:ellipsis;
}
#tab-profile .prof-hero__phone a{color:var(--ap-red);text-decoration:none;font-weight:500}
#tab-profile .prof-hero__edit{
  width:36px;height:36px;border-radius:50%;border:none;
  background:#fff;color:var(--ap-grey);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
}
#tab-profile .prof-hero__edit:active{transform:scale(.92)}

/* Stat-row — Apple Stocks-style (один white block с разделителями) */
#tab-profile .prof-stats{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;
  margin:0 16px 16px;padding:18px 8px;
  background:#fff;border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
#tab-profile .prof-stat{
  background:none;border:none;
  padding:6px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;
  cursor:pointer;
  position:relative;
}
#tab-profile .prof-stat:not(:last-child)::after{
  content:'';position:absolute;right:0;top:14%;bottom:14%;
  width:1px;background:var(--ap-hairline);
}
#tab-profile .prof-stat:active{opacity:.6}
#tab-profile .prof-stat__num{
  font-family:inherit;font-size:22px;font-weight:700;
  color:var(--ap-ink);letter-spacing:-.6px;
  font-feature-settings:"tnum" 1;line-height:1;
}
#tab-profile .prof-stat__lbl{
  font-size:11px;color:var(--ap-grey);font-weight:500;
  text-align:center;line-height:1.3;
}

/* Action rows — iOS Settings (один white block с hairline разделителями) */
#tab-profile .prof-actions{
  margin:0 16px 16px;padding:0;
  background:#fff;border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  overflow:hidden;
}
#tab-profile .prof-row{
  width:100%;display:grid;
  grid-template-columns:32px 1fr 16px;
  grid-template-rows:auto auto;gap:0 12px;
  align-items:center;padding:14px 18px;
  background:#fff;border:none;border-radius:0;
  margin-bottom:0;cursor:pointer;
  border-bottom:1px solid var(--ap-hairline);
  transition:background var(--t-fast);text-decoration:none;
  color:var(--ap-ink);
}
#tab-profile .prof-row:last-child{border-bottom:none}
#tab-profile .prof-row:active{background:#f2f2f7}
#tab-profile .prof-row:hover{background:#f9f9fb}
#tab-profile .prof-row__ic{
  grid-row:1 / span 2;
  width:28px;height:28px;border-radius:8px;
  background:#f2f2f7;color:var(--ap-red);
  display:flex;align-items:center;justify-content:center;
}
#tab-profile .prof-row__ic svg{width:18px;height:18px}
#tab-profile .prof-row__t{
  grid-column:2;grid-row:1;
  font-size:15px;font-weight:500;color:var(--ap-ink);
  text-align:left;line-height:1.3;letter-spacing:-.2px;
}
#tab-profile .prof-row__sub{
  grid-column:2;grid-row:2;
  font-size:12px;color:var(--ap-grey);text-align:left;line-height:1.3;
}
#tab-profile .prof-row__t:only-of-type{grid-row:1 / span 2;align-self:center}
#tab-profile .prof-row__chev{
  grid-column:3;grid-row:1 / span 2;
  color:var(--ap-grey-2);font-size:18px;align-self:center;
  display:flex;align-items:center;justify-content:center;
}
#tab-profile .prof-row__chev svg{width:14px;height:14px}

/* Список заказов внутри Профиля */
#tab-profile .cat-bread{
  margin:0 16px 12px;padding:12px 16px;background:#fff;
  border-radius:var(--ap-radius);box-shadow:0 1px 3px rgba(0,0,0,.04);
}
#tab-profile .cat-bread__back{
  background:none;border:none;color:var(--ap-red);
  font-size:14px;font-weight:500;cursor:pointer;padding:0;
  letter-spacing:-.2px;
}
#tab-profile .prof-orders-list{
  padding:0 16px 30px;display:flex;flex-direction:column;gap:0;
  background:transparent;
}
#tab-profile .prof-order{
  background:#fff;border:none;
  border-radius:var(--ap-radius);
  padding:14px 16px;margin-bottom:8px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
#tab-profile .prof-order__head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:6px;
}
#tab-profile .prof-order__num{
  font-size:14px;font-weight:600;color:var(--ap-ink);
  font-feature-settings:"tnum" 1;letter-spacing:-.2px;
}
#tab-profile .prof-order__date{font-size:12px;color:var(--ap-grey)}
#tab-profile .prof-order__items{font-size:13px;color:var(--ap-grey);line-height:1.4;margin-bottom:8px}
#tab-profile .prof-order__foot{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
}
#tab-profile .prof-order__sum{
  font-size:15px;font-weight:700;color:var(--ap-ink);
  font-feature-settings:"tnum" 1;letter-spacing:-.3px;
}
#tab-profile .prof-order__status{font-size:11px;color:var(--ap-grey)}

/* Verified blue badge — рядом с именем как в клубе */
#tab-profile .prof-hero__verified{
  display:inline-flex;color:#0a84ff;
}
#tab-profile .prof-hero__verified svg{width:18px;height:18px}

/* Joined date sub-line */
#tab-profile .prof-hero__joined{
  margin-top:3px;font-size:12px;color:var(--ap-grey-2);
}

/* Group header (Apple Settings caption) */
#tab-profile .prof-group{margin-bottom:18px}
#tab-profile .prof-group__h{
  font-size:11px;color:var(--ap-grey);font-weight:600;
  letter-spacing:.4px;text-transform:uppercase;
  padding:0 32px 6px;
}

/* Info row (только текст, без chevron) */
#tab-profile .prof-row--info{
  cursor:default;
}
#tab-profile .prof-row--info:hover,
#tab-profile .prof-row--info:active{background:#fff}

/* Row with value (Apple Settings — текст справа) */
#tab-profile .prof-row__val{
  grid-column:3;grid-row:1 / span 2;
  font-size:14px;color:var(--ap-grey);
  margin-right:6px;align-self:center;
  font-feature-settings:"tnum" 1;
  text-align:right;
  max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#tab-profile .prof-row__t:has(+ .prof-row__val){grid-row:1 / span 2}

/* Grid template когда есть value (4 колонки: icon + t + val + chev) */
#tab-profile .prof-row:has(.prof-row__val){
  grid-template-columns:32px 1fr auto 16px;
  gap:0 12px;
}
#tab-profile .prof-row:has(.prof-row__val) .prof-row__val{grid-column:3}
#tab-profile .prof-row:has(.prof-row__val) .prof-row__chev{grid-column:4}

/* Footer с версией */
#tab-profile .prof-footer{
  text-align:center;padding:24px 16px 24px;
  font-size:11px;color:var(--ap-grey-2);
}
#tab-profile .prof-footer__brand{font-weight:500;margin-bottom:2px}
#tab-profile .prof-footer__ver{font-feature-settings:"tnum" 1;letter-spacing:.3px}

/* Photo avatar (если есть photo_url из TG) */
#tab-profile .prof-hero__av{position:relative;overflow:hidden}
#tab-profile .prof-hero__av-init{position:relative;z-index:1}
#tab-profile .prof-hero__av-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;border-radius:50%;z-index:2;
}

/* Activity sub-line (запусков и last seen) */
#tab-profile .prof-hero__activity{
  margin-top:3px;font-size:11px;color:var(--ap-grey-2);
}

/* Mini-progress chip (уровень + до next) в hero — Apple Wallet style */
#tab-profile .prof-hero__levelchip{
  margin-top:10px;display:flex;align-items:center;gap:8px;
  font-size:12px;padding:8px 12px;
  background:#f2f2f7;border-radius:10px;
  color:var(--ap-ink);
}
#tab-profile .prof-hero__levelchip-name{font-weight:600}
#tab-profile .prof-hero__levelchip-prog{
  color:var(--ap-grey);font-size:11.5px;
  font-feature-settings:"tnum" 1;
}
#tab-profile .prof-hero__levelchip-prog::before{content:'·';margin:0 4px;color:var(--ap-grey-2)}

/* Group note (под группой) */
#tab-profile .prof-group__note{
  padding:6px 32px 0;font-size:11px;
  color:var(--ap-grey-2);line-height:1.4;
}

/* Toggle row (Apple Settings switch) */
#tab-profile .prof-row--toggle{cursor:default}
#tab-profile .prof-row--toggle:hover{background:#fff}
#tab-profile .prof-row--toggle:active{background:#fff}
#tab-profile .prof-toggle{
  grid-column:3 / span 2;grid-row:1 / span 2;
  align-self:center;justify-self:end;
  display:inline-flex;cursor:pointer;
  position:relative;width:51px;height:31px;
}
#tab-profile .prof-toggle input{position:absolute;opacity:0;pointer-events:none}
#tab-profile .prof-toggle__sw{
  position:absolute;inset:0;background:#e9e9eb;
  border-radius:16px;transition:background .2s;
}
#tab-profile .prof-toggle__sw::before{
  content:'';position:absolute;left:2px;top:2px;
  width:27px;height:27px;background:#fff;border-radius:50%;
  transition:transform .2s, box-shadow .2s;
  box-shadow:0 3px 8px rgba(0,0,0,.15), 0 0 0 1px rgba(0,0,0,.04);
}
#tab-profile .prof-toggle input:checked + .prof-toggle__sw{background:#34c759}
#tab-profile .prof-toggle input:checked + .prof-toggle__sw::before{transform:translateX(20px)}

/* Destructive row (отвязать) */
#tab-profile .prof-row--destructive{
  display:flex;justify-content:center;color:var(--ap-red);
  grid-template-columns:none;padding:14px;
  font-weight:500;font-size:15px;
}
#tab-profile .prof-row--destructive .prof-row__t{
  color:var(--ap-red);text-align:center;width:100%;
  grid-row:1;grid-column:1;
}

/* About modal содержимое */
.about-modal__body{
  padding:18px 20px 30px;
  font-size:14px;color:var(--text);line-height:1.55;
  max-height:75vh;overflow-y:auto;
}
.about-modal__body h2{
  font-size:18px;font-weight:700;margin-bottom:12px;
  letter-spacing:-.3px;
}
.about-modal__body h3{
  font-size:14px;font-weight:700;margin:14px 0 6px;
  letter-spacing:-.2px;
}
.about-modal__body p{margin-bottom:10px}

/* Achievements row (бейджи под Stats) */
#tab-profile .prof-ach{
  margin:0 16px 16px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
#tab-profile .prof-ach::-webkit-scrollbar{display:none}
#tab-profile .prof-ach__list{
  display:flex;gap:8px;padding:2px 0;
}
#tab-profile .prof-ach__item{
  flex-shrink:0;display:flex;align-items:center;gap:6px;
  background:#fff;padding:8px 12px;border-radius:10px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  font-size:12px;font-weight:500;color:var(--ap-ink);
  letter-spacing:-.1px;
}
#tab-profile .prof-ach__ic{font-size:14px;line-height:1}
#tab-profile .prof-ach__t{white-space:nowrap}

/* Product thumbnails (Любимое / Недавно смотрели) */
#tab-profile .prof-row--withthumbs{
  grid-template-columns:32px 1fr auto 20px 16px;
}
#tab-profile .prof-row__thumbs{
  grid-column:3;grid-row:1 / span 2;
  display:flex;gap:-6px;align-self:center;margin-right:8px;
  pointer-events:none;
}
#tab-profile .prof-thumb{
  width:28px;height:28px;border-radius:50%;
  overflow:hidden;background:#f2f2f7;
  border:2px solid #fff;margin-left:-8px;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
}
#tab-profile .prof-thumb:first-child{margin-left:0}
#tab-profile .prof-thumb img{width:100%;height:100%;object-fit:cover}
#tab-profile .prof-thumb--ph{color:var(--ap-grey-2);background:#fff}

/* QR-карточка клуба — modal */
.prof-qr{padding:24px 20px 28px;text-align:center}
.prof-qr__h{
  font-size:18px;font-weight:700;color:#0a0a0a;
  letter-spacing:-.3px;margin-bottom:4px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",system-ui,sans-serif;
}
.prof-qr__sub{font-size:13px;color:#6e6e73;margin-bottom:20px}
.prof-qr__img{
  display:flex;justify-content:center;
  margin:8px auto 18px;padding:16px;
  background:#fff;border-radius:18px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  width:fit-content;
}
.prof-qr__img img{display:block;border-radius:8px}
.prof-qr__name{
  font-size:18px;font-weight:700;color:#0a0a0a;
  letter-spacing:-.3px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",system-ui,sans-serif;
}
.prof-qr__id{font-size:13px;color:#6e6e73;margin-top:2px;font-feature-settings:"tnum" 1}
.prof-qr__hint{
  margin-top:18px;padding:10px;
  background:#f2f2f7;border-radius:10px;
  font-size:12px;color:#6e6e73;
}

/* Address modal */
.prof-addr{padding:24px 20px 24px}
.prof-addr__h{
  font-size:18px;font-weight:700;color:#0a0a0a;
  letter-spacing:-.3px;margin-bottom:4px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",system-ui,sans-serif;
}
.prof-addr__sub{font-size:13px;color:#6e6e73;margin-bottom:14px}
.prof-addr__input{
  width:100%;padding:12px 14px;
  background:#f2f2f7;border:none;border-radius:10px;
  font-size:15px;color:#0a0a0a;line-height:1.4;
  resize:vertical;min-height:80px;outline:none;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",system-ui,sans-serif;
}
.prof-addr__input:focus{box-shadow:0 0 0 3px rgba(214,31,55,.15)}
.prof-addr__hint{font-size:11px;color:#98989d;margin-top:6px;text-align:center}
.prof-addr__btns{display:flex;gap:10px;margin-top:18px}
.prof-addr__btns .btn-outline{flex:1;height:48px;border-radius:12px;font-size:14px;font-weight:600}
.prof-addr__save{flex:1;height:48px;border-radius:12px;font-size:14px;font-weight:600}

/* Profile completion meter (LinkedIn style) с close-кнопкой */
#tab-profile .prof-completion{
  position:relative;
  margin:0 16px 16px;padding:14px 36px 14px 18px;
  background:#fff;border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
#tab-profile .prof-completion__close{
  position:absolute;top:8px;right:8px;
  width:24px;height:24px;border-radius:50%;
  background:transparent;border:none;cursor:pointer;
  color:var(--ap-grey-2);font-size:18px;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
#tab-profile .prof-completion__close:hover{background:#f2f2f7;color:var(--ap-grey)}
#tab-profile .prof-completion__row{
  display:flex;justify-content:space-between;align-items:center;
  gap:10px;margin-bottom:10px;
}
#tab-profile .prof-completion__t{
  font-size:13px;color:var(--ap-ink);font-weight:500;
}
#tab-profile .prof-completion__t b{color:var(--ap-red);font-weight:700;font-feature-settings:"tnum" 1}
#tab-profile .prof-completion__hint{
  font-size:11px;color:var(--ap-grey);text-align:right;
  max-width:55%;line-height:1.3;
}
#tab-profile .prof-completion__bar{
  height:4px;border-radius:2px;background:#f2f2f7;overflow:hidden;
}
#tab-profile .prof-completion__fill{
  display:block;height:100%;background:var(--ap-red);
  border-radius:2px;transition:width .6s ease-out;
}

/* Quick re-order — теперь как первый row в АКТИВНОСТЬ */
#tab-profile .prof-row--accent .prof-row__t{color:var(--ap-red);font-weight:600}
#tab-profile .prof-row__ic--accent{background:rgba(214,31,55,.08);color:var(--ap-red)}

/* Старый prof-reorder block убран — стили оставлены для backward-compat */
#tab-profile .prof-reorder{display:none}
#tab-profile .prof-reorder__head{
  font-size:11px;color:var(--ap-grey);font-weight:600;
  letter-spacing:.4px;text-transform:uppercase;margin-bottom:10px;
}
#tab-profile .prof-reorder__body{
  display:flex;align-items:center;gap:12px;margin-bottom:12px;
}
#tab-profile .prof-reorder__thumb{
  width:48px;height:48px;border-radius:10px;flex-shrink:0;
  background:#f2f2f7;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;
}
#tab-profile .prof-reorder__thumb img{width:100%;height:100%;object-fit:cover}
#tab-profile .prof-reorder__info{flex:1;min-width:0}
#tab-profile .prof-reorder__items{
  font-size:13.5px;font-weight:500;color:var(--ap-ink);line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#tab-profile .prof-reorder__meta{
  font-size:11.5px;color:var(--ap-grey);margin-top:2px;
}
#tab-profile .prof-reorder__btn{
  width:100%;height:42px;border-radius:10px;
  background:#f2f2f7;color:var(--ap-red);
  border:none;font-size:14px;font-weight:600;
  cursor:pointer;transition:background var(--t-fast);
}
#tab-profile .prof-reorder__btn:hover{background:#e5e5ea}
#tab-profile .prof-reorder__btn:active{transform:scale(.98)}

/* Photo gallery */
#tab-profile .prof-gallery{margin:0 16px 16px}
#tab-profile .prof-gallery__h{
  display:flex;justify-content:space-between;align-items:center;
  padding:0 4px 10px;
}
#tab-profile .prof-gallery__h > span{
  font-size:11px;color:var(--ap-grey);font-weight:600;
  letter-spacing:.5px;text-transform:uppercase;
}
#tab-profile .prof-gallery__all{
  background:none;border:none;cursor:pointer;
  font-size:13px;color:var(--ap-red);font-weight:600;
  padding:4px 6px;border-radius:6px;
}
#tab-profile .prof-gallery__row{
  display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding:2px 0;
}
#tab-profile .prof-gallery__row::-webkit-scrollbar{display:none}
#tab-profile .prof-gallery__item{
  flex-shrink:0;width:72px;height:72px;border-radius:12px;
  background:#fff;border:none;cursor:pointer;overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  padding:0;
}
#tab-profile .prof-gallery__item img{width:100%;height:100%;object-fit:cover}
#tab-profile .prof-gallery__ph{font-size:24px;color:var(--ap-grey-2)}

/* Categories breakdown */
#tab-profile .prof-cats{
  margin:0 16px 16px;padding:14px 16px;
  background:#fff;border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
#tab-profile .prof-cats__h{
  font-size:11px;color:var(--ap-grey);font-weight:600;
  letter-spacing:.4px;text-transform:uppercase;margin-bottom:12px;
}
#tab-profile .prof-cat{
  display:flex;align-items:center;gap:10px;
  padding:6px 0;
}
#tab-profile .prof-cat__ic{font-size:20px;flex-shrink:0;width:24px;text-align:center}
#tab-profile .prof-cat__body{flex:1;min-width:0}
#tab-profile .prof-cat__row{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:4px;
}
#tab-profile .prof-cat__name{
  font-size:13px;color:var(--ap-ink);font-weight:500;letter-spacing:-.1px;
}
#tab-profile .prof-cat__pct{
  font-size:12px;color:var(--ap-grey);font-weight:600;
  font-feature-settings:"tnum" 1;
}
#tab-profile .prof-cat__bar{
  height:3px;border-radius:2px;background:#f2f2f7;overflow:hidden;
}
#tab-profile .prof-cat__fill{
  display:block;height:100%;background:var(--ap-red);
  border-radius:2px;transition:width .6s ease-out;
}

/* Legal modal — tabs paradigm */
.legal-modal__tabs{
  display:flex;gap:4px;padding:14px 16px 8px;
  border-bottom:1px solid rgba(60,60,67,.12);
}
.legal-tab{
  flex:1;padding:8px 10px;
  background:transparent;border:none;cursor:pointer;
  font-size:13px;font-weight:600;color:#6e6e73;
  border-radius:8px;
  transition:all var(--t-fast);
  letter-spacing:-.1px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter",system-ui,sans-serif;
}
.legal-tab:hover{background:#f2f2f7;color:#0a0a0a}
.legal-tab--active{background:#f2f2f7;color:#0a0a0a}

/* Profile content — padding-bottom чтобы Destructive/Footer не прятались за bottom-nav */
#tab-profile{padding-bottom:90px}

/* TG-style typing indicator (3 пульсирующие точки) */
.msg__bubble--typing{padding:10px 14px}
.typing-dots{display:inline-flex;gap:3px;align-items:center;height:14px}
.typing-dots i{
  width:6px;height:6px;border-radius:50%;background:#9aa1a8;
  animation:typingDot 1.2s ease-in-out infinite;
}
.typing-dots i:nth-child(2){animation-delay:.2s}
.typing-dots i:nth-child(3){animation-delay:.4s}
@keyframes typingDot{
  0%,60%,100%{opacity:.3;transform:translateY(0)}
  30%{opacity:1;transform:translateY(-3px)}
}

/* Карточки товаров внутри bubble — компактнее, с прозрачным разделителем */
.msg__bubble .ai-pgrid{
  margin:8px -4px 0;padding-top:8px;
  grid-template-columns:repeat(auto-fill,minmax(110px,1fr));
  gap:6px;
}
.msg--bot .msg__bubble .ai-pgrid{border-top-color:rgba(0,0,0,.08)}
.msg--user .msg__bubble .ai-pgrid{border-top-color:rgba(255,255,255,.25)}
.msg--user .msg__bubble .ai-pcard{background:rgba(255,255,255,.96)}
.msg--user .msg__bubble .ai-pcard__name{color:var(--text)}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeIn .28s cubic-bezier(.22,1,.36,1)}

.chat-chips{display:flex;gap:7px;padding:4px 0 10px;overflow-x:auto;scrollbar-width:none}
.chat-chips::-webkit-scrollbar{display:none}
.chip{
  background:var(--surface);color:var(--red-d);
  border:1.5px solid rgba(214,31,55,.18);border-radius:24px;
  padding:8px 14px;font-size:12px;font-weight:600;
  font-family:'Inter',sans-serif;cursor:pointer;white-space:nowrap;
  transition:all var(--t-fast);box-shadow:0 2px 8px rgba(214,31,55,.08);
}
.chip:hover{background:var(--red);color:#fff;border-color:transparent;box-shadow:0 4px 14px var(--red-glow)}

.chat-row{display:flex;gap:10px;padding-top:4px}
.chat-in{
  flex:1;border:2px solid rgba(214,31,55,.15);border-radius:28px;
  padding:12px 18px;font-size:14px;font-family:'Inter',sans-serif;
  outline:none;background:var(--surface);transition:border-color var(--t-fast),box-shadow var(--t-fast);
  box-shadow:var(--shadow-sm);
}
.chat-in:focus{border-color:var(--red);box-shadow:0 0 0 4px rgba(214,31,55,.1)}
.chat-btn{
  width:46px;height:46px;border-radius:50%;
  background:var(--mesh-red);
  color:#fff;border:none;
  font-size:16px;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:transform var(--t),box-shadow var(--t);
  box-shadow:var(--shadow-glow);
}
.chat-btn:hover{transform:scale(1.08);box-shadow:0 6px 24px var(--red-glow)}
.chat-btn:active{transform:scale(.9)}
.chat-btn:disabled{background:#ddd;box-shadow:none;cursor:not-allowed}
.chat-btn--mic{background:rgba(214,31,55,.08);color:var(--red);box-shadow:none;border:1.5px solid rgba(214,31,55,.18)}
.chat-btn--mic:hover{background:rgba(214,31,55,.15);box-shadow:0 4px 14px var(--red-glow)}
.chat-btn--mic.is-recording{background:var(--red);color:#fff;border-color:transparent;animation:micPulse 1.2s ease-in-out infinite}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(214,31,55,.55)}50%{box-shadow:0 0 0 10px rgba(214,31,55,0)}}

/* ── BOTTOM NAV — премиум floating pill ──────────────────────────────────── */
.bnav{
  position:fixed;bottom:calc(14px + env(safe-area-inset-bottom));
  left:14px;right:14px;z-index:200;
  height:62px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(28px) saturate(1.8);
  -webkit-backdrop-filter:blur(28px) saturate(1.8);
  display:flex;
  border:1px solid rgba(13,6,8,.06);
  border-radius:24px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 -1px 0 rgba(13,6,8,.03) inset,
    0 12px 36px -8px rgba(13,6,8,.18),
    0 2px 8px rgba(13,6,8,.06);
  padding:6px;
}
.bnav__pill{
  position:absolute;top:6px;bottom:6px;left:0;
  width:60px;
  background:linear-gradient(135deg,var(--red),var(--red-d));
  border-radius:16px;
  box-shadow:0 6px 22px var(--red-glow),inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .42s cubic-bezier(.34,1.5,.5,1),width .42s cubic-bezier(.34,1.5,.5,1);
  z-index:0;
}
.nb{
  flex:1;border:none;background:transparent;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;cursor:pointer;color:#666;
  transition:color .25s ease,transform var(--t);
  padding:0;
  font-family:'Inter',sans-serif;
  position:relative;z-index:1;
  border-radius:16px;
}
.nb.active{color:#fff}
.nb:active{transform:scale(.92)}
.nb__ic{display:inline-flex;align-items:center;justify-content:center;height:22px;transition:transform var(--t),filter var(--t-fast)}
.nb__ic .ic{width:22px;height:22px;stroke-width:1.8}
.nb.active .nb__ic{transform:scale(1.05)}
.nb.active .nb__ic{filter:drop-shadow(0 2px 6px rgba(0,0,0,.18))}
.nb__lb{font-size:10px;font-weight:700;letter-spacing:.2px}


/* ── HAMSTER KOMBAT BAKERY ───────────────────────────────────────────────── */

.hk-top{
  background:linear-gradient(150deg,#0d0620 0%,#1a0a2e 45%,#2d1054 80%,#3d1a6e 100%);
  color:#fff;padding:16px 18px 12px;text-align:center;
  position:relative;overflow:hidden;
}
.hk-top::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 80% at 80% 30%,rgba(139,92,246,.15),transparent 60%);
}
.hk-top>*{position:relative}
.hk-top__rank{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;opacity:.65;margin-bottom:3px}
.hk-top__coins{font-size:34px;font-weight:800;letter-spacing:-1.5px;line-height:1.1}
.hk-top__pph{font-size:12px;opacity:.6;margin-top:2px;margin-bottom:10px}
.hk-rank-bar{
  height:6px;background:rgba(255,255,255,.12);border-radius:3px;overflow:hidden;margin:0 4px;
}
.hk-rank-bar__fill{
  height:100%;background:linear-gradient(90deg,#a78bfa,#fbbf24);
  border-radius:3px;transition:width .5s cubic-bezier(.22,1,.36,1);width:0%;
}
.hk-rank-bar__next{font-size:11px;opacity:.45;margin-top:4px}

.hk-nav{
  display:flex;background:var(--surface);border-bottom:2px solid var(--border);
  overflow-x:auto;scrollbar-width:none;
}
.hk-nav::-webkit-scrollbar{display:none}
.hk-nb{
  flex:1;min-width:80px;border:none;background:transparent;
  padding:11px 4px;font-size:11px;font-weight:700;color:var(--muted);
  cursor:pointer;white-space:nowrap;transition:color var(--t-fast);
  font-family:'Inter',sans-serif;border-bottom:2px solid transparent;
  margin-bottom:-2px;letter-spacing:.3px;text-transform:uppercase;font-size:10px;
}
.hk-nb--active{color:var(--red);border-bottom-color:var(--red)}

.hk-cake-area{
  position:relative;height:250px;overflow:visible;
  background:linear-gradient(180deg,#fce0e8 0%,#fff5f7 100%);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}

/* ── CAKE WRAP & RINGS ───────────────────────────────── */
.hk-cake-wrap{
  position:relative;display:flex;align-items:center;justify-content:center;
  width:170px;height:170px;
}
.hk-cake-glow{
  position:absolute;border-radius:50%;
  width:130px;height:130px;
  pointer-events:none;z-index:1;
  transition:all .6s ease;
}
.hk-ring{
  position:absolute;border-radius:50%;
  pointer-events:none;opacity:0;
  transition:opacity .5s ease;
}
.hk-ring--a{width:148px;height:148px}
.hk-ring--b{width:168px;height:168px}
.hk-ring--c{width:188px;height:188px}

.hk-cake-crown{
  position:absolute;top:-22px;left:50%;transform:translateX(-50%);
  font-size:22px;opacity:0;pointer-events:none;z-index:10;
  transition:opacity .5s ease;filter:drop-shadow(0 2px 8px rgba(255,215,0,.6));
}

/* Base cake */
.hk-cake{
  width:128px;height:128px;border-radius:50%;border:none;
  background:radial-gradient(circle at 38% 32%,#fff8f0,#fce8eb);
  font-size:68px;cursor:pointer;user-select:none;
  touch-action:manipulation;
  transition:transform .08s ease,box-shadow .5s ease,background .5s ease;
  display:flex;align-items:center;justify-content:center;
  position:relative;z-index:2;
}
.hk-cake:active{transform:scale(.9)}

/* ── TIER 0 — Стажёр ──────────────────────────────────── */
[data-tier="0"] .hk-cake{
  box-shadow:0 10px 40px rgba(214,31,55,.3),0 3px 16px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.6);
}
[data-tier="0"] .hk-cake-glow{
  background:radial-gradient(circle,rgba(214,31,55,.15) 0%,transparent 70%);
}

/* ── TIER 1 — Ученик ──────────────────────────────────── */
[data-tier="1"] .hk-cake{
  background:radial-gradient(circle at 38% 32%,#fffaf0,#ffecd8);
  box-shadow:0 10px 50px rgba(232,160,48,.45),0 3px 16px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.7);
}
[data-tier="1"] .hk-cake-glow{
  background:radial-gradient(circle,rgba(232,160,48,.25) 0%,transparent 70%);
  animation:hkGlowPulse 2.5s ease-in-out infinite;
}
[data-tier="1"] .hk-ring--a{
  opacity:1;
  border:1.5px dashed rgba(232,160,48,.5);
  animation:hkRingSpin 8s linear infinite;
}

/* ── TIER 2 — Пекарь ──────────────────────────────────── */
[data-tier="2"] .hk-cake{
  background:radial-gradient(circle at 38% 32%,#f0f8ff,#e8f4ff);
  box-shadow:0 12px 55px rgba(100,180,255,.5),0 3px 16px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.8);
}
[data-tier="2"] .hk-cake-glow{
  background:radial-gradient(circle,rgba(100,180,255,.3) 0%,transparent 70%);
  animation:hkGlowPulse 2s ease-in-out infinite;
}
[data-tier="2"] .hk-ring--a{
  opacity:1;
  border:2px solid rgba(120,200,255,.6);
  animation:hkRingSpin 6s linear infinite;
}
[data-tier="2"] .hk-ring--b{
  opacity:1;
  border:1px dashed rgba(120,200,255,.3);
  animation:hkRingSpin 10s linear infinite reverse;
}

/* ── TIER 3 — Кондитер ───────────────────────────────── */
[data-tier="3"] .hk-cake{
  background:radial-gradient(circle at 38% 32%,#fff8ff,#ffe8f5);
  box-shadow:0 12px 60px rgba(200,80,255,.4),0 3px 16px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.8);
}
[data-tier="3"] .hk-cake::after{
  content:'';position:absolute;inset:-3px;border-radius:50%;
  background:conic-gradient(#ff6b9d,#c44fff,#4fc3ff,#4fffb0,#ffe04f,#ff6b9d);
  z-index:-1;animation:hkRainbowSpin 3s linear infinite;
  filter:blur(2px);opacity:.7;
}
[data-tier="3"] .hk-cake-glow{
  width:150px;height:150px;
  background:radial-gradient(circle,rgba(200,80,255,.25) 0%,transparent 70%);
  animation:hkGlowPulse 1.8s ease-in-out infinite;
}
[data-tier="3"] .hk-ring--a{opacity:1;border:2px solid rgba(200,80,255,.5);animation:hkRingSpin 5s linear infinite}
[data-tier="3"] .hk-ring--b{opacity:1;border:1.5px solid rgba(79,195,255,.4);animation:hkRingSpin 8s linear infinite reverse}

/* ── TIER 4 — Шеф-кондитер ──────────────────────────── */
[data-tier="4"] .hk-cake{
  background:radial-gradient(circle at 38% 32%,#fffbe0,#fff3b0);
  box-shadow:0 14px 70px rgba(255,200,0,.6),0 4px 20px rgba(0,0,0,.12),inset 0 2px 0 rgba(255,255,255,.9);
}
[data-tier="4"] .hk-cake::after{
  content:'';position:absolute;inset:-4px;border-radius:50%;
  background:conic-gradient(#ffd700,#ffb300,#ff8c00,#ffd700);
  z-index:-1;animation:hkRainbowSpin 2s linear infinite;
  filter:blur(3px);opacity:.8;
}
[data-tier="4"] .hk-cake-glow{
  width:160px;height:160px;
  background:radial-gradient(circle,rgba(255,200,0,.35) 0%,transparent 70%);
  animation:hkGlowPulse 1.5s ease-in-out infinite;
}
[data-tier="4"] .hk-ring--a{opacity:1;border:3px solid rgba(255,200,0,.7);animation:hkRingSpin 4s linear infinite;box-shadow:0 0 12px rgba(255,200,0,.4)}
[data-tier="4"] .hk-ring--b{opacity:1;border:2px dashed rgba(255,160,0,.5);animation:hkRingSpin 7s linear infinite reverse}
[data-tier="4"] .hk-ring--c{opacity:1;border:1px solid rgba(255,140,0,.25);animation:hkRingSpin 12s linear infinite}
[data-tier="4"] .hk-cake-crown{opacity:1;font-size:20px}

/* ── TIER 5 — Мастер вкуса ───────────────────────────── */
[data-tier="5"] .hk-cake{
  background:radial-gradient(circle at 38% 32%,#f5f0ff,#e8d8ff);
  box-shadow:0 16px 80px rgba(139,92,246,.6),0 4px 20px rgba(0,0,0,.12),inset 0 2px 0 rgba(255,255,255,.9);
}
[data-tier="5"] .hk-cake::after{
  content:'';position:absolute;inset:-5px;border-radius:50%;
  background:conic-gradient(#a855f7,#6366f1,#8b5cf6,#c084fc,#a855f7);
  z-index:-1;animation:hkRainbowSpin 2.5s linear infinite;
  filter:blur(4px);opacity:.85;
}
[data-tier="5"] .hk-cake-glow{
  width:165px;height:165px;
  background:radial-gradient(circle,rgba(139,92,246,.4) 0%,transparent 70%);
  animation:hkGlowPulse 1.3s ease-in-out infinite;
}
[data-tier="5"] .hk-ring--a{opacity:1;border:3px solid rgba(139,92,246,.8);animation:hkRingSpin 3.5s linear infinite;box-shadow:0 0 18px rgba(139,92,246,.5)}
[data-tier="5"] .hk-ring--b{opacity:1;border:2px solid rgba(99,102,241,.5);animation:hkRingSpin 6s linear infinite reverse;box-shadow:0 0 10px rgba(99,102,241,.3)}
[data-tier="5"] .hk-ring--c{opacity:1;border:1.5px dashed rgba(192,132,252,.4);animation:hkRingSpin 10s linear infinite}
[data-tier="5"] .hk-cake-crown{opacity:1;content:'💎';font-size:18px}

/* ── TIER 6 — Легенда ────────────────────────────────── */
[data-tier="6"] .hk-cake{
  background:radial-gradient(circle at 38% 32%,#fff5e0,#ffe0b0);
  box-shadow:0 18px 90px rgba(255,80,0,.65),0 5px 24px rgba(0,0,0,.15),inset 0 2px 0 rgba(255,255,255,.9);
}
[data-tier="6"] .hk-cake::after{
  content:'';position:absolute;inset:-6px;border-radius:50%;
  background:conic-gradient(#ff4500,#ff8c00,#ffd700,#ff4500,#ff2200,#ff4500);
  z-index:-1;animation:hkRainbowSpin 1.5s linear infinite;
  filter:blur(5px);opacity:.9;
}
[data-tier="6"] .hk-cake-glow{
  width:170px;height:170px;
  background:radial-gradient(circle,rgba(255,80,0,.4) 0%,rgba(255,150,0,.2) 50%,transparent 70%);
  animation:hkGlowPulseFast 1s ease-in-out infinite;
}
[data-tier="6"] .hk-ring--a{opacity:1;border:3px solid rgba(255,80,0,.9);animation:hkRingSpin 2.5s linear infinite;box-shadow:0 0 20px rgba(255,80,0,.6)}
[data-tier="6"] .hk-ring--b{opacity:1;border:2.5px solid rgba(255,140,0,.6);animation:hkRingSpin 4.5s linear infinite reverse;box-shadow:0 0 14px rgba(255,140,0,.4)}
[data-tier="6"] .hk-ring--c{opacity:1;border:2px dashed rgba(255,200,0,.5);animation:hkRingSpin 7s linear infinite;box-shadow:0 0 8px rgba(255,200,0,.2)}
[data-tier="6"] .hk-cake-crown{opacity:1;font-size:24px;top:-28px}

/* ── TIER 7 — Сладкая Империя ───────────────────────── */
[data-tier="7"] .hk-cake{
  background:conic-gradient(#ff6b9d,#c44fff,#4fc3ff,#4fffb0,#ffe04f,#ff8c00,#ff6b9d);
  box-shadow:0 20px 100px rgba(214,31,55,.8),0 0 60px rgba(139,92,246,.6),0 5px 24px rgba(0,0,0,.2),inset 0 2px 0 rgba(255,255,255,.5);
  animation:hkImperialPulse 1s ease-in-out infinite;
}
[data-tier="7"] .hk-cake::before{
  content:'🎂';position:absolute;font-size:68px;
  background:radial-gradient(circle,#fffbe0,#fff5f0);
  width:116px;height:116px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
[data-tier="7"] .hk-cake::after{
  content:'';position:absolute;inset:-8px;border-radius:50%;
  background:conic-gradient(#ff6b9d,#c44fff,#4fc3ff,#4fffb0,#ffe04f,#ff6b9d);
  z-index:-1;animation:hkRainbowSpin 1s linear infinite;
  filter:blur(8px);opacity:1;
}
[data-tier="7"] .hk-cake-glow{
  width:180px;height:180px;
  background:radial-gradient(circle,rgba(255,100,150,.4) 0%,rgba(139,92,246,.3) 40%,transparent 70%);
  animation:hkGlowPulseFast .8s ease-in-out infinite;
}
[data-tier="7"] .hk-ring--a{opacity:1;border:4px solid rgba(255,107,157,.9);animation:hkRingSpin 2s linear infinite;box-shadow:0 0 24px rgba(255,107,157,.7)}
[data-tier="7"] .hk-ring--b{opacity:1;border:3px solid rgba(196,79,255,.7);animation:hkRingSpin 3.5s linear infinite reverse;box-shadow:0 0 18px rgba(196,79,255,.5)}
[data-tier="7"] .hk-ring--c{opacity:1;border:2px solid rgba(79,195,255,.6);animation:hkRingSpin 5.5s linear infinite;box-shadow:0 0 12px rgba(79,195,255,.4)}
[data-tier="7"] .hk-cake-crown{opacity:1;font-size:28px;top:-34px;animation:hkCrownBounce 1.5s ease-in-out infinite}

/* ── RING / GLOW ANIMATIONS ─────────────────────────── */
@keyframes hkRingSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes hkRainbowSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes hkGlowPulse{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.15);opacity:1}}
@keyframes hkGlowPulseFast{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.2);opacity:1}}
@keyframes hkImperialPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.15)}}
@keyframes hkCrownBounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}

/* ── LEVEL UP FLASH ─────────────────────────────────── */
@keyframes hkLevelUp{
  0%  {opacity:0;transform:scale(.5)}
  20% {opacity:1;transform:scale(1.2)}
  60% {opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.1)}
}
.hk-levelup-burst{
  position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(255,220,100,.6) 40%,transparent 70%);
  pointer-events:none;z-index:20;
  animation:hkLevelUp .8s ease forwards;
}
.hk-levelup-text{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-size:16px;font-weight:800;color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
  white-space:nowrap;pointer-events:none;z-index:21;
  animation:hkLevelUp 1.2s ease forwards;
  letter-spacing:.5px;
}
@keyframes hkPop{0%{transform:scale(1)}40%{transform:scale(.86)}70%{transform:scale(1.08)}100%{transform:scale(1)}}
.hk-pop{animation:hkPop .2s ease forwards}
@keyframes hkShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
.hk-shake{animation:hkShake .28s ease forwards}

.hk-steam{
  position:absolute;bottom:22px;width:8px;border-radius:4px;
  background:linear-gradient(180deg,transparent,rgba(214,31,55,.12));
  animation:hkSteam 2.2s ease-in-out infinite;
}
.hk-steam--1{left:37%;height:42px;animation-delay:0s}
.hk-steam--2{left:50%;height:58px;animation-delay:.55s}
.hk-steam--3{left:63%;height:36px;animation-delay:1.1s}
@keyframes hkSteam{0%,100%{opacity:0;transform:translateY(0) scaleX(1)}50%{opacity:1;transform:translateY(-32px) scaleX(1.7)}}

.hk-float{
  position:absolute;pointer-events:none;
  font-size:19px;font-weight:800;color:var(--red);
  text-shadow:0 1px 8px rgba(0,0,0,.15);
  animation:hkFloat .85s ease forwards;z-index:10;
}
@keyframes hkFloat{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-65px) scale(.8)}}

.hk-float--passive{
  font-size:13px;font-weight:700;color:#7c3aed;
  text-shadow:0 1px 4px rgba(124,58,237,.25);
  animation:hkFloatPassive 1.3s ease forwards;
}
@keyframes hkFloatPassive{
  0%  {opacity:0;transform:translateY(0) scale(.8)}
  15% {opacity:.9;transform:translateY(-9px) scale(1)}
  80% {opacity:.7;transform:translateY(-42px) scale(.95)}
  100%{opacity:0;transform:translateY(-58px) scale(.85)}
}

.hk-energy-wrap{
  display:flex;align-items:center;gap:10px;padding:11px 18px;
  background:var(--surface);border-bottom:1px solid var(--border);
}
.hk-energy-ic{font-size:16px}
.hk-energy-bar{flex:1;height:10px;background:#f3e8ff;border-radius:6px;overflow:hidden}
.hk-energy-fill{
  height:100%;background:linear-gradient(90deg,#c4b5fd,#7c3aed);
  border-radius:6px;transition:width .22s ease;width:100%;
}
.hk-energy-txt{font-size:12px;font-weight:700;color:#7c3aed;min-width:82px;text-align:right}

.hk-combo-banner{
  margin:14px 16px 8px;
  background:linear-gradient(135deg,#fffbeb,#fef3c7);
  border:1px solid rgba(245,158,11,.3);border-radius:var(--r-sm);
  padding:11px 16px;font-size:13px;color:#92400e;line-height:1.5;
  box-shadow:0 3px 14px rgba(245,158,11,.1);
}
.hk-combo-banner--done{
  background:linear-gradient(135deg,#ecfdf5,#d1fae5);
  border-color:rgba(52,211,153,.3);color:#065f46;
  box-shadow:0 3px 14px rgba(52,211,153,.1);
}

.hk-cats{display:flex;gap:7px;padding:10px 16px;overflow-x:auto;scrollbar-width:none}
.hk-cats::-webkit-scrollbar{display:none}
.hk-cat{
  flex-shrink:0;padding:7px 14px;border-radius:24px;
  border:1.5px solid var(--border);background:var(--surface);
  font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;
  transition:all var(--t-fast);font-family:'Inter',sans-serif;letter-spacing:.2px;
}
.hk-cat--active{
  background:linear-gradient(135deg,var(--red),var(--red-d));
  color:#fff;border-color:transparent;
  box-shadow:0 3px 12px var(--red-glow);
}

.hk-cards{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
  padding:8px 16px 20px;
}
.hk-card{
  background:var(--surface);border-radius:var(--r-sm);
  border:1.5px solid var(--border);padding:13px;
  position:relative;transition:all var(--t-fast);box-shadow:var(--shadow-card);
}
.hk-card--can{border-color:rgba(214,31,55,.3);box-shadow:0 4px 18px var(--red-glow)}
.hk-card--combo{border-color:rgba(245,158,11,.4);box-shadow:0 4px 18px rgba(245,158,11,.2)}
.hk-card__combo-tag{
  position:absolute;top:-1px;right:-1px;
  background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;
  font-size:9px;font-weight:800;
  border-radius:0 var(--r-sm) 0 8px;padding:3px 7px;letter-spacing:.3px;
}
.hk-card__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}
.hk-card__emoji{font-size:28px}
.hk-card__lv{font-size:10px;font-weight:700;color:var(--muted);background:var(--bg);padding:2px 7px;border-radius:8px}
.hk-card__name{font-size:13px;font-weight:700;line-height:1.2;margin-bottom:3px}
.hk-card__pph{font-size:11px;color:#059669;font-weight:700;margin-bottom:9px}
.hk-card__btn{
  width:100%;padding:8px;border-radius:10px;border:none;
  background:var(--bg);color:var(--muted);
  font-size:12px;font-weight:700;cursor:not-allowed;
  font-family:'Inter',sans-serif;transition:all var(--t-fast);
}
.hk-card__btn--on{
  background:linear-gradient(135deg,var(--red),var(--red-d));
  color:#fff;cursor:pointer;
  box-shadow:0 3px 12px var(--red-glow);
}
.hk-card__btn--on:active{opacity:.82}

.hk-section-title{
  font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;
  color:var(--muted);padding:14px 18px 5px;
}

.hk-boost-row{
  display:flex;align-items:center;gap:14px;
  padding:15px 18px;border-bottom:1px solid var(--border);
  background:var(--surface);transition:background var(--t-fast);
}
.hk-boost-row--can{background:#fffcf5}
.hk-boost-row__ic{font-size:30px;flex-shrink:0}
.hk-boost-row__info{flex:1;min-width:0}
.hk-boost-row__name{font-size:14px;font-weight:700;display:flex;align-items:center;gap:7px}
.hk-boost-row__desc{font-size:12px;color:var(--muted);margin-top:2px}
.hk-lv-tag{font-size:10px;background:var(--bg);color:var(--muted);padding:2px 6px;border-radius:6px;font-weight:700}
.hk-boost-row__btn{
  flex-shrink:0;padding:9px 14px;border-radius:12px;border:none;
  background:var(--bg);color:var(--muted);font-size:12px;font-weight:700;
  cursor:not-allowed;font-family:'Inter',sans-serif;white-space:nowrap;
}
.hk-boost-row__btn--on{
  background:linear-gradient(135deg,var(--red),var(--red-d));
  color:#fff;cursor:pointer;
  box-shadow:0 3px 12px var(--red-glow);
}
.hk-boost-row__btn--on:active{opacity:.82}

.hk-task{
  display:flex;align-items:center;gap:14px;
  padding:15px 18px;border-bottom:1px solid var(--border);
  background:var(--surface);transition:background var(--t-fast);
}
.hk-task--ready{background:#fffbf4}
.hk-task--done{background:#f0fdf4;opacity:.65}
.hk-task__ic{font-size:28px;flex-shrink:0}
.hk-task__info{flex:1;min-width:0}
.hk-task__name{font-size:14px;font-weight:700;line-height:1.3}
.hk-task__reward{font-size:12px;color:var(--gold);font-weight:700;margin-top:2px}
.hk-task__bar{
  height:4px;background:var(--bg);border-radius:2px;overflow:hidden;margin-top:7px;
}
.hk-task__bar div{height:100%;background:linear-gradient(90deg,var(--red),var(--gold));border-radius:2px;transition:width .35s}
.hk-task__btn{
  flex-shrink:0;padding:10px 16px;border-radius:12px;border:none;
  background:linear-gradient(135deg,var(--red),var(--red-d));
  color:#fff;font-size:13px;font-weight:700;
  cursor:pointer;font-family:'Inter',sans-serif;
  box-shadow:0 3px 12px var(--red-glow);
}
.hk-task__btn:active{opacity:.82}
.hk-task__check{font-size:22px;flex-shrink:0}

.hk-toast{
  position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
  background:rgba(15,8,25,.9);
  backdrop-filter:blur(10px);
  color:#fff;
  padding:11px 22px;border-radius:24px;
  font-size:14px;font-weight:700;white-space:nowrap;z-index:20;
  animation:hkToast 3s ease forwards;pointer-events:none;
  box-shadow:0 4px 24px rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.1);
}
@keyframes hkToast{0%{opacity:0;transform:translateX(-50%) translateY(12px)}10%{opacity:1;transform:translateX(-50%) translateY(0)}85%{opacity:1}100%{opacity:0;transform:translateX(-50%) translateY(-4px)}}

/* ── ORDER FORM ──────────────────────────────────────────────────────────── */
.order-form{padding:0 16px 24px;display:flex;flex-direction:column;gap:14px}
.of-group{display:flex;flex-direction:column;gap:6px}
.of-row{display:flex;gap:12px}
.of-label{font-size:13px;font-weight:600;color:#555}
.of-input{
  width:100%;padding:13px 16px;border-radius:var(--r-sm);
  border:1.5px solid var(--border);background:var(--surface);
  font-family:'Inter',sans-serif;font-size:15px;color:var(--text);
  outline:none;transition:border-color var(--t-fast);
}
.of-input:focus{border-color:var(--red)}
.of-textarea{resize:vertical;min-height:80px}
.of-msg{padding:13px 16px;border-radius:var(--r-sm);font-size:14px;font-weight:500;margin-top:4px}
.of-msg--ok{background:#e6f9ee;color:#1a7a3c;border:1px solid #a8e6c0}
.of-msg--err{background:var(--red-l);color:var(--red-d);border:1px solid rgba(214,31,55,.2)}

/* ── STORES ──────────────────────────────────────────────────────────────── */
.store-card{
  background:var(--surface);border-radius:var(--r-sm);
  border:1.5px solid var(--border);padding:14px 16px;
  margin-bottom:10px;cursor:pointer;transition:box-shadow var(--t-fast);
}
.store-card:active{box-shadow:var(--shadow-card)}
.store-card__top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.store-card__name{font-size:14px;font-weight:600;color:var(--text)}
.store-dist{font-size:13px;font-weight:700;color:var(--red);white-space:nowrap}
.store-card__addr{font-size:13px;color:var(--muted);margin-top:4px}
.store-card__link{font-size:13px;color:var(--red);margin-top:6px;font-weight:500}

/* ── HEADER COUNTERS ─────────────────────────────────────────────────────── */
.hdr-counters{
  display:flex;gap:5px;align-items:center;cursor:pointer;
  white-space:nowrap;
}
/* Правая группа в шапке — counters + cart + phone */
.hdr-right{
  display:flex;align-items:center;gap:6px;
  margin-left:auto;
  flex-shrink:0;white-space:nowrap;
}
.hdr-c{
  font-size:12px;font-weight:700;
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;padding:3px 8px;color:var(--text);
  display:inline-flex;align-items:center;gap:3px;
  transition:transform var(--t);
  white-space:nowrap;
}
@media (max-width: 380px) {
  .hdr-c{font-size:11px;padding:3px 6px;border-radius:10px}
  .hdr-counters{gap:4px}
}
.hdr-c b{font-weight:800}
.hdr-c--star{color:#b8841a;background:var(--gold-l)}
.hdr-c--point{color:var(--red);background:var(--red-l)}
.hdr-c.pulse{animation:hdrpulse .6s ease}
@keyframes hdrpulse{
  0%{transform:scale(1)}
  40%{transform:scale(1.18);box-shadow:0 0 0 6px rgba(214,31,55,.18)}
  100%{transform:scale(1)}
}

/* ── VERIFICATION BANNER ─────────────────────────────────────────────────── */
.vbanner{
  background:linear-gradient(135deg,#fff,var(--red-l));
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:24px 18px;text-align:center;
  box-shadow:var(--shadow-card);
  margin:18px;
}
.vbanner__ic{font-size:42px;margin-bottom:6px}
.vbanner__h{font-family:'Playfair Display',serif;font-size:22px;color:var(--dark);margin-bottom:8px}
.vbanner__p{font-size:14px;color:#444;margin-bottom:14px;line-height:1.5}
.vbanner__bonus{
  display:inline-block;
  background:var(--red);color:#fff;
  font-weight:700;font-size:13px;
  padding:6px 14px;border-radius:14px;
  margin-bottom:14px;
}
.vbanner__status{font-size:13px;color:var(--muted);margin-top:10px;min-height:18px}
.vbanner__note{font-size:11px;color:var(--muted);margin-top:8px}

/* ── LOYALTY HERO ────────────────────────────────────────────────────────── */
/* Hero — белая карточка в стиле Tinkoff/Apple Wallet (minimalist) */
.loy-hero{
  background:#fff;
  color:var(--text);
  border-radius:16px;
  padding:24px 20px 22px;margin:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  position:relative;
}
.loy-hero::before, .loy-hero::after{display:none}
.loy-hero > *{position:relative}
.loy-hero__top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;gap:12px}
.loy-hero__hi{font-size:13px;color:var(--muted);font-weight:500}
.loy-hero__name{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--text);line-height:1.15;margin-top:2px}
.loy-hero__bals{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.loy-bal{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-sm);padding:14px 12px;
  text-align:center;
}
.loy-bal__ic{font-size:22px;display:block;margin-bottom:4px}
.loy-bal__num{font-size:28px;font-weight:800;display:block;line-height:1}
.loy-bal__lb{font-size:11px;opacity:.7;text-transform:uppercase;letter-spacing:.5px}
.loy-bal--star .loy-bal__num{color:#ffd166}
.loy-bal--point .loy-bal__num{color:#ff8a99}

/* Inline stats — grid 3 колонки внутри hero, без цветовых акцентов */
.loy-hero__stats{
  display:grid;grid-template-columns:repeat(3, 1fr);gap:0;
  margin-top:18px;padding-top:18px;
  border-top:1px solid #f1f1f3;
}
.loy-hero__stat{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  font-feature-settings:"tnum" 1;
}
.loy-hero__stat:not(:last-child){border-right:1px solid #f1f1f3}
.loy-hero__stat b, .loy-hero__stat strong{
  font-size:18px;font-weight:800;color:var(--text);
  font-family:'Playfair Display',serif;line-height:1;letter-spacing:-.5px;
}
.loy-hero__stat span{font-size:11px;color:var(--muted);font-weight:500;text-transform:lowercase}
.loy-hero__stat-sep{display:none}

/* ДР-chip — мягкая inline-плашка */
.loy-hero__bday{
  margin:12px 0 0;
  background:#fff5f7;color:#9b3046;
  border:1px solid #ffd0d8;
  border-radius:10px;padding:8px 12px;
  font-size:12.5px;font-weight:500;
  display:flex;align-items:center;gap:8px;
}
.loy-hero__bday-ic{font-size:14px}

/* Onboarding для нового юзера (3 шага) */
.ob-card{
  margin:0 16px 16px;padding:18px;
  background:#fff;
  border-radius:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
}
.ob-card__h{
  font-family:'Playfair Display',serif;
  font-size:17px;font-weight:700;color:var(--text);
  margin-bottom:14px;
}
.ob-step{
  display:flex;align-items:flex-start;gap:12px;
  padding:10px 0;
}
.ob-step + .ob-step{border-top:1px solid rgba(0,0,0,.05)}
.ob-step__num{
  flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:#fff5f7;color:var(--red);
  font-weight:800;font-size:13px;
  display:flex;align-items:center;justify-content:center;
}
.ob-step__body{flex:1;min-width:0}
.ob-step__t{font-size:14px;font-weight:700;color:var(--text);line-height:1.3}
.ob-step__s{font-size:12px;color:var(--muted);line-height:1.45;margin-top:3px}

/* Sticky CTA — flat minimal */
.club-sticky{
  position:sticky;bottom:0;left:0;right:0;
  padding:16px 16px calc(env(safe-area-inset-bottom, 12px) + 12px);
  background:linear-gradient(to top, #fff 60%, rgba(255,255,255,0));
  z-index:5;margin-top:14px;
}
.club-sticky__btn{
  width:100%;height:52px;font-size:15px;font-weight:700;
  border-radius:14px;
  background:var(--red);color:#fff;
  border:none;cursor:pointer;
  transition:background var(--t-fast), transform .12s;
}
.club-sticky__btn:hover{background:var(--red-d)}
.club-sticky__btn:active{transform:scale(.98)}

/* Привилегии клуба — inline-блок с галочками */
.club-benefits{
  margin:0 16px 16px;padding:18px;
  background:#fff;border-radius:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
}
.club-benefits__h{
  font-family:'Playfair Display',serif;
  font-size:16px;font-weight:700;color:var(--text);
  letter-spacing:-.2px;margin-bottom:12px;
}
.club-benefits__list{
  list-style:none;padding:0;margin:0 0 14px;
}
.club-benefits__list li{
  display:flex;align-items:flex-start;gap:10px;
  padding:6px 0;font-size:13px;color:var(--text);line-height:1.4;
}
.cb-tick{
  flex-shrink:0;width:20px;height:20px;border-radius:50%;
  background:rgba(34,197,94,.12);color:#16a34a;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;margin-top:1px;
}
.club-benefits__levels{
  display:flex;flex-direction:column;gap:8px;
  padding:12px 0 0;border-top:1px solid #f1f1f3;margin-top:6px;
}
.cb-lvl{
  display:grid;
  grid-template-columns:24px 1fr auto auto;
  gap:10px;align-items:center;
  padding:6px 0;font-size:13px;
}
.cb-lvl-ic{font-size:18px;line-height:1}
.cb-lvl-n{font-weight:600;color:var(--text)}
.cb-lvl-c{font-size:11px;color:var(--muted)}
.cb-lvl-p{
  background:#fff8ec;color:#9c6a06;
  padding:3px 9px;border-radius:10px;
  font-size:11px;font-weight:800;letter-spacing:-.2px;
}
.club-benefits__note{
  font-size:11px;color:var(--muted);margin-top:10px;
  padding-top:10px;border-top:1px solid #f1f1f3;line-height:1.4;
}

/* Staggered fade-in для блоков клуба */
#tab-club.active > #club-content > #club-main > *,
#tab-club.active > .acc,
#tab-club.active > .club-sticky{
  animation:clubFadeIn .35s ease-out backwards;
}
#tab-club.active > #club-content > #club-main > *:nth-child(1){animation-delay:.05s}
#tab-club.active > #club-content > #club-main > *:nth-child(2){animation-delay:.1s}
#tab-club.active > #club-content > #club-main > *:nth-child(3){animation-delay:.15s}
#tab-club.active > #club-content > #club-main > *:nth-child(4){animation-delay:.2s}
#tab-club.active > #club-content > #club-main > *:nth-child(5){animation-delay:.25s}
#tab-club.active > #club-content > #club-main > *:nth-child(6){animation-delay:.3s}
#tab-club.active > .acc:nth-of-type(1){animation-delay:.35s}
#tab-club.active > .acc:nth-of-type(2){animation-delay:.4s}
@keyframes clubFadeIn{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}

/* Compact club-hero — заголовок без логотипа */
.club-hero--compact{padding:18px 24px 14px}
.club-hero--compact .club-hero__h{font-size:24px;margin-bottom:2px}
.club-hero--compact .club-hero__p{font-size:11px}

/* Партнёры — modal со всеми */
.partners-modal__h{
  font-family:'Playfair Display',serif;font-size:22px;font-weight:700;
  text-align:center;padding:18px 18px 4px;color:var(--text);
}
.partners-modal__list{padding:0 14px 28px}

/* Единый balance — большая цифра по центру hero */
.loy-hero__balance{
  display:flex;align-items:baseline;justify-content:center;gap:10px;
  margin:8px 0 14px;
}
.loy-hero__balance-num{
  font-family:'Playfair Display',serif;font-size:54px;font-weight:800;
  line-height:1;letter-spacing:-1px;
  background:linear-gradient(135deg,#ffe9b5,#fff,#ffd166);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  font-feature-settings:"tnum" 1;
}
.loy-hero__balance-lb{
  font-size:14px;color:rgba(255,255,255,.85);font-weight:600;
  text-transform:uppercase;letter-spacing:.6px;
}

/* "Как это работает" — minimalist 3 одинаковые карточки на белом */
.how-it-works{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;
  padding:0 16px 16px;
}
.hiw{
  background:#fff;
  border-radius:14px;padding:16px 10px;text-align:center;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
  transition:box-shadow var(--t-fast);
}
.hiw:hover{box-shadow:0 4px 12px rgba(0,0,0,.06)}
.hiw__ic{font-size:26px;margin-bottom:6px;line-height:1}
.hiw__t{font-size:12.5px;font-weight:700;color:var(--text);line-height:1.2;letter-spacing:-.1px}
.hiw__s{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.4}
.hiw__s b{color:var(--text);font-weight:700;font-feature-settings:"tnum" 1}

/* Уровневая chip — flat minimal в hero */
.loy-hero__lvl{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff8ec;color:#9c6a06;
  border:1px solid #f0d990;
  padding:7px 12px;border-radius:24px;font-size:12px;
  cursor:pointer;font-weight:600;
  transition:background var(--t-fast);
}
.loy-hero__lvl:hover{background:#fff2d6}
.loy-hero__lvl-ic{font-size:14px}
.loy-hero__lvl-name{font-weight:700}
.loy-hero__lvl-pct{
  background:#9c6a06;color:#fff;
  padding:2px 8px;border-radius:10px;font-weight:800;font-size:11px;letter-spacing:-.2px;
}
.loy-hero__prog{margin-top:16px}
.loy-hero__prog-bar{
  height:6px;border-radius:6px;
  background:#f1f1f3;
  overflow:hidden;position:relative;
}
.loy-hero__prog-fill{
  display:block;height:100%;
  background:linear-gradient(90deg, var(--red), #ff5a73);
  border-radius:6px;transition:width .6s ease-out;
}
.loy-hero__prog-txt{
  margin-top:10px;font-size:12.5px;color:var(--muted);
  text-align:left;line-height:1.4;
}
.loy-hero__prog-txt b{color:var(--text);font-weight:700;font-feature-settings:"tnum" 1}

/* ── DAILY ───────────────────────────────────────────────────────────────── */
.daily{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-sm);
  padding:16px;margin:0 18px 16px;
  box-shadow:var(--shadow-sm);
}
.daily__top{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:14px}
.daily__fire{font-size:18px}
.daily__dots{display:flex;gap:6px;margin-bottom:14px}
.ddot{
  flex:1;aspect-ratio:1/1;max-height:36px;
  border-radius:10px;
  background:#f1f1f3;border:1px solid #e5e5e8;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;color:#9aa1a8;font-weight:600;
  position:relative;transition:all .25s;
}
.ddot--done{
  background:linear-gradient(135deg,var(--gold),var(--red));
  border-color:transparent;color:#fff;
  box-shadow:0 4px 10px rgba(214,31,55,.25);
}
.ddot--done .ddot__check{font-size:14px;font-weight:800}
.ddot--today{
  background:rgba(214,31,55,.08);border-color:var(--red);
  color:var(--red);
  animation:dotPulse 1.4s ease-in-out infinite;
}
.ddot--today .ddot__num{font-size:10px;font-weight:800;letter-spacing:-.3px}
@keyframes dotPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(214,31,55,.4)}
  50%{box-shadow:0 0 0 6px rgba(214,31,55,0)}
}
.ddot__day{font-size:11px;color:#9aa1a8}
.ddot--on{background:linear-gradient(90deg,var(--gold),var(--red))} /* legacy */
.daily__hint{font-size:11px;color:var(--muted);margin-top:8px;text-align:center}
#daily-claim-btn:disabled{opacity:.55;cursor:default}

/* ── REWARDS SHOP ────────────────────────────────────────────────────────── */
.rewards-shop{
  display:flex;gap:12px;
  overflow-x:auto;padding:4px 18px 12px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.rewards-shop::-webkit-scrollbar{display:none}
.rcard{
  flex:0 0 180px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-sm);
  padding:14px 12px;
  scroll-snap-align:start;
  display:flex;flex-direction:column;gap:6px;
  box-shadow:var(--shadow-sm);
}
.rcard__title{font-weight:700;font-size:14px;color:var(--text)}
.rcard__sub{font-size:12px;color:var(--muted);min-height:32px}
.rcard__min{font-size:11px;color:var(--muted)}
.rcard__cost{font-size:18px;font-weight:800;color:var(--red);margin-top:4px}
.rcard__btn{
  margin-top:auto;
  background:var(--red);color:#fff;border:none;
  font-weight:700;font-size:13px;
  padding:8px;border-radius:10px;cursor:pointer;
  transition:all var(--t-fast);
}
.rcard__btn:disabled{background:#ddd;color:#888;cursor:default}
.rcard--locked .rcard__cost{color:var(--muted)}

/* ── MY REWARDS ──────────────────────────────────────────────────────────── */
#my-rewards{padding:0 18px;display:flex;flex-direction:column;gap:8px}
.my-rewards__empty{font-size:13px;color:var(--muted);text-align:center;padding:14px}
.prom{
  background:var(--gold-l);
  border:1px dashed var(--gold);
  border-radius:var(--r-sm);
  padding:12px 14px;
}
.prom__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.prom__title{font-weight:700;font-size:13px;color:var(--text)}
.prom__exp{font-size:11px;color:var(--muted)}
.prom__code{
  display:flex;justify-content:space-between;align-items:center;
  background:#fff;border-radius:8px;padding:8px 12px;
}
.prom__codetxt{
  font-family:'SF Mono','Menlo',monospace;
  font-weight:700;font-size:15px;color:var(--red);letter-spacing:1px;
}
.prom__copy{
  background:none;border:none;font-size:18px;cursor:pointer;
}
.prom__used{display:inline-block;font-size:11px;color:var(--muted);margin-top:6px}

/* ── REFERRAL ────────────────────────────────────────────────────────────── */
.ref{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-sm);padding:14px;margin:0 18px;
  box-shadow:var(--shadow-sm);
}
.ref__txt{font-size:13px;color:#444;margin-bottom:10px;line-height:1.5}
.ref__row{display:flex;gap:8px}
.ref__inp{
  flex:1;font-size:11px;
  border:1px solid var(--border);border-radius:8px;padding:8px;
  background:var(--bg);color:#666;
}
.ref__btn{
  background:var(--red);color:#fff;border:none;
  font-weight:700;font-size:13px;padding:8px 12px;border-radius:8px;
  cursor:pointer;white-space:nowrap;
}

/* ── HISTORY ─────────────────────────────────────────────────────────────── */
#history-wrap{margin:0 18px}
.hrow{
  display:flex;justify-content:space-between;gap:8px;
  padding:8px 0;border-bottom:1px solid var(--border);font-size:12px;
}
.hrow__amt{font-weight:700}
.hrow__amt.pos{color:#1a8838}
.hrow__amt.neg{color:var(--red)}
.hrow__src{flex:1;color:#444}
.hrow__dt{color:var(--muted);font-size:11px}
.history-loading,.history-empty{padding:14px;text-align:center;color:var(--muted);font-size:13px}

/* ── MODAL ───────────────────────────────────────────────────────────────── */
.modal{
  position:fixed;inset:0;z-index:500;
  background:rgba(0,0,0,.5);
  display:flex;align-items:flex-end;justify-content:center;
  animation:fadein .2s ease;
}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.modal__sheet{
  background:#fff;border-radius:24px 24px 0 0;
  width:100%;max-width:480px;
  padding:22px 18px calc(22px + env(safe-area-inset-bottom));
  animation:slideup .25s ease;
  max-height:90vh;overflow-y:auto;
}
@keyframes slideup{from{transform:translateY(20px)}to{transform:translateY(0)}}
.modal__h{font-family:'Playfair Display',serif;font-size:20px;color:var(--dark);margin-bottom:6px;text-align:center}
.modal__sub{font-size:13px;color:#555;text-align:center;margin-bottom:14px}
.modal__row{font-size:13px;color:#333;padding:6px 0;border-bottom:1px solid var(--border)}
.modal__btns{display:flex;gap:10px;margin-top:16px}
.modal__btns>*{flex:1}

/* ── Отзывы и рейтинг товаров ─────────────────────────────────────────── */
/* Блок отзывов внутри карточки товара */
.cat-modal__reviews{padding:14px 18px 0;border-top:1px solid rgba(0,0,0,.06);margin-top:6px}
.rv-block{padding:0}
.rv-block--loading{font-size:12.5px;color:var(--muted);text-align:center;padding:18px 0}
.rv-block__h{
  font-size:11px;color:var(--muted);font-weight:600;
  letter-spacing:.4px;text-transform:uppercase;margin-bottom:10px;
}
.rv-summary{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid rgba(0,0,0,.05)}
.rv-summary__big{flex-shrink:0;text-align:center;min-width:84px}
.rv-summary__avg{
  font-family:'Playfair Display',serif;font-size:32px;font-weight:800;
  color:var(--text);line-height:1;letter-spacing:-.5px;
}
.rv-summary__stars{margin-top:4px;line-height:1}
.rv-summary__cnt{font-size:11.5px;color:var(--muted);margin-top:2px}

.rv-star{color:#dadce0;letter-spacing:1px;line-height:1}
.rv-star--on{color:#f0a020}

.rv-dist{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.rv-dist-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
.rv-dist-row__lbl{flex-shrink:0;width:18px;color:#f0a020;font-weight:700}
.rv-dist-row__bar{flex:1;height:6px;background:#f2f2f7;border-radius:3px;overflow:hidden}
.rv-dist-row__fill{display:block;height:100%;background:linear-gradient(90deg,#f0a020,#ffc658);border-radius:3px;transition:width .3s ease}
.rv-dist-row__cnt{flex-shrink:0;width:20px;text-align:right;font-weight:600}

.rv-empty{text-align:center;padding:14px 0 18px;color:var(--muted)}
.rv-empty__ic{font-size:30px;color:#dadce0;margin-bottom:6px}
.rv-empty__h{font-size:14px;font-weight:700;color:var(--text);margin-bottom:3px}
.rv-empty__s{font-size:12px;color:var(--muted)}

.rv-list{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
.rv-item{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.04)}
.rv-item:last-child{border-bottom:none}
.rv-item__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.rv-item__author{font-size:13px;font-weight:700;color:var(--text)}
.rv-item__stars{line-height:1}
.rv-item__time{font-size:11px;color:var(--muted);margin-left:auto}
.rv-item__text{font-size:13px;color:#3a3a3c;line-height:1.4;white-space:pre-wrap;word-break:break-word}

.rv-write-btn{
  width:100%;padding:12px;border-radius:12px;
  background:#fff;border:1px solid var(--border-strong);
  color:var(--text);font-size:13.5px;font-weight:600;
  cursor:pointer;transition:all var(--t-fast);
}
.rv-write-btn:hover{border-color:var(--red);color:var(--red);background:var(--red-xl,#fff5f6)}

/* Рейтинг в карточке грида (под названием товара) */
.pcard-pr__rating{
  display:flex;align-items:center;gap:3px;
  font-size:11.5px;color:var(--text);margin:2px 0 0;
}
.pcard-pr__rating-star{color:#f0a020;font-size:12px}
.pcard-pr__rating-cnt{color:var(--muted);font-size:10.5px}

/* Модалка написания отзыва */
.rv-writer__sheet{padding:18px 16px calc(20px + env(safe-area-inset-bottom));position:relative}
.rv-writer__h{
  font-family:'Playfair Display',serif;font-size:20px;color:var(--dark);
  margin-bottom:4px;text-align:center;
}
.rv-writer__sub{font-size:12.5px;color:var(--muted);text-align:center;margin-bottom:16px}
.rv-writer__rating{display:flex;justify-content:center;gap:6px;margin-bottom:6px}
.rv-writer__star{
  background:none;border:none;cursor:pointer;
  font-size:34px;color:#dadce0;padding:4px;
  transition:transform var(--t-fast),color var(--t-fast);
  line-height:1;
}
.rv-writer__star:hover{transform:scale(1.1)}
.rv-writer__star--on{color:#f0a020}
.rv-writer__rating-lbl{
  text-align:center;font-size:13px;font-weight:600;
  color:var(--text);margin-bottom:14px;
}
.rv-writer__text{
  width:100%;min-height:100px;
  padding:12px 14px;border-radius:12px;
  border:1px solid var(--border-strong);background:#fff;
  font-family:inherit;font-size:14px;color:var(--text);
  resize:vertical;
  transition:border-color var(--t-fast);
}
.rv-writer__text:focus{outline:none;border-color:var(--red)}
.rv-writer__counter{text-align:right;font-size:11px;color:var(--muted);margin-top:4px}
.rv-writer__actions{display:flex;gap:10px;margin-top:14px}
.rv-writer__actions>*{flex:1}
.rv-writer__err{
  font-size:12.5px;color:var(--red);text-align:center;
  margin-top:10px;padding:8px;background:var(--red-xl,#fff5f6);
  border-radius:8px;
}
.rv-writer__delete{
  display:block;margin:14px auto 0;
  background:none;border:none;color:var(--muted);
  font-size:12px;cursor:pointer;text-decoration:underline;
}
.rv-writer__delete:hover{color:var(--red)}

/* ── «Классика мамы» — куратор-подбор на главной ────────────────────── */
.sh--classics{margin-top:8px}
.classics-intro{
  margin:0 16px 12px;padding:12px 16px;
  background:linear-gradient(135deg, #fdf6e3 0%, #fff 100%);
  border:1px solid #ebd8a8;border-left:3px solid #c08c30;
  border-radius:12px;cursor:pointer;
  transition:all var(--t-fast);
}
.classics-intro:hover{box-shadow:0 4px 14px rgba(0,0,0,.07)}
.classics-intro__t{
  font-family:'Playfair Display',serif;font-size:15px;font-weight:700;
  color:#7a5510;letter-spacing:-.2px;line-height:1.3;
}
.classics-intro__s{font-size:11.5px;color:#8a6620;margin-top:4px;line-height:1.4}

.classics-story{padding:0 18px 18px}
.classics-story__h-main{
  font-family:'Playfair Display',serif;font-size:22px;color:var(--text);
  text-align:center;padding:18px 18px 8px;letter-spacing:-.4px;
}
.classics-story__lead{
  font-size:14px;color:#3a3a3c;line-height:1.5;
  padding:14px;background:#fdf6e3;border-radius:12px;
  margin-bottom:14px;border-left:3px solid #c08c30;
}
.classics-story__h{
  font-size:13px;color:var(--text);font-weight:700;
  margin:14px 0 8px;letter-spacing:-.1px;
}
.classics-story__list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:8px;
}
.classics-story__list li{
  font-size:13px;color:#3a3a3c;line-height:1.45;
  padding-left:16px;position:relative;
}
.classics-story__list li::before{
  content:'•';position:absolute;left:0;top:0;
  color:#c08c30;font-weight:700;
}
.classics-story__list b{color:var(--text);font-weight:700}
.classics-story__foot{
  margin-top:16px;padding-top:14px;
  border-top:1px solid var(--border);
  font-size:12px;color:var(--muted);text-align:center;
}

/* ── Промокод в чекауте ─────────────────────────────────────────────── */
.co-promo-row{display:flex;gap:6px;align-items:stretch}
.co-promo-row #co-promo{
  flex:1;text-transform:uppercase;letter-spacing:1px;font-weight:600;
}
.co-promo-apply{
  flex-shrink:0;padding:0 14px;border-radius:10px;
  background:var(--text);color:#fff;border:none;
  font-size:12px;font-weight:700;cursor:pointer;letter-spacing:-.1px;
  transition:opacity var(--t-fast);
}
.co-promo-apply:hover{opacity:.85}
.co-promo-status{
  font-size:12px;margin-top:6px;padding:6px 10px;border-radius:8px;
  letter-spacing:-.1px;line-height:1.4;
}
.co-promo-status--checking{background:#f2f2f7;color:var(--muted)}
.co-promo-status--ok{background:#eafbef;color:#0a6b34;font-weight:600}
.co-promo-status--err{background:var(--red-xl, #fff5f6);color:var(--red, #d61f37);font-weight:600}
.co-breakdown__row--discount{color:#0a6b34}
.co-breakdown__row--discount b{color:#0a6b34}

/* ── Гид по подаркам — wizard ──────────────────────────────────────── */
.home-gift-chip{
  background:linear-gradient(135deg, #fff5f6 0%, #fff 100%);
  border-left:3px solid var(--red, #d61f37);
}
.home-gift-chip__ic{
  background:rgba(214,31,55,.10);color:var(--red, #d61f37);
  font-size:20px;line-height:1;
}

.gw__sheet{padding:18px 16px calc(20px + env(safe-area-inset-bottom));position:relative;max-height:90vh;overflow-y:auto}
.gw__progress{
  display:flex;align-items:center;justify-content:center;gap:6px;
  margin-bottom:14px;padding-top:8px;
}
.gw__dot{
  width:24px;height:5px;border-radius:3px;
  background:#e5e5ea;transition:all var(--t-fast);
}
.gw__dot--done{background:var(--red, #d61f37)}
.gw__dot--active{background:var(--red, #d61f37);box-shadow:0 0 0 2px rgba(214,31,55,.15)}
.gw__step-num{font-size:11px;color:var(--muted);margin-left:6px;font-weight:600}
.gw__body{min-height:200px;padding:6px 0}
.gw__h{
  font-family:'Playfair Display',serif;font-size:22px;color:var(--dark);
  text-align:center;margin-bottom:14px;letter-spacing:-.4px;
}
.gw__sub{font-size:13px;color:var(--muted);text-align:center;margin-bottom:14px}
.gw__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.gw__opt{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:18px 10px;border-radius:14px;
  background:#fff;border:1.5px solid var(--border);
  cursor:pointer;transition:all var(--t-fast);
}
.gw__opt:hover{border-color:var(--red, #d61f37)}
.gw__opt--on{border-color:var(--red, #d61f37);background:var(--red-xl, #fff5f6);box-shadow:0 2px 8px rgba(214,31,55,.12)}
.gw__opt-emoji{font-size:32px;line-height:1}
.gw__opt-lbl{font-size:13px;font-weight:600;color:var(--text);text-align:center;letter-spacing:-.1px}

.gw__list{display:flex;flex-direction:column;gap:8px}
.gw__list-opt{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;border-radius:12px;
  background:#fff;border:1.5px solid var(--border);
  cursor:pointer;font-size:14px;font-weight:600;color:var(--text);
  transition:all var(--t-fast);
}
.gw__list-opt:hover{border-color:var(--red, #d61f37)}
.gw__list-opt--on{border-color:var(--red, #d61f37);background:var(--red-xl, #fff5f6);color:var(--red, #d61f37)}
.gw__check{color:var(--red, #d61f37);font-weight:800}

.gw__chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.gw__chip{
  padding:10px 14px;border-radius:14px;
  background:#f2f2f7;color:var(--text);border:1px solid transparent;
  font-size:13px;font-weight:600;cursor:pointer;
  white-space:nowrap;letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.gw__chip:hover{background:#e5e5ea}
.gw__chip--on{background:#0a6b34;color:#fff;border-color:#0a6b34}

.gw__nav{display:flex;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(0,0,0,.05)}
.gw__nav>*{flex:1}

.gw__results{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.gw__res-card{
  position:relative;
  display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:12px;
  padding:10px;border-radius:14px;
  background:#fff;border:1px solid var(--border);
  cursor:pointer;transition:all var(--t-fast);
}
.gw__res-card:first-child{
  border:2px solid var(--red, #d61f37);
  box-shadow:0 4px 16px rgba(214,31,55,.12);
}
.gw__res-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.08)}
.gw__res-img{
  width:80px;height:80px;border-radius:10px;object-fit:cover;
  background:#f2f2f7;
}
.gw__res-noimg{
  width:80px;height:80px;border-radius:10px;
  background:#f2f2f7;display:flex;align-items:center;justify-content:center;font-size:34px;
}
.gw__res-badge{
  position:absolute;top:-8px;left:8px;
  background:var(--red, #d61f37);color:#fff;
  font-size:10.5px;font-weight:700;
  padding:3px 10px;border-radius:10px;
  letter-spacing:-.1px;
}
.gw__res-badge--alt{background:var(--text)}
.gw__res-info{min-width:0}
.gw__res-name{
  font-size:13.5px;font-weight:700;color:var(--text);
  letter-spacing:-.1px;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.gw__res-price{font-size:14px;font-weight:800;color:var(--red, #d61f37);margin-top:2px}
.gw__res-add{
  flex-shrink:0;padding:8px 12px;border-radius:10px;
  background:var(--red, #d61f37);color:#fff;border:none;
  font-size:12px;font-weight:700;cursor:pointer;
  letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.gw__res-add:active{transform:scale(.95)}

/* ── Корпоративные заказы (B2B) ──────────────────────────────────────── */
.home-corp-chip{
  background:linear-gradient(135deg, #fafaf7 0%, #fff 100%);
  border-left:3px solid #0a6b34;
}
.home-corp-chip__ic{
  background:rgba(10,107,52,.08);color:#0a6b34;
  font-size:20px;line-height:1;
}

.corp__sheet{padding:18px 16px calc(20px + env(safe-area-inset-bottom));position:relative;max-height:90vh;overflow-y:auto}
.corp__h{
  font-family:'Playfair Display',serif;font-size:20px;color:var(--dark);
  margin-bottom:4px;text-align:center;
}
.corp__sub{font-size:12.5px;color:var(--muted);text-align:center;margin-bottom:16px}
.corp__form{display:flex;flex-direction:column;gap:12px}
.corp__row{display:flex;flex-direction:column;gap:6px}
.corp__row--two{flex-direction:row;gap:10px}
.corp__col{flex:1;display:flex;flex-direction:column;gap:6px}
.corp__row--col{flex-direction:column}
.corp__lbl{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:-.1px}
.corp__req{color:var(--red)}
.corp__inp{
  width:100%;padding:11px 13px;border-radius:11px;
  border:1px solid var(--border-strong);background:#fff;
  font-family:inherit;font-size:14px;color:var(--text);
  transition:border-color var(--t-fast);
}
.corp__inp:focus{outline:none;border-color:var(--red)}
.corp__textarea{resize:vertical;min-height:70px}
.corp__chips{display:flex;flex-wrap:wrap;gap:6px}
.corp__chip{
  padding:8px 12px;border-radius:11px;
  background:#f2f2f7;color:var(--text);border:1px solid transparent;
  font-size:12px;font-weight:600;cursor:pointer;
  white-space:nowrap;letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.corp__chip:hover{background:#e5e5ea}
.corp__chip--on{background:#0a6b34;color:#fff;border-color:#0a6b34}
.corp__actions{display:flex;gap:10px;margin-top:6px}
.corp__actions>*{flex:1}

/* ── Wishlist Share — модалка создания + превью у получателя ─────────── */
.wishshare__sheet{padding:18px 16px calc(20px + env(safe-area-inset-bottom));position:relative}
.wishshare__h{
  font-family:'Playfair Display',serif;font-size:20px;color:var(--dark);
  margin-bottom:4px;text-align:center;
}
.wishshare__sub{font-size:13px;color:var(--muted);text-align:center;margin-bottom:14px}
.wishshare__hint{
  font-size:12px;color:var(--muted);
  margin:10px 0 4px;line-height:1.4;
}
.wishshare__actions{display:flex;gap:10px;margin-top:14px}
.wishshare__actions>*{flex:1}
.wishshare__link-box{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;border-radius:12px;
  background:#f2f2f7;border:1px solid var(--border);
  margin-bottom:8px;
}
.wishshare__link-url{
  flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;color:var(--text);word-break:break-all;
  letter-spacing:-.1px;line-height:1.4;
}
.wishshare__link-copy{
  flex-shrink:0;padding:6px 12px;border-radius:8px;
  background:var(--red);color:#fff;border:none;
  font-size:12px;font-weight:700;cursor:pointer;
  transition:background var(--t-fast);
}
.wishshare__link-copy:hover{background:var(--red-d, #b01828)}

/* Shared wishlist — превью у получателя */
.shared-wish__head{padding:18px 18px 12px;text-align:center;border-bottom:1px solid rgba(0,0,0,.05)}
.shared-wish__title{
  font-family:'Playfair Display',serif;font-size:18px;color:var(--text);
  letter-spacing:-.3px;margin-bottom:6px;line-height:1.3;
}
.shared-wish__msg{
  font-size:13.5px;color:#3a3a3c;
  padding:8px 14px;background:var(--red-xl, #fff5f6);
  border-radius:10px;margin:8px 0;line-height:1.4;
  font-style:italic;
}
.shared-wish__sub{font-size:12px;color:var(--muted);margin-top:4px}
.shared-wish__list{padding:8px 18px}
.shared-wish__item{
  display:flex;align-items:center;gap:10px;
  padding:10px 0;border-bottom:1px solid rgba(0,0,0,.04);
  cursor:pointer;
}
.shared-wish__item:last-child{border-bottom:none}
.shared-wish__img{
  width:48px;height:48px;border-radius:10px;object-fit:cover;
  background:#f2f2f7;flex-shrink:0;
}
.shared-wish__noimg{
  width:48px;height:48px;border-radius:10px;
  background:#f2f2f7;display:flex;align-items:center;justify-content:center;
  font-size:22px;flex-shrink:0;
}
.shared-wish__info{flex:1;min-width:0}
.shared-wish__name{
  font-size:13px;font-weight:600;color:var(--text);
  letter-spacing:-.1px;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.shared-wish__price{font-size:12px;font-weight:700;color:var(--red);margin-top:2px}
.shared-wish__add{
  flex-shrink:0;width:32px;height:32px;border-radius:50%;
  background:var(--red);color:#fff;border:none;
  font-size:18px;font-weight:700;cursor:pointer;
  transition:transform var(--t-fast);
}
.shared-wish__add:active{transform:scale(.92)}
.shared-wish__actions{
  display:flex;gap:10px;padding:14px 18px calc(18px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(0,0,0,.06);
  background:#fff;position:sticky;bottom:0;
}
.shared-wish__actions>*{flex:1}

/* Калькулятор порций — модалка */
.portions__sheet{padding:18px 16px calc(20px + env(safe-area-inset-bottom));position:relative}
.portions__h{
  font-family:'Playfair Display',serif;font-size:20px;color:var(--dark);
  margin-bottom:4px;text-align:center;
}
.portions__sub{font-size:12.5px;color:var(--muted);text-align:center;margin-bottom:16px}
.portions__row{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 0;border-bottom:1px solid var(--border);gap:14px;
}
.portions__row:last-of-type{border-bottom:none}
.portions__row--col{flex-direction:column;align-items:stretch;gap:8px}
.portions__lbl{font-size:13.5px;font-weight:600;color:var(--text)}
.portions__stepper{
  display:flex;align-items:center;gap:0;
  background:#f2f2f7;border-radius:12px;padding:2px;
}
.portions__step-btn{
  width:34px;height:34px;border:none;background:#fff;border-radius:10px;
  font-size:18px;font-weight:700;color:var(--text);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:transform var(--t-fast);
}
.portions__step-btn:active{transform:scale(.9)}
.portions__step-val{
  min-width:38px;text-align:center;font-size:16px;font-weight:700;
  color:var(--text);padding:0 6px;
}
.portions__chips{display:flex;gap:6px;flex-wrap:wrap}
.portions__chip{
  flex:1;min-width:90px;
  padding:9px 10px;border-radius:12px;
  background:#f2f2f7;color:var(--text);border:1px solid transparent;
  font-size:12px;font-weight:600;cursor:pointer;
  white-space:nowrap;letter-spacing:-.1px;text-align:center;
  transition:all var(--t-fast);
}
.portions__chip:hover{background:#e5e5ea}
.portions__chip--on{background:var(--red);color:#fff;border-color:var(--red)}
.portions__result{
  margin:14px 0 4px;padding:14px;border-radius:12px;
  background:linear-gradient(135deg, var(--red-xl, #fff5f6) 0%, #fff 100%);
  border:1px solid var(--red-l, #ffd9de);text-align:center;
}
.portions__result-main{
  font-family:'Playfair Display',serif;font-size:32px;font-weight:800;
  color:var(--red);letter-spacing:-.8px;line-height:1;
}
.portions__result-sub{font-size:13px;color:var(--text);margin-top:4px;font-weight:600}
.portions__result-hint{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.3}
.portions__actions{display:flex;gap:10px;margin-top:14px}
.portions__actions>*{flex:1}

/* Лейбл «Калькулятор» в форме заказа */
.of-label{display:flex;align-items:center;justify-content:space-between;gap:8px}
.of-label__help{
  background:transparent;border:none;cursor:pointer;
  font-size:11.5px;font-weight:600;color:var(--red);
  padding:2px 6px;border-radius:6px;
  letter-spacing:-.1px;
  transition:background var(--t-fast);
}
.of-label__help:hover{background:var(--red-xl, #fff5f6)}

/* Кнопка «Сколько брать» в карточке товара */
.cat-modal__portions{
  display:inline-flex;align-items:center;gap:6px;
  margin:0 18px 12px;
  background:#fff5f6;border:1px solid #ffd9de;color:var(--red);
  font-size:12.5px;font-weight:700;
  padding:8px 14px;border-radius:12px;cursor:pointer;
  letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.cat-modal__portions:hover{background:var(--red);color:#fff;border-color:var(--red)}
.cat-modal__portions:active{transform:scale(.97)}

/* convert tiers */
.convert-options{display:flex;flex-direction:column;gap:8px;margin:8px 0 12px}
.ctier{
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;border:1px solid var(--border);border-radius:12px;
  cursor:pointer;transition:all var(--t-fast);background:var(--bg);
}
.ctier:has(input:checked){border-color:var(--red);background:var(--red-l)}
.ctier--off{opacity:.5;cursor:not-allowed}
.ctier__txt{font-size:14px;color:var(--text)}
.ctier__txt em{color:#1a8838;font-style:normal;font-weight:700;font-size:12px}

/* redeem result code */
.redeem-code{
  font-family:'SF Mono','Menlo',monospace;
  font-size:24px;font-weight:800;letter-spacing:2px;
  text-align:center;color:var(--red);
  background:var(--red-l);border:2px dashed var(--red);
  padding:18px;border-radius:12px;margin:12px 0;
}

/* ── LK CARD (личный кабинет с сайта) ────────────────────────────────────── */
.lk-card{
  background:#fff;
  border-radius:16px;
  padding:20px 18px;margin:0 16px 16px;
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
}
.lk-card::before, .lk-card::after{display:none}
.lk-card__loading{font-size:13px;color:var(--muted);text-align:center;padding:20px}
.lk-card__title{font-family:'Playfair Display',serif;font-size:18px;color:var(--dark);margin-bottom:8px}
.lk-card__sub{font-size:13px;color:#444;margin-bottom:14px;line-height:1.5}
.lk-card__row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.lk-card__name{font-family:'Playfair Display',serif;font-size:18px;font-weight:800;color:var(--dark)}
.lk-card__level{font-size:12px;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
.lk-card__bal{text-align:right}
.lk-card__bal-num{font-size:32px;font-weight:800;color:var(--red);line-height:1;letter-spacing:-1px}
.lk-card__bal-lb{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
/* Упрощённый block — большая цифра без gradient */
.lk-card__bal-block{text-align:center;padding:4px 0 12px}
.lk-card__bal-block .lk-card__bal-num{
  font-size:44px;font-weight:800;color:var(--text);line-height:1;letter-spacing:-1.5px;
  font-family:'Playfair Display',serif;font-feature-settings:"tnum" 1;
}
.lk-card__bal-block .lk-card__bal-lb{
  font-size:13px;color:var(--text);font-weight:600;
  text-transform:none;letter-spacing:0;margin-top:6px;
}
.lk-card__bal-hint{
  font-size:11px;color:var(--muted);margin-top:4px;line-height:1.4;
  text-transform:none;letter-spacing:0;
}
.lk-card__year{font-size:12px;color:#666;padding:8px 0;border-top:1px solid rgba(232,160,48,.2)}
.lk-card__tickets{margin-top:10px;padding-top:10px;border-top:1px solid rgba(232,160,48,.2)}
.lk-card__tt{font-size:12px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
.lk-ti{
  display:flex;gap:10px;align-items:center;
  padding:6px 0;font-size:12px;
}
.lk-ti__num{
  font-size:11px;font-weight:800;color:var(--red);
  background:var(--red-l);padding:2px 8px;border-radius:8px;white-space:nowrap;
}
.lk-ti__nm{flex:1;color:var(--text)}
.lk-ti__dt{color:var(--muted);font-size:11px}

.lk-card__orders{margin-top:10px;padding-top:10px;border-top:1px solid rgba(232,160,48,.2)}
.lk-ord{padding:8px 0;border-bottom:1px solid rgba(0,0,0,.05)}
.lk-ord:last-child{border-bottom:none}
.lk-ord__row{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:12px;line-height:1.4}
.lk-ord__row + .lk-ord__row{margin-top:3px}
.lk-ord__id{font-weight:800;color:var(--red);background:var(--red-l);padding:2px 8px;border-radius:8px;white-space:nowrap;font-size:11px}
.lk-ord__dt{color:var(--muted);font-size:11px}
.lk-ord__sum{font-weight:700;color:var(--text);margin-left:auto}
.lk-ord__items{color:#444;font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lk-ord__st{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}
.lk-ord__st--paid{color:#0a8a4a}
.lk-ord__st--cancel{color:#aaa;text-decoration:line-through}
.lk-ord-more{text-align:center;font-size:11px;color:var(--muted);padding-top:6px}

/* ── GAME TOAST ──────────────────────────────────────────────────────────── */
.game-toast{
  position:fixed;left:50%;top:84px;transform:translateX(-50%);
  background:var(--dark);color:#fff;
  padding:10px 18px;border-radius:24px;
  font-weight:700;font-size:14px;
  box-shadow:var(--shadow);z-index:600;
  animation:gtoast .25s ease;
}
@keyframes gtoast{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}

/* ── Hit-card row ─ карусель «Хит недели» на главной ──────────────────────── */
.hits-row{
  display:flex;gap:10px;padding:0 14px 6px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.hits-row::-webkit-scrollbar{display:none}
.hit-card{
  flex:0 0 142px;scroll-snap-align:start;
  background:#fff;border:1px solid var(--border);
  border-radius:18px;padding:6px;
  cursor:pointer;
  box-shadow:var(--shadow-card);
  transition:transform var(--t),box-shadow var(--t);
}
.hit-card:active{transform:scale(.96)}
.hit-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.hit-card__img{
  position:relative;aspect-ratio:1/1;overflow:hidden;
  border-radius:14px;background:var(--gold-l);
}
.hit-card__img img{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:0;transition:opacity .35s ease, filter .35s ease;filter:blur(8px);
}
.hit-card__img img.loaded{opacity:1;filter:none}
.hit-card__badge{
  position:absolute;top:6px;left:6px;
  background:var(--mesh-red);color:#fff;
  font-size:10px;font-weight:800;padding:3px 8px;border-radius:10px;
  box-shadow:var(--shadow-glow);letter-spacing:.3px;
}
.hit-card__name{
  font-size:12px;font-weight:600;color:var(--text);line-height:1.3;
  margin:8px 4px 4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:31px;letter-spacing:-.1px;
}
.hit-card__price{
  font-size:14px;font-weight:800;letter-spacing:-.3px;
  background:var(--grad-text-red);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  padding:0 4px 6px;
  font-variation-settings:'wght' 800;
}

/* ── Sweet Check banner (на главной) ──────────────────────────────────────── */
.sc-banner{
  position:relative;margin:4px 14px 0;
  border-radius:24px;overflow:hidden;
  cursor:pointer;
  background:var(--mesh-premium);
  color:#fff;
  padding:24px 22px 22px;
  box-shadow:0 16px 44px -10px rgba(40,8,20,.45);
  transition:transform var(--t),box-shadow var(--t);
  isolation:isolate;
}
.sc-banner:active{transform:scale(.98)}
.sc-banner::before{
  /* золотая обводка */
  content:'';position:absolute;inset:0;border-radius:24px;
  padding:1px;background:linear-gradient(135deg,rgba(212,160,64,.6),rgba(212,160,64,0) 40%,rgba(214,31,55,.4));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
}
.sc-banner__bg{
  position:absolute;top:-30%;right:-15%;
  width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,rgba(212,160,64,.22),transparent 70%);
  pointer-events:none;
}
.sc-banner__content{position:relative;z-index:1}
.sc-banner__eye{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(212,160,64,.18);
  border:1px solid rgba(212,160,64,.4);
  color:#f6c66a;
  padding:5px 12px;border-radius:999px;
  font-size:11px;font-weight:700;letter-spacing:.6px;
  text-transform:uppercase;margin-bottom:14px;
}
.sc-banner__h{
  font-family:var(--ff-display);
  font-size:clamp(22px, 6vw, 28px);font-weight:800;
  line-height:1.08;letter-spacing:-.6px;margin-bottom:10px;
  text-wrap:balance;
}
.sc-banner__sub{
  font-size:13px;opacity:.85;line-height:1.5;margin-bottom:16px;
  font-weight:500;
}
.sc-banner__cta{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;font-weight:700;letter-spacing:.2px;
  padding:9px 18px;border-radius:999px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(8px);
}

/* ── Accordion (details / summary) ────────────────────────────────────────── */
.acc{
  margin:10px 14px;
  background:#fff;border:none;
  border-radius:18px;
  overflow:hidden;
  box-shadow:
    0 2px 8px rgba(0,0,0,.04),
    0 1px 2px rgba(0,0,0,.03);
  transition:box-shadow .25s ease, transform .25s ease;
}
.acc:hover{box-shadow:0 6px 18px rgba(0,0,0,.06), 0 2px 4px rgba(0,0,0,.04)}
.acc[open]{
  box-shadow:
    0 12px 30px -6px rgba(0,0,0,.08),
    0 4px 10px rgba(0,0,0,.04);
  transform:translateY(-1px);
}

#tab-club.active{background:#fafafb}
.acc__sum{
  display:flex;align-items:center;gap:12px;
  padding:16px 18px;cursor:pointer;
  font-family:var(--ff-body);font-weight:700;font-size:15px;
  color:var(--text);letter-spacing:-.1px;
  list-style:none;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.acc__sum::-webkit-details-marker{display:none}
.acc__ic{
  width:38px;height:38px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg, rgba(214,31,55,.12), rgba(214,31,55,.05));
  color:var(--red);
  border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.acc__t{flex:1}
.acc__chev{
  flex-shrink:0;color:var(--ink-3);
  transition:transform var(--t);
  display:flex;align-items:center;
}
.acc[open] .acc__chev{transform:rotate(90deg);color:var(--red)}
.acc__body{
  padding:0 18px 18px;
  animation:accReveal .28s ease;
}
@keyframes accReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* ── AI Chat Modal ─────────────────────────────────────────────────────── */
.ai-chat__sheet{
  max-width:480px;width:100%;
  height:min(86vh, 720px);
  display:flex;flex-direction:column;
  border-radius:22px 22px 0 0;
  padding:0;
  overflow:hidden;
  background:#fff;
}
@media (min-width: 520px){
  .ai-chat__sheet{border-radius:22px;height:min(82vh,720px);margin:auto}
}
.ai-chat__head{
  padding:18px 20px 14px;
  border-bottom:1px solid var(--border);
  background:#fff;
  flex-shrink:0;
}
.ai-chat__title{
  font-family:var(--ff-body);
  font-size:17px;font-weight:800;color:var(--text);
  display:inline-flex;align-items:center;gap:8px;
  letter-spacing:-.2px;
}
.ai-chat__title [data-icon]{color:var(--red)}
.ai-chat__sub{
  font-size:12px;color:var(--muted);font-weight:500;
  margin-top:2px;
}
.ai-chat__sheet .chat-wrap{
  flex:1;display:flex;flex-direction:column;
  padding:8px 14px 14px;overflow:hidden;
}
.ai-chat__sheet .chat-messages{
  flex:1;overflow-y:auto;padding:14px 4px;
  -webkit-overflow-scrolling:touch;
}

/* ── Form chips (date / time picker) ──────────────────────────────────────── */
.chip-group{
  display:flex;flex-wrap:wrap;gap:8px;
  padding:6px 0 12px;
}
.chip-pick{
  flex:0 0 auto;
  background:#fff;
  border:1.5px solid var(--border-strong);
  border-radius:12px;
  padding:9px 14px;
  font-family:var(--ff-body);font-size:13px;font-weight:600;
  color:var(--text);letter-spacing:-.1px;
  cursor:pointer;
  transition:all var(--t-fast);
  display:inline-flex;flex-direction:column;align-items:center;gap:1px;
  line-height:1.15;
}
.chip-pick small{font-size:10px;color:var(--muted);font-weight:500}
.chip-pick:active{transform:scale(.94)}
.chip-pick:hover{border-color:var(--red);color:var(--red)}
.chip-pick--on{
  background:var(--mesh-red);color:#fff;border-color:transparent;
  box-shadow:var(--shadow-glow);
}
.chip-pick--on small{color:rgba(255,255,255,.85)}

/* Form labels — премиум-типографика */
.cart-form label{
  display:block;font-size:13px;font-weight:600;color:var(--text-2);
  margin-top:14px;margin-bottom:6px;letter-spacing:-.1px;
}
.cart-form label:first-child{margin-top:0}
.lbl-req{color:var(--red);font-weight:700}
.lbl-hint{color:var(--muted);font-size:11px;font-weight:500;margin-left:4px}

/* Empty states — общие */
.empty-state{
  text-align:center;padding:48px 24px;color:var(--muted);
}
.empty-state__ic{
  width:64px;height:64px;margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center;
  background:var(--red-xl);border-radius:50%;
  color:var(--red);
}
.empty-state__h{font-size:16px;font-weight:700;color:var(--text);margin-bottom:6px;letter-spacing:-.2px}
.empty-state__sub{font-size:13px;line-height:1.5;font-weight:500;max-width:280px;margin:0 auto}
.empty-state__cta{margin-top:16px}

/* ── Birthday promo card ───────────────────────────────────────────────── */
.bday-promo{
  display:flex;gap:14px;
  margin:0 16px 16px;padding:16px;
  background:#fff;
  border:none;border-radius:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  position:relative;
}
.bday-promo::before{display:none}
.bday-promo__ic{
  width:38px;height:38px;flex-shrink:0;
  background:#fff8ec;color:#9c6a06;
  display:flex;align-items:center;justify-content:center;
  border-radius:10px;
}
.bday-promo__body{flex:1;position:relative;z-index:1}
.bday-promo__h{font-size:15px;font-weight:800;color:var(--text);margin-bottom:4px;letter-spacing:-.2px}
.bday-promo__sub{font-size:12px;color:var(--text-2);line-height:1.4;margin-bottom:12px;font-weight:500}
.bday-promo__row{display:flex;gap:8px;align-items:stretch}
.bday-promo__input{
  flex:1;padding:10px 12px;
  border:1.5px solid var(--border-strong);border-radius:10px;
  font-family:var(--ff-body);font-size:13px;font-weight:600;
  background:#fff;color:var(--text);outline:none;
  transition:border-color var(--t-fast);
}
.bday-promo__input:focus{border-color:var(--gold)}
.bday-promo__btn{
  width:auto;flex:0 0 auto;margin:0;
  padding:10px 18px;font-size:13px;border-radius:10px;
}
.bday-promo__status{font-size:12px;margin-top:8px;color:var(--gold-d);font-weight:600;min-height:14px}

/* Sweet Check Мои билеты на верху клуба — премиум */
/* Sweet Check — единая smart-карточка (task + status) */
.sc-card{
  margin:0 16px 16px;padding:16px;
  background:#fff;color:var(--text);
  border-radius:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  cursor:pointer;
  transition:box-shadow var(--t-fast);
}
.sc-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.08)}
.sc-card__head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:10px;
}
.sc-card__title{
  font-family:'Playfair Display',serif;font-size:16px;font-weight:700;
  color:var(--text);letter-spacing:-.2px;
}
.sc-card__chev{font-size:22px;color:#cfd2d6;font-weight:300}
.sc-card__task-head{margin-bottom:6px}
.sc-card__task-tag{
  font-size:10.5px;font-weight:700;color:var(--gold-d);
  letter-spacing:.5px;text-transform:uppercase;
}
.sc-card__task-h{
  font-size:14px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:4px;
}
.sc-card__task-d{font-size:12.5px;color:#555;line-height:1.5;margin-bottom:8px}
.sc-card__task-reward{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px;
  background:#fff8ec;color:#9c6a06;
  border-radius:8px;font-size:12px;font-weight:700;
}
.sc-card__teaser-h{font-size:14px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:3px}
.sc-card__teaser-d{font-size:12.5px;color:#555;line-height:1.45}
.sc-card__status{
  margin-top:12px;padding-top:12px;
  border-top:1px solid #f1f1f3;
  display:flex;align-items:center;gap:10px;
  font-size:12.5px;
}
.sc-card__status-ic{font-size:14px}
.sc-card__status--cta{color:var(--red);font-weight:600}
.sc-card__status--active{color:var(--text)}
.sc-card__status-num{
  font-family:'Playfair Display',serif;font-size:22px;font-weight:800;
  color:var(--red);line-height:1;font-feature-settings:"tnum" 1;letter-spacing:-1px;
}
.sc-card__status-txt b{color:var(--red);font-weight:700}

/* Старые sc-top-card стили оставлены для backward-compat (не используются) */
.sc-top-card{display:none}

/* ═══ SWEET CHECK PROMO CARD (large hero) ═══════════════════════════════ */
.scp{
  margin:0 16px 16px;background:#fff;
  border-radius:18px;overflow:hidden;
  box-shadow:0 4px 16px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.05);
}

/* Hero block with iPhone photo bg */
.scp__hero{
  position:relative;height:160px;overflow:hidden;
  background:linear-gradient(135deg,#1a0a14 0%, #3a1428 50%, #1a0a14 100%);
}
.scp__hero-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 50%, rgba(255,209,102,.15) 0%, transparent 60%),
    radial-gradient(circle at 80% 30%, rgba(214,31,55,.3) 0%, transparent 50%);
}
/* iPhone illustration (SVG-style через большой emoji + glow) */
.scp__hero::after{
  content:'📱';
  position:absolute;right:-10px;top:-20px;
  font-size:180px;line-height:1;opacity:.85;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.5));
  transform:rotate(-12deg);
  pointer-events:none;
}
.scp__hero-content{
  position:relative;z-index:1;padding:20px 18px;
  color:#fff;
}
.scp__hero-tag{
  font-size:11px;color:rgba(255,255,255,.7);font-weight:600;
  letter-spacing:.6px;text-transform:uppercase;margin-bottom:6px;
}
.scp__hero-prize{
  font-family:'Playfair Display',serif;
  font-size:22px;font-weight:700;color:#fff;
  letter-spacing:-.4px;margin-bottom:10px;line-height:1.15;
  max-width:60%;
}
.scp__hero-date{
  font-size:12px;color:rgba(255,255,255,.85);
  display:inline-block;background:rgba(255,255,255,.12);
  backdrop-filter:blur(8px);
  padding:6px 12px;border-radius:18px;
  border:1px solid rgba(255,255,255,.18);
}
.scp__hero-date b{color:#ffd166;font-weight:800;font-feature-settings:"tnum" 1}

/* Tickets block — большая цифра + подпись */
.scp-tickets{
  display:flex;align-items:center;gap:14px;
  padding:18px;border-bottom:1px solid rgba(0,0,0,.06);
}
.scp-tickets__num{
  font-family:'Playfair Display',serif;font-size:42px;font-weight:800;
  color:var(--red);line-height:1;letter-spacing:-1px;
  font-feature-settings:"tnum" 1;flex-shrink:0;min-width:56px;
}
.scp-tickets__lb{font-size:13px;color:var(--text);line-height:1.4}
.scp-tickets--cta .scp-tickets__num{font-family:inherit;font-size:36px}
.scp-tickets--cta .scp-tickets__lb{color:var(--muted)}

/* Other prizes row */
.scp-prizes{
  display:grid;grid-template-columns:1fr 1fr 1fr 1fr;
  gap:8px;padding:14px 18px;border-bottom:1px solid rgba(0,0,0,.06);
}
.scp-prize{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  font-size:11px;color:var(--muted);font-weight:600;text-align:center;
  letter-spacing:-.1px;
}
.scp-prize::before{content:'';display:block;font-size:0}
.scp-prize{font-size:11px}
.scp-prize > span{display:block;margin-top:2px}
.scp-prize:first-letter,
.scp-prize > :not(span){font-size:24px;line-height:1}

/* Active task block */
.scp-task{padding:14px 18px;border-bottom:1px solid rgba(0,0,0,.06);background:#fffbf3}
.scp-task__tag{
  font-size:11px;color:#9c6a06;font-weight:700;
  letter-spacing:.4px;text-transform:uppercase;margin-bottom:4px;
}
.scp-task__h{font-size:14px;font-weight:600;color:var(--text);margin-bottom:3px}
.scp-task__d{font-size:12.5px;color:var(--muted);line-height:1.4;margin-bottom:8px}
.scp-task__r{
  display:inline-block;font-size:12px;font-weight:700;color:#9c6a06;
  background:#fff8ec;padding:4px 10px;border-radius:8px;
  border:1px solid #f0d990;
}

/* CTA + more buttons */
.scp__cta{
  display:block;width:calc(100% - 32px);margin:14px 16px 8px;
  padding:13px;background:var(--red);color:#fff;
  border:none;border-radius:12px;
  font-size:14px;font-weight:700;cursor:pointer;
  letter-spacing:-.2px;
  box-shadow:0 6px 18px rgba(214,31,55,.25);
  transition:all var(--t-fast);
}
.scp__cta:hover{background:var(--red-d);transform:translateY(-1px)}
.scp__cta:active{transform:scale(.98)}
.scp__more{
  display:block;width:calc(100% - 32px);margin:0 16px 14px;
  padding:10px;background:none;color:var(--muted);
  border:none;font-size:12.5px;cursor:pointer;
}
.scp__more:hover{color:var(--red)}
.sc-top-card::before{
  content:'';position:absolute;inset:0;border-radius:18px;
  padding:1px;background:linear-gradient(135deg,rgba(212,160,64,.55),transparent 50%,rgba(214,31,55,.4));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
}
.sc-top-card__row{display:flex;align-items:center;gap:14px}
.sc-top-card__num{
  width:48px;height:48px;border-radius:12px;flex-shrink:0;
  background:#fff5f7;color:var(--red);
  display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;
  font-family:'Playfair Display',serif;line-height:1;
  font-feature-settings:"tnum" 1;letter-spacing:-1px;
}
.sc-top-card__lb{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.4px;text-transform:uppercase}
.sc-top-card__h{font-size:15px;font-weight:700;color:var(--text);margin-top:3px;line-height:1.3}
.sc-top-card__sub{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}
.sc-top-card--teaser{cursor:pointer}
.sc-top-card__num--gift{background:#fff8ec;color:#9c6a06;font-size:24px}
.sc-top-card__chev{
  margin-left:auto;font-size:22px;color:#cfd2d6;font-weight:300;flex-shrink:0;
}

/* Sweet Check — карточка задания этой недели */
.sc-week-card{
  margin:0 16px 16px;padding:16px;
  background:#fff;
  border-radius:16px;cursor:pointer;
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  border-left:3px solid var(--gold);
  transition:box-shadow var(--t-fast);
}
.sc-week-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.08)}
.sc-week-card__head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:8px;gap:8px;
}
.sc-week-card__tag{
  font-size:10.5px;font-weight:700;color:var(--gold-d);
  letter-spacing:.6px;text-transform:uppercase;
}
.sc-week-card__dates{font-size:11px;color:var(--muted);font-feature-settings:"tnum" 1}
.sc-week-card__h{
  font-size:15px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:6px;
}
.sc-week-card__task{font-size:13px;color:#555;line-height:1.5}
.sc-week-card__reward{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:10px;padding:6px 10px;
  background:#fff8ec;color:#9c6a06;
  border-radius:8px;font-size:12px;font-weight:700;
}
.sc-week-card__rw-ic{font-size:14px}

/* Реферал-карточка — компактнее */
.ref-card{
  display:flex;align-items:center;gap:12px;
  margin:14px;padding:14px 16px;
  background:linear-gradient(135deg, rgba(214,31,55,.06), rgba(212,160,64,.05));
  border:1px solid rgba(214,31,55,.14);
  border-radius:16px;cursor:pointer;
  transition:all var(--t-fast);
}
.ref-card:hover{border-color:rgba(214,31,55,.3);box-shadow:0 6px 18px rgba(214,31,55,.08)}
.ref-card:active{transform:scale(.98)}
.ref-card__ic{
  width:44px;height:44px;border-radius:50%;
  background:rgba(214,31,55,.12);
  display:flex;align-items:center;justify-content:center;font-size:22px;
  flex-shrink:0;
}
.ref-card__body{flex:1;min-width:0}
.ref-card__h{font-size:14px;font-weight:600;color:var(--text);line-height:1.3}
.ref-card__h b{color:var(--red);font-weight:800}
.ref-card__sub{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.35}
.ref-card__btn{
  flex-shrink:0;background:var(--red);color:#fff;border:none;
  padding:9px 12px;border-radius:10px;font-size:12px;font-weight:700;
  cursor:pointer;white-space:nowrap;
}
.ref-card__btn:active{transform:scale(.95)}

/* Магазин наград — preview grid + "Все награды" */
.rewards-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rewards-shop__all{margin-top:12px;width:100%}
/* Modal со всеми наградами */
.shop-modal__h{
  font-family:'Playfair Display',serif;font-size:22px;font-weight:700;
  text-align:center;padding:18px 18px 4px;color:var(--text);
}
.shop-modal__sub{text-align:center;color:var(--muted);font-size:13px;padding:0 18px 14px}
.shop-modal__list{
  padding:0 14px 28px;display:grid;grid-template-columns:1fr 1fr;gap:10px;
}

/* ── Повтор заказа в LK ─────────────────────────────────────────────────── */
.lk-ord__repeat{
  margin-top:8px;width:100%;
  background:#fff;border:1.5px solid var(--red);
  color:var(--red);
  border-radius:10px;padding:8px 12px;
  font-family:var(--ff-body);font-size:12px;font-weight:700;
  cursor:pointer;letter-spacing:-.1px;
  transition:all var(--t-fast);
}
.lk-ord__repeat:hover{background:var(--red);color:#fff;box-shadow:var(--shadow-glow)}
.lk-ord__repeat:active{transform:scale(.96)}

/* ── Wishlist heart на карточке товара ─────────────────────────────────── */
.pcard-pr__wish{
  position:absolute;top:8px;right:8px;
  width:32px;height:32px;border-radius:50%;border:0;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
  color:var(--ink-3);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:all .18s cubic-bezier(.34,1.56,.64,1);
  box-shadow:var(--shadow-xs);
  z-index:2;padding:0;
}
.pcard-pr__wish:active{transform:scale(.85)}
.pcard-pr__wish.on{background:#fff;color:var(--red)}
.pcard-pr__wish.on svg{fill:var(--red);stroke:var(--red);animation:wishPop .35s cubic-bezier(.34,1.56,.64,1)}
@keyframes wishPop{
  0%{transform:scale(1)}
  40%{transform:scale(1.35)}
  100%{transform:scale(1)}
}

/* ── Sort/Price toolbar над сеткой ──────────────────────────────────────── */
.cat-toolbar{
  display:flex;align-items:center;gap:8px;
  padding:0 0 10px;
  flex-wrap:wrap;
}
.cat-toolbar__btn{
  display:inline-flex;align-items:center;gap:6px;
  background:#fff;border:1.5px solid var(--border-strong);
  border-radius:999px;padding:8px 14px;
  font-family:var(--ff-body);font-size:12px;font-weight:600;color:var(--text);
  cursor:pointer;transition:all var(--t-fast);
  letter-spacing:-.1px;
}
.cat-toolbar__btn:hover{border-color:var(--red);color:var(--red)}
.cat-toolbar__btn:active{transform:scale(.94)}
.cat-toolbar__count{margin-left:auto;font-size:12px;color:var(--muted);font-weight:500}

/* ── Popmenu (sort / price выбор) ──────────────────────────────────────── */
.popmenu-overlay{
  position:fixed;inset:0;z-index:500;
  background:rgba(13,6,8,.45);
  backdrop-filter:blur(6px);
  display:flex;align-items:flex-end;justify-content:center;
  animation:fadeUp .22s ease;
}
.popmenu{
  width:100%;max-width:440px;
  background:#fff;border-radius:24px 24px 0 0;
  padding:18px 18px calc(20px + env(safe-area-inset-bottom));
  box-shadow:0 -12px 36px rgba(13,6,8,.15);
  animation:popmenuUp .28s cubic-bezier(.22,1,.36,1);
}
@keyframes popmenuUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
.popmenu__h{
  font-family:var(--ff-body);font-size:13px;font-weight:700;
  color:var(--muted);text-transform:uppercase;letter-spacing:.6px;
  text-align:center;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:10px;
}
.popmenu__item{
  display:block;width:100%;text-align:left;
  background:transparent;border:0;
  padding:13px 14px;
  font-family:var(--ff-body);font-size:15px;font-weight:600;color:var(--text);
  border-radius:12px;cursor:pointer;
  transition:all var(--t-fast);letter-spacing:-.1px;
}
.popmenu__item:hover{background:var(--red-xl);color:var(--red)}
.popmenu__item:active{transform:scale(.98)}
.popmenu__item.on{
  background:var(--red-xl);color:var(--red);
  position:relative;padding-right:36px;
}
.popmenu__item.on::after{
  content:'✓';position:absolute;right:14px;top:50%;transform:translateY(-50%);
  font-weight:800;
}

/* ── Skeleton-карточки каталога (placeholder при загрузке) ──────────────── */
.pcard-pr-skel{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--r);padding:6px;
  box-shadow:var(--shadow-card);
}
.pcard-pr-skel__img{
  aspect-ratio:4/5;border-radius:var(--r-img);
  background:linear-gradient(110deg, #f4f4f5 8%, #fafafb 18%, #f4f4f5 33%);
  background-size:200% 100%;
  animation:skelShimmer 1.4s infinite linear;
}
.pcard-pr-skel__line{
  height:12px;border-radius:6px;margin:10px 6px;
  background:linear-gradient(110deg, #f4f4f5 8%, #fafafb 18%, #f4f4f5 33%);
  background-size:200% 100%;
  animation:skelShimmer 1.4s infinite linear;
}
.pcard-pr-skel__line--w{width:80%}
.pcard-pr-skel__line--n{width:40%;height:14px}
@keyframes skelShimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}

/* ── Order-form: photo upload styles ───────────────────────────────────── */
.of-photo-input{display:block;width:100%}
.of-photo-input__btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:#fff;border:1.5px dashed var(--border-strong);
  border-radius:14px;padding:14px;
  font-family:var(--ff-body);font-size:13px;font-weight:600;color:var(--text);
  cursor:pointer;transition:all var(--t-fast);
  letter-spacing:-.1px;
}
.of-photo-input__btn:hover{border-color:var(--red);color:var(--red);border-style:solid;background:var(--red-xl)}
.of-photo-input__btn:active{transform:scale(.98)}
.of-photo-preview{
  position:relative;margin-top:10px;
  border-radius:14px;overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-soft);
}
.of-photo-preview img{width:100%;height:auto;display:block;max-height:240px;object-fit:contain;background:#000}
.of-photo-preview__rm{
  position:absolute;top:8px;right:8px;
  width:30px;height:30px;border-radius:50%;border:0;
  background:rgba(13,6,8,.7);color:#fff;
  font-size:18px;font-weight:700;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(6px);
}
.of-photo-preview__rm:active{transform:scale(.9)}

/* ── AI chat: clear-button ─────────────────────────────────────────────── */
.ai-chat__head{position:relative}
.ai-chat__clear{
  position:absolute;top:14px;right:54px;
  background:transparent;border:1px solid var(--border-strong);
  border-radius:999px;padding:6px 10px;
  font-family:var(--ff-body);font-size:11px;font-weight:600;color:var(--muted);
  display:inline-flex;align-items:center;gap:4px;
  cursor:pointer;transition:all var(--t-fast);
  letter-spacing:-.1px;
}
.ai-chat__clear:hover{border-color:var(--red);color:var(--red)}
.ai-chat__clear:active{transform:scale(.94)}

/* ── Share product кнопка в карточке ────────────────────────────────────── */
.cat-modal__share{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:auto;margin:0 14px 8px;
  padding:11px 16px;
  border-radius:14px;
}

/* ── Tooltip / hint при тапе на счётчики в шапке ───────────────────────── */
.hdr-c{position:relative}
.hdr-c__tip{
  position:absolute;top:calc(100% + 8px);right:0;
  background:rgba(13,6,8,.92);color:#fff;
  padding:8px 12px;border-radius:8px;
  font-size:11px;font-weight:500;line-height:1.4;
  white-space:nowrap;
  opacity:0;pointer-events:none;
  transition:opacity .2s;
  box-shadow:var(--shadow-md);
}
.hdr-c--show .hdr-c__tip{opacity:1}

/* ── Chip Избранное ───────────────────────────────────────────────────── */
.cat-chip--wish{
  background:linear-gradient(135deg,#fff8f0,#fef0f2);
  border-color:rgba(214,31,55,.2);
  color:var(--red);
}
.cat-chip--wish:hover{background:var(--mesh-red);color:#fff;border-color:transparent}

/* ── Auto-linkified телефоны (через linkifyPhones) ─────────────────────── */
.auto-tel{
  color:var(--red);text-decoration:none;
  border-bottom:1px dashed currentColor;
  font-weight:600;white-space:nowrap;
  transition:all var(--t-fast);
}
.auto-tel:hover{color:var(--red-d);border-bottom-style:solid}
.auto-tel:active{opacity:.7}

/* ── Цены: со скидкой / без ───────────────────────────────────────────── */
.pcard-pr__prices{display:flex;flex-direction:column;gap:0;line-height:1.1}
.pcard-pr__old{
  font-size:11px;font-weight:600;color:var(--muted);
  text-decoration:line-through;
  margin-top:1px;letter-spacing:-.1px;
  -webkit-text-fill-color:initial;background:none;
}
.pcard-pr__hit--sale{background:var(--mesh-red)}
.cat-modal__old{
  font-size:14px;font-weight:600;color:var(--muted);
  text-decoration:line-through;
  margin-left:8px;-webkit-text-fill-color:initial;background:none;color:var(--muted);
}
.cat-modal__pct{
  display:inline-block;
  font-size:12px;font-weight:800;color:#fff;
  background:var(--mesh-red);
  padding:3px 8px;border-radius:8px;
  margin-left:6px;letter-spacing:.3px;vertical-align:middle;
}

/* ── Chip Настроение ──────────────────────────────────────────────────── */
.cat-chip--mood{
  background:linear-gradient(135deg,#fff8e8,#fefaf0);
  border-color:rgba(200,146,50,.3);
  color:var(--gold-d);
}
.cat-chip--mood:hover{background:var(--mesh-gold);color:#fff;border-color:transparent}

/* ═══════════════════════════════════════════════════════════════════════════
   CLUB v4 — Apple Wallet minimal overrides
   Все .loy-hero, .hiw, .sc-card, .lk-card, .club-benefits, .acc, .pcard,
   .club-sticky, .bday-promo, .ob-card  внутри #tab-club переопределяются.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Tokens специфично для Apple-стиля */
#tab-club{
  --ap-ink:        #0a0a0a;
  --ap-ink-2:      #3c3c43;
  --ap-grey:       #6e6e73;
  --ap-grey-2:     #98989d;
  --ap-grey-3:     #c7c7cc;
  --ap-hairline:   rgba(60,60,67,.12);
  --ap-bg:         #f2f2f7;
  --ap-card:       #fff;
  --ap-red:        #d61f37;
  --ap-radius:     14px;
  --ap-pad:        20px;
}

/* Page background — Apple grey */
#tab-club.active{background:#f2f2f7}

/* Apple system font везде в клубе (Inter fallback на не-Apple платформах) */
#tab-club, #tab-club *{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Helvetica Neue",system-ui,sans-serif;
}
/* Убираем Playfair из всего клуба */
#tab-club .loy-hero__name,
#tab-club .lk-card__bal-num,
#tab-club .ob-card__h,
#tab-club .club-benefits__h,
#tab-club .sc-card__title{
  font-family:inherit;
  letter-spacing:-.5px;
}

/* ── Hero pass — Apple Wallet style ────────────────────────────────────── */
#tab-club .loy-hero{
  background:#fff;
  color:var(--ap-ink);
  border-radius:var(--ap-radius);
  padding:20px;margin:16px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  border:none;
}
#tab-club .loy-hero::before,
#tab-club .loy-hero::after{display:none}

#tab-club .loy-hero__top{margin-bottom:16px;align-items:flex-start}
#tab-club .loy-hero__hi{
  font-size:11px;font-weight:600;color:var(--ap-grey);
  text-transform:uppercase;letter-spacing:.6px;
}
#tab-club .loy-hero__name{
  font-size:28px;font-weight:700;color:var(--ap-ink);
  letter-spacing:-.8px;line-height:1.05;margin-top:4px;
}

/* Level chip — monochrome */
#tab-club .loy-hero__lvl{
  background:#f2f2f7;
  border:none;
  color:var(--ap-ink);
  padding:6px 10px;border-radius:8px;
  font-size:12px;font-weight:600;gap:6px;
  letter-spacing:-.1px;
}
#tab-club .loy-hero__lvl-ic{display:none}
#tab-club .loy-hero__lvl-name{color:var(--ap-ink);font-weight:600}
#tab-club .loy-hero__lvl-pct{
  background:transparent;color:var(--ap-grey);
  padding:0;font-weight:600;font-size:12px;
}
#tab-club .loy-hero__lvl-pct::before{content:'· '}

/* Progress — thin Apple-style hairline */
#tab-club .loy-hero__prog{margin-top:0;padding-top:16px;border-top:1px solid var(--ap-hairline)}
#tab-club .loy-hero__prog-bar{
  height:4px;border-radius:2px;background:#f2f2f7;overflow:hidden;
}
#tab-club .loy-hero__prog-fill{
  background:var(--ap-red);border-radius:2px;
  animation:none;
}
#tab-club .loy-hero__prog-txt{
  font-size:13px;color:var(--ap-grey);margin-top:10px;text-align:left;
}
#tab-club .loy-hero__prog-txt b{color:var(--ap-ink);font-weight:600}

/* ДР chip — monochrome  */
#tab-club .loy-hero__bday{
  margin:14px 0 0;
  background:#f2f2f7;
  border:none;color:var(--ap-ink);
  padding:8px 12px;border-radius:10px;
  font-size:13px;font-weight:500;
}
#tab-club .loy-hero__bday-ic{font-size:13px;color:var(--ap-grey)}

/* ── How it works — Apple Wallet-like row tiles ──────────────────────────── */
#tab-club .how-it-works{
  display:grid;grid-template-columns:1fr 1fr 1fr;
  gap:8px;padding:0 16px 16px;
}
#tab-club .hiw{
  background:#fff;border-radius:var(--ap-radius);padding:16px 10px;text-align:center;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  border:none;
}
#tab-club .hiw:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}
#tab-club .hiw__ic{
  width:32px;height:32px;margin:0 auto 8px;
  display:flex;align-items:center;justify-content:center;
  color:var(--ap-red);font-size:0;
}
#tab-club .hiw__ic svg{width:24px;height:24px}
#tab-club .hiw__t{font-size:12.5px;font-weight:600;color:var(--ap-ink);letter-spacing:-.1px}
#tab-club .hiw__s{font-size:11px;color:var(--ap-grey);margin-top:3px;line-height:1.35}
#tab-club .hiw__s b{color:var(--ap-ink);font-weight:600}

/* ── Sweet Check smart card — Apple list row ─────────────────────────────── */
#tab-club .sc-card{
  margin:0 16px 16px;padding:18px 20px;background:#fff;
  border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  cursor:pointer;
}
#tab-club .sc-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}
#tab-club .sc-card__head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:14px;
}
#tab-club .sc-card__title{
  font-size:15px;font-weight:700;color:var(--ap-ink);letter-spacing:-.3px;
}
#tab-club .sc-card__chev{color:var(--ap-grey-2);font-size:20px;font-weight:600}
#tab-club .sc-card__task-tag{
  font-size:11px;font-weight:600;color:var(--ap-grey);
  letter-spacing:.4px;text-transform:uppercase;
}
#tab-club .sc-card__task-h{
  font-size:14px;font-weight:600;color:var(--ap-ink);margin:6px 0 4px;
}
#tab-club .sc-card__task-d{font-size:13px;color:var(--ap-grey);line-height:1.4;margin-bottom:10px}
#tab-club .sc-card__task-reward{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;background:#f2f2f7;color:var(--ap-ink);
  border-radius:8px;font-size:12px;font-weight:600;
}
#tab-club .sc-card__teaser-h{font-size:14px;font-weight:600;color:var(--ap-ink);line-height:1.3;margin-bottom:4px}
#tab-club .sc-card__teaser-d{font-size:13px;color:var(--ap-grey);line-height:1.4}
#tab-club .sc-card__status{
  margin-top:14px;padding-top:14px;
  border-top:1px solid var(--ap-hairline);
  font-size:13px;color:var(--ap-grey);
}
#tab-club .sc-card__status--cta{color:var(--ap-red);font-weight:600}
#tab-club .sc-card__status-ic{display:inline-flex;align-items:center;margin-right:6px}
#tab-club .sc-card__status-ic svg{width:14px;height:14px}
#tab-club .sc-card__status-num{
  font-size:22px;font-weight:700;color:var(--ap-ink);letter-spacing:-.5px;
  margin-right:8px;
}
#tab-club .sc-card__status-txt{color:var(--ap-ink)}
#tab-club .sc-card__status-txt b{color:var(--ap-ink);font-weight:600}

/* Verified badge рядом с именем */
#tab-club .loy-hero__verified{
  display:inline-flex;vertical-align:middle;margin-left:6px;
  color:#0a84ff;
}
#tab-club .loy-hero__verified svg{width:18px;height:18px;display:block}
#tab-club .loy-hero__name{display:flex;align-items:center;gap:6px}

/* ── LK card — Apple Wallet pass ─────────────────────────────────────────── */
#tab-club .lk-card{
  margin:0 16px 16px;padding:24px 20px 18px;background:#fff;
  border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
#tab-club .lk-card__bal-block{text-align:left;padding:0 0 14px;border-bottom:1px solid var(--ap-hairline);margin-bottom:14px}
#tab-club .lk-card__use-btn{
  margin-top:14px;padding:10px 16px;
  background:var(--ap-red);color:#fff;border:none;
  border-radius:10px;
  font-size:13px;font-weight:600;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
  transition:background var(--t-fast);letter-spacing:-.2px;
}
#tab-club .lk-card__use-btn:hover{background:#b51a2f}
#tab-club .lk-card__use-btn:active{transform:scale(.98)}
#tab-club .lk-card__all-orders{
  display:block;width:100%;margin-top:10px;padding:10px;
  background:none;border:1px solid var(--ap-hairline);
  border-radius:10px;font-size:13px;font-weight:600;
  color:var(--ap-red);cursor:pointer;
}
#tab-club .lk-card__all-orders:hover{background:#f2f2f7;border-color:transparent}
#tab-club .lk-card__hint-row{
  margin-top:10px;font-size:11.5px;color:var(--ap-grey-2);text-align:right;
}
#tab-club .lk-card__empty{margin-top:10px;padding:8px 0;text-align:left}
#tab-club .lk-card__empty-h{font-size:14px;font-weight:600;color:var(--ap-ink);margin-bottom:3px}
#tab-club .lk-card__empty-s{font-size:12px;color:var(--ap-grey)}

/* Order rows — Apple list style + status tags */
#tab-club .lk-ord{
  padding:10px 0;font-size:13px;color:var(--ap-ink);
  border-top:1px solid var(--ap-hairline);
}
#tab-club .lk-ord:first-of-type{border-top:none;padding-top:6px}
#tab-club .lk-ord__row{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  margin-bottom:4px;
}
#tab-club .lk-ord__row:last-child{margin-bottom:0}
#tab-club .lk-ord__id{font-weight:600;color:var(--ap-ink);font-feature-settings:"tnum" 1}
#tab-club .lk-ord__dt{color:var(--ap-grey);font-size:12px}
#tab-club .lk-ord__sum{font-weight:600;color:var(--ap-ink);font-feature-settings:"tnum" 1}
#tab-club .lk-ord__items{
  flex:1;color:var(--ap-grey);font-size:12px;line-height:1.4;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#tab-club .lk-ord__repeat{
  margin-top:8px;width:100%;padding:8px;
  background:none;border:1px solid var(--ap-hairline);
  border-radius:8px;font-size:12px;color:var(--ap-ink);cursor:pointer;
}
#tab-club .lk-ord--cancel{opacity:.6}
#tab-club .lk-ord--cancel .lk-ord__sum{text-decoration:line-through}

/* Order status tags */
.ord-tag{
  display:inline-flex;align-items:center;
  font-size:10.5px;font-weight:600;
  padding:2px 7px;border-radius:6px;
  white-space:nowrap;letter-spacing:-.1px;
}
.ord-tag--done{background:rgba(52,199,89,.12);color:#0a8a36}
.ord-tag--active{background:rgba(10,132,255,.1);color:#0a84ff}
.ord-tag--pending{background:rgba(255,159,10,.12);color:#b86200}
.ord-tag--cancelled{background:#f2f2f7;color:var(--ap-grey-2);text-decoration:line-through}
.ord-tag--neutral{background:#f2f2f7;color:var(--ap-grey)}

/* Skeleton placeholders (для загрузки) */
#tab-club .skeleton{
  background:linear-gradient(90deg, #f2f2f7 0%, #e8e8ed 50%, #f2f2f7 100%);
  background-size:200% 100%;
  border-radius:8px;
  animation:skel 1.4s ease-in-out infinite;
}
#tab-club .skeleton-text{height:14px;margin:6px 0;border-radius:6px}
#tab-club .skeleton-text--lg{height:22px;width:60%}
@keyframes skel{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}
#tab-club .lk-card__bal-num{
  font-size:44px;font-weight:700;color:var(--ap-ink);
  letter-spacing:-2px;line-height:1;
}
#tab-club .lk-card__bal-lb{
  font-size:13px;color:var(--ap-grey);margin-top:6px;
  font-weight:500;text-transform:none;letter-spacing:0;
}
#tab-club .lk-card__bal-hint{font-size:11px;color:var(--ap-grey-2);margin-top:3px}
#tab-club .lk-card__tt{
  font-size:11px;color:var(--ap-grey);font-weight:600;
  letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px;
}
#tab-club .lk-ord{
  padding:8px 0;font-size:13px;color:var(--ap-ink);
  border-top:1px solid var(--ap-hairline);
}
#tab-club .lk-ord:first-of-type{border-top:none;padding-top:0}
#tab-club .lk-ord b{color:var(--ap-ink);font-weight:600}

/* ── Привилегии клуба — Apple list rows с группами ──────────────────────── */
#tab-club .club-benefits{
  margin:0 16px 16px;padding:18px 20px;background:#fff;
  border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
#tab-club .club-benefits__h{
  font-size:18px;color:var(--ap-ink);font-weight:700;
  letter-spacing:-.4px;text-transform:none;margin-bottom:18px;
}
#tab-club .cb-group{margin-bottom:18px}
#tab-club .cb-group:last-child{margin-bottom:0}
#tab-club .cb-group__h{
  font-size:11px;color:var(--ap-grey);font-weight:600;
  letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;
}
#tab-club .club-benefits__levels .cb-group__h{margin-top:8px;padding-top:14px;border-top:1px solid var(--ap-hairline)}

/* ── Партнёры preview — отдельный блок наверх ──────────────────────────── */
#tab-club .club-partners{
  margin:0 16px 16px;
}
#tab-club .club-partners__h{
  display:flex;justify-content:space-between;align-items:center;
  padding:0 4px 10px;
}
#tab-club .club-partners__h > span{
  font-size:11px;color:var(--ap-grey);font-weight:600;
  letter-spacing:.5px;text-transform:uppercase;
}
#tab-club .club-partners__all{
  background:none;border:none;cursor:pointer;
  font-size:13px;color:var(--ap-red);font-weight:600;
  padding:4px 6px;border-radius:6px;
}
#tab-club .club-partners__all:hover{background:rgba(214,31,55,.06)}
#tab-club .club-benefits__list{margin-bottom:18px}
#tab-club .club-benefits__list li{
  font-size:14px;color:var(--ap-ink);padding:6px 0;gap:10px;
}
#tab-club .cb-tick{
  background:transparent;color:var(--ap-red);
  font-size:14px;font-weight:600;width:18px;height:18px;
  margin-top:0;
}
#tab-club .club-benefits__levels{
  display:flex;flex-direction:column;gap:0;
  padding-top:0;border-top:1px solid var(--ap-hairline);
}
#tab-club .cb-lvl{
  grid-template-columns:1fr auto auto;gap:10px;
  padding:12px 0;border-bottom:1px solid var(--ap-hairline);font-size:14px;
}
#tab-club .cb-lvl:last-child{border-bottom:none}
#tab-club .cb-lvl-ic{display:none}
#tab-club .cb-lvl-n{color:var(--ap-ink);font-weight:600}
#tab-club .cb-lvl-c{font-size:12px;color:var(--ap-grey)}
#tab-club .cb-lvl-p{
  background:transparent;color:var(--ap-ink);padding:0;
  font-weight:700;font-size:14px;
}
#tab-club .club-benefits__note{
  font-size:12px;color:var(--ap-grey);
  border-top:1px solid var(--ap-hairline);padding-top:14px;
}

/* ── Accordion — iOS settings row style ──────────────────────────────────── */
#tab-club .acc{
  margin:0 16px 8px;background:#fff;
  border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
#tab-club .acc:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}
#tab-club .acc[open]{box-shadow:0 4px 14px rgba(0,0,0,.05)}
#tab-club .acc__sum{
  padding:16px 18px;font-size:15px;font-weight:600;color:var(--ap-ink);
  letter-spacing:-.2px;
}
#tab-club .acc__ic{
  width:30px;height:30px;border-radius:8px;
  background:#f2f2f7;color:var(--ap-red);
  box-shadow:none;
}
#tab-club .acc__ic svg{width:18px;height:18px}
#tab-club .acc__chev{color:var(--ap-grey-2)}
#tab-club .acc__body{font-size:13.5px;color:var(--ap-ink-2);padding:0 18px 18px}

/* ── Partner card — Apple list row ───────────────────────────────────────── */
#tab-club .pcard{
  background:#fff;border:none;
  margin:0;border-radius:0;
  border-bottom:1px solid var(--ap-hairline);
  box-shadow:none;
  padding:14px 18px;
}
#tab-club .pcard:last-of-type{border-bottom:none}
#tab-club #partners-list{
  background:#fff;border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  overflow:hidden;margin-bottom:10px;
}
#tab-club .pcard__logo{
  background:#f2f2f7;border-radius:10px;
  width:44px;height:44px;font-size:18px;
}
#tab-club .pcard__name{font-size:14px;font-weight:600;color:var(--ap-ink)}
#tab-club .pcard__desc{font-size:12px;color:var(--ap-grey);line-height:1.4}
#tab-club .pcard__badge{
  background:#f2f2f7;color:var(--ap-ink);
  padding:3px 8px;border-radius:6px;
  font-size:11px;font-weight:600;
}
#tab-club .pcard__btn{
  margin-top:8px;padding:6px 11px;
  background:#f2f2f7;color:var(--ap-red);
  border:none;border-radius:8px;
  font-size:12px;font-weight:600;
}
#tab-club .pcard__btn:hover{background:var(--ap-red);color:#fff}

/* ── Sticky CTA — fixed позиционирование над bottom-nav ───────────────────── */
#tab-club .club-sticky{
  position:fixed;left:0;right:0;
  bottom:calc(var(--nh, 64px) + env(safe-area-inset-bottom, 0px) + 8px);
  padding:0 16px;
  background:transparent;z-index:30;
  pointer-events:none;
}
#tab-club .club-sticky__btn{
  background:var(--ap-red);color:#fff;
  height:50px;border-radius:14px;
  font-size:15px;font-weight:600;letter-spacing:-.2px;
  pointer-events:auto;
  box-shadow:0 10px 28px -8px rgba(214,31,55,.3), 0 4px 8px rgba(214,31,55,.16);
}
#tab-club .club-sticky__btn:hover{background:#b51a2f}
#tab-club .club-sticky__btn::after{display:none}
/* Резерв места под sticky кнопку внизу клуба */
#tab-club #club-content{padding-bottom:90px}

/* ── Club hero compact (без logo) ────────────────────────────────────────── */
#tab-club .club-hero--compact{
  background:#f2f2f7;
  border-bottom:none;padding:20px 16px 12px;
}
#tab-club .club-hero--compact::after{display:none}
#tab-club .club-hero__h{
  font-family:inherit;font-size:24px;font-weight:700;
  color:var(--ap-ink);letter-spacing:-.6px;
  background:none;-webkit-text-fill-color:initial;color:var(--ap-ink);
}
#tab-club .club-hero__p{
  font-size:11px;color:var(--ap-grey);letter-spacing:.5px;
}

/* ── ОВ-card / bday-promo — Apple light cards ────────────────────────────── */
#tab-club .ob-card,
#tab-club .bday-promo{
  margin:0 16px 16px;background:#fff;
  border-radius:var(--ap-radius);
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  padding:18px 20px;
}
#tab-club .ob-card__h{font-size:15px;font-weight:700;color:var(--ap-ink);letter-spacing:-.3px}
#tab-club .ob-step__num{
  background:#f2f2f7;color:var(--ap-red);width:24px;height:24px;font-size:12px;
}
#tab-club .ob-step__t{font-size:14px;font-weight:600}
#tab-club .ob-step__s{font-size:12px;color:var(--ap-grey)}
#tab-club .bday-promo__ic{background:#f2f2f7;color:var(--ap-red);width:36px;height:36px;border-radius:10px}
