:root {
  --bg: #07090c;
  --header: #0b0e13;
  --surface: #10141a;
  --card: #131820;
  --text: #f4f6f8;
  --muted: #98a0ab;
  --gold: #f4f6f8;
  --gold2: #cfd5dc;
  --green: #72d79a;
  --line: rgba(255, 255, 255, 0.08);
  --shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
  --radius: 20px;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, input, select { font: inherit; }
img { max-width: 100%; }
.hidden { display: none !important; }
.grow { flex: 1; }
.muted { color: var(--muted); }

.boot-screen {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 14px;
  background:
    radial-gradient(circle at 50% 20%, rgba(255, 255, 255, 0.06), transparent 35%),
    linear-gradient(180deg, #030303, #0a0908 40%, #0e0c0a);
  transition: opacity .38s ease, visibility .38s ease;
}
.boot-screen.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.boot-screen.error .boot-copy {
  border-color: rgba(255, 120, 120, .3);
  background: rgba(30, 12, 12, .78);
}
.boot-scene {
  position: relative;
  width: min(100%, 470px);
  aspect-ratio: 942 / 2048;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
  background: #000;
}
.boot-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.95) contrast(1.04);
}
.boot-overlay,
.boot-copy {
  position: absolute;
  inset: 0;
}
.boot-overlay { pointer-events: none; }
.boot-copy {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px 20px calc(24px + env(safe-area-inset-bottom));
}
.boot-copy::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 36%;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .82) 44%, rgba(0, 0, 0, .92));
  z-index: 0;
}
.boot-copy > * { position: relative; z-index: 1; }
.boot-badge {
  display: inline-flex;
  align-self: flex-start;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(8, 8, 8, .4);
  color: rgba(255, 255, 255, .88);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}
.boot-copy h1 {
  margin: 14px 0 8px;
  font-size: clamp(28px, 5.4vw, 38px);
  line-height: 1;
  letter-spacing: -.03em;
  text-shadow: 0 3px 18px rgba(0, 0, 0, .55);
}
.boot-copy p {
  margin: 0;
  max-width: 270px;
  color: rgba(255, 255, 255, .82);
  font-size: 14px;
  line-height: 1.45;
}

.shooting-star {
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 999px;
  background: #fff;
  opacity: 0;
  filter: drop-shadow(0 0 8px rgba(255, 255, 255, .9));
}
.shooting-star::before {
  content: "";
  position: absolute;
  inset: -1px auto auto -1px;
  width: 92px;
  height: 2px;
  background: linear-gradient(90deg, rgba(255,255,255,.95), rgba(255,255,255,.4), transparent);
  transform-origin: left center;
}
.star-a { top: 17%; left: 68%; animation: shootingStar 14s linear infinite; animation-delay: 3s; }
.star-b { top: 34%; left: 78%; animation: shootingStar 18s linear infinite; animation-delay: 8s; }
.star-c { top: 24%; left: 50%; animation: shootingStar 20s linear infinite; animation-delay: 13s; }

.boot-sign-glitch {
  position: absolute;
  left: 67.48%;
  top: 56.52%;
  width: 16.47%;
  height: 5.38%;
  overflow: hidden;
  filter: drop-shadow(0 0 5px rgba(255,255,255,.25));
}
.sign-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sign-main { animation: signMainGlitch 9s infinite steps(1, end); }
.sign-red {
  opacity: 0;
  mix-blend-mode: screen;
  filter: sepia(1) saturate(8) hue-rotate(320deg) contrast(1.2);
  clip-path: inset(0 0 55% 0);
  animation: signRedGlitch 9s infinite steps(1, end);
}
.sign-cyan {
  opacity: 0;
  mix-blend-mode: screen;
  filter: sepia(1) saturate(8) hue-rotate(145deg) contrast(1.2);
  clip-path: inset(48% 0 0 0);
  animation: signCyanGlitch 9s infinite steps(1, end);
}
.boot-person {
  position: absolute;
  left: 15.41%;
  top: 52.51%;
  width: 6.06%;
  height: 10.41%;
  object-fit: contain;
  transform-origin: 50% 100%;
  animation: personWalk 8.8s ease-in-out infinite;
  filter: drop-shadow(0 0 2px rgba(255,255,255,.16));
}
.boot-smoke {
  position: absolute;
  left: 18.8%;
  top: 53.2%;
  width: 9%;
  height: 10%;
  pointer-events: none;
}
.boot-smoke i {
  position: absolute;
  bottom: 68%;
  left: 12%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.55), rgba(255,255,255,.18) 58%, transparent 78%);
  opacity: 0;
  filter: blur(1px);
}
.boot-smoke i:nth-child(1) { animation: smokeFloat 7s ease-in-out infinite; }
.boot-smoke i:nth-child(2) { animation: smokeFloat 7s ease-in-out infinite 2.3s; }
.boot-smoke i:nth-child(3) { animation: smokeFloat 7s ease-in-out infinite 4.6s; }

