/* ==========================================================================
   v64 — чище и быстрее: без фоновых огоньков и RGB-каймы стекла, лёгкое меню,
   обмен звёзд первой плашкой, знаки-ссылки, оплата по центру с QR, согласие
   внизу, графики со сроками и точкой-пальцем, загрузочный экран на каждой
   странице. Грузится после v63.css; приём :root:not(#v).
   ========================================================================== */

/* 1. Фон листа — только тихая серая сетка. Фиолетовые и розовые точки (под
      стеклом они становились красно-зелёно-синими «тройками») убраны */
:root:not(#v) .sheet{background-image:radial-gradient(circle at 1px 1px,var(--grain) 1px,transparent 1.6px);background-size:22px 22px}

/* 2. Открытое меню: стекло страницы под отогнутым листом — простое размытие
      без SVG-преломления (лист неподвижен, кадры идут только у меню) */
html.nav-open:not(#v) .sheet .glass--refract.glass--live,
:root:not(#v) .sheet.is-peeling .glass--refract.glass--live{-webkit-backdrop-filter:blur(8px) saturate(140%);backdrop-filter:blur(8px) saturate(140%)}
:root:not(#v) .sheet.is-peeling{will-change:auto}

/* 3. Иконка меню — две полоски одной длины */
:root:not(#v) .menu-btn__lines i,
:root:not(#v) .menu-btn__lines i:last-child,
:root:not(#v) .menu-btn:hover .menu-btn__lines i:last-child{width:18px;left:0}

/* 4. Подсказки кнопок шапки Mini App: «открыть в браузере», «развернуть» */
:root:not(#v) [data-tip]{position:relative}
:root:not(#v) [data-tip]::after{content:attr(data-tip);position:absolute;top:calc(100% + 10px);right:0;z-index:90;
  width:max-content;max-width:220px;padding:8px 11px;border-radius:12px;pointer-events:none;
  font:500 12.5px/1.3 var(--f-sans);letter-spacing:0;text-align:left;white-space:normal;
  color:var(--text);background:color-mix(in srgb,var(--bg) 92%,transparent);box-shadow:var(--lq-drop),var(--lq-rim);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  opacity:0;translate:0 -4px;transition:opacity .18s ease,translate .28s var(--spr-soft,ease)}
:root:not(#v) [data-tip]:hover::after,:root:not(#v) [data-tip]:focus-visible::after{opacity:1;translate:0 0;transition-delay:.25s,.25s}
@media (hover:none){:root:not(#v) [data-tip]::after{display:none}}

/* 5. Имя аккаунта в шапке — пилюля по ширине имени, а не круг 40px с обрезкой */
:root:not(#v) .account-btn.is-auth{width:auto;min-width:44px;max-width:200px;padding:0 14px}
:root:not(#v) .account-btn.is-auth .account-btn__icon{max-width:170px;font:600 13px/1 var(--f-sans);letter-spacing:0;
  color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 6. Бегущая строка — под первым экраном, во всю ширину, без отступа над шапкой */
:root:not(#v) .topline--below{position:relative;z-index:2;margin:0;border-top:1px solid color-mix(in srgb,var(--tone,var(--text)) 8%,transparent)}
:root:not(#v) .topline--below .marquee a,:root:not(#v) .topline--below .marquee span{min-height:38px}

/* 7. Плакат «Всё для Telegram и PlayStation»: стикеры не заходят на текст */
@media (max-width:760px){
  :root:not(#v) .band--display .band__inner{padding-top:84px;padding-bottom:88px}
  :root:not(#v) .band--display .sticker--a{top:4px;left:12px;width:70px}
  :root:not(#v) .band--display .sticker--b{bottom:6px;top:auto;right:12px;width:70px}
}

/* 8. Каталог главной: обмен звёзд — первой плашкой; 4 плашки — 4 / 2 / 1 в ряд */
:root:not(#v) .grid--catalog{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1180px){:root:not(#v) .grid--catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:619px){:root:not(#v) .grid--catalog{grid-template-columns:1fr}}
:root:not(#v) .tile--cat-exchange{--art:var(--c-down);--lg-tint:var(--c-down)}
:root:not(#v) .tile--cat-exchange .tile__glow{background:var(--c-down)}

/* 9. Меню: обмен — широкая плашка во всю строку над товарами */
:root:not(#v) .menu__product--wide{grid-column:1 / -1;min-height:88px;align-content:center;padding-right:84px}
:root:not(#v) .menu__product--wide .menu__glyph{top:50%;translate:0 -50%;width:54px;height:54px}

/* 11. Окно согласия — стеклянная полоса внизу по центру */
:root:not(#v) .consent-pop{display:none}
:root:not(#v) .consent-bar{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:120;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;
  width:min(760px,calc(100vw - 32px));padding:14px 14px 14px 16px;border-radius:22px;
  background:color-mix(in srgb,var(--bg) 82%,transparent);box-shadow:var(--lq-drop),var(--lq-rim);
  -webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);
  opacity:0;translate:-50% 18px;transition:opacity .3s ease,translate .5s var(--spr,ease)}
:root:not(#v) .consent-bar.is-in{opacity:1;translate:-50% 0}
:root:not(#v) .consent-bar.is-out{opacity:0;translate:-50% 14px;transition-duration:.22s,.3s}
:root:not(#v) .consent-bar__ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;
  color:var(--violet-hi);background:color-mix(in srgb,var(--violet) 14%,transparent)}
:root:not(#v) .consent-bar__txt{display:grid;gap:3px;min-width:0}
:root:not(#v) .consent-bar__txt b{font:700 14px/1.2 var(--f-sans)}
:root:not(#v) .consent-bar__txt span{font:400 13px/1.45 var(--f-sans);color:var(--text-dim)}
:root:not(#v) .consent-bar__txt a{color:var(--text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
:root:not(#v) .consent-bar__acts{display:flex;gap:8px}
:root:not(#v) .consent-bar__acts .btn{min-height:42px;padding-inline:16px}
@media (max-width:760px){
  :root:not(#v) .consent-bar{grid-template-columns:auto minmax(0,1fr);bottom:calc(92px + env(safe-area-inset-bottom));padding:14px}
  :root:not(#v) .consent-bar__acts{grid-column:1 / -1}
  :root:not(#v) .consent-bar__acts .btn{flex:1}
}

/* 12. «Динамика цен»: выбор срока / номинала — просто текст, полоска снизу */
:root:not(#v) .pulse__var{font-style:normal;color:var(--text-mute);font-weight:500}
:root:not(#v) .pulse__terms{display:flex;gap:18px;margin:14px 2px 0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
:root:not(#v) .pulse__terms::-webkit-scrollbar{display:none}
:root:not(#v) .pulse__term{position:relative;flex:none;padding:6px 0 9px;border:0;background:none;box-shadow:none;cursor:pointer;
  font:600 14px/1 var(--f-sans);color:var(--text-mute);transition:color .2s ease}
:root:not(#v) .pulse__term::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;
  background:var(--line-c,var(--text));transform:scaleX(0);transform-origin:50% 50%;transition:transform .35s var(--spr-soft,ease)}
:root:not(#v) .pulse__term:hover{color:var(--text)}
:root:not(#v) .pulse__term:hover::after{transform:scaleX(.55)}
:root:not(#v) .pulse__term.is-on{color:var(--text)}
:root:not(#v) .pulse__term.is-on::after{transform:scaleX(1)}
/* палец по графику: горизонталь — курсор, вертикаль — прокрутка страницы */
:root:not(#v) .pulse__svg{touch-action:pan-y;-webkit-user-select:none;user-select:none}
:root:not(#v) .pulse__svg.is-pinned .pulse__cursor,:root:not(#v) .pulse__svg.is-pinned .pulse__active{opacity:1}

/* 13. Загрузочный экран на страницах: один знак, без подписей */
:root:not(#v) .intro--page .intro__caption,:root:not(#v) .intro--page .intro__pips,:root:not(#v) .intro--page .intro__skip{display:none}

/* 14. Корзина: чем оплатится строка, выбор перевода */
:root:not(#v) .cart-item>.price{display:flex;align-items:center;justify-content:flex-end;gap:10px}
:root:not(#v) .cart-item__via{font:600 11.5px/1 var(--f-sans);padding:5px 8px;border-radius:999px;white-space:nowrap;
  color:var(--text-dim);background:color-mix(in srgb,var(--tone,var(--text)) 7%,transparent)}
:root:not(#v) .cart-item__via.is-stars{color:var(--c-stars);background:color-mix(in srgb,var(--c-stars) 14%,transparent)}
:root:not(#v) .cart-pay-opts{display:grid;gap:14px;margin-top:18px}
:root:not(#v) .cart-split{display:grid;gap:8px}
:root:not(#v) .cart-split__label{font:600 12px/1 var(--f-sans);letter-spacing:.04em;color:var(--text-mute)}

/* 15. Окно оплаты — по центру страницы (и в развёрнутом Mini App на ПК) */
:root:not(#v) .paywrap{max-width:780px;margin:0 auto}
:root:not(#v) .paywin{display:grid;gap:14px;padding:clamp(18px,3vw,28px);border-radius:28px;
  background:var(--lq-fill);box-shadow:var(--lq-drop),var(--lq-rim)}
:root:not(#v) .paywin__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
:root:not(#v) .paywin__head h3{margin:0 0 4px;font:700 clamp(22px,3vw,28px)/1.1 var(--f-sans)}
:root:not(#v) .paywin__block{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,3vw,26px);align-items:start;
  padding:clamp(14px,2.4vw,20px);border-radius:22px;background:color-mix(in srgb,var(--tone,var(--text)) 4%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tone,var(--text)) 8%,transparent)}
:root:not(#v) .paywin__block--sbp{grid-template-columns:1fr}
:root:not(#v) .paywin__qr{width:clamp(150px,22vw,196px);padding:10px;border-radius:18px;background:#fff;color:#08080a;line-height:0}
:root:not(#v) .paywin__qr svg{display:block;width:100%;height:auto}
:root:not(#v) .paywin__info{display:grid;gap:8px;min-width:0}
:root:not(#v) .paywin__h{margin:0 0 2px;font:700 16px/1.2 var(--f-sans)}
:root:not(#v) .paywin__row{display:grid;gap:4px}
:root:not(#v) .paywin__k{font:600 11.5px/1 var(--f-sans);letter-spacing:.05em;text-transform:uppercase;color:var(--text-mute)}
:root:not(#v) .paywin__v{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:9px 12px;
  border:0;border-radius:14px;cursor:pointer;text-align:left;color:var(--text);
  background:color-mix(in srgb,var(--tone,var(--text)) 6%,transparent);transition:background .2s ease}
:root:not(#v) .paywin__v:hover{background:color-mix(in srgb,var(--tone,var(--text)) 10%,transparent)}
:root:not(#v) .paywin__v code{min-width:0;overflow-wrap:anywhere;font:500 13px/1.35 var(--f-code)}
:root:not(#v) .paywin__row--big .paywin__v code{font:700 clamp(18px,2.4vw,22px)/1.1 var(--f-sans);font-variant-numeric:tabular-nums}
:root:not(#v) .paywin__v .i{flex:none;opacity:.6}
:root:not(#v) .paywin__covers{margin:2px 0 0;font:500 13px/1.4 var(--f-sans);color:var(--text-dim)}
:root:not(#v) .paywin__sum{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0}
:root:not(#v) .paywin__sum b{font:700 clamp(22px,3vw,28px)/1 var(--f-sans);font-variant-numeric:tabular-nums}
:root:not(#v) .paywin__sum span{color:var(--text-dim);font-size:13px}
:root:not(#v) .paywin__acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
:root:not(#v) .paywin__acts .btn{gap:8px}
:root:not(#v) .paywin__orders{display:grid;gap:8px;margin:2px 0 0;padding:0;list-style:none}
:root:not(#v) .paywin__order{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 12px;align-items:center;
  padding:12px 14px;border-radius:16px;background:color-mix(in srgb,var(--tone,var(--text)) 3%,transparent)}
:root:not(#v) .paywin__oid{font:600 12px/1 var(--f-code);color:var(--text-mute)}
:root:not(#v) .paywin__otitle{font:600 14px/1.3 var(--f-sans);min-width:0}
:root:not(#v) .paywin__ohow{font:600 12px/1 var(--f-sans);color:var(--text-mute)}
:root:not(#v) .paywin__ost{grid-column:1 / -1;font:400 13px/1.4 var(--f-sans);color:var(--text-dim)}
:root:not(#v) .paywin__order .fx-pipe{grid-column:1 / -1}
:root:not(#v) .paywin__order.is-delivered .paywin__ost{color:var(--c-down)}
:root:not(#v) .paywin__order.is-bad .paywin__ost,:root:not(#v) .paywin__ost.is-bad{color:var(--c-up)}
:root:not(#v) .paywin__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
:root:not(#v) .paywin__foot .btn{gap:8px}
:root:not(#v) .paywin__done{margin:0}
@media (max-width:560px){
  :root:not(#v) .paywin__block{grid-template-columns:1fr}
  :root:not(#v) .paywin__qr{width:min(220px,62vw);justify-self:center}
}

/* 16. «Ожидает оплаты» над корзиной */
:root:not(#v) .pay-pending{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin:0 0 18px;
  padding:14px 14px 14px 18px;border-radius:20px;background:color-mix(in srgb,var(--violet) 10%,var(--lq-fill));box-shadow:var(--lq-drop),var(--lq-rim)}
:root:not(#v) .pay-pending__dot{width:10px;height:10px;border-radius:50%;background:var(--violet-hi);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--violet-hi) 60%,transparent);animation:pay-ping 1.8s ease-out infinite}
@keyframes pay-ping{to{box-shadow:0 0 0 10px transparent}}
:root:not(#v) .pay-pending__txt{display:grid;gap:3px;min-width:0}
:root:not(#v) .pay-pending__txt b{font:700 15px/1.2 var(--f-sans)}
:root:not(#v) .pay-pending__txt span{font:400 13px/1.4 var(--f-sans);color:var(--text-dim)}
:root:not(#v) .pay-pending__txt i{font-style:normal}
@media (max-width:560px){
  :root:not(#v) .pay-pending{grid-template-columns:auto minmax(0,1fr)}
  :root:not(#v) .pay-pending .btn{grid-column:1 / -1}
}
@media (prefers-reduced-motion:reduce){:root:not(#v) .pay-pending__dot{animation:none}}

/* 17. Админка: поиск пользователя и карточка */
:root:not(#v) .admin-search{display:flex;gap:10px;margin:0 0 18px}
:root:not(#v) .admin-search .input{flex:1;min-width:0}
:root:not(#v) .admin-user{display:grid;gap:14px}
:root:not(#v) .admin-user__head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
:root:not(#v) .admin-user__head h3{margin:0 0 6px}
:root:not(#v) .admin-user__acts{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}
:root:not(#v) .admin-tag{display:inline-block;margin:0 6px 6px 0;padding:4px 9px;border-radius:999px;font:600 12px/1 var(--f-sans);
  background:color-mix(in srgb,var(--tone,var(--text)) 8%,transparent)}
:root:not(#v) .admin-tag--bad{color:var(--c-up);background:color-mix(in srgb,var(--c-up) 14%,transparent)}
:root:not(#v) .admin-tag--ok{color:var(--c-down);background:color-mix(in srgb,var(--c-down) 14%,transparent)}
:root:not(#v) .admin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
:root:not(#v) .admin-kpis div{display:grid;gap:4px;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,var(--tone,var(--text)) 5%,transparent)}
:root:not(#v) .admin-kpis b{font:700 18px/1.1 var(--f-sans);font-variant-numeric:tabular-nums}
:root:not(#v) .admin-kpis span{font-size:12.5px;color:var(--text-dim)}
:root:not(#v) .admin-sub{margin:8px 0 0;font-size:16px}
:root:not(#v) .admin-btn--ok{color:var(--c-down)}

/* 18. Окно оплаты: шаги заказа — одной строкой, без вертикальной «лестницы» */
:root:not(#v) .paywin__order .fx-pipe{display:flex;flex-wrap:wrap;gap:6px 16px;margin:6px 0 0;padding:0}
:root:not(#v) .paywin__order .fx-pipe::before,:root:not(#v) .paywin__order .fx-pipe::after{display:none}
:root:not(#v) .paywin__order .fx-pipe__step{gap:6px;font-size:12px}
:root:not(#v) .paywin__order .fx-pipe__mark{width:12px;height:12px}
:root:not(#v) .paywin__order .fx-pipe__mark svg{width:8px;height:8px}
@media (max-width:560px){
  :root:not(#v) .paywin__order .fx-pipe__step:not(.is-now){font-size:0;gap:0}
}
/* переключатели способа и перевода в сводке — без большого отступа снизу */
:root:not(#v) .cart-pay-opts .seg{margin-bottom:0}
/* узкое окно: под вкладкой графика — только название, срок виден в строке выбора */
@media (max-width:560px){:root:not(#v) .pulse__var{display:none}}
/* незавершённая оплата — точка на значке корзины (шапка и вкладка) */
:root:not(#v) .has-pending{position:relative}
:root:not(#v) .has-pending::before{content:"";position:absolute;top:2px;right:2px;z-index:2;width:9px;height:9px;border-radius:50%;
  background:var(--violet-hi);box-shadow:0 0 0 2px var(--bg)}
