/* SmartFix polish layer (2026-10-21). Overrides only; delete this file + its <link> to roll back. */

/* --- readable minimum text size (was 10-11px) --- */
.shop-footer-card-label, .shop-header-nav-label--short, .shop-dl-btn-arrow, .acc-topbar-lang-btn,
.shop-page-kicker, .shop-pill, .shop-block-label, .shop-dl-pass-label, .shop-footer-kicker,
.acc-topbar-brand-text small, .acc-auth-brand-kicker, .acc-guest-kicker, .ra-login-kicker,
.acc-topbar-balance-label, .acc-guest-kicker {
  font-size: 12px !important;
}

/* --- logged-out cabinet: no avatar chip ("S") in the header --- */
body:not(.acc-authed) .sf-hdr-avatar { display: none !important; }

/* --- small links that were 17-20px tall --- */
.ra-back-link, .acc-auth-switch, .shop-pay-balance-hint-link {
  display: inline-flex; align-items: center; min-height: 32px;
}

/* --- touch screens: every tap target >= 44x44 --- */
@media (pointer: coarse) {
  html:root body { --sf-q: 44px; }
  .acc-topbar-brand, .acc-topbar-lang-btn, .sf-hdr-avatar, .acc-pass-toggle,
  .shop-qty-btn { min-width: 44px !important; min-height: 44px !important; }
  .shop-qty-btn, .sf-hdr-avatar, .acc-pass-toggle { width: 44px !important; height: 44px !important; }
  .shop-dl-btn, .shop-account-tab, .acc-topbar-pill { min-height: 44px !important; }
  label.sf-consent, label.acc-check { min-height: 44px; display: flex; align-items: center; }
  .ra-back-link, .acc-auth-switch, .shop-pay-balance-hint-link { min-height: 44px; }
}

/* --- motion: honour reduced-motion everywhere --- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* CLS: footer stays invisible (no layout counted) until the purchase panel replaced the loader */
/* K: class-based, toggled by refreshModeUI (the :has() version cost ~25% of all selector time on every tab switch) */
html.sf-mode-loading .shop-footer { visibility: hidden; }

/* account mobile: logo sat in the middle of a stretched flex box -> align like /service */
@media (max-width: 900px) {
  html:root body .acc-topbar-brand { justify-content: flex-start !important; }
}

/* E: section switching feels instant — short GPU-only entrance (opacity/transform), no long stagger */
@media (prefers-reduced-motion: no-preference) {
  html.sf-anim .acc-section.is-active { animation-duration: .16s !important; }
  html.sf-anim .acc-section.is-active .acc-dash-panel > *,
  html.sf-anim .acc-section.is-active .acc-orders-panel > * { animation-duration: .2s !important; animation-delay: 0s !important; }
  .ra-panel.is-active { animation: sfRaIn .16s cubic-bezier(.22, 1, .36, 1) backwards; }
}
@keyframes sfRaIn { from { opacity: 0; transform: translate3d(0, 6px, 0); } to { opacity: 1; transform: none; } }