.app-shell {
  width: min(100%, 480px);
  min-height: 100vh;
  margin: 0 auto;
  background: linear-gradient(180deg, var(--header), var(--bg) 260px);
  padding-bottom: 92px;
}
.topbar {
  height: 112px;
  padding: calc(20px + env(safe-area-inset-top)) 22px 18px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.eyebrow { font-size: 12px; color: var(--muted); margin-bottom: 3px; }
.topbar h1 { margin: 0; font-size: 30px; letter-spacing: -1px; }
.icon-btn, .close {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .03);
  color: var(--text);
  font-size: 23px;
}
.screen { display: none; padding: 0 16px 28px; }
.screen.active { display: block; }
.hero-card, .card, .shop-feature, .team-strip {
  background: linear-gradient(145deg, var(--card), var(--surface));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
}
.hero-card { box-shadow: var(--shadow); }
.hero-head, .status-row, .hero-actions, .staff-banner, .admin-head, .card-head, .two-buttons {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.profile-avatar {
  width: 68px;
  height: 68px;
  border-radius: 22px;
  background: linear-gradient(145deg, var(--gold), var(--gold2));
  color: #26170b;
  display: grid;
  place-items: center;
  font-size: 30px;
  font-weight: 900;
}
.balance { font-size: 40px; font-weight: 900; letter-spacing: -2px; margin-top: 5px; }
.balance small { font-size: 14px; letter-spacing: 0; color: var(--gold2); }
.status-button {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  text-align: left;
  margin-top: 20px;
  align-items: flex-end;
}
.status-button > div { display: grid; gap: 7px; }
.status-name { font-weight: 800; }
.pill, .shift-badge {
  display: inline-flex;
  width: max-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(233, 168, 59, .13);
  border: 1px solid rgba(233, 168, 59, .26);
  color: var(--gold2);
  font-size: 11px;
}
.pill.danger { color: #ffaaa4; background: rgba(255,119,111,.12); border-color: rgba(255,119,111,.25); }
.status-progress-side { display: flex; align-items: center; gap: 8px; }
.status-progress-side strong { font-size: 12px; color: var(--muted); white-space: nowrap; }
.status-chevron { font-style: normal; font-size: 26px; color: var(--gold2); }
.progress { height: 8px; background: #0b0907; border-radius: 99px; margin: 12px 0 18px; overflow: hidden; }
.progress i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), var(--gold2)); border-radius: 99px; }
.hero-actions button, .two-buttons button { flex: 1; }
.primary, .secondary {
  border-radius: 14px;
  padding: 13px 16px;
  font-weight: 800;
  border: 0;
}
.primary { background: linear-gradient(135deg, var(--gold), var(--gold2)); color: #231408; }
.secondary { background: rgba(255,255,255,.04); border: 1px solid var(--line); color: var(--text); }
.primary:disabled { opacity: .35; }
.full { width: 100%; }
.section-title { display: flex; align-items: center; justify-content: space-between; margin: 24px 4px 12px; }
.section-title h2 { font-size: 18px; margin: 0; }
.section-title span { font-size: 12px; color: var(--muted); }
.promo-carousel {
  display: flex;
  gap: 12px;
  overflow: auto;
  padding-bottom: 4px;
  scroll-snap-type: x mandatory;
}
.promo-carousel::-webkit-scrollbar { display: none; }
.promo-card {
  min-width: 78%;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  scroll-snap-align: start;
}
.promo-visual { height: 116px; display: grid; place-items: center; font-size: 44px; font-weight: 900; color: #251607; }
.visual-one { background: linear-gradient(135deg, #ffd479, #cf7f18); }
.visual-two { background: linear-gradient(135deg, #b8ffd0, #5ab77f); }
.promo-card > div:last-child { padding: 14px; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.promo-card h3 { margin: 0; font-size: 15px; }
.promo-card b { color: var(--gold2); }
.shop-feature { display: flex; align-items: center; gap: 14px; }
.product-art { width: 72px; height: 72px; border-radius: 16px; background: linear-gradient(145deg, #5b3918, #23170e); display: grid; place-items: center; font-size: 34px; }
.shop-feature h3 { margin: 0; font-size: 15px; }
.shop-feature p { font-size: 12px; color: var(--muted); margin: 6px 0; }
.shop-feature b { font-size: 13px; color: var(--gold2); }
.team-strip { padding: 14px; }
.person, .client-found { display: flex; align-items: center; gap: 10px; }
.avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #3b2b20;
  color: var(--gold2);
  display: grid;
  place-items: center;
  font-weight: 900;
}
.person > div, .client-found > div { display: grid; }
.person small, .client-found small { font-size: 11px; color: var(--muted); }
.byline { text-align: center; color: var(--muted); font-size: 11px; margin: 28px 0 4px; letter-spacing: .4px; }
.staff-banner, .admin-head { margin: 4px 2px 14px; }
.staff-banner h2, .admin-head h2 { margin: 3px 0 0; }
.shift-badge.on { color: var(--green); background: rgba(114,215,154,.09); border-color: rgba(114,215,154,.25); }
.card { margin-bottom: 12px; box-shadow: none; }
.card h3 { margin: 0 0 12px; font-size: 17px; }
.card p { color: var(--muted); font-size: 13px; line-height: 1.5; }
.card label { display: block; font-size: 12px; color: var(--muted); margin: 14px 0 7px; }
.money-input {
  display: flex;
  align-items: center;
  background: #0d0a08;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 4px 14px;
}
.money-input input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font-size: 34px;
  font-weight: 900;
  padding: 9px 0;
}
.money-input span { font-size: 18px; color: var(--muted); }
.scan-zone {
  width: 100%;
  border: 1px dashed rgba(255,201,107,.4);
  background: #15100c;
  color: var(--text);
  border-radius: 16px;
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
}
.scan-zone span:last-child { display: grid; }
.scan-zone small { color: var(--muted); margin-top: 4px; }
.scan-icon { font-size: 30px; color: var(--gold2); }
.client-found { border: 1px solid rgba(114,215,154,.26); background: rgba(114,215,154,.07); border-radius: 16px; padding: 12px; }
.text-btn { border: 0; background: none; color: var(--gold2); padding: 4px; font-size: 12px; }
.sale-mode { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0 16px; }
.mode { border: 1px solid var(--line); background: #15100c; color: var(--muted); border-radius: 13px; padding: 12px; }
.mode.active { background: rgba(233,168,59,.13); border-color: rgba(233,168,59,.4); color: var(--gold2); }
.calc-box { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin: 16px 0; padding-top: 14px; border-top: 1px solid var(--line); }
.calc-box span { font-size: 13px; color: var(--muted); }
.wait-box { margin-top: 12px; padding: 12px; border-radius: 13px; background: rgba(233,168,59,.08); border: 1px solid rgba(233,168,59,.24); color: var(--gold2); text-align: center; font-size: 13px; }
.metric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.metric { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; display: grid; gap: 4px; }
.metric span, .metric small { font-size: 11px; color: var(--muted); }
.metric strong { font-size: 23px; }
.design-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.design-grid label { display: grid; grid-template-columns: 1fr 44px; align-items: center; margin: 0; padding: 10px 12px; background: #15100c; border: 1px solid var(--line); border-radius: 13px; }
.design-grid input[type=color] { width: 38px; height: 30px; border: 0; background: none; }
.text-input { width: 100%; border: 1px solid var(--line); background: #0e0b09; color: var(--text); border-radius: 13px; padding: 11px 12px; margin-top: 6px; }
.toggle-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.toggle-list label { margin: 0; background: #15100c; border: 1px solid var(--line); border-radius: 12px; padding: 10px; }
.operation-list { display: grid; gap: 8px; margin-top: 12px; }
.empty-state { color: var(--muted); font-size: 13px; text-align: center; padding: 16px 0; }
.op-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 12px;
  background: #14100c;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
}
.op-row b { font-size: 14px; }
.op-row strong { color: var(--gold2); }
.op-row small { grid-column: 1 / -1; color: var(--muted); font-size: 11px; line-height: 1.45; }
.user-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px 10px;
  background: #14100c;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
}
.user-row > div:first-child { display: grid; }
.user-row small { color: var(--muted); font-size: 10px; }
.user-row strong { color: var(--gold2); }
.user-actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.user-actions select { flex: 1; background: #0d0a08; color: var(--text); border: 1px solid var(--line); border-radius: 10px; padding: 8px; }
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(100%, 480px);
  height: 78px;
  padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
  background: rgba(18,14,11,.95);
  backdrop-filter: blur(18px);
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  z-index: 20;
}
.bottom-nav button { border: 0; background: none; color: var(--muted); display: grid; place-items: center; gap: 3px; font-size: 11px; }
.bottom-nav button span { font-size: 22px; }
.bottom-nav button.active { color: var(--gold2); }
.modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.76);
  display: none;
  align-items: flex-end;
  justify-content: center;
  padding: 12px;
  z-index: 40;
}
.modal.open { display: flex; }
.modal-sheet {
  position: relative;
  width: min(100%, 460px);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 26px;
  padding: 24px;
  box-shadow: var(--shadow);
  animation: up .2s ease;
}
.close { position: absolute; right: 14px; top: 14px; }
.qr-sheet { text-align: center; }
.qr-sheet img { display: block; width: 260px; height: 260px; max-width: 100%; margin: 18px auto 10px; background: white; border-radius: 22px; padding: 12px; }
.token { font-size: 28px; font-weight: 900; letter-spacing: 7px; color: var(--gold2); }
.qr-sheet p { color: var(--muted); font-size: 13px; }
.tall-sheet { max-height: 86vh; overflow: auto; }
.status-levels { display: grid; gap: 9px; margin-top: 14px; }
.status-level {
  display: grid;
  grid-template-columns: 38px 1fr auto;
  align-items: center;
  gap: 11px;
  border: 1px solid var(--line);
  background: #14100c;
  border-radius: 16px;
  padding: 12px;
  opacity: .62;
}
.status-level.reached { opacity: .84; }
.status-level.current {
  opacity: 1;
  border-color: rgba(233,168,59,.62);
  background: linear-gradient(135deg, rgba(233,168,59,.15), rgba(255,201,107,.05));
}
.status-rank { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: #2b2119; color: var(--muted); font-weight: 900; }
.status-level.current .status-rank { background: linear-gradient(135deg, var(--gold), var(--gold2)); color: #28180b; }
.status-level-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.status-level-head span { font-size: 10px; padding: 4px 7px; border-radius: 999px; background: rgba(233,168,59,.15); border: 1px solid rgba(233,168,59,.3); color: var(--gold2); }
.status-level-copy small { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }
.status-level-copy p { margin: 5px 0 0; color: #ddc9af; font-size: 11px; }
.status-level-mark { color: var(--muted); }
.status-level.reached .status-level-mark { color: var(--green); }
.status-level.current .status-level-mark { color: var(--gold2); }
.confirm-summary { display: grid; gap: 9px; background: #100d0a; border: 1px solid var(--line); border-radius: 16px; padding: 14px; margin: 16px 0; }
.confirm-summary span { display: flex; justify-content: space-between; gap: 10px; }
.toast {
  position: fixed;
  left: 50%;
  bottom: 94px;
  transform: translate(-50%, 18px);
  opacity: 0;
  pointer-events: none;
  background: #f6e3c8;
  color: #29190d;
  padding: 12px 16px;
  border-radius: 14px;
  font-weight: 800;
  max-width: 90%;
  text-align: center;
  transition: .2s;
  z-index: 60;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@keyframes up {
  from { transform: translateY(18px); opacity: 0; }
}
@keyframes shootingStar {
  0%, 84%, 100% { opacity: 0; transform: translate3d(0, 0, 0) scale(.8) rotate(-24deg); }
  85% { opacity: 0; }
  86% { opacity: .95; }
  93% { opacity: .95; }
  100% { opacity: 0; transform: translate3d(-120px, 95px, 0) scale(1) rotate(-24deg); }
}
@keyframes signMainGlitch {
  0%, 88%, 100% { transform: translate(0, 0); opacity: 1; filter: brightness(1); }
  89% { transform: translate(-1px, 0); opacity: .92; }
  90% { transform: translate(1px, -1px); filter: brightness(1.18); }
  91% { transform: translate(0, 1px); opacity: .84; }
  92% { transform: translate(0, 0); opacity: 1; filter: brightness(1.28); }
  93% { filter: brightness(1); }
}
@keyframes signRedGlitch {
  0%, 88%, 93%, 100% { opacity: 0; transform: translate(0, 0); }
  89%, 91% { opacity: .58; transform: translate(-2px, 0); }
  90%, 92% { opacity: .25; transform: translate(1px, 1px); }
}
@keyframes signCyanGlitch {
  0%, 88%, 93%, 100% { opacity: 0; transform: translate(0, 0); }
  89%, 91% { opacity: .42; transform: translate(2px, 0); }
  90%, 92% { opacity: .2; transform: translate(-1px, -1px); }
}
@keyframes personWalk {
  0%, 15%, 100% { transform: translateX(0) rotate(0deg); }
  28% { transform: translateX(2px) rotate(.35deg); }
  42% { transform: translateX(4px) rotate(-.35deg); }
  56% { transform: translateX(3px) rotate(.2deg); }
  72% { transform: translateX(1px) rotate(-.15deg); }
  86% { transform: translateX(0) rotate(0deg); }
}
@keyframes smokeFloat {
  0% { opacity: 0; transform: translate(0, 0) scale(.45); }
  12% { opacity: .3; }
  55% { opacity: .18; }
  100% { opacity: 0; transform: translate(18px, -58px) scale(2.7); }
}

@media (max-width: 390px) {
  .metric-grid { grid-template-columns: 1fr; }
  .toggle-list, .design-grid { grid-template-columns: 1fr; }
}

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

.help-entry-block { margin-top: 22px; }
.help-entry {
  width: 100%;
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(145deg, var(--card), var(--surface));
  color: var(--text);
  text-align: left;
}
.help-entry-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: rgba(233, 168, 59, .14);
  border: 1px solid rgba(233, 168, 59, .28);
  color: var(--gold2);
  font-size: 22px;
  font-weight: 900;
}
.help-entry-copy { display: grid; gap: 4px; }
.help-entry-copy b { font-size: 15px; }
.help-entry-copy small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.help-entry-arrow { color: var(--gold2); font-size: 28px; }
.help-sheet { padding-bottom: calc(26px + env(safe-area-inset-bottom)); }
.help-intro { margin: 8px 38px 18px 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.help-contents { display: grid; gap: 9px; }
.help-section {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #14100c;
}
.help-section summary {
  list-style: none;
  cursor: pointer;
  display: grid;
  grid-template-columns: 32px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 13px;
  user-select: none;
}
.help-section summary::-webkit-details-marker { display: none; }
.help-section summary > span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(233, 168, 59, .13);
  color: var(--gold2);
  font-size: 12px;
  font-weight: 900;
}
.help-section summary::after { content: '›'; color: var(--gold2); font-size: 24px; transform: rotate(90deg); transition: transform .18s ease; }
.help-section[open] summary::after { transform: rotate(-90deg); }
.help-section[open] summary { border-bottom: 1px solid var(--line); }
.help-text { padding: 14px; }
.help-text p { margin: 0 0 12px; color: #ddc9af; font-size: 12px; line-height: 1.62; }
.help-text p:last-child { margin-bottom: 0; }
.help-text strong { color: var(--text); }
.faq-list p { padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.055); }
.faq-list p:last-child { padding-bottom: 0; border-bottom: 0; }
.help-footer { margin-top: 16px; padding: 14px; border-radius: 15px; background: rgba(233,168,59,.08); border: 1px solid rgba(233,168,59,.18); display: grid; gap: 6px; }
.help-footer b { font-size: 12px; color: var(--gold2); }
.help-footer small { color: var(--muted); font-size: 10px; line-height: 1.45; }

/* ===== Visual polish v6 ===== */
:root {
  --line-strong: rgba(255, 218, 157, .16);
  --glass: rgba(255, 255, 255, .035);
  --danger: #ff867f;
  --success: #7fe1a5;
}

body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 50% -10%, rgba(233, 168, 59, .09), transparent 34%),
    linear-gradient(180deg, #0a0807 0%, var(--bg) 42%, #090807 100%);
  -webkit-tap-highlight-color: transparent;
}

button { cursor: pointer; }
button:active { transform: translateY(1px) scale(.995); }

.app-shell {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 95% 3%, rgba(233, 168, 59, .08), transparent 22%),
    linear-gradient(180deg, var(--header), var(--bg) 280px);
}
.app-shell::before {
  content: "";
  position: fixed;
  left: 50%;
  top: 0;
  width: min(100%, 480px);
  height: 180px;
  transform: translateX(-50%);
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.025), transparent);
  z-index: 0;
}
.topbar, main, .bottom-nav { position: relative; z-index: 1; }

.topbar {
  height: 116px;
  padding-left: 18px;
  padding-right: 18px;
}
.brand-lockup { min-width: 0; }
.brand-line { display: flex; align-items: center; gap: 9px; }
.brand-line h1 { white-space: nowrap; }
.beta-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 8px;
  border-radius: 999px;
  color: var(--gold2);
  background: rgba(233,168,59,.09);
  border: 1px solid rgba(233,168,59,.2);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.topbar-actions { display: flex; align-items: center; gap: 8px; }
.network-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  border-radius: 999px;
  color: var(--muted);
  background: rgba(255,255,255,.03);
  border: 1px solid var(--line);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.network-badge i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 10px rgba(127,225,165,.65);
}
.network-badge.offline { color: var(--danger); }
.network-badge.offline i { background: var(--danger); box-shadow: none; }
.icon-btn {
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.035);
  backdrop-filter: blur(14px);
}

.screen { padding-left: 14px; padding-right: 14px; }
.hero-card {
  position: relative;
  overflow: hidden;
  padding: 20px;
  border-color: rgba(255,218,157,.14);
  background:
    linear-gradient(145deg, rgba(49,34,24,.96), rgba(25,19,15,.98));
  box-shadow: 0 22px 60px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.035);
}
.hero-glow {
  position: absolute;
  right: -70px;
  top: -85px;
  width: 210px;
  height: 210px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,196,101,.2), rgba(255,196,101,0) 68%);
  pointer-events: none;
}
.hero-head, .status-button, .hero-insights, .hero-actions { position: relative; z-index: 1; }
.profile-avatar {
  width: 64px;
  height: 64px;
  border-radius: 21px;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 12px 30px rgba(233,168,59,.18), inset 0 1px 0 rgba(255,255,255,.34);
}
.balance { line-height: .95; margin-top: 9px; }
.balance small { display: block; margin-top: 8px; font-size: 12px; color: rgba(255,228,183,.72); }
.status-caption { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.status-name { font-size: 17px; }
.status-progress-side { align-items: center; }
.progress {
  height: 7px;
  margin-top: 11px;
  background: rgba(0,0,0,.34);
  border: 1px solid rgba(255,255,255,.035);
}
.progress i { box-shadow: 0 0 14px rgba(255,194,89,.28); }
.hero-insights {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 14px 0 18px;
}
.hero-insights > div {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(0,0,0,.17);
  border: 1px solid rgba(255,255,255,.055);
}
.hero-insights span { color: var(--muted); font-size: 10px; }
.hero-insights strong { font-size: 14px; color: #ffe1ac; }
.hero-actions { gap: 9px; }
.hero-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 48px;
}
.button-icon { font-size: 18px; line-height: 1; }
.primary {
  background: linear-gradient(135deg, #e49a2b, #ffd17c);
  box-shadow: 0 10px 28px rgba(217,139,31,.17), inset 0 1px 0 rgba(255,255,255,.42);
}
.secondary {
  background: rgba(255,255,255,.045);
  border-color: rgba(255,255,255,.09);
  backdrop-filter: blur(14px);
}
.client-tip {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  margin: 12px 2px 0;
  padding: 13px 14px;
  border-radius: 16px;
  color: #e9dac7;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.06);
}
.client-tip-icon {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #26170b;
  background: var(--gold2);
  font-size: 12px;
  font-weight: 900;
}
.client-tip div { display: grid; gap: 4px; }
.client-tip b { font-size: 12px; }
.client-tip small { color: var(--muted); font-size: 10px; line-height: 1.45; }

.section-title { margin-top: 26px; }
.section-title h2 { letter-spacing: -.02em; }
.promo-card {
  min-width: 76%;
  background: linear-gradient(155deg, rgba(39,29,22,.98), rgba(24,19,16,.98));
  border-color: rgba(255,255,255,.07);
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}
.promo-visual {
  position: relative;
  height: 124px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  color: #241508;
}
.promo-visual span { font-size: 42px; line-height: 1; }
.promo-visual small { font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.visual-one { background: radial-gradient(circle at 25% 20%, #ffe9b8, transparent 25%), linear-gradient(135deg,#ffcc6b,#bd6a10); }
.visual-two { background: radial-gradient(circle at 75% 20%, #d6ffdf, transparent 25%), linear-gradient(135deg,#a7e8bd,#4a9a6a); }
.shop-feature, .team-strip {
  background: linear-gradient(145deg, rgba(37,28,22,.96), rgba(25,20,17,.98));
  border-color: rgba(255,255,255,.07);
}
.product-art {
  width: 76px;
  height: 76px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  color: #ffdc9d;
  border: 1px solid rgba(255,201,107,.2);
  box-shadow: inset 0 0 30px rgba(233,168,59,.08);
}
.product-art span { font-size: 26px; font-weight: 900; line-height: 1; }
.product-art small { font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }

.help-entry {
  box-shadow: 0 12px 30px rgba(0,0,0,.16);
  background: linear-gradient(145deg, rgba(42,31,23,.98), rgba(23,18,15,.98));
}
.help-entry-icon {
  background: linear-gradient(135deg, var(--gold), var(--gold2));
  color: #28170a;
  box-shadow: 0 8px 20px rgba(233,168,59,.18);
}

.staff-banner, .admin-head { padding: 4px 3px 2px; }
.shift-badge.on { gap: 6px; }
.shift-badge.on i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 8px rgba(127,225,165,.55);
}
.staff-step {
  padding: 16px;
  border-color: rgba(255,255,255,.07);
  background: linear-gradient(145deg, rgba(35,27,22,.98), rgba(22,18,15,.98));
}
.step-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.step-heading > span {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #29180a;
  background: linear-gradient(135deg, var(--gold), var(--gold2));
  font-size: 13px;
  font-weight: 900;
}
.step-heading > div { display: grid; gap: 2px; }
.step-heading h3 { margin: 0; }
.step-heading small { color: var(--muted); font-size: 10px; line-height: 1.35; }
.money-input { border-color: rgba(255,255,255,.075); background: rgba(0,0,0,.25); }
.money-input:focus-within { border-color: rgba(255,201,107,.4); box-shadow: 0 0 0 3px rgba(233,168,59,.07); }
.scan-zone {
  position: relative;
  border-style: solid;
  border-color: rgba(255,201,107,.23);
  background: linear-gradient(145deg, rgba(233,168,59,.08), rgba(255,255,255,.018));
}
.scan-zone > i { margin-left: auto; color: var(--gold2); font-style: normal; font-size: 24px; }
.manual-code-button {
  width: 100%;
  margin-top: 8px;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  color: var(--gold2);
  font-size: 12px;
}
.client-found { margin-top: 3px; }
.client-found em { color: var(--gold2); font-size: 9px; font-style: normal; letter-spacing: .05em; }
.sale-mode { gap: 9px; }
.mode {
  min-height: 70px;
  display: grid;
  gap: 4px;
  align-content: center;
  text-align: left;
  padding: 12px 13px;
}
.mode b { color: inherit; font-size: 13px; }
.mode small { color: var(--muted); font-size: 9px; line-height: 1.25; }
.mode.active small { color: rgba(255,224,174,.7); }
.calc-box {
  padding: 14px;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 15px;
  background: rgba(0,0,0,.16);
}
.operation-button { min-height: 50px; }
.operation-result {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 12px;
  padding: 13px;
  border-radius: 15px;
  color: #dff9e9;
  background: rgba(114,215,154,.09);
  border: 1px solid rgba(114,215,154,.22);
}
.result-check {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #102719;
  background: var(--success);
  font-weight: 900;
}
.operation-result div { display: grid; gap: 3px; }
.operation-result small { color: rgba(223,249,233,.72); font-size: 10px; line-height: 1.4; }

.metric {
  min-height: 106px;
  align-content: space-between;
  background: linear-gradient(145deg, rgba(37,28,22,.98), rgba(23,18,15,.98));
  border-color: rgba(255,255,255,.07);
}
.metric-alert {
  border-color: rgba(255,134,127,.2);
  background: linear-gradient(145deg, rgba(67,29,28,.45), rgba(25,18,17,.98));
}
.metric-alert strong { color: #ffaaa4; }
.design-grid label, .toggle-list label, .user-row, .op-row { background: rgba(0,0,0,.18); }
.user-actions { flex-wrap: wrap; }
.user-actions select { min-width: 150px; }
.danger-text { color: #ffaaa4; }

.operation-list { gap: 9px; }
.op-row {
  grid-template-columns: 36px minmax(0,1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 12px;
  text-align: left;
}
.op-row > div { min-width: 0; display: grid; gap: 3px; }
.op-row > div b { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.op-row > div small { grid-column: auto; }
.op-row > strong { align-self: start; font-size: 13px; }
.op-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: var(--gold2);
  background: rgba(233,168,59,.1);
  border: 1px solid rgba(233,168,59,.16);
  font-weight: 900;
}
.op-alert {
  display: inline-flex;
  padding: 3px 6px;
  border-radius: 999px;
  color: #ffaaa4;
  background: rgba(255,134,127,.1);
  border: 1px solid rgba(255,134,127,.18);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.op-row.suspicious { border-color: rgba(255,134,127,.22); }
.op-row.suspicious .op-icon { color: #ffaaa4; background: rgba(255,134,127,.09); border-color: rgba(255,134,127,.18); }

.bottom-nav {
  height: 82px;
  background: rgba(13,10,8,.92);
  border-top-color: rgba(255,255,255,.08);
  box-shadow: 0 -16px 40px rgba(0,0,0,.22);
}
.bottom-nav button {
  border-radius: 14px;
  transition: background .18s ease, color .18s ease;
}
.bottom-nav button.active { background: rgba(233,168,59,.07); }

.modal { backdrop-filter: blur(8px); }
.modal-sheet {
  border-color: rgba(255,255,255,.09);
  background:
    radial-gradient(circle at 80% -10%, rgba(233,168,59,.1), transparent 25%),
    linear-gradient(160deg, #241b16, #17120f);
}
.qr-sheet { padding-top: 28px; }
.qr-frame {
  width: 278px;
  max-width: 100%;
  margin: 18px auto 12px;
  padding: 10px;
  border-radius: 28px;
  background: #fffaf2;
  box-shadow: 0 18px 42px rgba(0,0,0,.3), 0 0 0 1px rgba(255,255,255,.12);
}
.qr-sheet img { width: 100%; height: auto; margin: 0; padding: 0; border-radius: 18px; }
.token { font-size: 20px; letter-spacing: 2px; }
.copy-code, .text-link {
  border: 0;
  background: transparent;
  color: var(--gold2);
  padding: 10px;
  font-size: 12px;
}
.qr-warning { max-width: 320px; margin: 4px auto 0; line-height: 1.45; }

.help-sheet { padding-bottom: calc(26px + env(safe-area-inset-bottom)); }
#helpModal { z-index: 80; }
.consent-modal { z-index: 70; align-items: center; }
.consent-sheet { max-width: 420px; }
.consent-mark {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  border-radius: 18px;
  color: #29180a;
  background: linear-gradient(135deg, var(--gold), var(--gold2));
  font-size: 28px;
  font-weight: 900;
  box-shadow: 0 14px 34px rgba(233,168,59,.18);
}
.consent-sheet p, .consent-sheet li { color: #d7c4b0; font-size: 12px; line-height: 1.5; }
.consent-sheet ul { padding-left: 20px; margin: 14px 0; }
.consent-sheet > small { display: block; margin-top: 12px; color: var(--muted); font-size: 9px; line-height: 1.45; text-align: center; }

@media (max-width: 370px) {
  .network-badge { display: none; }
  .hero-insights { grid-template-columns: 1fr; }
  .sale-mode { grid-template-columns: 1fr; }
}

/* V7: литровая акция — каждый 15-й литр в подарок */
.beer-loyalty-card {
  position: relative;
  overflow: hidden;
  margin-top: 14px;
  padding: 18px;
  border-radius: calc(var(--radius) + 2px);
  border: 1px solid rgba(255, 201, 107, .16);
  background:
    radial-gradient(circle at 92% 8%, rgba(255, 201, 107, .15), transparent 25%),
    linear-gradient(145deg, rgba(46, 31, 21, .98), rgba(20, 16, 13, .98));
  box-shadow: 0 16px 34px rgba(0, 0, 0, .2);
}
.beer-loyalty-card::after {
  content: "15";
  position: absolute;
  right: 10px;
  bottom: -26px;
  color: rgba(255, 255, 255, .025);
  font-size: 112px;
  line-height: 1;
  font-weight: 900;
  pointer-events: none;
}
.beer-loyalty-card.gift-ready {
  border-color: rgba(114, 215, 154, .32);
  background:
    radial-gradient(circle at 90% 8%, rgba(114, 215, 154, .17), transparent 27%),
    linear-gradient(145deg, rgba(35, 48, 32, .98), rgba(20, 16, 13, .98));
}
.beer-card-top,
.beer-progress-head,
.beer-card-foot,
.field-caption,
.gift-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.beer-card-top { align-items: flex-start; }
.beer-card-top > div:first-child { min-width: 0; }
.beer-kicker {
  display: inline-block;
  margin-bottom: 7px;
  color: var(--gold2);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.beer-card-top h2 {
  margin: 0;
  font-size: 20px;
  letter-spacing: -.02em;
}
.beer-card-top p {
  max-width: 260px;
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}
.beer-gift-counter {
  flex: 0 0 auto;
  width: 74px;
  min-height: 74px;
  display: grid;
  place-items: center;
  align-content: center;
  border-radius: 20px;
  background: rgba(233, 168, 59, .09);
  border: 1px solid rgba(233, 168, 59, .2);
}
.beer-gift-counter strong {
  color: var(--gold2);
  font-size: 26px;
  line-height: 1;
}
.beer-gift-counter small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 8px;
  text-transform: uppercase;
}
.gift-ready .beer-gift-counter {
  background: rgba(114, 215, 154, .1);
  border-color: rgba(114, 215, 154, .25);
}
.gift-ready .beer-gift-counter strong,
.gift-ready #beerGiftReady { color: var(--success); }
.beer-progress-head {
  margin-top: 16px;
  color: var(--muted);
  font-size: 10px;
}
.beer-progress-head b { color: var(--text); font-size: 10px; }
.beer-progress {
  height: 9px;
  margin-top: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(0, 0, 0, .35);
  border: 1px solid rgba(255, 255, 255, .035);
}
.beer-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #d27d17, var(--gold2));
  box-shadow: 0 0 18px rgba(233, 168, 59, .26);
  transition: width .35s ease;
}
.beer-card-foot {
  position: relative;
  z-index: 1;
  margin-top: 10px;
  align-items: flex-end;
}
.beer-card-foot span {
  max-width: 245px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}
.beer-card-foot strong {
  color: var(--gold2);
  font-size: 10px;
  white-space: nowrap;
}

.beer-volume-block {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, .055);
}
.field-caption span { color: var(--text); font-size: 11px; font-weight: 700; }
.field-caption small { color: var(--muted); font-size: 9px; }
.volume-input {
  display: flex;
  align-items: center;
  margin-top: 9px;
  padding: 0 14px;
  border-radius: 14px;
  background: #0d0a08;
  border: 1px solid var(--line);
}
.volume-input input {
  min-width: 0;
  flex: 1;
  padding: 11px 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font-size: 24px;
  font-weight: 800;
}
.volume-input span { color: var(--muted); }
.volume-presets,
.gift-volume-options {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
  margin-top: 8px;
}
.volume-presets button,
.gift-volume {
  min-height: 36px;
  border-radius: 11px;
  border: 1px solid rgba(255, 255, 255, .07);
  background: rgba(255, 255, 255, .025);
  color: #d7c4b0;
  font-size: 10px;
}
.volume-presets button:active,
.gift-volume.active {
  color: #2a1809;
  background: linear-gradient(135deg, var(--gold), var(--gold2));
  border-color: transparent;
}
#foundBeer {
  color: #cdb08d;
  font-size: 9px;
}
.three-modes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.three-modes .mode { min-width: 0; padding: 10px; }
.three-modes .mode b { font-size: 12px; }
.three-modes .mode small { font-size: 8px; }
.beer-gift-controls {
  margin: 12px 0;
  padding: 14px;
  border-radius: 15px;
  border: 1px solid rgba(233, 168, 59, .16);
  background: linear-gradient(145deg, rgba(233, 168, 59, .07), rgba(0, 0, 0, .12));
}
.gift-summary {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, .055);
}
.gift-summary span { color: var(--muted); font-size: 10px; }
.gift-summary strong { color: var(--gold2); font-size: 16px; }
.beer-gift-controls label { margin: 0 0 7px; }
.gift-volume-options { grid-template-columns: repeat(2, 1fr); }
.gift-volume { min-height: 44px; font-size: 13px; font-weight: 800; }
.gift-volume:disabled { opacity: .28; }
.money-input input:disabled,
.volume-input input:disabled { opacity: .35; }
.gift-operation-active .money-input,
.gift-operation-active .beer-volume-block { opacity: .58; }

@media (max-width: 390px) {
  .beer-card-top { display: grid; grid-template-columns: 1fr auto; }
  .beer-card-top h2 { font-size: 18px; }
  .beer-gift-counter { width: 66px; min-height: 66px; }
  .three-modes { grid-template-columns: 1fr; }
  .three-modes .mode { min-height: 58px; }
}

/* v8: shift management and loader hardening */
.boot-image,
.sign-layer,
.boot-person {
  -webkit-user-drag: none;
  user-select: none;
}
.boot-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 15%, transparent 0 52%, rgba(0,0,0,.12) 100%);
  z-index: 1;
}
.boot-overlay,
.boot-copy { z-index: 2; }

.shift-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.shift-badge i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--muted);
  box-shadow: 0 0 0 4px rgba(169,149,128,.08);
}
.shift-badge.on {
  color: var(--green);
  background: rgba(114,215,154,.09);
  border-color: rgba(114,215,154,.25);
}
.shift-badge.on i {
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(114,215,154,.1), 0 0 12px rgba(114,215,154,.45);
}
.shift-badge.off {
  color: #d3ae87;
  background: rgba(211,174,135,.08);
  border-color: rgba(211,174,135,.2);
}
.shift-badge.off i { background: #d3ae87; }

#currentShiftTeam {
  display: grid;
  gap: 10px;
}
.shift-team-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.shift-person {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.025);
}
.shift-person .avatar {
  flex: 0 0 42px;
  background: linear-gradient(145deg, rgba(233,168,59,.24), rgba(91,57,24,.45));
}
.shift-person > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.shift-person b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
}
.shift-person small {
  color: var(--muted);
  font-size: 10px;
}
.shift-team-note {
  margin-top: 2px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(233,168,59,.07);
  border: 1px solid rgba(233,168,59,.14);
  color: #d8c0a3;
  font-size: 11px;
  line-height: 1.45;
}

.shift-admin-card .card-head {
  align-items: flex-start;
}
.shift-admin-card .card-head h3 { margin-bottom: 3px; }
.shift-admin-card .card-head p { margin: 0; max-width: 270px; }
.shift-staff-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  padding: 4px 0 0;
}
.shift-staff-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  margin: 0 !important;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #15100c;
  color: var(--text) !important;
  cursor: pointer;
}
.shift-staff-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.shift-staff-option .avatar {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
}
.shift-staff-option > span:last-child {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.shift-staff-option b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
}
.shift-staff-option small { color: var(--muted); font-size: 9px; }
.shift-staff-option:has(input:checked) {
  border-color: rgba(233,168,59,.62);
  background: linear-gradient(145deg, rgba(233,168,59,.16), rgba(255,201,107,.05));
  box-shadow: inset 0 0 0 1px rgba(255,201,107,.08);
}
.shift-staff-option:has(input:checked)::after {
  content: "✓";
  position: absolute;
  right: 8px;
  top: 7px;
  color: var(--gold2);
  font-size: 11px;
  font-weight: 900;
}
.shift-note-label { margin-top: 14px !important; }
.shift-meta {
  display: block;
  margin-top: 10px;
  color: var(--muted);
  line-height: 1.45;
}
#shiftStatusBadge.active {
  color: var(--green);
  background: rgba(114,215,154,.09);
  border-color: rgba(114,215,154,.25);
}

@media (max-width: 380px) {
  .shift-team-grid,
  .shift-staff-options { grid-template-columns: 1fr; }
}

/* v8: common terminal staff PIN */
.staff-switch-button {
  display: inline-flex;
  margin-top: 4px;
  padding: 0;
  font-size: 11px;
}
.staff-login-sheet > p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}
.staff-session-list {
  display: grid;
  gap: 8px;
  margin: 14px 0;
}
.staff-session-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 60px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #15100c;
  cursor: pointer;
}
.staff-session-option input {
  position: absolute;
  opacity: 0;
}
.staff-session-option > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.staff-session-option b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.staff-session-option small {
  color: var(--muted);
  font-size: 10px;
}
.staff-session-option:has(input:checked) {
  border-color: rgba(233,168,59,.62);
  background: linear-gradient(145deg, rgba(233,168,59,.16), rgba(255,201,107,.05));
}
.staff-session-option.disabled {
  opacity: .48;
  cursor: not-allowed;
}
.staff-pin-input {
  letter-spacing: .35em;
  text-align: center;
  font-size: 24px;
  font-weight: 900;
}
#clearStaffButton {
  margin-top: 10px;
  text-align: center;
}
.user-pin-state {
  color: var(--muted);
  font-size: 10px;
}


