/*
  PreesF cabinet theme override for TMAVPN/Reefox account shell.
  Softens rainbow halo + purple neon toward dark cyan/blue glass.
  Loaded after bundled CSS via index.html patch (see patch_preesf_theme.sh).

  Rules:
  - Dark surfaces ONLY under .is-dark / .dv2.is-dark (never bare :root/body/.dv2).
  - Light theme must keep readable ink on #efefed (neutralize bgv* dark-force).
  - Pass-deck: cyan tiers + gold .pass-card.is-year (Год / Иноагент).
  - No MutationObservers / preesf-violet-force.
*/

/* Accent tokens — safe on both themes (hue only, not page fill) */
:root,
.dark,
html.dark,
body {
  --product-accent: #00eaff !important;
  --product-accent-2: #0077ff !important;
  --product-accent-muted: rgba(0, 234, 255, 0.12) !important;
  --product-accent-border: rgba(0, 234, 255, 0.34) !important;
  --product-shadow-accent: 0 18px 52px rgba(0, 119, 255, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
  --hot: #00eaff !important;
  --blue: #0077ff !important;
  --cyan: #00eaff !important;
  --violet: #0077ff !important;
}

/* Dark page fill — scoped so light theme is not washed out */
:is(.is-dark :is(.rp-layer, .dv2), .dv2.is-dark, .is-rayo-mobile-runtime.is-dark),
html:has(.dv2.is-dark),
body:has(.dv2.is-dark),
#root:has(.dv2.is-dark),
.purple-app:has(.dv2.is-dark) {
  --product-bg: #0a0614 !important;
  --product-bg-elevated: #161022 !important;
  --product-glow-top: radial-gradient(
    circle at 50% -12rem,
    rgba(76, 29, 149, 0.08),
    transparent 38rem
  ) !important;
  --account-page: #0a0614 !important;
  --purple-bg-base: #0a0614 !important;
  --app-bg: #0a0614 !important;
  --account-ink: #f5f4f1 !important;
  --product-text: #f5f8fb !important;
}

/* Light theme — kill bgv* / index dark-force (html/body/.dv2 background #140a24 etc.) */
html:has(.is-light),
body:has(.is-light),
#root:has(.is-light),
.purple-mini-root:has(.is-light),
.purple-app:has(.is-light),
html:has(.dv2.is-light),
body:has(.dv2.is-light),
#root:has(.dv2.is-light),
.purple-mini-root:has(.dv2.is-light),
.purple-app:has(.dv2.is-light),
.purple-app:has(.dv2.is-light) .purple-scroll,
.purple-app:has(.dv2.is-light) .purple-page-stack,
.purple-app:has(.dv2.is-light) .purple-page-stage,
.dv2.is-light,
.rc-shell.is-light,
.rp-layer.is-light,
.is-rayo-mobile-runtime.is-light {
  --product-bg: #efefed !important;
  --product-bg-elevated: #ffffff !important;
  --product-glow-top: none !important;
  --account-page: #efefed !important;
  --purple-bg-base: #efefed !important;
  --app-bg: #efefed !important;
  --account-ink: #141414 !important;
  --account-muted: #686562 !important;
  --product-text: #141414 !important;
  background: #efefed !important;
  background-color: #efefed !important;
  background-image: none !important;
  color: #141414 !important;
}

.purple-app:has(.dv2.is-light),
.purple-app:has(.rc-shell.dv2.is-light) {
  color: #141414 !important;
}

/*
  Nested graphic plates only — keep outer cards + rainbow glow art.
  Targets: .mp-well / *__well around 3D objects (promo, invite, gift, login key).
  Do NOT wipe .dv2-promo / .hm-promo / .pf-invite outer card surfaces.
*/
.mp-well,
.hm-promo__well,
.dv2-promo__well,
.pf-invite__well,
.pf-door .pf-invite__well {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
  outline: 0 !important;
}

.mp-well::before,
.mp-well::after,
.hm-promo__well::before,
.hm-promo__well::after,
.dv2-promo__well::before,
.dv2-promo__well::after,
.pf-invite__well::before,
.pf-invite__well::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* Soften well radius so leftover frame is not a second card */
.mp-well,
.hm-promo__well,
.dv2-promo__well,
.pf-invite__well {
  border-radius: 0 !important;
}

/* Promo labels — theme-aware */
.is-dark .halo__tag,
.dv2.is-dark .halo__tag {
  background: rgba(10, 14, 20, 0.72) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.1),
    0 8px 18px -10px rgba(0, 0, 0, 0.5) !important;
  color: #f4f7fb !important;
}