/* resadmin mobile: grid track was sized by the nowrap tab row (556px on a 390px screen) -> content clipped */
.ra-shell > .ra-sidebar, .ra-shell > .ra-main { min-width: 0; }
@media (max-width: 900px) {
  .ra-sidebar .ra-sidebar-nav { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .ra-sidebar .ra-sidebar-nav::-webkit-scrollbar { display: none; }
  .ra-sidebar { flex-wrap: wrap; }
  .ra-sidebar #ra-logout { max-width: 100%; }
  .ra-sidebar .ra-sidebar-foot { flex-wrap: wrap; min-width: 0; max-width: 100%; }
}

/* G: category icons — larger, higher contrast, per-section accent (icons from the v2 set) */
.shop-page .shop-header-nav-icon { width: 36px !important; height: 36px !important; border-radius: 12px !important;
  border-color: rgba(255, 255, 255, 0.12); color: rgba(243,241,249,0.96) !important; }
.shop-page .shop-header-nav-icon .sf-icon, .shop-page .shop-header-nav-icon .sf-icon--nav { width: 22px !important; height: 22px !important; }
.shop-page .shop-header-nav-item[data-nav="oxygen"] .shop-header-nav-icon { color: #c4b5fd !important; }
.shop-page .shop-header-nav-item[data-nav="rent"] .shop-header-nav-icon { color: #b38af0 !important; }
.shop-page .shop-header-nav-item[data-nav="imei"] .shop-header-nav-icon { color: #b586fa !important; }
.shop-page .shop-header-nav-item[data-nav="server"] .shop-header-nav-icon { color: #aa8bfa !important; }
.shop-page .shop-header-nav-item:not(.is-active) .shop-header-nav-icon { opacity: .9; }
@media (max-width: 900px) {
  .shop-page .shop-header-nav-icon { width: 34px !important; height: 34px !important; }
  .shop-page .shop-header-nav-icon .sf-icon, .shop-page .shop-header-nav-icon .sf-icon--nav { width: 20px !important; height: 20px !important; }
}
/* brand marks keep their own colours */
.shop-dl-logo { stroke: none; }

/* G: product screenshots — framed, rounded, softly dimmed on the dark theme, full brightness on hover */
.shop-page .shop-preview-btn { border-radius: 14px; }
.shop-page .shop-preview-shot {
  border-radius: 12px !important;
  outline: 1px solid rgba(255, 255, 255, 0.09); outline-offset: -1px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45), 0 0 0 4px rgba(139,99,241,0.06);
  filter: brightness(0.86) saturate(0.92) !important;
  transition: filter .18s ease, transform .18s ease;
}
@media (hover: hover) {
  .shop-page .shop-preview-btn:hover .shop-preview-shot,
  .shop-page .shop-preview-btn:focus-visible .shop-preview-shot { filter: none !important; transform: translate3d(0, -1px, 0); }
}

/* H1: tablets / landscape phones — short nav labels (full label stays for screen readers) */
@media (min-width: 641px) and (max-width: 1100px) {
  .shop-page .shop-header-nav-label--short { display: block !important; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media (max-width: 1100px) {
  .shop-page .shop-header-nav-label--full { display: block !important; position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
}
/* H1: very narrow phones (≤360) — let "Серверные" fit without ellipsis */
@media (max-width: 360px) {
  .shop-page .shop-header-nav-item { padding-left: 1px !important; padding-right: 1px !important; }
  .shop-page .shop-header-nav-label--short { letter-spacing: -0.035em; }
}

/* I: admin orders skeleton (shown only before the first data arrives) */
.ra-skel-row { display: grid; grid-template-columns: 1.2fr 2fr .8fr; gap: 14px; padding: 16px 14px; border-bottom: 1px solid rgba(255,255,255,.05); }
.ra-skel-row span { height: 12px; border-radius: 6px; background: linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,.11), rgba(255,255,255,.05)); background-size: 200% 100%; animation: ra-skel 1.1s linear infinite; }
@keyframes ra-skel { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .ra-skel-row span { animation: none; } }

/* I: ultrawide / 4K — wider containers, fluid type, more product columns (no CSS zoom) */
@media (min-width: 2200px) {
  .shop-page .shop-header-shell, .shop-page .shop-unified-wrap, .shop-page .shop-footer, .shop-page .shop-site-legal,
  .shop-page .shop-dhru-wrap, .acc-topbar-inner { max-width: clamp(1320px, 74vw, 2560px) !important; }
  .shop-page .shop-page-intro { max-width: clamp(720px, 46vw, 1500px) !important; }
  .shop-page .shop-page-intro h1 { font-size: clamp(44px, 2.3vw, 88px) !important; }
  .shop-page .shop-page-intro p { font-size: clamp(16px, .62vw, 24px) !important; }
  .shop-page .shop-header-nav-item { font-size: clamp(13px, .45vw, 18px) !important; }
  .shop-page .shop-master-inner { grid-template-columns: minmax(360px, 34%) minmax(0, 1fr) !important; }
  .shop-page .shop-master-inner, .shop-page .shop-dhru-grid, .shop-page .shop-footer-grid { font-size: clamp(16px, .5vw, 20px); }
  .shop-page .shop-dhru-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
  .shop-page .shop-dhru-toolbar-main { max-width: none !important; grid-template-columns: minmax(0, 1fr) 320px !important; }
}
@media (min-width: 2200px) {
  .ra-main { max-width: clamp(1280px, 80vw, 2600px) !important; }
  .acc-layout { max-width: clamp(1320px, 74vw, 2560px) !important; grid-template-columns: 320px minmax(0, 1fr) !important; }
  .acc-section { max-width: clamp(920px, 52vw, 1900px) !important; }
  .ra-orders-layout { grid-template-columns: minmax(0, 1.5fr) minmax(420px, 1fr) !important; }
}
@media (min-width: 2800px) { .shop-page .shop-dhru-grid { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; } }
@media (min-width: 3400px) { .shop-page .shop-dhru-grid { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; } }

/* I-M: mobile smoothness — no live blur on scrolling cards, no idle infinite repaint, cheaper offscreen layout */
html { touch-action: manipulation; }
@media (max-width: 900px), (pointer: coarse) {
  .acc-sidebar, .acc-dash-panel, .acc-quick-card, .acc-orders-panel, .acc-support-hero, .acc-support-chip, .acc-support-card,
  .ra-sidebar, .ra-card, .ra-th-check, .ra-table th, .ra-dd-panel, .ra-toast, .shop-lb-onimg, .shop-lightbox-counter {
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background-color: rgba(16,12,26,0.94);
  }
  .shop-dhru-modal-backdrop, .shop-order-modal-backdrop, .shop-guest-creds-backdrop, .shop-lightbox-backdrop,
  .acc-key-modal-backdrop, .acc-welcome-gate-bg {
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  }
  .acc-dash-hero, .acc-support-chip-dot, .ra-login-glow { animation: none !important; }
}
.shop-page .shop-dhru-section { content-visibility: auto; contain-intrinsic-size: auto 720px; }
.shop-page .shop-footer, .shop-page .shop-site-legal { content-visibility: auto; contain-intrinsic-size: auto 600px; }
.shop-page .shop-panel.is-active .shop-dhru-catalog[data-deferred="1"]:empty {
  min-height: 70vh; border-radius: 18px;
  background: linear-gradient(90deg, rgba(255,255,255,.03), rgba(255,255,255,.07), rgba(255,255,255,.03)) 0 0 / 200% 100%;
  animation: ra-skel 1.1s linear infinite;
}

/* I2: explain why payment buttons are disabled until consent is ticked */
.sf-consent:not(:has(.sf-consent-chk:checked)) .sf-consent-text::after {
  content: "Отметьте согласие, чтобы перейти к оплате"; display: block; margin-top: 4px;
  font-size: 12px; font-weight: 600; color: #b289fa;
}
html[lang="en"] .sf-consent:not(:has(.sf-consent-chk:checked)) .sf-consent-text::after { content: "Tick the box to continue to payment"; }
.sf-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* L: phone scroll smoothness (real GPUs: blur / full-screen layers / big shadows cost on every frame).
   Phones & touch tablets only — desktop look untouched. */
@media (max-width: 900px), (hover: none) {
  /* 1. no live blur anywhere (it re-blurs everything behind on every scrolled frame) */
  /* id-level specificity so it beats the existing "html:root body .x { … !important }" rules */
  html:not(#sf-x):not(#sf-y) *, html:not(#sf-x):not(#sf-y) *::before, html:not(#sf-x):not(#sf-y) *::after { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  /* 2. one static background layer instead of 2–4 full-screen fixed layers with drifting blobs */
  .bg::before, .bg::after, .sf-bg::before, .sf-bg::after, .ra-aurora, .shop-orb { animation: none !important; will-change: auto !important; display: none !important; }
  html.account-page .sf-bg ~ .bg, html.account-page .bg ~ .sf-bg { display: none !important; }
  /* 3. stop decorative endless animations (spinners/skeletons keep running) */
  .seg-btn-neogen::before, .seg-btn-neogen.active, .btn-neogen::after, .acc-badge-pulse, .acc-support-chip-dot--live,
  .ra-login-glow, .acc-dash-hero, .shop-master::before { animation: none !important; }
  /* 4. no filters on scrolling content */
  html.shop-page:not(#sf-x) .shop-preview-shot { filter: none !important; transition: none; }
  /* 5. cheap shadows (large blur radii are re-rasterised for every tile that scrolls in) */
  .shop-header-premium, .shop-header-nav, .shop-page-kicker, .shop-master, .shop-preview-btn, .shop-preview-shot,
  .shop-dhru-toolbar, .shop-dhru-card, .shop-footer-card, .acc-topbar, .acc-dash-hero, .acc-dash-panel, .acc-stat-card,
  .acc-quick-card, .acc-order-card, .sf-bnav, .sf-sheet-card, .ra-login-card, .ra-card, .ra-order-row {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.28) !important;
  }
  .shop-preview-btn::after { box-shadow: none !important; }
  /* 6. footer: no fade-in triggered while scrolling, no render-on-scroll-in */
  .shop-page .shop-footer[data-motion] .shop-footer-head, .shop-page .shop-footer[data-motion] .shop-footer-card { opacity: 1 !important; transition: none !important; }
  .shop-page .shop-footer, .shop-page .shop-site-legal { content-visibility: visible; contain-intrinsic-size: none; }
}

/* M: finished entrance animations must not pin cards to their own GPU layers — all devices */
html:not(#sf-x) .acc-stat-grid, html:not(#sf-x) .acc-quick-grid, html:not(#sf-x) .acc-dash-panel > *, html:not(#sf-x) .acc-section.is-active { animation-fill-mode: backwards !important; }
/* M: admin orders — offscreen rows skip layout only until idle time has rendered them (chunked in resadmin-sf.js),
   so the tab opens fast AND scrolling never lays out rows on the fly */
.ra-orders-list > .ra-order-row:not(.ra-full) { content-visibility: auto; contain-intrinsic-size: auto 72px; }

/* P: single-column admin (<=980px) — rows take content height so the top bar doesn't stretch then shrink when data loads */
@media (max-width: 980px) { html:not(#sf-x) #ra-dash { align-content: start; } }
/* P: reserve top-up presets/limits rows until the config loads (no layout shift) */
html:not(#sf-x) #acc-topup-presets:empty { min-height: 42px; }
html:not(#sf-x) #acc-topup-limits:empty { min-height: 18px; }
/* P: reserve profile email + chips rows until the account loads */
html:not(#sf-x) #acc-settings-profile-email:empty { min-height: 20px; }
html:not(#sf-x) #acc-settings-chips:empty { min-height: 27px; }
/* P: EN visitors — hold first paint until the EN strings are applied (no RU->EN reflow); failsafe reveal after 1.5s */
html.sf-i18n-pending body { visibility: hidden; animation: sfI18nReveal 0s linear 1.5s forwards; }
@keyframes sfI18nReveal { to { visibility: visible; } }
/* R: loading reserve for the Oxygen purchase column = its real height per width (was a flat 1040px -> gallery jumped up to 240px) */
@media (max-width: 900px) {
  html.shop-page:not(#sf-x) .shop-master-content:has(> #shop-mode-loading:not([hidden])) { min-height: 805px; }
}
@media (max-width: 767px) { html.shop-page:not(#sf-x) .shop-master-content:has(> #shop-mode-loading:not([hidden])) { min-height: 911px; } }
@media (max-width: 599px) { html.shop-page:not(#sf-x) .shop-master-content:has(> #shop-mode-loading:not([hidden])) { min-height: 972px; } }
@media (max-width: 389px) { html.shop-page:not(#sf-x) .shop-master-content:has(> #shop-mode-loading:not([hidden])) { min-height: 1050px; } }
@media (max-width: 359px) { html.shop-page:not(#sf-x) .shop-master-content:has(> #shop-mode-loading:not([hidden])) { min-height: 1180px; } }
/* R4: same reserve for the very first frames, before shop JS reveals the loader (html not yet .shop-dhru-ready) */
@media (max-width: 900px) { html.shop-page:not(.shop-dhru-ready):not(#sf-x) .shop-master-content:has(> #shop-mode-loading) { min-height: 805px; } }
@media (max-width: 767px) { html.shop-page:not(.shop-dhru-ready):not(#sf-x) .shop-master-content:has(> #shop-mode-loading) { min-height: 911px; } }
@media (max-width: 599px) { html.shop-page:not(.shop-dhru-ready):not(#sf-x) .shop-master-content:has(> #shop-mode-loading) { min-height: 972px; } }
@media (max-width: 389px) { html.shop-page:not(.shop-dhru-ready):not(#sf-x) .shop-master-content:has(> #shop-mode-loading) { min-height: 1050px; } }
@media (max-width: 359px) { html.shop-page:not(.shop-dhru-ready):not(#sf-x) .shop-master-content:has(> #shop-mode-loading) { min-height: 1180px; } }
/* S: no entrance replay on the already-visible section when sf-anim switches on */
html.sf-anim:not(#sf-x) .acc-section.sf-noanim, html.sf-anim:not(#sf-x) .acc-section.sf-noanim * { animation: none !important; }
/* S2: warm-cache boot: hide cabinet until first complete render (space kept) */
html.sf-pre:not(#sf-x) body { visibility: hidden; }
/* S3: admin mobile header + bottom tab bar (≤600px) */
@media (max-width: 600px) {
  html.ra-page:not(#sf-x) .ra-sidebar { position: sticky; top: 0; z-index: 50; flex-wrap: nowrap; height: auto; min-height: 56px; padding: 8px 12px; gap: 8px; align-items: center; background: #0d0a16; }
  html.ra-page:not(#sf-x) .ra-sidebar-brand { flex: 1 1 auto; min-width: 0; gap: 8px; }
  html.ra-page:not(#sf-x) .ra-sidebar-brand .ra-muted { display: none; }
  html.ra-page:not(#sf-x) .ra-sidebar-logo { width: 32px; height: 32px; }
  html.ra-page:not(#sf-x) .ra-sidebar .ra-sidebar-foot { flex: 0 0 auto; flex-wrap: nowrap; flex-direction: row; gap: 6px; margin: 0 0 0 auto; max-width: none; align-items: center; }
  html.ra-page:not(#sf-x) .ra-sidebar-shop, html.ra-page:not(#sf-x) .ra-sidebar-logout { width: auto; flex: 0 0 auto; min-height: 44px; height: 44px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; font-size: 14px; margin: 0; }
  html.ra-page:not(#sf-x) .ra-sidebar-nav { position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom, 0px)); z-index: 60; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; flex: none; width: auto; height: 62px; padding: 4px; overflow: visible; background: rgba(16,12,26,0.94); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,.09); border-radius: 18px; box-shadow: 0 10px 30px rgba(0,0,0,.45); }
  html.ra-page:not(#sf-x) .ra-sidebar-nav .ra-nav-link { flex-direction: column; justify-content: center; align-items: center; gap: 3px; min-height: 52px; min-width: 0; padding: 0 2px; font-size: 11px; line-height: 1.1; white-space: nowrap; border-radius: 14px; text-align: center; }
  html.ra-page:not(#sf-x) .ra-sidebar-nav .ra-nav-ico svg { width: 20px; height: 20px; }
  html.ra-page:not(#sf-x) .ra-main { padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }
}
/* S3: cabinet consent hint is about Telegram sign-in, not payment */
html.account-page .sf-consent:not(:has(.sf-consent-chk:checked)) .sf-consent-text::after { content: "Отметьте согласие, чтобы войти через Telegram"; }
html.account-page[lang="en"] .sf-consent:not(:has(.sf-consent-chk:checked)) .sf-consent-text::after { content: "Tick the box to sign in with Telegram"; }
html.account-page:not(#sf-x) .acc-auth-submit + #acc-guest-alert, html.account-page:not(#sf-x) #acc-tg-login-status + #acc-guest-alert { margin: 10px 0 0; }
/* S3: mobile lightbox — side arrows, caption/counter under the image, full-width image */
@media (max-width: 600px) {
  html.shop-page:not(#sf-x) .shop-lightbox-stage { width: 100vw; max-width: 100vw; padding: 0 0 4px; }
  html.shop-page:not(#sf-x) .shop-lightbox-img { width: 100%; height: auto; max-height: 72vh; object-fit: contain; }
  html.shop-page:not(#sf-x) .shop-lightbox-foot { position: static; inset: auto; background: none; padding: 12px 12px 0; display: flex; flex-direction: column; align-items: center; gap: 8px; }
  html.shop-page:not(#sf-x) .shop-lb-onimg--prev, html.shop-page:not(#sf-x) .shop-lb-onimg--next { top: calc((100% - 74px) / 2); bottom: auto; width: 44px; height: 44px; transform: translateY(-50%) !important; }
  html.shop-page:not(#sf-x) .shop-lb-onimg--prev { left: 8px; right: auto; }
  html.shop-page:not(#sf-x) .shop-lb-onimg--next { right: 8px; left: auto; }
  html.shop-page:not(#sf-x) .shop-lb-onimg--prev .shop-lb-onimg-icon { transform: rotate(135deg) !important; margin: 0 0 0 5px !important; }
  html.shop-page:not(#sf-x) .shop-lb-onimg--next .shop-lb-onimg-icon { transform: rotate(-45deg) !important; margin: 0 5px 0 0 !important; }
  html.shop-page:not(#sf-x) .shop-lb-onimg--close { position: fixed; top: calc(10px + env(safe-area-inset-top, 0px)); right: 10px; }
}
@media (max-width: 600px) { html.shop-page:not(#sf-x) .shop-lightbox-backdrop { background: rgba(6,4,12,0.95); } }
/* S3: version dropdown never runs under the sticky Buy bar */
html.shop-page.sf-vdd-open:not(#sf-x) body .shop-sticky-buy:not(.sf-nx) { transform: translateY(130%); opacity: 0; pointer-events: none; transition: transform .18s ease, opacity .18s ease; }
html.shop-page:not(#sf-x) .shop-version-dd-menu { max-height: min(320px, 55vh); overscroll-behavior: contain; }
/* S3: navigation feedback */
html.sf-navigating:not(#sf-x) body::before { content: ""; position: fixed; left: 0; top: 0; height: 3px; width: 100%; z-index: 2147483000; pointer-events: none; background: linear-gradient(90deg, #9973f9, #7c38e1); transform-origin: 0 50%; animation: sfNavBar 1.6s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes sfNavBar { from { transform: scaleX(.08); } to { transform: scaleX(.9); } }
html:not(#sf-x) a.sf-nav-pressed { opacity: .72; transform: scale(.97); transition: transform .08s ease, opacity .08s ease; }
@media (prefers-reduced-motion: reduce) { html.sf-navigating:not(#sf-x) body::before { animation: none; transform: scaleX(.6); } }
/* S3: cross-document VT — header/logo/nav never fade in (no "cabinet without logo" after Back); whole transition ≤180ms so taps are not swallowed */
::view-transition-group(sf-brand), ::view-transition-group(sf-nav) { animation-duration: 0s !important; }
::view-transition-old(sf-brand), ::view-transition-old(sf-nav) { display: none; }
::view-transition-new(sf-brand), ::view-transition-new(sf-nav) { animation: none !important; }
::view-transition-group(*) { animation-duration: 180ms; }
/* S3: state changes made while the cabinet is still hidden must not animate after reveal */
html.sf-pre:not(#sf-x) body *, html.sf-pre:not(#sf-x) body *::before, html.sf-pre:not(#sf-x) body *::after { transition: none !important; animation-delay: 0s !important; animation-duration: 0s !important; }
/* S3: admin warm boot hidden until first complete render */
html.ra-pre:not(#sf-x) body { visibility: hidden; }
html.ra-pre:not(#sf-x) body *, html.ra-pre:not(#sf-x) body *::before, html.ra-pre:not(#sf-x) body *::after { transition: none !important; animation-delay: 0s !important; animation-duration: 0s !important; }
/* S3: no panel entrance animation on (warm) reload — only on a user tab tap */
html.ra-page:not(.ra-user-nav):not(#sf-x) .ra-panel.is-active { animation: none !important; }
/* S4: section switch = one short fade, no staggered card re-animation (all viewports) */
html.sf-anim:not(#sf-x) .acc-section.is-active { animation-duration: .14s !important; }
html.sf-anim:not(#sf-x) .acc-section.is-active .acc-dash-panel > *, html.sf-anim:not(#sf-x) .acc-section.is-active .acc-orders-panel > * { animation: none !important; }
/* S4: active-section highlight switches instantly (no tween after tap) */
html.account-page:not(#sf-x) .acc-nav-link, html.account-page:not(#sf-x) .acc-nav-link .acc-nav-ico { transition: none !important; }
html:not(#sf-x) .acc-topbar-lang-btn { transition: none !important; }
/* S4: cross-document swap is instant (no root cross-fade that stretches to ~700ms on slow phones) */
::view-transition-old(root), ::view-transition-new(root) { animation: none !important; }
/* S4: section switch without any re-animation */
html.sf-anim:not(#sf-x) .acc-section.is-active { animation: none !important; }

/* C: shop item in the mobile bottom nav */
html.account-page .sf-bnav-shop{text-decoration:none;color:inherit}
/* T1: original segmented header toggle "Магазин | Кабинет" on the cabinet too — same place/size as on the shop */
@media (max-width:767px){html.account-page:not(#sf-x) .acc-topbar-inner{flex-wrap:wrap!important;padding-left:12px!important;padding-right:12px!important}
 html.account-page:not(#sf-x) .acc-topbar-nav{padding:3px!important;box-sizing:border-box!important;margin-top:1px!important}
 html.account-page:not(#sf-x) .acc-topbar-nav{display:flex!important}
 html.account-page:not(#sf-x) .acc-topbar-nav{order:3!important;flex:0 0 100%!important;width:100%!important;max-width:none!important;margin:0!important;justify-content:stretch!important}
 html.account-page:not(#sf-x) .acc-topbar-nav .acc-topbar-pill{display:inline-flex!important;flex:1 1 0!important}}
/* C3: 6-item bottom nav fits at 360 */
@media (max-width:380px){html.account-page:not(#sf-x) .sf-bnav-lbl{font-size:.66rem!important;letter-spacing:-.01em;overflow:visible!important;text-overflow:clip!important}html.account-page:not(#sf-x) .sf-bnav-item{padding-left:2px!important;padding-right:2px!important;min-width:0!important}}

/* Q1: 3 quick-action tiles (shop tile removed) — reflow without gaps */
html.account-page:not(#sf-x) .acc-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media (max-width:900px){html.account-page:not(#sf-x) .acc-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 html.account-page:not(#sf-x) .acc-quick-grid>.acc-quick-card:last-child:nth-child(odd){grid-column:1/-1}}
@media (max-width:480px){html.account-page:not(#sf-x) .acc-quick-grid{grid-template-columns:1fr!important}}

/* S9: no wrong USDT before the rate is known (space kept, no shift) */
html.sf-norate .acc-balance-usdt,html.sf-norate .acc-balance-eq{visibility:hidden!important}
html.sf-norate .acc-balance-usdt:empty{display:inline-block;min-width:5.5em}

/* CUR1: amount waiting for the USD rate (EN) — space kept, nothing wrong shown */
.sf-cur-pending{visibility:hidden!important}

/* CUR2: EN shows ONE amount in $ — hide the duplicate secondary figure (display only) */
html[lang="en"]:not(#sf-x):not(#sf-y) .acc-balance-eq,html[lang="en"]:not(#sf-x):not(#sf-y) .acc-balance-rub,html[lang="en"]:not(#sf-x):not(#sf-y) .shop-price-rub-note,html[lang="en"]:not(#sf-x):not(#sf-y) .shop-dhru-card-usdt{display:none!important}

/* TB4: tab bar switches instantly (no indicator/icon transition frames) */
html.shop-page:not(#sf-x) .shop-header-nav-item,html.shop-page:not(#sf-x) .shop-header-nav-item *,html.shop-page:not(#sf-x) .shop-header-nav-item::before,html.shop-page:not(#sf-x) .shop-header-nav-item::after{transition:none!important;animation:none!important}

/* TB11: cabinet bottom nav switches its active item instantly (no highlight transition frames) */
html.account-page:not(#sf-x) .sf-bnav,html.account-page:not(#sf-x) .sf-bnav *,html.account-page:not(#sf-x) .sf-bnav *::before,html.account-page:not(#sf-x) .sf-bnav *::after{transition:none!important;animation:none!important}