/* ===== V9 FINAL · monochrome premium city system ===== */
body {
  background:
    radial-gradient(circle at 50% -10%, rgba(255,255,255,.08), transparent 30%),
    #05070a;
}
.app-shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(13,16,22,.98), rgba(7,9,12,.98) 300px),
    #07090c;
}
.app-shell::before,
.app-shell::after {
  content: "";
  position: fixed;
  left: 50%;
  width: min(100%, 480px);
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 0;
}
.app-shell::before {
  inset-block: 0;
  background:
    repeating-linear-gradient(118deg, transparent 0 46px, rgba(255,255,255,.025) 47px 48px, transparent 49px 96px),
    repeating-linear-gradient(63deg, transparent 0 72px, rgba(255,255,255,.018) 73px 74px, transparent 75px 144px);
  mask-image: linear-gradient(180deg, rgba(0,0,0,.95), rgba(0,0,0,.3) 48%, transparent 90%);
}
.app-shell::after {
  top: 145px;
  height: 250px;
  background:
    linear-gradient(90deg, transparent 8%, rgba(255,255,255,.07) 8.4%, transparent 8.8% 19%, rgba(255,255,255,.05) 19.4%, transparent 19.8% 37%, rgba(255,255,255,.06) 37.4%, transparent 37.8% 58%, rgba(255,255,255,.04) 58.4%, transparent 58.8% 78%, rgba(255,255,255,.06) 78.4%, transparent 78.8%),
    linear-gradient(180deg, transparent 0 30%, rgba(255,255,255,.04) 30.4%, transparent 30.8% 55%, rgba(255,255,255,.03) 55.4%, transparent 55.8%);
  opacity: .55;
}
.topbar, main, .bottom-nav { position: relative; z-index: 2; }
.topbar { background: linear-gradient(180deg, rgba(7,9,12,.96), rgba(7,9,12,.72), transparent); }
.topbar h1, .hero-card strong, .section-title h2, .admin-head h2 { letter-spacing: -.035em; }
.hero-card,
.card,
.team-strip,
.client-tip,
.leaderboard-entry,
.home-action-card,
.premium-offer,
.shop-product,
.leaderboard-row {
  background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
  border: 1px solid rgba(255,255,255,.105);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}
.hero-card::after,
.home-action-card::after,
.leaderboard-entry::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(120deg, transparent 0 62%, rgba(255,255,255,.035) 62.5%, transparent 63%);
}
.primary {
  background: #f3f5f7;
  color: #090b0f;
  border: 1px solid #fff;
  box-shadow: 0 8px 24px rgba(255,255,255,.08);
}
.primary:hover { background: #fff; }
.secondary,
.copy-code,
.manual-code-button {
  background: rgba(255,255,255,.035);
  border-color: rgba(255,255,255,.12);
  color: var(--text);
}
.beta-badge,
.pill,
.network-badge,
.boot-badge {
  color: #e8ebef;
  border-color: rgba(255,255,255,.15);
  background: rgba(255,255,255,.045);
}
.progress > i,
.progress-bar,
#beerProgressBar {
  background: linear-gradient(90deg, #f7f8fa, #9da5af);
}
.bottom-nav {
  background: rgba(8,10,14,.92);
  border-top: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(18px);
}
.bottom-nav button.active {
  color: #fff;
  background: rgba(255,255,255,.07);
}

.home-hub { margin-top: 4px; }
.home-action-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.home-action-card {
  position: relative;
  min-height: 180px;
  padding: 15px;
  border-radius: 22px;
  color: var(--text);
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow: hidden;
}
.home-action-card > * { position: relative; z-index: 1; }
.home-action-kicker {
  font-size: 9px;
  letter-spacing: .16em;
  color: var(--muted);
}
.home-action-mark {
  margin: 14px 0 auto;
  font-size: 54px;
  line-height: .9;
  font-weight: 250;
  letter-spacing: -.08em;
}
.shop-entry-card .home-action-mark { font-size: 50px; font-weight: 100; }
.home-action-copy { display: grid; gap: 4px; padding-right: 18px; }
.home-action-copy b { font-size: 17px; }
.home-action-copy small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.home-action-card > i {
  position: absolute;
  right: 15px;
  bottom: 16px;
  font-style: normal;
  font-size: 26px;
  color: rgba(255,255,255,.45);
}

.leaderboard-entry {
  position: relative;
  width: 100%;
  border-radius: 22px;
  padding: 16px;
  color: var(--text);
  text-align: left;
  overflow: hidden;
}
.leaderboard-entry-head,
.leaderboard-entry-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.leaderboard-entry-head > span {
  font-size: 10px;
  letter-spacing: .17em;
  color: #fff;
}
.leaderboard-entry-head small,
.leaderboard-entry-foot span { color: var(--muted); font-size: 11px; }
.leaderboard-podium-mini {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 7px;
  margin: 14px 0;
}
.leaderboard-podium-mini > span {
  min-width: 0;
  padding: 10px 8px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.025);
  display: grid;
  gap: 6px;
}
.leaderboard-podium-mini i {
  font-style: normal;
  color: var(--muted);
  font-size: 10px;
}
.leaderboard-podium-mini b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
}
.leaderboard-podium-mini .is-me { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.07); }
.leaderboard-entry-foot i { font-style: normal; font-size: 22px; }

.premium-sheet { background: #0b0e13; }
.premium-list,
.shop-catalog,
.leaderboard-list { display: grid; gap: 10px; }
.premium-offer {
  position: relative;
  display: grid;
  grid-template-columns: 34px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 15px;
  border-radius: 18px;
}
.premium-offer .offer-index { color: var(--muted); font-size: 10px; letter-spacing: .12em; }
.premium-offer b { display: block; margin-bottom: 5px; font-size: 14px; }
.premium-offer p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.premium-offer > strong { font-size: 13px; white-space: nowrap; }
.premium-offer button {
  grid-column: 2 / -1;
  justify-self: stretch;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
  color: var(--muted);
}
.disabled-offer { opacity: .7; }

.shop-product {
  display: grid;
  grid-template-columns: 38px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 15px;
  border-radius: 18px;
}
.shop-product-number {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.14);
  display: grid;
  place-items: center;
  font-size: 10px;
  color: var(--muted);
}
.shop-product b { font-size: 14px; }
.shop-product p { margin: 5px 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.shop-product span { font-size: 10px; color: #d9dde2; }
.shop-product > strong { font-size: 13px; white-space: nowrap; }
.shop-product.disabled { opacity: .46; }
.shop-legal { display: block; margin-top: 10px; color: var(--muted); font-size: 10px; line-height: 1.4; }

.leaderboard-row {
  display: grid;
  grid-template-columns: 34px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 13px 14px;
  border-radius: 16px;
}
.leaderboard-row.podium { border-color: rgba(255,255,255,.2); }
.leaderboard-row.is-me { background: rgba(255,255,255,.085); }
.leader-rank {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.13);
  color: var(--muted);
  font-size: 11px;
}
.leaderboard-row b { font-size: 13px; }
.leaderboard-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.leaderboard-row strong { font-size: 12px; white-space: nowrap; }
.leaderboard-prize-note {
  margin-top: 12px;
  padding: 13px 14px;
  border-radius: 15px;
  border: 1px dashed rgba(255,255,255,.14);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.four-modes { grid-template-columns: 1fr 1fr; }
.staff-shop-controls { margin: 4px 0 14px; }
.staff-shop-items { display: grid; gap: 8px; margin-top: 8px; }
.staff-shop-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(255,255,255,.025);
}
.staff-shop-item input { accent-color: #fff; }
.staff-shop-item span { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 10px; }
.staff-shop-item b { font-size: 12px; }
.staff-shop-item small { color: var(--muted); }
.staff-recent-card .card-head { align-items: flex-start; }
.staff-recent-card .card-head p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.staff-recent-op { grid-template-columns: 36px 1fr auto; align-items: center; }
.staff-recent-op .cancel-operation-button { grid-column: 2 / -1; justify-self: start; margin-top: -4px; }
.op-row.cancelled { opacity: .55; }
.op-row.cancelled strong { text-decoration: line-through; }
.op-cancelled {
  display: inline-flex;
  margin-left: 6px;
  padding: 2px 5px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  color: var(--muted);
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.admin-cancel-button { grid-column: 2 / -1; justify-self: start; }
.metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 380px) {
  .home-action-grid { grid-template-columns: 1fr; }
  .home-action-card { min-height: 145px; }
  .leaderboard-podium-mini { grid-template-columns: 1fr; }
  .premium-offer,
  .shop-product { grid-template-columns: 30px 1fr; }
  .premium-offer > strong,
  .shop-product > strong { grid-column: 2; justify-self: start; }
}
.admin-hint {
  margin: 0 0 12px;
  padding: 12px 13px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.025);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.48;
}


/* V10: редактируемые акции и магазин */
.modal-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.modal-title-row h2 { margin-top: 3px; }
.premium-offer { grid-template-columns: 68px 34px minmax(0, 1fr) auto; }
.premium-offer-media,
.shop-product-media,
.admin-content-thumb,
.content-image-preview {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.035);
}
.premium-offer-media { width: 68px; height: 68px; border-radius: 16px; }
.shop-product-media { width: 58px; height: 58px; border-radius: 14px; }
.admin-content-thumb { width: 46px; height: 46px; border-radius: 12px; flex: 0 0 auto; }
.premium-offer-media img,
.shop-product-media img,
.admin-content-thumb img,
.content-image-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.content-image-fallback { display: grid; place-items: center; color: var(--text); }
.content-image-fallback span { font-size: 20px; font-weight: 700; opacity: .7; }
.premium-offer-copy small { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; }
.shop-product { grid-template-columns: 58px 30px minmax(0,1fr) auto; }

.content-admin-card .card-head p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.content-admin-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.content-admin-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.content-admin-title { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; margin-bottom: 8px; }
.content-admin-title small { color: var(--muted); font-size: 10px; }
.admin-content-list { display: grid; gap: 8px; }
.admin-content-row { display: flex; gap: 9px; align-items: center; padding: 9px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; background: rgba(255,255,255,.025); }
.admin-content-row.inactive { opacity: .55; }
.admin-content-row > div:nth-child(2) { flex: 1; min-width: 0; }
.admin-content-row b { display: block; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-content-row small { color: var(--muted); font-size: 9px; line-height: 1.35; }
.admin-content-buttons { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.admin-content-buttons button { font-size: 10px; padding: 3px; }

.content-editor-sheet label { display: grid; gap: 6px; margin-top: 12px; font-size: 11px; color: var(--muted); }
.content-textarea { min-height: 92px; resize: vertical; font-family: inherit; }
.content-editor-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: end; }
.content-active-label { display: flex !important; align-items: center; gap: 8px !important; min-height: 46px; padding: 0 4px; color: var(--text) !important; }
.content-active-label input { width: 18px; height: 18px; accent-color: #fff; }
.content-image-editor { display: grid; grid-template-columns: 130px 1fr; gap: 12px; margin: 16px 0; align-items: start; }
.content-image-preview { width: 130px; aspect-ratio: 1; border-radius: 18px; display: grid; place-items: center; color: var(--muted); font-size: 11px; }
.content-image-preview.has-image { background: #080a0d; }
.content-image-fields { min-width: 0; }
.content-image-fields input[type="file"] { width: 100%; color: var(--muted); font-size: 10px; }
.content-image-fields small { display: block; color: var(--muted); margin-top: 5px; font-size: 9px; overflow-wrap: anywhere; }

@media (max-width: 560px) {
  .content-admin-columns { grid-template-columns: 1fr; }
  .premium-offer { grid-template-columns: 58px 28px minmax(0,1fr); }
  .premium-offer-media { width: 58px; height: 58px; }
  .premium-offer > strong { grid-column: 3; justify-self: start; }
  .shop-product { grid-template-columns: 52px 26px minmax(0,1fr); }
  .shop-product-media { width: 52px; height: 52px; }
  .shop-product > strong { grid-column: 3; }
  .content-image-editor { grid-template-columns: 96px 1fr; }
  .content-image-preview { width: 96px; }
}

/* V11: профиль, аватары и конфиденциальность */
.profile-avatar,
.avatar-render,
.avatar-render-inner,
.avatar,
.leader-avatar,
.telegram-avatar-preview {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.profile-avatar img,
.avatar-render img,
.avatar-render-inner img,
.avatar img,
.leader-avatar img,
.telegram-avatar-preview img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 2;
}
.avatar-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 1;
}
.profile-avatar {
  cursor: pointer;
  outline: none;
  box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 10px 28px rgba(0,0,0,.34);
}
.profile-avatar:focus-visible { box-shadow: 0 0 0 2px var(--gold2), 0 10px 28px rgba(0,0,0,.34); }
.profile-avatar .avatar-render-inner { position: absolute; inset: 0; display: block; border-radius: inherit; }
.profile-settings-link {
  display: block;
  width: 100%;
  margin: 10px 0 0;
  padding: 7px 10px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 11px;
  text-align: center;
}
.profile-settings-link:active { color: var(--text); }

.profile-setup-modal { z-index: 55; }
#animalPickerModal { z-index: 60; }
.profile-setup-sheet,
.animal-picker-sheet {
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.profile-setup-sheet h2,
.animal-picker-sheet h2 { margin: 5px 0 8px; }
.profile-back {
  margin: 0 0 15px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
}
.primary-avatar-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 16px;
}
.primary-avatar-choice {
  display: grid;
  gap: 8px;
  padding: 10px;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.025);
  color: var(--text);
}
.primary-avatar-choice img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 16px;
  background: #080a0d;
}
.primary-avatar-choice b { font-size: 12px; }
.primary-avatar-choice.active {
  border-color: rgba(255,255,255,.52);
  background: rgba(255,255,255,.08);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
}
.secondary-avatar-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin: 10px 0 14px;
}
.secondary-avatar-choice {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.02);
  color: var(--text);
  text-align: left;
}
.secondary-avatar-choice > img,
.telegram-avatar-preview {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  object-fit: cover;
  background: #171b21;
  border: 1px solid rgba(255,255,255,.1);
}
.secondary-avatar-choice span:last-child { min-width: 0; display: grid; }
.secondary-avatar-choice b { font-size: 11px; }
.secondary-avatar-choice small { margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.secondary-avatar-choice.active { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.07); }
.secondary-avatar-choice:disabled { opacity: .45; }
.selected-avatar-line {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0 14px;
  padding: 10px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: rgba(0,0,0,.16);
}
#profileSetupPreview {
  position: relative;
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  overflow: hidden;
  border-radius: 50%;
  background: #11151a;
}
#profileSetupPreview .avatar-render-inner { position: absolute; inset: 0; display: block; }
.selected-avatar-line > div { display: grid; }
.selected-avatar-line small { color: var(--muted); font-size: 9px; }
.selected-avatar-line b { margin-top: 2px; font-size: 12px; }
.profile-age-block {
  margin: 14px 0;
  padding-top: 13px;
  border-top: 1px solid var(--line);
}
.profile-age-block h3 { margin: 0 0 10px; font-size: 13px; }
.profile-age-block h3 small { color: var(--muted); font-weight: 400; }
.age-option-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
}
.age-option-grid button {
  min-height: 38px;
  padding: 7px 5px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.025);
  color: var(--muted);
  font-size: 10px;
}
.age-option-grid button.active {
  color: var(--text);
  border-color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.08);
}
.privacy-note {
  margin: 10px 0 14px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.45;
}
.privacy-switches {
  display: grid;
  gap: 8px;
  margin: 15px 0;
}
.privacy-switches label {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 12px;
  border-radius: 15px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.025);
}
.privacy-switches label span { display: grid; }
.privacy-switches b { font-size: 12px; }
.privacy-switches small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.privacy-switches input[type="checkbox"] {
  width: 20px;
  height: 20px;
  accent-color: #f4f6f8;
}
.animal-avatar-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px;
  margin-top: 14px;
}
.animal-avatar-choice {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 7px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.025);
  color: var(--muted);
}
.animal-avatar-choice img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 12px;
}
.animal-avatar-choice small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 8px; }
.animal-avatar-choice.active { border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.08); color: var(--text); }