.dv2.is-light .halo__tag {
  background: rgba(255, 255, 255, 0.82) !important;
  box-shadow:
    inset 0 0 0 1px rgba(20, 20, 20, 0.1),
    0 8px 18px -10px rgba(0, 0, 0, 0.12) !important;
  color: #141414 !important;
}

/* Header logo — muted deep-violet shimmer (not bright lilac) */
.dv2 .dv2-logo,
button.dv2-logo {
  background: linear-gradient(
    90deg,
    #d4d0e0 0%,
    #9b87c4 28%,
    #6b4fa0 50%,
    #9b87c4 72%,
    #d4d0e0 100%
  ) !important;
  background-size: 220% 100% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  animation: appBootShimmer 2.4s linear infinite !important;
  filter: drop-shadow(0 0 12px rgba(76, 29, 149, 0.28)) !important;
}

.dv2.is-light .dv2-logo,
.dv2.is-light button.dv2-logo {
  background: linear-gradient(
    90deg,
    #3b3358 0%,
    #6b4fa0 28%,
    #4c1d95 50%,
    #6b4fa0 72%,
    #3b3358 100%
  ) !important;
  background-size: 220% 100% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  filter: drop-shadow(0 0 8px rgba(76, 29, 149, 0.18)) !important;
}

/* Rainbow rim buttons → cyan/blue gradient border */
.is-rayo-mobile-runtime .mp-seg.is-active,
:is(.rp-layer, .dv2) .mp-seg.is-active {
  background:
    linear-gradient(var(--mobile-control-primary, #0a0e14), var(--mobile-control-primary, #0a0e14))
      padding-box,
    linear-gradient(135deg, #00eaff, #0077ff, #00eaff) border-box !important;
  box-shadow:
    -8px 8px 22px -12px rgba(0, 234, 255, 0.35),
    8px 8px 22px -12px rgba(0, 119, 255, 0.35) !important;
}

.dv2.is-light .mp-seg.is-active {
  background:
    linear-gradient(#ffffff, #ffffff) padding-box,
    linear-gradient(135deg, #00eaff, #0077ff, #00eaff) border-box !important;
}

/* Dark page stage only */
.purple-app:has(.rc-shell.dv2.is-dark) .purple-page-stack,
.purple-app:has(.rc-shell.dv2.is-dark) .purple-page-stage,
html:has(.dv2.is-dark) .purple-page-stack,
html:has(.dv2.is-dark) .purple-page-stage {
  background: #0a0614 !important;
}

.purple-app:has(.rc-shell.dv2.is-light) .purple-page-stack,
.purple-app:has(.rc-shell.dv2.is-light) .purple-page-stage,
html:has(.is-light) .purple-page-stack,
html:has(.is-light) .purple-page-stage {
  background: #efefed !important;
}

/* Live polish: no nested plates / profile keeps home visible */
.dv2-nav {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.pf-list {
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.dv2-portal,
.dv2-profile-layer,
.dv2-profile-layer.is-open {
  background: transparent !important;
  background-image: none !important;
}

/* Contrast: cards lift off deep #0a0614; muted violet glass (not bright lilac) */
.is-dark :is(.rp-layer, .dv2),
.dv2.is-dark {
  --account-surface: #161022 !important;
  --account-surface-soft: #1c1630 !important;
  --account-surface-strong: #221c3a !important;
  --mp-wallet: #161022 !important;
  --mp-wallet-soft: rgba(255, 255, 255, 0.08) !important;
  --mp-wallet-line: rgba(167, 139, 250, 0.18) !important;
}
.dv2.is-dark .dv2-wallet,
.dv2.is-dark .dv2-promo,
.dv2.is-dark button.dv2-promo,
.dv2.is-dark .dv2-app {
  background: #161022 !important;
  box-shadow:
    inset 0 0 0 1px rgba(167, 139, 250, 0.1),
    0 18px 40px -24px rgba(0, 0, 0, 0.65) !important;
}
.dv2.is-dark .dv2-wallet__actions button:not(.mp-hero) {
  background: rgba(76, 29, 149, 0.35) !important;
  border: 1px solid rgba(139, 92, 246, 0.28) !important;
  color: #e8e0f5 !important;
}
.dv2.is-dark .dv2-wallet__actions .mp-hero {
  background:
    linear-gradient(#f5f4f1, #f5f4f1) padding-box,
    linear-gradient(135deg, #9b87c4, #6b4fa0, #4c1d95) border-box !important;
  color: #141118 !important;
}

/* Light surfaces readable (wallet / apps) */
.dv2.is-light .dv2-wallet,
.dv2.is-light .dv2-promo,
.dv2.is-light button.dv2-promo,
.dv2.is-light .dv2-app {
  background: #ffffff !important;
  color: #141414 !important;
  box-shadow:
    inset 0 0 0 1px rgba(20, 20, 20, 0.08),
    0 18px 40px -24px rgba(0, 0, 0, 0.18) !important;
}
.dv2.is-light {
  --account-surface: #ffffff !important;
  --account-surface-soft: #f4f4f2 !important;
  --account-surface-strong: #e8e8e4 !important;
  --mp-wallet: #ffffff !important;
  --mp-wallet-soft: rgba(20, 20, 20, 0.06) !important;
  --mp-wallet-line: rgba(20, 20, 20, 0.12) !important;
}

/* === Pass-deck: period cards (Месяц/3мес/Полгода cyan, Год gold) === */
.checkout-period {
  display: none !important;
}
.pass-deck__tabs {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.pass-card__desc:empty {
  display: none !important;
}

/* Lower tiers: dark cyan glass (not white pearl) */
.dv2 .pass-card.is-pearl,
.dv2 .pass-card.is-titanium,
.dv2 .pass-card.is-onyx,
.rc-shell .pass-card.is-pearl,
.rc-shell .pass-card.is-titanium,
.rc-shell .pass-card.is-onyx {
  border: 1px solid transparent !important;
  background:
    linear-gradient(160deg, #1a1f2a 0%, #0b0d12 55%, #07080c 100%) padding-box,
    linear-gradient(135deg, rgba(0, 234, 255, 0.72), rgba(0, 119, 255, 0.5), rgba(0, 234, 255, 0.72))
      border-box !important;
  box-shadow:
    0 0 0 1px rgba(0, 234, 255, 0.12),
    0 18px 48px -16px rgba(0, 119, 255, 0.35),
    inset 0 1px rgba(255, 255, 255, 0.06) !important;
  color: #f4f7fb !important;
  --card-muted: rgba(220, 230, 240, 0.62) !important;
}

.dv2 .pass-card.is-pearl h3,
.dv2 .pass-card.is-titanium h3,
.dv2 .pass-card.is-onyx h3,
.rc-shell .pass-card.is-pearl h3,
.rc-shell .pass-card.is-titanium h3,
.rc-shell .pass-card.is-onyx h3,
.dv2 .pass-card.is-pearl .pass-card__price,
.dv2 .pass-card.is-titanium .pass-card__price,
.dv2 .pass-card.is-onyx .pass-card__price {
  color: #fff !important;
}

.dv2 .pass-card.is-pearl .pass-card__label,
.dv2 .pass-card.is-titanium .pass-card__label,
.dv2 .pass-card.is-onyx .pass-card__label {
  color: rgba(0, 234, 255, 0.85) !important;
}

.dv2 .pass-card.is-pearl .pass-card__facts,
.dv2 .pass-card.is-titanium .pass-card__facts,
.dv2 .pass-card.is-onyx .pass-card__facts {
  color: rgba(220, 230, 240, 0.7) !important;
}

/* Final tier — Год / Пакет Иноагент (tone year → .is-year) */
.pass-card.is-year,
.dv2 .pass-card.is-year,
.rc-shell .pass-card.is-year {
  border: 1px solid transparent !important;
  background:
    linear-gradient(160deg, #3a2e14 0%, #1a150a 55%, #0c0a06 100%) padding-box,
    linear-gradient(135deg, rgba(212, 175, 55, 0.95), rgba(255, 214, 102, 0.55), rgba(184, 134, 11, 0.9))
      border-box !important;
  box-shadow:
    0 0 0 1px rgba(212, 175, 55, 0.35),
    0 18px 50px rgba(212, 175, 55, 0.22),
    inset 0 1px rgba(255, 230, 150, 0.12) !important;
  color: #fff !important;
  --card-muted: rgba(240, 220, 160, 0.7) !important;
}

.pass-card.is-year .pass-card__label {
  color: #d4af37 !important;
}

.pass-card.is-year h3,
.pass-card.is-year .pass-card__price,
.pass-card.is-year .pass-card__facts {
  color: #fff !important;
}

/* Gold-tint crown / star on year card */
.pass-card.is-year .pass-card__object,
.pass-card.is-year .object-star,
.pass-card.is-year .object-crown {
  filter:
    sepia(0.85) saturate(2.4) hue-rotate(2deg) brightness(1.08)
    drop-shadow(0 14px 16px rgba(120, 80, 0, 0.45)) !important;
}

/* Tabs on dark shop */
.dv2.is-dark .pass-deck__tabs,
.rc-shell.is-dark .pass-deck__tabs {
  background: rgba(18, 22, 30, 0.92) !important;
  border: 1px solid rgba(0, 234, 255, 0.12) !important;
}

.dv2.is-dark .pass-deck__tabs button,
.rc-shell.is-dark .pass-deck__tabs button {
  color: rgba(200, 210, 220, 0.55) !important;
}

.dv2.is-dark .pass-deck__tabs button[aria-pressed="true"],
.rc-shell.is-dark .pass-deck__tabs button[aria-pressed="true"] {
  color: #fff !important;
}

.dv2.is-light .pass-deck__tabs {
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid rgba(20, 20, 20, 0.1) !important;
}

.dv2.is-light .pass-deck__tabs button {
  color: rgba(20, 20, 20, 0.45) !important;
}

.dv2.is-light .pass-deck__tabs button[aria-pressed="true"] {
  color: #141414 !important;
}

/* === light-ink reinforce cab-lightfix === */
html.is-light,
body.is-light,
html.is-light #root,
body.is-light #root,
html.is-light .purple-app,
body.is-light .purple-app,
.purple-app:has(.dv2.is-light),
.purple-app:has(.rc-shell.dv2.is-light),
.dv2.is-light {
  --product-bg: #efefed !important;
  --account-page: #efefed !important;
  --purple-bg-base: #efefed !important;
  --app-bg: #efefed !important;
  --account-ink: #141414 !important;
  --rc-ink: #141414 !important;
  --product-text: #141414 !important;
  color: #141414 !important;
  background-color: #efefed !important;
}
.purple-app:has(.dv2.is-light),
.purple-app:has(.rc-shell.dv2.is-light) {
  color: #141414 !important;
}
.dv2.is-light :is(h1,h2,h3,h4,p,label,a,button,span,li) {
  color: inherit;
}

/* === cab-lightfix2: force home shell ink (overlays already OK) === */
html:has(.dv2.is-light) .purple-app,
html:has(.rc-shell.is-light) .purple-app,
.purple-app:has(.dv2.is-light),
.purple-app:has(.rc-shell.is-light),
.dv2.is-light,
.rc-shell.is-light,
.dv2.is-light .rc-main,
.rc-shell.is-light .rc-main,
.dv2.is-light .purple-page-stage,
.dv2.is-light .purple-page-stack {
  color: #141414 !important;
  --account-ink: #141414 !important;
  --rc-ink: #141414 !important;
  --mp-wallet-ink: #141414 !important;
  --product-text: #141414 !important;
}
.dv2.is-light .dv2-hello,
.dv2.is-light .dv2-hello .mp-two__main,
.dv2.is-light .dv2-hello span,
.dv2.is-light .dv2-wallet,
.dv2.is-light .dv2-wallet *,
.dv2.is-light .dv2-devices,
.dv2.is-light .dv2-devices *,
.dv2.is-light .dv2-apps,
.dv2.is-light .dv2-app,
.dv2.is-light .dv2-app *,
.dv2.is-light .dv2-promo,
.dv2.is-light .dv2-promo *,
.dv2.is-light .dv2-section,
.dv2.is-light .dv2-block,
.dv2.is-light .dv2-row,
.dv2.is-light .dv2-row *,
.dv2.is-light .dv2-nav,
.dv2.is-light .dv2-nav *,
.dv2.is-light .mp-seg,
.dv2.is-light .mp-two,
.dv2.is-light .mp-two *,
.rc-shell.is-light .rc-top,
.rc-shell.is-light .rc-top *,
.rc-shell.is-light .rc-main,
.rc-shell.is-light .rc-main *:not(svg):not(path):not(img):not(canvas) {
  color: #141414 !important;
  -webkit-text-fill-color: #141414 !important;
  opacity: 1 !important;
}
.dv2.is-light .dv2-hello span:not(.mp-two__main),
.dv2.is-light .dv2-promo__copy small,
.dv2.is-light .dv2-wallet__muted,
.rc-shell.is-light .rc-muted {
  color: rgba(20, 20, 20, 0.55) !important;
  -webkit-text-fill-color: rgba(20, 20, 20, 0.55) !important;
}
/* keep logo shimmer fill */
.dv2.is-light .dv2-logo,
.dv2.is-light button.dv2-logo {
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}
.dv2.is-light .dv2-wallet,
.dv2.is-light .dv2-devices,
.dv2.is-light .dv2-apps,
.dv2.is-light .dv2-app,
.dv2.is-light .dv2-promo,
.dv2.is-light button.dv2-promo,
.dv2.is-light .dv2-section,
.dv2.is-light .dv2-block,
.dv2.is-light .dv2-row {
  background-color: #ffffff !important;
  background-image: none !important;
}

/* === PREESF PLATES preesf1791666721 — nested wells only, keep outer cards + glow === */
.mp-well,
.hm-promo__well,
.dv2-promo__well,
.pf-invite__well,
.pf-door .pf-invite__well {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0 !important;
}
.mp-well::before,
.mp-well::after,
.hm-promo__well::before,
.hm-promo__well::after,
.dv2-promo__well::before,
.dv2-promo__well::after,
.pf-invite__well::before,
.pf-invite__well::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* === PREESF AUTH/BENTO PLATES preesf1791666722 === */
.auth__well,
.bento__well,
.auth__visual,
.auth__stage,
.hero__stage {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
  outline: 0 !important;
}
.auth__well::before,
.auth__well::after,
.bento__well::before,
.bento__well::after,
.auth__visual::before,
.auth__visual::after {
  content: none !important;
  display: none !important;
}