.avatar-render,
.avatar-render-inner,
.leader-avatar { display: inline-grid; place-items: center; border-radius: 50%; background: #14181e; }
.avatar-render-inner { width: 100%; height: 100%; }
.leader-avatar { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.1); }
.leaderboard-row { grid-template-columns: 34px 38px minmax(0,1fr) auto; align-items: center; }
.leaderboard-row .leader-avatar { grid-column: auto; }
.shift-person .avatar,
.staff-session-option .avatar,
#foundAvatar.avatar { position: relative; }
.shift-person .avatar .avatar-render-inner,
.staff-session-option .avatar .avatar-render-inner,
#foundAvatar.avatar .avatar-render-inner { position: absolute; inset: 0; }

@media (max-width: 370px) {
  .secondary-avatar-grid { grid-template-columns: 1fr; }
  .animal-avatar-grid { grid-template-columns: repeat(2, 1fr); }
  .age-option-grid { grid-template-columns: repeat(2, 1fr); }
}


/* V12: фиксированная навигация, особые рамки и достижение владельца */
.app-shell {
  padding-bottom: calc(108px + env(safe-area-inset-bottom));
}
.bottom-nav {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  bottom: 0 !important;
  transform: translateX(-50%) !important;
  width: min(100%, 480px) !important;
  z-index: 120 !important;
  padding-bottom: calc(8px + env(safe-area-inset-bottom));
}

.avatar-frame::before,
.avatar-frame::after {
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: inherit;
}
.avatar-frame::before {
  inset: 0;
  z-index: 5;
  padding: 2px;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: avatarFrameSpin 5.5s linear infinite;
}
.avatar-frame::after {
  inset: 2px;
  z-index: 4;
  opacity: .75;
  animation: avatarFramePulse 2.4s ease-in-out infinite;
}
.avatar-frame-fire::before {
  background: conic-gradient(from 0deg, #3b0900, #ff3d00, #ffd36a, #ff6a00, #681000, #ffcf72, #ff3d00, #3b0900);
}
.avatar-frame-fire::after {
  box-shadow: inset 0 0 8px rgba(255,94,0,.62), 0 0 12px rgba(255,73,0,.42), 0 0 22px rgba(255,156,48,.22);
  background:
    radial-gradient(circle at 18% 80%, rgba(255,205,98,.95) 0 1px, transparent 2px),
    radial-gradient(circle at 78% 22%, rgba(255,102,0,.9) 0 1px, transparent 2px),
    radial-gradient(circle at 54% 8%, rgba(255,235,167,.8) 0 1px, transparent 2px);
}
.avatar-frame-cosmic {
  filter: drop-shadow(0 0 5px rgba(117,72,198,.36));
}
.avatar-frame-cosmic::before {
  inset: -2px;
  padding: 3px;
  background:
    conic-gradient(
      from 0deg,
      #050408 0deg,
      #211238 34deg,
      #7542c9 72deg,
      #f7f5ff 94deg,
      #30184d 128deg,
      #09070d 166deg,
      #a790d5 204deg,
      #ffffff 224deg,
      #5f2aa4 266deg,
      #181020 312deg,
      #050408 360deg
    );
  box-shadow:
    0 0 8px rgba(120,71,199,.66),
    0 0 18px rgba(74,38,132,.38),
    inset 0 0 8px rgba(255,255,255,.18);
  animation: avatarCosmicOrbit 7.5s linear infinite;
}
.avatar-frame-cosmic::after {
  inset: -5px;
  opacity: .92;
  background:
    radial-gradient(circle at 50% 4%, rgba(255,255,255,1) 0 1px, transparent 2px),
    radial-gradient(circle at 86% 22%, rgba(201,183,255,.95) 0 1.2px, transparent 2.2px),
    radial-gradient(circle at 96% 58%, rgba(255,255,255,.9) 0 .9px, transparent 2px),
    radial-gradient(circle at 72% 91%, rgba(151,104,232,.95) 0 1.4px, transparent 2.5px),
    radial-gradient(circle at 29% 96%, rgba(255,255,255,.88) 0 1px, transparent 2px),
    radial-gradient(circle at 3% 63%, rgba(185,157,245,.9) 0 1.3px, transparent 2.4px),
    radial-gradient(circle at 13% 21%, rgba(255,255,255,.78) 0 .8px, transparent 1.8px),
    conic-gradient(from 150deg, transparent 0 22%, rgba(115,62,190,.18) 31%, transparent 42% 68%, rgba(255,255,255,.11) 78%, transparent 88%);
  box-shadow:
    0 0 11px rgba(185,156,255,.52),
    0 0 24px rgba(83,41,151,.42),
    0 0 38px rgba(255,255,255,.12),
    inset 0 0 12px rgba(223,211,255,.24);
  animation: avatarCosmicStars 4.2s ease-in-out infinite, avatarCosmicDrift 11s linear infinite;
}
.profile-avatar .avatar-frame::before { padding: 3px; }
.profile-avatar .avatar-frame::after { inset: 3px; }

.achievement-section { position: relative; }
.achievement-card {
  width: 100%;
  display: grid;
  grid-template-columns: 58px minmax(0,1fr) 20px;
  align-items: center;
  gap: 13px;
  padding: 14px;
  border: 1px solid rgba(181,151,255,.2);
  border-radius: 20px;
  background:
    radial-gradient(circle at 12% 50%, rgba(104,55,170,.18), transparent 32%),
    linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  color: var(--text);
  text-align: left;
  transition: filter .2s ease, border-color .2s ease, transform .2s ease, background .2s ease;
}
.achievement-card:hover,
.achievement-card:focus-visible,
.achievement-card.expanded {
  filter: brightness(1.2);
  border-color: rgba(215,199,255,.58);
  background:
    radial-gradient(circle at 12% 50%, rgba(126,68,205,.3), transparent 36%),
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
}
.achievement-card:active { transform: scale(.992); }
.achievement-emblem {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 26px;
  color: #fff;
  background: radial-gradient(circle at 35% 28%, #fff, #b8a0e8 16%, #5f2c97 48%, #0a0710 76%);
  box-shadow: 0 0 0 1px rgba(255,255,255,.22), 0 0 22px rgba(120,71,188,.35);
}
.achievement-copy { min-width: 0; display: grid; }
.achievement-copy small { color: #cbb8ef; font-size: 9px; letter-spacing: .11em; text-transform: uppercase; }
.achievement-copy strong { margin-top: 2px; font-size: 16px; }
.achievement-copy span {
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
  opacity: 0;
  transition: max-height .24s ease, margin .24s ease, opacity .2s ease;
}
.achievement-card:hover .achievement-copy span,
.achievement-card:focus-visible .achievement-copy span,
.achievement-card.expanded .achievement-copy span {
  max-height: 70px;
  margin-top: 7px;
  opacity: 1;
}
.achievement-card > i { color: #cbb8ef; font-size: 24px; font-style: normal; transition: transform .2s ease; }
.achievement-card.expanded > i { transform: rotate(90deg); }
.unlimited-mark { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; font-weight: 600; }

@keyframes avatarFrameSpin { to { transform: rotate(360deg); } }
@keyframes avatarFramePulse { 0%,100% { opacity: .55; filter: brightness(.9); } 50% { opacity: 1; filter: brightness(1.28); } }
@keyframes avatarCosmicOrbit {
  0% { transform: rotate(0deg) scale(1); filter: brightness(.92) saturate(.95); }
  50% { transform: rotate(180deg) scale(1.025); filter: brightness(1.2) saturate(1.16); }
  100% { transform: rotate(360deg) scale(1); filter: brightness(.92) saturate(.95); }
}
@keyframes avatarCosmicStars {
  0%,100% { opacity: .58; filter: brightness(.82) blur(0); }
  28% { opacity: 1; filter: brightness(1.42) blur(.1px); }
  62% { opacity: .76; filter: brightness(1.06) blur(0); }
}
@keyframes avatarCosmicDrift {
  from { transform: rotate(0deg); }
  to { transform: rotate(-360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .avatar-frame::before,
  .avatar-frame::after { animation: none; }
}


/* V12.2: обязательное подтверждение литров и надёжные аватары */
#beerVolumeHint { transition: color .18s ease; }
#beerVolumeHint.confirmed { color: var(--gold2); }
.volume-presets button.active {
  border-color: var(--gold2);
  color: var(--text);
  background: color-mix(in srgb, var(--gold) 18%, transparent);
}
.profile-avatar .avatar-fallback,
.avatar-render .avatar-fallback,
.avatar-render-inner .avatar-fallback {
  background: radial-gradient(circle at 38% 28%, rgba(255,255,255,.10), transparent 42%), rgba(255,255,255,.035);
  color: var(--text);
  font-weight: 700;
}

/* V12.3: денежная рамка владельца, витрина магазина и атмосферный фон */
body {
  background: #05070a;
}
.app-shell {
  background: rgba(5, 7, 10, .92);
}
.app-shell::before {
  inset: 0 !important;
  top: 0 !important;
  height: auto !important;
  background:
    linear-gradient(180deg, rgba(5,7,10,.48) 0%, rgba(5,7,10,.72) 28%, rgba(5,7,10,.9) 66%, rgba(5,7,10,.97) 100%),
    radial-gradient(circle at 50% 12%, rgba(255,255,255,.08), transparent 34%),
    url('/assets/backgrounds/pivnik-city.webp?v=12.3') center top / cover no-repeat !important;
  opacity: 1 !important;
  mask-image: none !important;
  -webkit-mask-image: none !important;
  filter: saturate(.72) contrast(1.08) brightness(.82);
}
.app-shell::after {
  inset: 0 !important;
  top: 0 !important;
  height: auto !important;
  background:
    linear-gradient(90deg, rgba(4,6,9,.64), transparent 18% 82%, rgba(4,6,9,.64)),
    repeating-linear-gradient(118deg, transparent 0 64px, rgba(255,255,255,.012) 65px 66px, transparent 67px 132px) !important;
  opacity: 1 !important;
}
.topbar {
  background: linear-gradient(180deg, rgba(5,7,10,.98), rgba(5,7,10,.84), rgba(5,7,10,.22));
}
.hero-card,
.card,
.team-strip,
.client-tip,
.leaderboard-entry,
.home-action-card,
.premium-offer,
.shop-product,
.leaderboard-row,
.beer-loyalty-card,
.help-entry,
.achievement-card {
  background: linear-gradient(145deg, rgba(16,20,27,.93), rgba(8,11,16,.9));
  border-color: rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045), 0 14px 34px rgba(0,0,0,.22);
  backdrop-filter: blur(13px);
}

/* Компактный безлимит не выталкивает аватар */
#clientBalance.unlimited-balance {
  font-size: 58px;
  line-height: .78;
  letter-spacing: -.08em;
  max-width: 120px;
}
.hero-head > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}
.profile-avatar {
  flex: 0 0 auto;
}

/* Доллары вращаются вокруг аватара владельца */
.avatar-frame-money,
.profile-avatar.has-money-frame,
.profile-avatar.has-money-frame .avatar-render-inner {
  overflow: visible !important;
}
.avatar-frame-money {
  filter: drop-shadow(0 0 7px rgba(68, 212, 124, .2));
}
.avatar-frame-money::before {
  inset: -2px;
  padding: 3px;
  background: conic-gradient(from 0deg, #07110b, #2f8d55, #c7ffd9, #195c36, #050806, #5ccf83, #eaffef, #07110b);
  box-shadow: 0 0 10px rgba(76,215,128,.28), inset 0 0 8px rgba(255,255,255,.14);
  animation: avatarMoneyRing 7s linear infinite;
}
.avatar-frame-money::after {
  inset: -4px;
  background: radial-gradient(circle, transparent 55%, rgba(67,190,111,.15) 72%, transparent 78%);
  box-shadow: 0 0 18px rgba(58,170,102,.22);
  animation: avatarFramePulse 2.8s ease-in-out infinite;
}
.avatar-frame-money img,
.avatar-frame-money > .avatar-fallback {
  border-radius: inherit;
  clip-path: inset(0 round inherit);
}
.money-orbit {
  position: absolute;
  inset: -12px;
  z-index: 9;
  pointer-events: none;
  animation: moneyOrbitSpin 6.8s linear infinite;
}
.money-orbit i {
  position: absolute;
  display: grid;
  place-items: center;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  color: #dfffe9;
  background: rgba(7,18,11,.84);
  border: 1px solid rgba(174,255,204,.48);
  box-shadow: 0 0 8px rgba(77,222,132,.4);
  font: 800 10px/1 system-ui, sans-serif;
  font-style: normal;
  animation: moneySymbolUpright 6.8s linear infinite reverse, moneySymbolPulse 1.8s ease-in-out infinite;
}
.money-orbit i:nth-child(1) { left: calc(50% - 7px); top: -7px; }
.money-orbit i:nth-child(2) { right: 1px; top: 5px; animation-delay: -.2s; }
.money-orbit i:nth-child(3) { right: -7px; top: calc(50% - 7px); animation-delay: -.4s; }
.money-orbit i:nth-child(4) { right: 1px; bottom: 5px; animation-delay: -.6s; }
.money-orbit i:nth-child(5) { left: calc(50% - 7px); bottom: -7px; animation-delay: -.8s; }
.money-orbit i:nth-child(6) { left: 1px; bottom: 5px; animation-delay: -1s; }
.money-orbit i:nth-child(7) { left: -7px; top: calc(50% - 7px); animation-delay: -1.2s; }
.money-orbit i:nth-child(8) { left: 1px; top: 5px; animation-delay: -1.4s; }
.profile-avatar .money-orbit { inset: -15px; }
.profile-avatar .money-orbit i { width: 17px; height: 17px; font-size: 11px; }

/* Живая витрина магазина */
.shop-catalog {
  display: grid;
  gap: 12px;
}
.shop-showcase {
  position: relative;
  min-height: 330px;
  overflow: hidden;
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.14);
  background: #080b10;
  box-shadow: 0 18px 42px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.05);
}
.shop-showcase.disabled { opacity: .78; }
.shop-showcase-media,
.shop-showcase-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
}
.shop-showcase-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.78) contrast(1.04) brightness(.72);
}
.shop-showcase-image.content-image-fallback {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 70% 20%, rgba(255,255,255,.11), transparent 30%),
    linear-gradient(145deg, #171d26, #090c11 70%);
}
.shop-showcase-image.content-image-fallback span {
  font-size: 92px;
  font-weight: 900;
  color: rgba(255,255,255,.14);
}
.shop-showcase-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(4,6,9,.08), rgba(4,6,9,.42) 42%, rgba(4,6,9,.97) 100%),
    linear-gradient(90deg, rgba(4,6,9,.42), transparent 68%);
}
.shop-showcase-content {
  position: absolute;
  inset: auto 20px 22px;
  z-index: 3;
  display: grid;
  gap: 8px;
}
.shop-showcase-kicker {
  width: fit-content;
  padding: 6px 9px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(7,10,14,.58);
  color: #e9edf2;
  font-size: 9px;
  letter-spacing: .13em;
  backdrop-filter: blur(10px);
}
.shop-showcase h3 {
  margin: 0;
  max-width: 92%;
  font-size: 25px;
  line-height: 1.03;
  letter-spacing: -.04em;
}
.shop-showcase p {
  margin: 0;
  max-width: 94%;
  color: #b6bec8;
  font-size: 12px;
  line-height: 1.45;
}
.shop-showcase-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  margin-top: 3px;
}
.shop-showcase-bottom strong {
  font-size: 22px;
}
.shop-showcase-bottom span {
  color: #c8ced6;
  font-size: 10px;
  text-align: right;
}
.shop-carousel-arrow {
  position: absolute;
  top: 50%;
  z-index: 4;
  width: 38px;
  height: 38px;
  transform: translateY(-50%);
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(5,8,12,.6);
  color: #fff;
  font-size: 26px;
  backdrop-filter: blur(10px);
}
.shop-carousel-arrow.prev { left: 10px; }
.shop-carousel-arrow.next { right: 10px; }
.shop-carousel-progress {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 10px;
  z-index: 4;
  height: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
}
.shop-carousel-progress i {
  display: block;
  width: 100%;
  height: 100%;
  transform-origin: left;
  background: #f3f5f7;
  animation: shopCarouselProgress 4.8s linear forwards;
}
.shop-carousel-dots {
  display: flex;
  justify-content: center;
  gap: 7px;
}
.shop-carousel-dots button {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
}
.shop-carousel-dots button.active {
  width: 22px;
  border-radius: 999px;
  background: #f3f5f7;
}
.shop-mini-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 8px;
}
.shop-mini-item {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px;
  border-radius: 15px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.025);
  color: var(--text);
  text-align: left;
}
.shop-mini-item.active {
  border-color: rgba(255,255,255,.3);
  background: rgba(255,255,255,.075);
}
.shop-mini-item.disabled { opacity: .52; }
.shop-mini-media {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  overflow: hidden;
  border-radius: 11px;
  background: #10151c;
}
.shop-mini-media img { width: 100%; height: 100%; object-fit: cover; }
.shop-mini-media.content-image-fallback { display: grid; place-items: center; color: rgba(255,255,255,.35); }
.shop-mini-item > span { min-width: 0; display: grid; gap: 3px; }
.shop-mini-item b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.shop-mini-item small { color: var(--muted); font-size: 9px; }

@keyframes avatarMoneyRing { to { transform: rotate(360deg); } }
@keyframes moneyOrbitSpin { to { transform: rotate(360deg); } }
@keyframes moneySymbolUpright { to { transform: rotate(360deg); } }
@keyframes moneySymbolPulse { 0%,100% { filter: brightness(.86); opacity: .78; } 50% { filter: brightness(1.25); opacity: 1; } }
@keyframes shopCarouselProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (max-width: 380px) {
  .shop-showcase { min-height: 300px; }
  .shop-showcase h3 { font-size: 21px; }
  .shop-mini-list { grid-template-columns: 1fr; }
  .money-orbit { inset: -9px; }
  .profile-avatar .money-orbit { inset: -13px; }
}

@media (prefers-reduced-motion: reduce) {
  .money-orbit,
  .money-orbit i,
  .avatar-frame-money::before,
  .shop-carousel-progress i {
    animation: none !important;
  }
}


/* V12.4: карусель магазина в профиле и категории внутри магазина */
.shop-entry-card {
  min-height: 180px;
}
.shop-entry-card .home-action-kicker {
  max-width: calc(100% - 12px);
  font-size: 8px;
  line-height: 1.3;
}
.home-shop-preview {
  position: relative;
  width: 100%;
  height: 76px;
  margin: 10px 0 auto;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(145deg, rgba(27,32,41,.96), rgba(8,11,16,.94));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.home-shop-preview-media,
.home-shop-preview-media img {
  width: 100%;
  height: 100%;
}
.home-shop-preview-media img {
  display: block;
  object-fit: cover;
  filter: saturate(.82) contrast(1.05) brightness(.74);
}
.home-shop-preview-media.content-image-fallback,
.home-shop-preview-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 72% 22%, rgba(255,255,255,.15), transparent 28%),
    linear-gradient(135deg, #1b212b, #090c11 72%);
  color: rgba(255,255,255,.22);
  font-size: 42px;
  font-weight: 800;
}
.home-shop-preview-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 25%, rgba(3,5,8,.82));
}
.home-shop-preview-price {
  position: absolute;
  right: 8px;
  bottom: 7px;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(5,8,12,.78);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  backdrop-filter: blur(8px);
}

.shop-catalog {
  display: grid;
  gap: 22px;
}
.shop-category {
  display: grid;
  gap: 10px;
}
.shop-category-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  padding: 0 2px;
}
.shop-category-head > div {
  min-width: 0;
}
.shop-category-head span {
  display: block;
  margin-bottom: 3px;
  color: var(--muted);
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.shop-category-head h3 {
  margin: 0;
  font-size: 20px;
  line-height: 1.1;
  letter-spacing: -.025em;
}
.shop-category-head > b {
  display: grid;
  place-items: center;
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.045);
  color: var(--muted);
  font-size: 10px;
}
.shop-category-grid {
  display: grid;
  gap: 9px;
}
.shop-list-card {
  display: grid;
  grid-template-columns: 64px minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 11px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.1);
  background: linear-gradient(145deg, rgba(17,21,28,.93), rgba(8,11,16,.9));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}
.shop-list-card.disabled {
  opacity: .58;
}
.shop-list-media {
  width: 64px;
  height: 64px;
  overflow: hidden;
  border-radius: 14px;
  background: #10151c;
}
.shop-list-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.shop-list-media.content-image-fallback {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 68% 22%, rgba(255,255,255,.13), transparent 30%),
    linear-gradient(145deg, #1a2029, #090c11 72%);
  color: rgba(255,255,255,.24);
  font-size: 26px;
  font-weight: 800;
}
.shop-list-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.shop-list-copy b {
  font-size: 14px;
  line-height: 1.2;
}
.shop-list-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}
.shop-list-copy small {
  width: fit-content;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  color: #d7dce2;
  font-size: 8px;
}
.shop-list-card > strong {
  align-self: start;
  padding-top: 3px;
  font-size: 13px;
  white-space: nowrap;
}

/* Алмазная рамка — покупается за бонусы и включается автоматически */
.avatar-frame-diamond {
  overflow: visible !important;
  filter: drop-shadow(0 0 7px rgba(205,231,255,.32));
}
.avatar-frame-diamond::before {
  inset: -3px;
  padding: 3px;
  background: conic-gradient(from 0deg, #8a9aaa, #f7fbff, #86b9e5, #d7e8f8, #ffffff, #7a8c9e, #8a9aaa);
  box-shadow: 0 0 12px rgba(190,225,255,.38), inset 0 0 8px rgba(255,255,255,.55);
  animation: diamondFrameSpin 8s linear infinite;
}
.avatar-frame-diamond::after {
  inset: -7px;
  border: 1px dashed rgba(220,240,255,.44);
  background: transparent;
  box-shadow: 0 0 16px rgba(160,210,255,.2);
  animation: diamondFramePulse 2.4s ease-in-out infinite;
}
@keyframes diamondFrameSpin { to { transform: rotate(360deg); } }
@keyframes diamondFramePulse { 0%,100% { opacity: .45; transform: scale(.98); } 50% { opacity: 1; transform: scale(1.03); } }

@media (max-width: 380px) {
  .home-shop-preview { height: 68px; }
  .shop-list-card { grid-template-columns: 54px minmax(0,1fr); }
  .shop-list-media { width: 54px; height: 54px; }
  .shop-list-card > strong { grid-column: 2; padding-top: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .avatar-frame-diamond::before,
  .avatar-frame-diamond::after {
    animation: none !important;
  }
}


/* Предметные заглушки вместо пустого квадрата */
.shop-visual span {
  position: relative;
  z-index: 1;
  font-weight: 800;
  letter-spacing: -.04em;
}
.shop-visual-cider {
  background: radial-gradient(circle at 72% 22%, rgba(255,205,126,.28), transparent 30%), linear-gradient(145deg, #3a2817, #0d0a07 72%) !important;
  color: #f0c98d !important;
}
.shop-visual-frost {
  background: radial-gradient(circle at 68% 24%, rgba(200,235,255,.32), transparent 31%), linear-gradient(145deg, #203342, #081017 72%) !important;
  color: #dff4ff !important;
}
.shop-visual-glass {
  background: radial-gradient(circle at 70% 20%, rgba(255,255,255,.18), transparent 30%), linear-gradient(145deg, #29242d, #0d0a10 72%) !important;
  color: #f0e8f4 !important;
}
.shop-visual-money {
  background: radial-gradient(circle at 70% 20%, rgba(117,255,172,.24), transparent 31%), linear-gradient(145deg, #173423, #070d09 72%) !important;
  color: #d8ffe6 !important;
}
.shop-visual-fire {
  background: radial-gradient(circle at 70% 20%, rgba(255,142,70,.3), transparent 31%), linear-gradient(145deg, #3d1d10, #100806 72%) !important;
  color: #ffd4b4 !important;
}
.shop-visual-diamond {
  background: radial-gradient(circle at 70% 20%, rgba(214,240,255,.4), transparent 30%), linear-gradient(145deg, #243746, #081016 72%) !important;
  color: #ecf8ff !important;
}
.home-shop-preview-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  height: 2px;
  transform-origin: left;
  background: rgba(255,255,255,.82);
  animation: homeShopProgress 10s linear forwards;
}
@keyframes homeShopProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) {
  .home-shop-preview-progress { animation: none !important; }
}

/* V13: персональная рамка Анны, компактный админ-дашборд, обращения и карточки магазина */
.avatar-frame-anna,
.profile-avatar.has-anna-frame,
.profile-avatar.has-anna-frame .avatar-render-inner {
  overflow: visible !important;
}
.avatar-frame-anna {
  filter: drop-shadow(0 0 8px rgba(245, 74, 112, .28));
}
.avatar-frame-anna::before {
  inset: -3px;
  padding: 3px;
  background: conic-gradient(from 20deg, #17060d, #7d1734, #ff7195, #2d0b18, #b6224f, #ffd1dc, #17060d);
  box-shadow: 0 0 13px rgba(255, 78, 122, .34), inset 0 0 8px rgba(255,255,255,.18);
  animation: annaFrameSpin 8.5s linear infinite;
}
.avatar-frame-anna::after {
  inset: -7px;
  border: 1px solid rgba(255, 102, 141, .26);
  background: radial-gradient(circle, transparent 55%, rgba(255, 66, 118, .12) 72%, transparent 79%);
  box-shadow: 0 0 18px rgba(255, 61, 112, .18);
  animation: avatarFramePulse 2.5s ease-in-out infinite;
}
.avatar-orbit {
  position: absolute;
  inset: -12px;
  z-index: 9;
  pointer-events: none;
}
.anna-orbit {
  animation: annaOrbitSpin 7.4s linear infinite;
}
.anna-orbit i {
  position: absolute;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  color: #fff;
  background: rgba(25, 6, 14, .9);
  border: 1px solid rgba(255, 125, 158, .48);
  box-shadow: 0 0 9px rgba(255, 70, 118, .42);
  font: 900 10px/1 system-ui, sans-serif;
  font-style: normal;
  animation: annaSymbolUpright 7.4s linear infinite reverse, moneySymbolPulse 1.9s ease-in-out infinite;
}
.anna-orbit i:nth-child(1) { left: calc(50% - 9px); top: -9px; }
.anna-orbit i:nth-child(2) { right: 0; top: 4px; animation-delay: -.18s; }
.anna-orbit i:nth-child(3) { right: -9px; top: calc(50% - 9px); animation-delay: -.36s; }
.anna-orbit i:nth-child(4) { right: 0; bottom: 4px; animation-delay: -.54s; }
.anna-orbit i:nth-child(5) { left: calc(50% - 9px); bottom: -9px; animation-delay: -.72s; }
.anna-orbit i:nth-child(6) { left: 0; bottom: 4px; animation-delay: -.9s; }
.anna-orbit i:nth-child(7) { left: -9px; top: calc(50% - 9px); animation-delay: -1.08s; }
.anna-orbit i:nth-child(8) { left: 0; top: 4px; animation-delay: -1.26s; }
.profile-avatar .anna-orbit { inset: -16px; }
.profile-avatar .anna-orbit i { width: 19px; height: 19px; font-size: 11px; }
.anna-18 {
  position: relative;
  display: inline-grid;
  place-items: center;
  font-size: 8px;
  letter-spacing: -.08em;
}
.anna-18::after {
  content: '';
  position: absolute;
  width: 17px;
  height: 2px;
  border-radius: 2px;
  background: #ff304f;
  transform: rotate(-42deg);
  box-shadow: 0 0 4px rgba(255,48,79,.8);
}
.anna-heart { font-size: 11px; line-height: 1; }
.anna-whip { font-size: 13px; transform: rotate(-28deg); }
.anna-cash { color: #bfffd0; font-size: 11px; }
@keyframes annaFrameSpin { to { transform: rotate(360deg); } }
@keyframes annaOrbitSpin { to { transform: rotate(360deg); } }
@keyframes annaSymbolUpright { to { transform: rotate(360deg); } }

/* Персональная рамка Олеси — множество живых сердечек */
.avatar-frame-olesya,
.profile-avatar.has-olesya-frame,
.profile-avatar.has-olesya-frame .avatar-render-inner {
  overflow: visible !important;
}
.avatar-frame-olesya {
  filter: drop-shadow(0 0 10px rgba(255, 85, 154, .38));
}
.avatar-frame-olesya::before {
  inset: -4px;
  padding: 3px;
  background: conic-gradient(from 10deg, #250814, #8d174a, #ff5d9e, #ffd4e6, #c82468, #671037, #ff8fba, #250814);
  box-shadow: 0 0 15px rgba(255, 76, 145, .42), inset 0 0 9px rgba(255,255,255,.24);
  animation: olesyaFrameSpin 9.6s linear infinite;
}
.avatar-frame-olesya::after {
  inset: -10px;
  border: 1px solid rgba(255, 137, 183, .3);
  background:
    radial-gradient(circle at 50% 50%, transparent 52%, rgba(255, 73, 144, .16) 70%, transparent 82%);
  box-shadow: 0 0 24px rgba(255, 64, 137, .28);
  animation: olesyaFrameGlow 2.2s ease-in-out infinite;
}
.olesya-orbit {
  inset: -20px;
  animation: olesyaOrbitSpin 9.6s linear infinite;
}
.olesya-orbit i {
  --angle: calc(var(--orbit-index) * 30deg);
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1px;
  height: 1px;
  transform: rotate(var(--angle)) translateY(-38px);
  transform-origin: center;
  font-style: normal;
}
.olesya-orbit i span {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  margin: -9px;
  color: #fff0f7;
  font: 900 15px/1 system-ui, sans-serif;
  text-shadow: 0 0 5px #ff4f94, 0 0 11px rgba(255, 56, 131, .75);
  animation: olesyaHeartPulse 1.7s ease-in-out infinite;
  animation-delay: calc(var(--orbit-index) * -.11s);
}
.olesya-orbit i:nth-child(3n) span {
  color: #ff6fa8;
  font-size: 13px;
}
.olesya-orbit i:nth-child(4n) span {
  color: #ffd0e2;
  font-size: 17px;
}
.profile-avatar .olesya-orbit {
  inset: -24px;
}
.profile-avatar .olesya-orbit i {
  transform: rotate(var(--angle)) translateY(-44px);
}
.profile-avatar .olesya-orbit i span {
  width: 20px;
  height: 20px;
  margin: -10px;
  font-size: 17px;
}
@keyframes olesyaFrameSpin { to { transform: rotate(360deg); } }
@keyframes olesyaOrbitSpin { to { transform: rotate(360deg); } }
@keyframes olesyaFrameGlow {
  0%, 100% { opacity: .55; transform: scale(.98); }
  50% { opacity: 1; transform: scale(1.04); }
}
@keyframes olesyaHeartPulse {
  0%, 100% { opacity: .62; transform: scale(.78); }
  50% { opacity: 1; transform: scale(1.22); }
}
@media (prefers-reduced-motion: reduce) {
  .avatar-frame-olesya::before,
  .avatar-frame-olesya::after,
  .olesya-orbit,
  .olesya-orbit i span {
    animation: none !important;
  }
}

/* Персональная рамка бармена Владислава — 12 пульсирующих какашек */
.avatar-frame-vladislav,
.profile-avatar.has-vladislav-frame,
.profile-avatar.has-vladislav-frame .avatar-render-inner {
  overflow: visible !important;
}
.avatar-frame-vladislav {
  filter: drop-shadow(0 0 9px rgba(181, 112, 53, .42));
}
.avatar-frame-vladislav::before {
  inset: -4px;
  padding: 3px;
  background: conic-gradient(from 0deg, #24140a, #6f3e1d, #b8783d, #f0bf72, #6a3517, #d49a55, #2a160b);
  box-shadow: 0 0 14px rgba(190, 119, 57, .42), inset 0 0 8px rgba(255,239,202,.2);
  animation: vladislavFrameGlow 2.1s ease-in-out infinite;
}
.avatar-frame-vladislav::after {
  inset: -10px;
  border: 1px solid rgba(226, 157, 88, .3);
  background: radial-gradient(circle, transparent 54%, rgba(133, 74, 30, .18) 72%, transparent 82%);
  box-shadow: 0 0 21px rgba(155, 88, 37, .28);
  animation: vladislavFrameGlow 2.1s ease-in-out infinite reverse;
}
.vladislav-orbit {
  inset: -20px;
}
.vladislav-orbit i {
  --angle: calc(var(--orbit-index) * 30deg);
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1px;
  height: 1px;
  transform: rotate(var(--angle)) translateY(-38px);
  transform-origin: center;
  font-style: normal;
}
.vladislav-orbit i span {
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  margin: -10px;
  font: 900 17px/1 system-ui, sans-serif;
  transform: rotate(var(--counter-angle));
  scale: .78;
  filter: drop-shadow(0 0 4px rgba(230, 164, 87, .52));
  animation: vladislavPoopPulse 1.35s ease-in-out infinite;
  animation-delay: calc(var(--orbit-index) * -.085s);
}
.profile-avatar .vladislav-orbit {
  inset: -24px;
}
.profile-avatar .vladislav-orbit i {
  transform: rotate(var(--angle)) translateY(-44px);
}
.profile-avatar .vladislav-orbit i span {
  width: 22px;
  height: 22px;
  margin: -11px;
  font-size: 19px;
}
@keyframes vladislavPoopPulse {
  0%, 100% { opacity: .62; scale: .76; filter: drop-shadow(0 0 3px rgba(230,164,87,.35)); }
  50% { opacity: 1; scale: 1.24; filter: drop-shadow(0 0 9px rgba(243,183,104,.88)); }
}
@keyframes vladislavFrameGlow {
  0%, 100% { opacity: .58; transform: scale(.985); }
  50% { opacity: 1; transform: scale(1.035); }
}
@media (prefers-reduced-motion: reduce) {
  .avatar-frame-vladislav::before,
  .avatar-frame-vladislav::after,
  .vladislav-orbit i span {
    animation: none !important;
  }
}

.shop-list-card {
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: stretch;
  gap: 13px;
  padding: 13px;
}
.shop-list-media {
  width: 92px;
  height: 112px;
  border-radius: 16px;
}
.shop-list-copy b { font-size: 15px; }
.shop-list-copy p { font-size: 11px; }
.shop-list-price {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.shop-list-price > strong {
  font-size: 15px;
  white-space: nowrap;
}
.shop-card-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}
.shop-card-actions .secondary {
  min-height: 34px;
  padding: 7px 11px;
  font-size: 10px;
}
.shop-card-actions .text-btn {
  font-size: 10px;
  white-space: nowrap;
}

.admin-quick-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 12px;
}
.admin-quick-grid button {
  display: grid;
  gap: 5px;
  min-height: 82px;
  padding: 14px;
  text-align: left;
  color: var(--text);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(17,22,29,.95), rgba(8,11,16,.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.admin-quick-grid span { font-weight: 800; font-size: 13px; }
.admin-quick-grid small { color: var(--muted); font-size: 9px; line-height: 1.35; }
.admin-preview-card .card-head { align-items: flex-start; }
.admin-preview-card .card-head p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.compact-user-row .user-actions { display: none; }

.admin-directory-sheet { gap: 14px; }
.admin-filter-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, .45fr);
  gap: 9px;
  position: sticky;
  top: -1px;
  z-index: 3;
  padding: 4px 0 10px;
  background: linear-gradient(180deg, rgba(12,15,20,.98) 72%, transparent);
}
.inquiry-list { display: grid; gap: 9px; }
.inquiry-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 13px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 17px;
  background: rgba(255,255,255,.035);
}
.inquiry-row.status-new { border-color: rgba(255, 173, 72, .32); }
.inquiry-row.status-order { border-color: rgba(80, 220, 142, .3); }
.inquiry-main { min-width: 0; display: grid; gap: 4px; }
.inquiry-main > span {
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.inquiry-main b { font-size: 13px; }
.inquiry-main small { color: var(--muted); font-size: 9px; line-height: 1.35; }
.inquiry-main p { margin: 4px 0 0; font-size: 11px; line-height: 1.45; white-space: pre-wrap; }
.inquiry-actions { display: flex; align-items: flex-end; justify-content: center; flex-direction: column; gap: 8px; }
.inquiry-actions select {
  max-width: 150px;
  padding: 7px 9px;
  border-radius: 10px;
  color: var(--text);
  border: 1px solid rgba(255,255,255,.12);
  background: var(--surface);
  font-size: 10px;
}
.inquiry-sheet p { color: var(--muted); font-size: 11px; line-height: 1.45; }

.wallet-actions {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.wallet-button {
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 13px;
  color: #fff;
  background: #08090b;
  font-weight: 750;
}

@media (max-width: 420px) {
  .shop-list-card { grid-template-columns: 78px minmax(0, 1fr); }
  .shop-list-media { width: 78px; height: 98px; }
  .shop-list-price { align-items: flex-start; flex-direction: column; }
  .shop-card-actions { width: 100%; justify-content: space-between; }
  .admin-filter-row { grid-template-columns: 1fr; }
  .inquiry-row { grid-template-columns: 1fr; }
  .inquiry-actions { align-items: stretch; }
  .inquiry-actions select { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .avatar-frame-anna::before,
  .avatar-frame-anna::after,
  .anna-orbit,
  .anna-orbit i { animation: none !important; }
}


/* V14: Android-safe startup and achievement preview */
.boot-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.boot-actions button { min-height: 44px; }
.boot-screen.error .boot-copy { padding-bottom: 18px; }

.section-link {
  appearance: none; border: 0; background: transparent; color: var(--muted); padding: 4px 0 4px 10px;
  font: inherit; font-size: 13px; cursor: pointer;
}
.section-link span { font-size: 20px; vertical-align: -2px; }
.profile-achievement-showcase { display: flex; align-items: flex-end; gap: 10px; min-height: 78px; overflow-x: auto; padding: 4px 2px 8px; scrollbar-width: none; }
.profile-achievement-showcase::-webkit-scrollbar { display: none; }
.achievement-empty {
  width: 100%; min-height: 68px; border: 1px dashed rgba(255,255,255,.12); border-radius: 18px;
  background: rgba(255,255,255,.025); color: var(--muted); text-align: left; padding: 16px; cursor: pointer;
}
.achievement-empty span { float: right; font-size: 22px; }
.profile-achievement-medal {
  flex: 0 0 auto; border: 0; background: transparent; color: var(--text); padding: 0; display: grid; justify-items: center; gap: 5px; cursor: pointer;
}
.profile-achievement-medal > span {
  display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.06);
  box-shadow: inset 0 0 16px rgba(255,255,255,.04);
}
.profile-achievement-medal small { max-width: 82px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; color: var(--muted); }
.profile-achievement-medal.rarity-legendary > span { width: 70px; height: 70px; border-color: rgba(255,205,86,.7); box-shadow: 0 0 24px rgba(255,177,44,.28), inset 0 0 18px rgba(255,213,91,.12); }
.profile-achievement-medal.rarity-epic > span { width: 58px; height: 58px; border-color: rgba(190,100,255,.65); }
.profile-achievement-medal.rarity-rare > span { width: 48px; height: 48px; border-color: rgba(74,153,255,.6); }
.profile-achievement-medal.rarity-common > span { width: 38px; height: 38px; }

.all-seeing-eye { width: 76%; height: 76%; overflow: visible; }
.eye-triangle { fill: rgba(232,184,71,.10); stroke: #f0c967; stroke-width: 5; stroke-linejoin: round; }
.eye-shape { fill: rgba(8,9,12,.9); stroke: #fff0b4; stroke-width: 4; }
.eye-pupil { fill: #f4d36f; filter: drop-shadow(0 0 5px rgba(255,208,84,.85)); }
.beta-achievement-icon { display: grid; place-items: center; width: 100%; height: 100%; font-weight: 900; font-size: 32px; color: #fff0a8; text-shadow: 0 0 12px rgba(255,199,66,.72); }
.generic-achievement-icon { font-size: 24px; }

.achievement-tabs { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 6px; margin: 16px 0 14px; }
.achievement-tabs button {
  border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: rgba(255,255,255,.035); color: var(--muted);
  padding: 10px 4px; font-size: 11px; cursor: pointer;
}
.achievement-tabs button.active { color: var(--text); border-color: rgba(255,209,91,.48); background: rgba(255,193,62,.09); }
.achievement-coming-soon { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.035); }
.achievement-coming-soon b { color: #ffd66b; }
.achievement-coming-soon span { color: var(--muted); font-size: 12px; }
.achievement-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
.achievement-tile {
  min-width: 0; min-height: 142px; border: 1px solid rgba(255,255,255,.09); border-radius: 16px; background: rgba(255,255,255,.035);
  color: var(--text); padding: 12px 7px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px; text-align: center;
}
.achievement-tile-icon { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05); }
.achievement-tile b { width: 100%; font-size: 11px; line-height: 1.15; }
.achievement-tile small { font-size: 9px; color: var(--muted); }
.achievement-tile p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.25; }
.achievement-tile.locked { position: relative; overflow: hidden; filter: grayscale(1); color: rgba(255,255,255,.5); }
.achievement-tile.locked::after { content: ''; position: absolute; inset: 0; backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); background: rgba(5,7,10,.18); pointer-events: none; }
.achievement-tile.locked .achievement-tile-icon i { width: 30px; height: 30px; border-radius: 45% 55% 52% 48%; background: linear-gradient(135deg,#999,#333); }
.achievement-tile.earned.rarity-legendary { border-color: rgba(255,204,73,.55); box-shadow: 0 0 20px rgba(255,177,40,.12); }

.achievement-celebration-modal { z-index: 260; background: rgba(1,2,5,.92); }
.achievement-celebration-modal.open { display: grid; place-items: center; }
.achievement-celebration {
  position: relative; width: min(92vw, 430px); min-height: min(720px, 88vh); padding: 42px 28px 30px; border-radius: 30px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; overflow: hidden;
  border: 1px solid rgba(255,211,94,.42); background: radial-gradient(circle at 50% 28%, rgba(255,185,51,.22), transparent 32%), linear-gradient(180deg,#171006,#080a10 68%);
  box-shadow: 0 0 80px rgba(255,167,32,.2);
}
.achievement-celebration::before { content: ''; position: absolute; inset: -50%; background: conic-gradient(from 0deg,transparent,rgba(255,217,112,.12),transparent 18%); animation: achievementRay 7s linear infinite; }
.achievement-celebration > * { position: relative; z-index: 2; }
.achievement-celebration-kicker { text-transform: uppercase; letter-spacing: .22em; color: #ffdf83; font-size: 12px; }
.achievement-celebration-icon { width: 154px; height: 154px; margin: 25px 0 18px; border-radius: 50%; display: grid; place-items: center; border: 2px solid rgba(255,213,97,.78); background: radial-gradient(circle,#432b08,#0a0b0f 68%); box-shadow: 0 0 50px rgba(255,182,44,.38), inset 0 0 26px rgba(255,219,108,.16); animation: achievementFloat 3.2s ease-in-out infinite; }
.achievement-celebration-icon .beta-achievement-icon { font-size: 76px; }
.achievement-celebration-rarity { color: #ffd661; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
.achievement-celebration h2 { margin: 8px 0 8px; font-size: clamp(34px,8vw,50px); }
.achievement-celebration p { max-width: 320px; margin: 0; color: #c7c9cf; line-height: 1.45; }
.achievement-celebration-reward { margin: 18px 0 22px; padding: 10px 18px; border-radius: 999px; background: rgba(255,201,73,.12); color: #ffe49b; font-weight: 800; }
.achievement-celebration .primary { max-width: 300px; }
.achievement-burst { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.achievement-burst i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: #ffe792; box-shadow: 0 0 12px #ffd15e; animation: achievementSpark 2.7s ease-in-out infinite; }
.achievement-burst i:nth-child(1){left:14%;top:22%;animation-delay:.1s}.achievement-burst i:nth-child(2){left:82%;top:18%;animation-delay:.7s}.achievement-burst i:nth-child(3){left:8%;top:58%;animation-delay:1.2s}.achievement-burst i:nth-child(4){left:90%;top:62%;animation-delay:1.7s}.achievement-burst i:nth-child(5){left:26%;top:82%;animation-delay:2.1s}.achievement-burst i:nth-child(6){left:72%;top:86%;animation-delay:2.5s}
@keyframes achievementRay { to { transform: rotate(360deg); } }
@keyframes achievementFloat { 50% { transform: translateY(-8px) scale(1.02); } }
@keyframes achievementSpark { 0%,100% { opacity:.15; transform:scale(.6) } 50% { opacity:1; transform:scale(1.8) } }

/* Android Telegram WebView: avoid expensive effects and preserve the functional shell. */
.android-webview .boot-scene { width: min(100%, 420px); box-shadow: none; }
.android-webview .boot-smoke, .lite-mode .boot-smoke { display: none; }
.android-webview .boot-image { filter: none; }
.android-webview .app-shell::before, .lite-mode .app-shell::before { background-attachment: scroll !important; }
.android-webview .modal-sheet, .android-webview .bottom-nav, .android-webview .topbar,
.lite-mode .modal-sheet, .lite-mode .bottom-nav, .lite-mode .topbar { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.lite-mode *, .android-webview.reduce-effects * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
@media (prefers-reduced-motion: reduce) {
  .achievement-celebration::before, .achievement-celebration-icon, .achievement-burst i { animation: none !important; }
}
@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))) {
  .achievement-tile.locked::after { background: rgba(5,7,10,.66); }
}

/* V14.1 Android WebView safety overrides */
.android-webview * {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.android-webview .boot-image, .android-webview .sign-layer, .android-webview .app-shell::before {
  mix-blend-mode: normal !important;
}
.android-webview .achievement-tile.locked::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: rgba(5,7,10,.70) !important;
}
.android-webview.reduce-effects *, .lite-mode * {
  animation-duration: .001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .001ms !important;
}


/* V14.3 profile settings */
.profile-frame-block { margin-top: 18px; }
.profile-frame-block h3 { margin: 0 0 10px; }
.profile-frame-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.profile-frame-choice { min-height: 82px; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; background: rgba(255,255,255,.035); color: var(--text); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 10px; }
.profile-frame-choice.active { border-color: rgba(255,255,255,.65); background: rgba(255,255,255,.09); box-shadow: 0 0 0 2px rgba(255,255,255,.06) inset; }
.frame-choice-preview { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; border: 2px solid rgba(255,255,255,.35); }
.frame-choice-preview.avatar-frame-money { border-color: #65ef9b; box-shadow: 0 0 14px rgba(101,239,155,.55); color: #65ef9b; }
.frame-choice-preview.avatar-frame-fire { border-color: #ff7a3d; box-shadow: 0 0 14px rgba(255,122,61,.55); color: #ff7a3d; }
.frame-choice-preview.avatar-frame-diamond { border-color: #80dcff; box-shadow: 0 0 14px rgba(128,220,255,.55); color: #80dcff; }
.frame-choice-preview.avatar-frame-anna { border-color: #ff568a; box-shadow: 0 0 14px rgba(255,86,138,.55); color: #ff568a; }
@media (max-width: 380px) { .profile-frame-options { grid-template-columns: 1fr; } }

/* V15: safe-area, keyboard and reduced-height hardening for both app shells. */
.modal {
  padding:
    max(10px, env(safe-area-inset-top))
    10px
    max(10px, env(safe-area-inset-bottom));
}

.modal-sheet {
  max-height: calc(100dvh - max(20px, env(safe-area-inset-top)) - max(20px, env(safe-area-inset-bottom)));
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scroll-padding-bottom: calc(90px + env(safe-area-inset-bottom));
}

.modal-sheet input,
.modal-sheet textarea,
.modal-sheet select,
.modal-sheet button {
  scroll-margin-bottom: calc(100px + env(safe-area-inset-bottom));
}

.toast {
  bottom: calc(94px + env(safe-area-inset-bottom));
}

@media (max-height: 560px) {
  .modal {
    align-items: flex-end;
  }

  .modal-sheet {
    border-radius: 20px;
    padding: 18px;
  }
}

/* V16 · premium tavern finish, shared by Telegram and VK */
:root {
  --brass: #c99b48;
  --brass-light: #f4d98b;
  --ink-rich: #07090c;
  --leather: #17120e;
}

.hero-card,
.home-action-card,
.beer-loyalty-card,
.premium-offer,
.shop-list-card {
  background-image:
    linear-gradient(145deg, rgba(22, 25, 30, .96), rgba(7, 9, 12, .95)),
    repeating-linear-gradient(112deg, rgba(255,255,255,.018) 0 1px, transparent 1px 7px);
  border-color: rgba(213, 174, 96, .16);
  box-shadow:
    inset 0 1px 0 rgba(255, 238, 190, .055),
    inset 0 -1px 0 rgba(0,0,0,.5),
    0 18px 42px rgba(0,0,0,.28);
}

#shopModal .premium-sheet {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 88% 6%, rgba(211, 158, 66, .13), transparent 28%),
    radial-gradient(circle at 5% 42%, rgba(111, 64, 25, .13), transparent 30%),
    repeating-linear-gradient(96deg, rgba(255,255,255,.012) 0 1px, transparent 1px 9px),
    linear-gradient(160deg, #101116, #08090c 58%, #0d0b09);
  border-color: rgba(218, 175, 91, .22);
}

#shopModal .premium-sheet::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 8px;
  border: 1px solid rgba(207, 163, 78, .12);
  border-radius: inherit;
  pointer-events: none;
}

.shop-private-stock {
  position: relative;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  overflow: hidden;
  margin: 14px 0 9px;
  padding: 16px;
  border: 1px solid rgba(225, 184, 101, .32);
  border-radius: 20px;
  background:
    radial-gradient(circle at 12% 20%, rgba(242, 196, 103, .16), transparent 26%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.018) 0 1px, transparent 1px 5px),
    linear-gradient(135deg, rgba(32, 24, 17, .98), rgba(11, 12, 15, .98));
  box-shadow: inset 0 1px 0 rgba(255,236,187,.08), 0 18px 40px rgba(0,0,0,.25);
}

.shop-private-stock::after {
  content: '';
  position: absolute;
  right: -38px;
  top: -64px;
  width: 150px;
  height: 150px;
  border: 1px solid rgba(226, 187, 106, .09);
  border-radius: 50%;
  box-shadow: 0 0 0 18px rgba(226,187,106,.025), 0 0 0 36px rgba(226,187,106,.018);
}

.shop-private-monogram {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(242, 207, 132, .55);
  border-radius: 50%;
  color: var(--brass-light);
  font-family: Georgia, serif;
  font-size: 28px;
  text-shadow: 0 2px 12px rgba(238, 185, 77, .45);
  box-shadow: inset 0 0 0 4px rgba(201,155,72,.08), 0 0 22px rgba(201,155,72,.1);
}

.shop-private-stock > div { min-width: 0; display: grid; gap: 3px; }
.shop-private-stock small {
  color: #caa865;
  font-size: 8px;
  letter-spacing: .17em;
}
.shop-private-stock strong {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: .01em;
}
.shop-private-stock p {
  margin: 2px 0 0;
  color: #aaa297;
  font-size: 10px;
  line-height: 1.4;
}
.shop-private-seal {
  position: relative;
  z-index: 1;
  align-self: start;
  padding: 5px 7px;
  border: 1px solid rgba(222,180,94,.28);
  border-radius: 999px;
  color: #c8a55f;
  font-size: 8px;
  letter-spacing: .08em;
}

.shop-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 0 3px 15px;
  color: #aaa49b;
  font-size: 9px;
}
.shop-trust-row span::first-letter { color: var(--brass); }

.shop-category { gap: 12px; }
.shop-category + .shop-category {
  padding-top: 5px;
  border-top: 1px solid rgba(207, 163, 78, .1);
}
.shop-category-head span { color: #9d8b6f; }
.shop-category-head h3 {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 600;
  color: #f3eee5;
}
.shop-category-head > b {
  border-color: rgba(210,166,80,.26);
  background: rgba(202,151,61,.07);
  color: #c9a866;
}

.shop-list-card {
  position: relative;
  overflow: hidden;
  border-color: rgba(210, 168, 84, .17);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.shop-list-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(234,190,99,.58), transparent);
}
.shop-list-card:focus-within {
  transform: translateY(-1px);
  border-color: rgba(224,181,94,.34);
  box-shadow: inset 0 1px 0 rgba(255,240,198,.06), 0 20px 42px rgba(0,0,0,.34);
}
.shop-list-media {
  border: 1px solid rgba(229, 191, 111, .18);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.48), 0 8px 22px rgba(0,0,0,.28);
}
.shop-list-copy b {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 600;
  color: #f6f1e8;
}
.shop-list-copy small {
  border: 1px solid rgba(213, 171, 89, .16);
  background: rgba(196,143,50,.065);
  color: #d6bd8d;
}
.shop-list-price {
  border-color: rgba(210, 168, 84, .12);
}
.shop-list-price > strong {
  color: var(--brass-light);
  text-shadow: 0 0 14px rgba(218,167,67,.15);
}
.shop-card-actions .secondary {
  border-color: rgba(218,175,90,.28);
  background: linear-gradient(180deg, rgba(214,166,72,.13), rgba(115,76,27,.09));
}
.shop-card-actions .text-btn { color: #baa57d; }
#shopShowQr {
  margin-top: 20px;
  border: 1px solid rgba(247,211,137,.42);
  background: linear-gradient(135deg, #e5bd68, #9a662a);
  color: #171008;
  box-shadow: inset 0 1px 0 rgba(255,245,213,.42), 0 12px 30px rgba(139,88,28,.22);
}

.orange-blanche-offer {
  border-color: rgba(238, 159, 52, .42);
  background:
    radial-gradient(circle at 92% 12%, rgba(255,177,53,.2), transparent 32%),
    repeating-linear-gradient(112deg, rgba(255,255,255,.018) 0 1px, transparent 1px 7px),
    linear-gradient(145deg, rgba(43,25,10,.98), rgba(12,12,13,.96));
}
.orange-blanche-offer > strong {
  color: #ffd081;
  text-shadow: 0 0 18px rgba(255,157,31,.32);
}

.achievement-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 3px 1px 12px;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.achievement-summary b { color: var(--brass-light); }
.achievement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.achievement-tile {
  position: relative;
  align-items: flex-start;
  min-height: 220px;
  padding: 13px;
  border-color: rgba(255,255,255,.11);
  text-align: left;
  background:
    radial-gradient(circle at 82% 8%, rgba(255,255,255,.06), transparent 31%),
    linear-gradient(150deg, rgba(20,23,29,.98), rgba(8,10,14,.98));
}
.achievement-tile.locked {
  filter: none;
  color: rgba(255,255,255,.76);
  opacity: .78;
}
.achievement-tile.locked::after { display: none; }
.achievement-tile-icon {
  width: 58px;
  height: 58px;
  align-self: center;
  border-color: rgba(255,255,255,.2);
}
.achievement-tile .achievement-state {
  position: absolute;
  right: 10px;
  top: 10px;
  padding: 4px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  color: var(--muted);
  font-size: 8px;
}
.achievement-tile b { margin-top: 3px; font-size: 13px; }
.achievement-tile p { min-height: 42px; font-size: 10px; line-height: 1.38; }
.achievement-progress {
  width: 100%;
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.075);
}
.achievement-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #8c7046, #e2bd70);
  box-shadow: 0 0 10px rgba(222,181,103,.28);
}
.achievement-tile > strong {
  margin-top: auto;
  color: #e6ca91;
  font-size: 9px;
}
.achievement-tile.rarity-rare {
  border-color: rgba(87,144,214,.25);
  background: radial-gradient(circle at 85% 9%, rgba(69,133,218,.13), transparent 32%), linear-gradient(150deg,#141922,#080a0f);
}
.achievement-tile.rarity-epic {
  border-color: rgba(179,96,230,.3);
  background: radial-gradient(circle at 85% 9%, rgba(157,68,218,.16), transparent 32%), linear-gradient(150deg,#1a1421,#09090e);
}
.achievement-tile.rarity-legendary {
  border-color: rgba(230,184,78,.38);
  background: radial-gradient(circle at 85% 9%, rgba(229,176,54,.17), transparent 34%), linear-gradient(150deg,#211a0d,#0b0a08);
}
.achievement-tile.earned {
  opacity: 1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 13px 30px rgba(0,0,0,.23);
}
.achievement-catalog-empty {
  padding: 24px 18px;
  border: 1px solid rgba(225,185,100,.15);
  border-radius: 18px;
  color: var(--muted);
  text-align: center;
  line-height: 1.45;
  background: rgba(255,255,255,.025);
}

@media (max-width: 360px) {
  .shop-private-stock { grid-template-columns: 46px minmax(0,1fr); }
  .shop-private-monogram { width: 44px; height: 44px; }
  .shop-private-seal { display: none; }
  .achievement-grid { grid-template-columns: 1fr; }
  .achievement-tile { min-height: 190px; }
}

@media (prefers-reduced-motion: reduce) {
  .shop-list-card { transition: none; }
}

/* V17 · Luxury VIP Space client experience */
:root {
  --bg: #070507;
  --header: #0c080b;
  --surface: #120a0e;
  --card: #160c11;
  --text: #f6e9cf;
  --muted: #a68f72;
  --gold: #d6a463;
  --gold2: #f0d5a5;
  --wine: #6f2330;
  --line: rgba(219, 162, 92, .28);
  --shadow: 0 22px 58px rgba(0, 0, 0, .38);
  color-scheme: dark;
}

html,
body {
  min-height: 100%;
  background: #030203;
}

body {
  background:
    radial-gradient(circle at 50% 0, rgba(91, 22, 34, .24), transparent 34%),
    #030203;
  color: var(--text);
}

.app-shell {
  position: relative;
  isolation: isolate;
  min-height: 100dvh;
  overflow-x: hidden;
  overflow-y: visible;
  padding-bottom: calc(112px + env(safe-area-inset-bottom));
  background: #050305;
}

.app-shell::before,
.app-shell::after {
  content: "";
  position: fixed;
  inset: 0;
  left: 50%;
  width: min(100%, 480px);
  height: auto;
  transform: translateX(-50%);
  pointer-events: none;
}

.app-shell::before {
  z-index: 0;
  background: url('/assets/backgrounds/luxury-vip-space.webp?v=17.0') center top / cover no-repeat;
  filter: brightness(1.72) saturate(1.22) contrast(1.06);
}

.app-shell::after {
  z-index: 1;
  background:
    radial-gradient(circle at 50% 14%, rgba(88, 22, 35, .06), transparent 31%),
    linear-gradient(180deg, rgba(3, 2, 3, .02), rgba(3, 2, 3, .09) 52%, rgba(3, 2, 3, .18));
  opacity: 1;
}

.topbar,
main,
.bottom-nav {
  position: relative;
  z-index: 2;
}

.topbar {
  height: 105px;
  padding: calc(16px + env(safe-area-inset-top)) 17px 12px;
  background: linear-gradient(180deg, rgba(4, 2, 4, .84), rgba(4, 2, 4, .38), transparent);
}

.eyebrow {
  color: #aa8d69;
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .08em;
}

.topbar h1 {
  color: #f3dfb8;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.beta-badge,
.network-badge {
  border-color: rgba(215, 159, 87, .3);
  background: rgba(19, 7, 12, .56);
  color: #c7a778;
  backdrop-filter: blur(14px);
}

.network-badge i {
  background: #d7b16d;
  box-shadow: 0 0 10px rgba(224, 180, 99, .72);
}

.icon-btn {
  border-color: rgba(218, 160, 88, .28);
  background: rgba(17, 7, 11, .58);
  color: #d8b47f;
}

.screen {
  padding: 0 13px 30px;
}

.client-screen.active {
  animation: vipScreenIn .2s ease-out;
}

.client-home {
  display: none;
}

.client-home.active {
  display: grid;
  gap: 11px;
}

.vip-glass-card,
.vip-hero-card,
.profile-history-card,
.profile-identity-card,
.profile-menu,
.service-access,
.league-summary {
  border: 1px solid rgba(219, 162, 92, .32);
  background:
    linear-gradient(145deg, rgba(255, 225, 174, .035), transparent 38%),
    rgba(10, 6, 9, .46) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 236, 202, .05),
    0 18px 45px rgba(0, 0, 0, .26);
  backdrop-filter: blur(17px) saturate(112%);
  -webkit-backdrop-filter: blur(17px) saturate(112%);
}

.vip-hero-card {
  position: relative;
  overflow: hidden;
  padding: 16px;
  border-color: rgba(226, 169, 96, .5);
  border-radius: 24px;
  background:
    radial-gradient(circle at 95% 0, rgba(116, 28, 43, .24), transparent 36%),
    rgba(10, 6, 9, .50) !important;
}

.vip-hero-card::after {
  content: "";
  position: absolute;
  top: -54px;
  right: -50px;
  width: 156px;
  height: 156px;
  border: 1px solid rgba(224, 169, 98, .18);
  border-radius: 50%;
  box-shadow: 0 0 54px rgba(105, 25, 40, .24);
  pointer-events: none;
}

.hero-head {
  align-items: center;
}

.client-identity {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
}

.client-identity > div:last-child {
  display: grid;
  min-width: 0;
}

.client-name {
  margin-top: 2px;
  overflow: hidden;
  color: #f3e2c1;
  font-size: 17px;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-avatar {
  width: 54px;
  height: 54px;
  overflow: visible;
  flex: 0 0 auto;
  border: 1px solid rgba(235, 179, 105, .68);
  border-radius: 50%;
  background: radial-gradient(circle at 38% 28%, #702330, #19090e 64%, #060305);
  box-shadow: 0 0 0 4px rgba(210, 148, 78, .07), 0 0 26px rgba(102, 25, 39, .38);
  color: #f0d5a5;
}

.profile-avatar .avatar-render-inner,
.profile-avatar .avatar-render {
  border-radius: 50%;
}

.balance {
  display: grid;
  flex: 0 0 auto;
  margin: 0;
  justify-items: end;
  color: transparent;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 35px;
  font-weight: 500;
  line-height: .92;
  letter-spacing: -.045em;
}

.balance > span {
  background: linear-gradient(180deg, #fff1cf, #ca8c49);
  background-clip: text;
  -webkit-background-clip: text;
}

.balance small {
  margin-top: 5px;
  color: #b48d5f;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .02em;
}

#clientBalance.unlimited-balance {
  max-width: none;
  font-size: 44px;
  line-height: .72;
}

.status-divider {
  position: relative;
  z-index: 1;
  height: 1px;
  margin: 14px 0 12px;
  background: linear-gradient(90deg, transparent, rgba(218, 160, 88, .42), transparent);
}

.status-button {
  margin: 0;
  align-items: center;
}

.status-caption,
.home-card-kicker {
  color: #9c8264;
  font-size: 8px;
  font-weight: 720;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.status-name {
  margin-top: 3px;
  color: #f0dfbf;
  font-size: 18px;
  font-weight: 620;
}

.cashback-orbit {
  display: flex;
  width: 68px;
  height: 68px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(220, 163, 91, .47);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(111, 28, 42, .34), rgba(7, 4, 6, .54) 70%);
  box-shadow: inset 0 0 22px rgba(213, 151, 75, .08);
}

.cashback-orbit strong {
  color: #f1d6a6;
  font-size: 19px;
  line-height: 1;
}

.cashback-orbit small {
  margin-top: 4px;
  color: #a48660;
  font-size: 7px;
  text-transform: uppercase;
}

.vip-hero-card .progress {
  height: 7px;
  margin: 10px 0 0;
  border: 1px solid rgba(218, 160, 88, .15);
  background: rgba(0, 0, 0, .52);
}

.vip-hero-card .progress i,
.beer-progress i {
  background: linear-gradient(90deg, #752734, #d39b56, #efd5a2);
  box-shadow: 0 0 13px rgba(221, 163, 88, .38);
}

.max-status-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  color: #8f765c;
  font-size: 9px;
}

.max-status-line strong {
  color: #c6a370;
  font-size: 9px;
}

.beer-loyalty-card {
  margin: 0;
  padding: 14px;
  border-radius: 20px;
}

.beer-loyalty-card::after {
  opacity: .38;
}

.beer-card-top h2 {
  margin-top: 4px;
  color: #f0dfbf;
  font-size: 16px;
}

.beer-card-top p,
.beer-card-foot {
  color: #8e775e;
}

.beer-gift-counter {
  border-color: rgba(221, 162, 89, .35);
  background: rgba(102, 27, 40, .22);
}

.beer-gift-counter strong,
.beer-progress-head b,
.beer-card-foot strong {
  color: #e3bd82;
}

.home-stat-grid,
.home-feature-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.home-stat-card {
  position: relative;
  min-height: 111px;
  padding: 13px;
  overflow: hidden;
  border-radius: 19px;
  color: var(--text);
  text-align: left;
}

button.home-stat-card {
  appearance: none;
}

.home-stat-card strong {
  display: block;
  margin-top: 8px;
  color: #f0d5a5;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 500;
}

.home-stat-card small {
  display: block;
  margin-top: 4px;
  color: #88725b;
  font-size: 9px;
}

.home-stat-card > i {
  position: absolute;
  right: 12px;
  bottom: 10px;
  color: #b69468;
  font-size: 23px;
  font-style: normal;
}

.home-feature-grid {
  grid-template-columns: minmax(0, .43fr) minmax(0, .57fr);
}

.home-achievement-card,
.home-shop-card {
  min-height: 192px;
  padding: 12px;
  overflow: hidden;
  border-radius: 20px;
}

.compact-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 7px;
}

.compact-card-head h2 {
  margin: 3px 0 0;
  color: #f1dfbf;
  font-size: 14px;
  font-weight: 640;
}

.section-link {
  border: 0;
  background: none;
  color: #d0aa75;
  font-size: 9px;
}

.achievement-count {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-top: 13px;
}

.achievement-count strong {
  color: #f0d5a5;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 500;
}

.achievement-count span {
  color: #806c57;
  font-size: 8px;
}

.home-achievement-card .profile-achievement-showcase {
  min-height: 76px;
  margin-top: 6px;
  gap: 5px;
  padding: 2px 0 4px;
}

.home-achievement-card .profile-achievement-medal {
  flex: 0 0 38px;
}

.home-achievement-card .profile-achievement-medal > span,
.home-achievement-card .profile-achievement-medal.rarity-legendary > span,
.home-achievement-card .profile-achievement-medal.rarity-epic > span,
.home-achievement-card .profile-achievement-medal.rarity-rare > span,
.home-achievement-card .profile-achievement-medal.rarity-common > span {
  width: 36px;
  height: 36px;
}

.home-achievement-card .profile-achievement-medal small {
  max-width: 38px;
  font-size: 7px;
}

.home-achievement-card .achievement-inbox-notice {
  margin: 6px 0;
  padding: 7px;
}

.home-achievement-card .achievement-inbox-copy small,
.home-achievement-card .achievement-inbox-notice > i {
  display: none;
}

.home-achievement-card .achievement-inbox-copy b {
  font-size: 9px;
}

.home-achievement-card .achievement-inbox-mark {
  width: 27px;
  height: 27px;
  flex-basis: 27px;
  font-size: 12px;
}

.home-shop-card {
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(219, 162, 92, .32);
  color: var(--text);
  text-align: left;
}

.shop-arrow {
  color: #c49f70;
  font-size: 22px;
}

.home-shop-card .home-shop-preview {
  width: 100%;
  height: 82px;
  margin: 10px 0 7px;
  border: 1px solid rgba(217, 160, 89, .25);
  border-radius: 14px;
}

.home-shop-card > strong {
  overflow: hidden;
  font-size: 10px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shop-cta {
  margin-top: 8px;
  color: #d2aa74;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.home-promo-banner {
  display: flex;
  width: 100%;
  min-height: 80px;
  align-items: center;
  gap: 11px;
  padding: 11px;
  border-radius: 20px;
  color: var(--text);
  text-align: left;
}

.promo-orbit {
  display: grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  border: 1px solid rgba(221, 163, 91, .44);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(111, 28, 42, .65), rgba(10, 5, 8, .72) 72%);
  color: #f0d5a5;
}

.home-promo-banner > span:nth-child(2) {
  display: grid;
  min-width: 0;
  flex: 1;
}

.home-promo-banner small {
  color: #a08261;
  font-size: 8px;
  text-transform: uppercase;
}

.home-promo-banner strong {
  margin-top: 2px;
  overflow: hidden;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-promo-banner em {
  margin-top: 3px;
  color: #806c58;
  font-size: 8px;
  font-style: normal;
}

.home-promo-banner > i {
  color: #b9986d;
  font-size: 23px;
  font-style: normal;
}

.client-page-title {
  padding: 7px 4px 17px;
}

.client-page-title h2 {
  margin: 4px 0 5px;
  color: #f1dfbf;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 30px;
  font-weight: 500;
}

.client-page-title p {
  max-width: 330px;
  margin: 0;
  color: #92795e;
  font-size: 11px;
  line-height: 1.45;
}

.owner-content-action {
  min-height: 0;
  margin-bottom: 8px;
}

.premium-offer,
.leaderboard-row {
  border-color: rgba(216, 159, 87, .28);
  background:
    linear-gradient(145deg, rgba(255, 225, 174, .035), transparent 42%),
    rgba(10, 6, 9, .64);
  backdrop-filter: blur(16px);
}

.league-summary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 12px;
  padding: 15px;
  border-radius: 22px;
}

.league-summary > span,
.league-summary > small {
  color: #8e765b;
  font-size: 9px;
}

.league-summary > strong {
  grid-row: 1 / 3;
  grid-column: 2;
  align-self: center;
  color: #f0d5a5;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 34px;
  font-weight: 500;
}

.league-summary > b {
  grid-column: 1 / -1;
  margin-top: 7px;
  padding-top: 9px;
  border-top: 1px solid rgba(213, 154, 82, .16);
  color: #c6a16d;
  font-size: 10px;
}

.league-preview {
  margin: 10px 0;
}

.leaderboard-podium-mini > span {
  border-color: rgba(215, 159, 89, .2);
  background: rgba(9, 5, 7, .62);
}

.leaderboard-podium-mini i {
  color: #d9b276;
}

.leaderboard-list {
  margin-top: 0;
}

.profile-identity-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 14px;
  border-radius: 22px;
}

.profile-identity-card h2 {
  margin: 3px 0 0;
  overflow: hidden;
  color: #f1dfbf;
  font-size: 19px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-identity-card small {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  color: #7f6d58;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-identity-card strong {
  display: block;
  margin-top: 5px;
  color: #d2aa73;
  font-size: 9px;
}

.profile-edit-icon {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(214, 156, 84, .29);
  border-radius: 12px;
  background: rgba(20, 8, 13, .62);
  color: #c7a272;
}

.profile-history-card,
.profile-menu,
.service-access {
  margin-top: 10px;
  padding: 14px;
  border-radius: 22px;
}

.history-tabs {
  display: grid;
  margin-top: 12px;
  padding: 3px;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid rgba(207, 145, 74, .18);
  border-radius: 13px;
  background: rgba(0, 0, 0, .32);
}

.history-tabs button {
  min-height: 32px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #796857;
  font-size: 9px;
  font-weight: 650;
}

.history-tabs button.active {
  background: linear-gradient(135deg, rgba(111, 31, 43, .72), rgba(73, 22, 30, .5));
  color: #f0d5a5;
  box-shadow: inset 0 0 0 1px rgba(217, 160, 89, .28);
}

.profile-history-card .operation-list {
  max-height: 310px;
  overflow-y: auto;
}

.profile-history-card .op-row {
  background: rgba(8, 5, 7, .52);
  border-color: rgba(209, 149, 78, .16);
}

.profile-shortcuts {
  display: grid;
  margin-top: 10px;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
}

.profile-shortcuts button {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 76px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid rgba(211, 150, 80, .24);
  border-radius: 17px;
  background: rgba(10, 6, 8, .62);
  color: #ba9a6f;
  backdrop-filter: blur(15px);
}

.profile-shortcuts button > span {
  font-size: 19px;
}

.profile-shortcuts button > strong {
  max-width: 100%;
  overflow: hidden;
  font-size: 8px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-shortcuts button > small {
  position: absolute;
  top: 6px;
  right: 7px;
  display: grid;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  place-items: center;
  border-radius: 999px;
  background: #722432;
  color: #f2d7aa;
  font-size: 7px;
}

.profile-menu {
  padding: 4px 13px;
}

.profile-menu > button {
  display: grid;
  width: 100%;
  min-height: 62px;
  padding: 9px 0;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 0;
  border-bottom: 1px solid rgba(208, 146, 74, .12);
  background: transparent;
  color: var(--text);
  text-align: left;
}

.profile-menu > button:last-child {
  border-bottom: 0;
}

.profile-menu > button > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(210, 150, 79, .23);
  border-radius: 12px;
  background: rgba(99, 27, 40, .2);
  color: #d1ab77;
}

.profile-menu > button > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.profile-menu > button b {
  font-size: 12px;
}

.profile-menu > button small {
  overflow: hidden;
  color: #806d59;
  font-size: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-menu > button > i {
  color: #997c5d;
  font-size: 21px;
  font-style: normal;
}

.profile-menu .danger-menu-item b,
.profile-menu .danger-menu-item > span {
  color: #e7948f;
}

.profile-shift-block {
  margin-top: 10px;
}

.profile-shift-block .section-title {
  margin-top: 0;
}

.profile-shift-block .team-strip {
  background: rgba(10, 6, 9, .6);
  border-color: rgba(215, 157, 86, .24);
  backdrop-filter: blur(15px);
}

.service-access h2 {
  margin: 5px 0 0;
  font-size: 17px;
}

.service-access p {
  color: #8a735c;
  font-size: 10px;
  line-height: 1.45;
}

.service-access button {
  width: 100%;
  margin-top: 8px;
}

.service-back {
  display: block;
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  background: none;
  color: #d0aa75;
  font-size: 11px;
}

.profile-stats-grid {
  display: grid;
  margin: 16px 0;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.profile-stats-grid article {
  min-height: 98px;
  padding: 13px;
  border: 1px solid rgba(213, 154, 82, .2);
  border-radius: 17px;
  background: rgba(8, 5, 7, .52);
}

.profile-stats-grid span {
  color: #8d765e;
  font-size: 9px;
}

.profile-stats-grid strong {
  display: block;
  margin-top: 8px;
  color: #f0d5a5;
  font-size: 20px;
}

.profile-stats-grid i {
  font-style: normal;
}

.delete-account-sheet {
  border-color: rgba(204, 82, 80, .34);
  background: linear-gradient(160deg, #190b0e, #0a0708 70%);
}

.delete-confirm-label {
  display: grid;
  gap: 7px;
  margin-top: 16px;
  color: #b99c80;
  font-size: 11px;
}

.danger-action {
  width: 100%;
  min-height: 48px;
  margin-top: 13px;
  border: 1px solid rgba(230, 110, 104, .42);
  border-radius: 14px;
  background: linear-gradient(135deg, #8c2730, #5b1820);
  color: #ffe7df;
  font-weight: 800;
}

.danger-action:disabled {
  opacity: .36;
}

.bottom-nav {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  bottom: 0 !important;
  display: grid;
  width: min(100%, 480px) !important;
  min-height: calc(75px + env(safe-area-inset-bottom));
  padding: 8px 7px calc(7px + env(safe-area-inset-bottom));
  grid-template-columns: 1fr 1fr 1.08fr 1fr 1fr;
  align-items: end;
  transform: translateX(-50%) !important;
  border-top: 1px solid rgba(219, 160, 88, .34);
  background:
    linear-gradient(180deg, rgba(44, 13, 22, .48), rgba(7, 4, 6, .84) 45%),
    rgba(7, 4, 6, .78);
  box-shadow: 0 -15px 42px rgba(0, 0, 0, .4);
  backdrop-filter: blur(23px) saturate(118%);
  -webkit-backdrop-filter: blur(23px) saturate(118%);
}

.bottom-nav::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 50%;
  width: 82px;
  height: 20px;
  border: 1px solid rgba(219, 161, 88, .3);
  border-bottom: 0;
  border-radius: 50px 50px 0 0;
  background: rgba(8, 4, 6, .84);
  transform: translate(-50%, -100%);
}

.bottom-nav button {
  display: flex;
  min-width: 0;
  min-height: 53px;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  border: 0;
  border-radius: 13px;
  background: none;
  color: #776553;
}

.bottom-nav button > span {
  font-size: 19px;
}

.bottom-nav button > small {
  font-size: 8px;
  font-weight: 650;
}

.bottom-nav button.active {
  background: rgba(111, 31, 43, .18);
  color: #f0d5a5;
}

.bottom-nav .qr-nav-button {
  position: relative;
  z-index: 2;
  min-height: 62px;
  background: none;
}

.bottom-nav .qr-nav-button > span {
  display: grid;
  width: 58px;
  height: 58px;
  margin-top: -30px;
  place-items: center;
  border: 1px solid rgba(255, 233, 194, .72);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 25%, #f6e3bd, #c58b4b 58%, #81502e);
  box-shadow: 0 0 0 6px rgba(18, 7, 11, .96), 0 7px 27px rgba(213, 142, 67, .4), inset 0 1px 1px rgba(255, 255, 255, .42);
  color: #190c0f;
  font-size: 25px;
}

.bottom-nav .qr-nav-button > small {
  color: #d5b17c;
  font-size: 8px;
  font-weight: 760;
  letter-spacing: .11em;
}

.app-shell.service-mode {
  padding-bottom: calc(24px + env(safe-area-inset-bottom));
}

.app-shell.service-mode .bottom-nav {
  display: none;
}

.modal {
  background: rgba(3, 2, 3, .78);
  backdrop-filter: blur(9px);
}

.modal-sheet {
  border-color: rgba(217, 159, 88, .28);
  background:
    radial-gradient(circle at 88% 5%, rgba(113, 30, 43, .17), transparent 28%),
    linear-gradient(160deg, rgba(20, 10, 14, .98), rgba(7, 5, 7, .98));
  color: #f4e5c8;
}

@keyframes vipScreenIn {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 370px) {
  .profile-shortcuts {
    grid-template-columns: repeat(2, 1fr);
  }

  .home-feature-grid {
    grid-template-columns: .45fr .55fr;
  }

  .home-achievement-card,
  .home-shop-card {
    padding: 10px;
  }

  .bottom-nav button > small {
    font-size: 7px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .client-screen.active {
    animation: none;
  }
}

/* V18 · readable premium typography */
:root {
  --font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
button,
input,
select,
textarea {
  font-family: var(--font-ui) !important;
  font-synthesis: none;
  font-optical-sizing: auto;
}

body {
  font-size: 15px;
  line-height: 1.45;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.topbar h1,
.balance,
.home-stat-card strong,
.achievement-count strong,
.client-page-title h2,
.league-summary > strong,
.shop-private-monogram,
.shop-private-stock strong,
.shop-category-head h3,
.shop-list-copy b {
  font-family: var(--font-ui) !important;
}

.topbar h1 {
  font-size: 29px;
  font-weight: 820;
  line-height: 1;
  letter-spacing: .015em;
}

.eyebrow {
  font-size: 12px;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: .035em;
}

.beta-badge,
.network-badge {
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .045em;
}

.client-name {
  font-size: 19px;
  font-weight: 760;
  line-height: 1.15;
}

.balance {
  font-size: 38px;
  font-weight: 780;
  line-height: .9;
  letter-spacing: -.04em;
}

.balance small {
  margin-top: 7px;
  font-family: var(--font-ui) !important;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.15;
}

#clientBalance.unlimited-balance {
  font-size: 46px;
  font-weight: 760;
}

.status-caption,
.home-card-kicker,
.beer-kicker {
  font-size: 10px;
  font-weight: 760;
  line-height: 1.3;
  letter-spacing: .095em;
}

.status-name {
  font-size: 20px;
  font-weight: 720;
  line-height: 1.15;
}

.cashback-orbit strong {
  font-size: 21px;
  font-weight: 760;
}

.cashback-orbit small {
  font-size: 9px;
  font-weight: 650;
  line-height: 1.15;
}

.max-status-line,
.max-status-line strong {
  font-size: 11px;
  line-height: 1.3;
}

.beer-card-top h2 {
  font-size: 19px;
  font-weight: 730;
  line-height: 1.2;
  letter-spacing: -.015em;
}

.beer-card-top p {
  font-size: 13px;
  line-height: 1.48;
}

.beer-gift-counter small,
.beer-progress-head,
.beer-progress-head b,
.beer-card-foot span,
.beer-card-foot strong {
  font-size: 11px;
  line-height: 1.35;
}

.home-stat-card strong {
  font-size: 27px;
  font-weight: 760;
  line-height: 1;
  letter-spacing: -.025em;
}

.home-stat-card small {
  font-size: 11px;
  line-height: 1.35;
}

.compact-card-head h2 {
  font-size: 17px;
  font-weight: 740;
  line-height: 1.15;
}

.section-link {
  font-size: 12px;
  font-weight: 650;
}

.achievement-count strong {
  font-size: 27px;
  font-weight: 760;
}

.achievement-count span {
  font-size: 10px;
  line-height: 1.2;
}

.home-achievement-card .profile-achievement-medal small {
  max-width: 44px;
  font-size: 9px;
  line-height: 1.15;
}

.home-achievement-card .achievement-inbox-copy b {
  font-size: 11px;
}

.home-shop-card > strong {
  font-size: 12px;
  line-height: 1.35;
}

.shop-cta {
  font-size: 10px;
  font-weight: 760;
}

.home-promo-banner small,
.home-promo-banner em {
  font-size: 10px;
  line-height: 1.3;
}

.home-promo-banner strong {
  font-size: 15px;
  font-weight: 720;
  line-height: 1.25;
}

.client-page-title > .muted {
  font-size: 12px;
}

.client-page-title h2 {
  font-size: 30px;
  font-weight: 780;
  line-height: 1.05;
  letter-spacing: -.03em;
}

.client-page-title p {
  font-size: 13px;
  line-height: 1.5;
}

.league-summary > span,
.league-summary > small {
  font-size: 11px;
}

.league-summary > strong {
  font-size: 35px;
  font-weight: 760;
  letter-spacing: -.035em;
}

.league-summary > b {
  font-size: 12px;
  line-height: 1.4;
}

.profile-identity-card > div > .muted {
  font-size: 12px;
}

.profile-identity-card h2 {
  font-size: 21px;
  font-weight: 760;
  line-height: 1.15;
}

.profile-identity-card small,
.profile-identity-card strong {
  font-size: 11px;
  line-height: 1.3;
}

.history-tabs button {
  min-height: 38px;
  font-size: 12px;
  font-weight: 680;
}

.profile-history-card .op-row b {
  font-size: 15px;
}

.profile-history-card .op-row small {
  font-size: 12px;
  line-height: 1.4;
}

.profile-history-card .op-row > strong {
  font-size: 14px;
}

.profile-shortcuts button {
  min-height: 82px;
}

.profile-shortcuts button > strong {
  overflow: visible;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  text-overflow: clip;
  white-space: normal;
}

.profile-shortcuts button > small {
  font-size: 9px;
}

.profile-menu > button b {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
}

.profile-menu > button small {
  font-size: 11px;
  line-height: 1.35;
}

.section-title h2,
.service-access h2 {
  font-size: 19px;
  font-weight: 740;
  line-height: 1.2;
}

.service-access p,
.team-strip small,
.shift-person small {
  font-size: 12px;
  line-height: 1.45;
}

.service-back,
.staff-switch-button {
  font-size: 13px;
  font-weight: 650;
}

.staff-banner > div > .muted,
.admin-head .muted {
  font-size: 13px;
}

.staff-banner h2,
.admin-head h2 {
  font-size: 25px;
  font-weight: 780;
  line-height: 1.1;
}

.shift-badge,
.pill {
  font-size: 11px;
  line-height: 1.25;
}

.step-heading h3,
.card h3 {
  font-size: 18px;
  font-weight: 740;
  line-height: 1.2;
}

.step-heading small,
.card p,
.card label,
.field-caption span,
.field-caption small,
.scan-zone small,
.mode small,
.calc-box span,
.staff-recent-card .card-head p {
  font-size: 12px;
  line-height: 1.45;
}

.mode b {
  font-size: 14px;
  font-weight: 700;
}

.primary,
.secondary,
.operation-button,
.scan-zone,
.manual-code-button,
.text-btn,
.copy-code,
.text-link {
  font-size: 14px;
  line-height: 1.25;
}

.money-input input {
  font-size: 36px;
}

.volume-input input {
  font-size: 26px;
}

.volume-presets button,
.gift-volume {
  font-size: 12px;
}

.op-row b,
.user-row b,
.leaderboard-row b,
.premium-offer b,
.shop-list-copy b {
  font-size: 14px;
  line-height: 1.25;
}

.op-row small,
.user-row small,
.leaderboard-row small,
.premium-offer p,
.shop-list-copy p {
  font-size: 11px;
  line-height: 1.42;
}

.shop-private-stock small,
.shop-private-seal,
.shop-category-head span,
.shop-list-copy small,
.achievement-tile .achievement-state,
.achievement-tile > strong {
  font-size: 10px;
  line-height: 1.25;
}

.shop-private-stock strong {
  font-size: 20px;
  font-weight: 760;
}

.shop-private-stock p,
.shop-trust-row {
  font-size: 11px;
  line-height: 1.45;
}

.shop-category-head h3 {
  font-size: 21px;
  font-weight: 760;
  line-height: 1.15;
}

.achievement-tile b {
  font-size: 14px;
  line-height: 1.2;
}

.achievement-tile p {
  font-size: 11px;
  line-height: 1.42;
}

.bottom-nav button > small,
.bottom-nav .qr-nav-button > small {
  font-size: 10px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: .035em;
}

.modal-sheet h2 {
  font-size: 25px;
  font-weight: 780;
  line-height: 1.1;
}

.modal-sheet p,
.modal-sheet li,
.help-text p,
.consent-sheet p,
.consent-sheet li {
  font-size: 13px;
  line-height: 1.55;
}

@media (max-width: 370px) {
  body { font-size: 14px; }
  .topbar h1 { font-size: 27px; }
  .balance { font-size: 35px; }
  .profile-shortcuts button > strong { font-size: 9px; }
  .bottom-nav button > small,
  .bottom-nav .qr-nav-button > small { font-size: 9px; }
}

/* V19 · Telegram wheel, built from the existing Pivnik materials */
.platform-telegram .home-feature-grid {
  grid-template-columns: 1fr;
}

.platform-telegram .home-achievement-card {
  min-height: 192px;
}

.wheel-entry-mark {
  display: grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  border: 1px solid rgba(221, 163, 91, .44);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(111, 28, 42, .42), rgba(10, 5, 8, .72) 72%);
  color: #d6ae76;
}

.wheel-entry-mark svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 1.5;
}

.wheel-screen.active {
  display: grid;
  gap: 8px;
  min-height: calc(100dvh - 112px);
  align-content: start;
}

.wheel-page-head {
  display: grid;
  padding: 7px 2px 0;
  grid-template-columns: 40px 1fr 40px;
  align-items: center;
  gap: 8px;
  text-align: center;
}

.wheel-page-head h2 {
  margin: 0;
  color: #f1dfbf;
  font-size: 24px;
  font-weight: 760;
}

.wheel-back {
  width: 36px;
  height: 36px;
  border: 0;
  background: none;
  color: #d1ad79;
  font-size: 34px;
  line-height: 1;
}

.wheel-availability-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 28px;
  color: #b7956a;
  font-size: 13px;
}

.wheel-availability-line > i {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: #d7b16d;
  box-shadow: 0 0 10px rgba(224, 180, 99, .6);
}

.wheel-stage {
  position: relative;
  display: grid;
  min-height: 370px;
  place-items: center;
  padding: 30px 0 0;
}

.wheel-rim {
  position: relative;
  width: min(91vw, 390px);
  max-width: 100%;
  aspect-ratio: 1;
  border: 2px solid rgba(219, 162, 92, .62);
  border-radius: 50%;
  background: #090608;
  box-shadow:
    0 16px 34px rgba(0, 0, 0, .48),
    0 0 16px rgba(213, 151, 75, .08),
    inset 0 0 0 6px #0d080b,
    inset 0 0 0 7px rgba(219, 162, 92, .23);
}

.wheel-rim::after {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(240, 213, 165, .22);
  border-radius: inherit;
  pointer-events: none;
}

.wheel-disk {
  display: block;
  width: 100%;
  height: 100%;
  transform: rotate(0deg);
  transform-origin: 50% 50%;
  transition: transform 5.2s cubic-bezier(.12, .68, .12, 1);
  will-change: transform;
}

.wheel-sector {
  stroke: rgba(217, 159, 88, .52);
  stroke-width: .85;
  vector-effect: non-scaling-stroke;
}

.wheel-sector-0 { fill: #110b0e; }
.wheel-sector-1 { fill: #181013; }
.wheel-sector-2 { fill: #0d090b; }

.wheel-sector-jackpot {
  fill: #3b2b20;
  stroke: rgba(240, 213, 165, .76);
  stroke-width: 1.4;
}

.wheel-sector-label {
  fill: #e0bd8b;
  font-family: var(--font-ui);
  font-size: 8.2px;
  font-weight: 720;
  letter-spacing: -.15px;
  pointer-events: none;
}

.wheel-jackpot-label {
  fill: #efd09d;
  font-size: 9px;
  font-weight: 780;
  letter-spacing: .2px;
}

.wheel-emblem {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  width: 100px;
  height: 100px;
  place-items: center;
  transform: translate(-50%, -50%);
  border: 2px solid rgba(219, 162, 92, .52);
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(113, 76, 46, .2), transparent 58%),
    #0b0709;
  box-shadow:
    0 7px 20px rgba(0, 0, 0, .52),
    inset 0 0 20px rgba(111, 35, 48, .24);
  pointer-events: none;
}

.wheel-emblem svg {
  width: 60px;
  height: 54px;
  overflow: visible;
}

.wheel-emblem-triangle,
.wheel-emblem-eye,
.wheel-emblem-pupil,
.wheel-emblem-glint {
  vector-effect: non-scaling-stroke;
}

.wheel-emblem-triangle {
  fill: #10090d;
  stroke: #b48a59;
  stroke-width: 1.8;
}

.wheel-emblem-eye {
  fill: #170d12;
  stroke: #c6a06f;
  stroke-width: 1.6;
}

.wheel-emblem-pupil {
  fill: #6f2330;
  stroke: #d0ae7b;
  stroke-width: 1.2;
}

.wheel-emblem-glint {
  fill: #ead2aa;
}

.wheel-pointer {
  position: absolute;
  z-index: 4;
  top: 8px;
  left: 50%;
  width: 0;
  height: 0;
  transform: translateX(-50%);
  border-right: 14px solid transparent;
  border-left: 14px solid transparent;
  border-top: 30px solid #d2aa74;
  border-bottom: 0;
  filter: drop-shadow(0 3px 5px rgba(0, 0, 0, .65));
}

.wheel-result {
  display: none;
  min-height: 48px;
  margin-top: 8px;
  place-items: center;
  text-align: center;
}

.wheel-result.is-visible {
  display: grid;
}

.wheel-result span {
  color: #8d755b;
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.wheel-result strong {
  margin-top: 4px;
  color: #f0dfbf;
  font-size: 16px;
}

.wheel-control-card {
  padding: 8px 24px 0;
  text-align: center;
}

.wheel-spin-button {
  min-height: 58px;
  margin: 0;
  border: 1px solid rgba(219, 162, 92, .62);
  border-radius: 22px;
  background:
    linear-gradient(145deg, rgba(255, 225, 174, .055), transparent 42%),
    rgba(42, 20, 22, .8);
  color: #f0d6a7;
  font-size: 18px;
  font-weight: 760;
  box-shadow: inset 0 0 24px rgba(111, 28, 42, .18);
}

.wheel-control-card p {
  margin: 13px auto 0;
  max-width: 310px;
  color: #8f929a;
  font-size: 12px;
  line-height: 1.4;
}

.wheel-control-card small {
  display: block;
  margin-top: 4px;
  color: #776554;
  font-size: 9px;
}

.wheel-rules-link {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-self: end;
  margin-top: 3px;
  padding: 8px 4px 8px 12px;
  border: 0;
  background: none;
  color: #b18f66;
  font-size: 12px;
}

.wheel-rules-link i {
  font-size: 22px;
  font-style: normal;
  line-height: 1;
}

.app-shell.wheel-mode {
  padding-bottom: calc(24px + env(safe-area-inset-bottom));
}

.app-shell.wheel-mode .bottom-nav {
  display: none;
}

.wheel-win {
  animation: wheelExistingGlow .8s ease-out;
}

@keyframes wheelExistingGlow {
  0%, 100% { box-shadow: 0 16px 34px rgba(0, 0, 0, .48), inset 0 0 0 7px #0d080b, inset 0 0 0 8px rgba(219, 162, 92, .17); }
  45% { box-shadow: 0 16px 34px rgba(0, 0, 0, .48), 0 0 20px rgba(111, 35, 48, .34), inset 0 0 0 7px #0d080b, inset 0 0 0 8px rgba(219, 162, 92, .34); }
}

.wheel-rules-sheet {
  max-height: min(88vh, 780px);
}

.wheel-rules-contents {
  margin-top: 14px;
}

.wheel-odds-list {
  display: grid;
  gap: 0;
  margin: 9px 0;
  padding: 0;
  list-style: none;
}

.wheel-odds-list li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(219, 162, 92, .13);
}

.wheel-odds-list li span {
  color: #d1ad79;
  text-align: right;
}

@media (max-width: 370px) {
  .wheel-stage {
    min-height: 346px;
  }

  .wheel-rim {
    width: min(91vw, 335px);
  }

  .wheel-emblem {
    width: 82px;
    height: 82px;
  }

  .wheel-emblem svg {
    width: 52px;
    height: 47px;
  }

  .wheel-sector-label {
    font-size: 7.4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wheel-disk {
    transition-duration: .01ms;
  }

  .wheel-win {
    animation: none;
  }
}
