/* =====================================================================
   MatchWIN — дизайн-система v3 «Royal Night» (полная пересборка)
   Один файл — единственный источник стиля. Слои/оверрайды запрещены.
   Палитра: глубокая ночь → королевский синий → шампанское-золото.
   Правила:
   • кнопки глобально сброшены (никаких белых UA-плашек)
   • каждый экран покрыт: матчи, матч, история, premium, профиль, admin
   • дубли разметки (лига ×3, счётчик ×2) гасятся здесь же
   ===================================================================== */

/* ---- 1. Токены ---------------------------------------------------- */
:root {
  /* Лестница поверхностей: нейтрально-холодный графит, видимая дельта ~7% на шаг */
  --bg:          #070a12;
  --bg-2:        #0c111c;
  --surface:     #141a28;   /* карточка — заметно светлее фона */
  --surface-2:   #1c2436;   /* вложенный блок */
  --surface-3:   #262f44;   /* чип / таб-фон / VS */
  /* матовое зерно поверх почти-плоского светлого градиента (ровный материал) */
  --card-grad:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E") repeat,
                 linear-gradient(180deg, #171e2d 0%, #131927 100%);

  --line:        rgba(255, 255, 255, 0.09);   /* нейтральная hairline, не мутно-синяя */
  --line-strong: rgba(255, 255, 255, 0.14);
  --line-gold:   rgba(220, 196, 136, 0.28);

  --text:        #f2f5fd;
  --text-2:      #b8c4e0;   /* вторичный текст светлее — не выцветает */
  --muted:       #8d9bb8;   /* НЕ ставить на текст мельче 13px */
  --ice:         #aebfe0;   /* меньше неонового голубого */
  --white-warm:  #f6f8ff;   /* тёплый-нейтральный белый для крупных заголовков */

  --brand:       #5b82f0;   /* менее «неон» */
  --brand-deep:  #3257d6;
  --brand-tint:  rgba(91, 130, 240, 0.13);
  --grad-brand:  linear-gradient(135deg, #4f74e6 0%, #2d4fd0 100%);

  --gold:        #dcc488;   /* шампань/латунь, не ядовито-жёлтый */
  --gold-2:      #cdb069;
  --gold-tint:   rgba(220, 196, 136, 0.12);
  --grad-gold:   linear-gradient(180deg, #e7cf9a 0%, #cdb069 100%);

  --green:       #31d79c;
  --green-tint:  rgba(49, 215, 156, 0.13);
  --red:         #ff6f7d;
  --red-tint:    rgba(255, 111, 125, 0.10);

  --font-display: "Geologica", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-body:    "Golos Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;

  /* Шрифтовая шкала — 8 ступеней, без дробных кеглей */
  --fs-cap:     12px;
  --fs-caption: 13px;
  --fs-body:    15px;
  --fs-body-lg: 17px;
  --fs-h3:      20px;
  --fs-h2:      24px;
  --fs-h1:      30px;

  /* Сетка отступов 4pt */
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px;

  --pad-x:   16px;
  --r-sm:    10px;
  --r-md:    16px;
  --r-lg:    20px;
  --r-xl:    26px;
  --r-icon:  12px;
  --r-pill:  999px;

  --hairline:     inset 0 1px 0 rgba(255, 255, 255, 0.07);   /* видимая грань света сверху */
  /* контакт + мягкий ambient вместо «нимба» */
  --shadow-card:  0 1px 2px rgba(0, 0, 0, 0.5), 0 10px 28px -14px rgba(0, 0, 0, 0.55);
  --shadow-brand: 0 12px 28px -16px rgba(0, 0, 0, 0.5);
  --shadow-gold:  0 12px 28px -14px rgba(0, 0, 0, 0.5);
  --tap: 44px;
}

/* ---- 2. Reset + фон ------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body {
  min-height: 100vh;
  color: var(--text);
  background: var(--bg);
}
/* атмосферное свечение: fixed-псевдослой (background-attachment:fixed
   глючит в мобильных WebView) */
body::before {
  content: "";
  position: fixed; inset: 0; z-index: -1;
  pointer-events: none;
  background:
    /* концентрические дуги «центральный круг стадиона» — фирменный мотив */
    radial-gradient(circle 220px at 50% -40px, transparent 218.5px, rgba(136, 162, 255, 0.09) 219.5px, rgba(136, 162, 255, 0.09) 220.5px, transparent 222px),
    radial-gradient(circle 320px at 50% -40px, transparent 318.5px, rgba(136, 162, 255, 0.05) 319.5px, rgba(136, 162, 255, 0.05) 320.5px, transparent 322px),
    radial-gradient(120% 46% at 50% -8%, rgba(61, 99, 221, 0.12), transparent 62%),
    /* кинематографичная виньетка снизу — глубина кадра */
    radial-gradient(120% 60% at 50% 120%, rgba(0, 0, 0, 0.4), transparent 70%);
}
button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
img { display: block; max-width: 100%; }
a { color: var(--ice); text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
input, textarea, select { font-family: inherit; }
h1, h2, h3, h4, p, figure { margin: 0; }
small { font-size: inherit; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: 4px; }
::selection { background: rgba(77, 124, 255, 0.35); }

/* ---- 3. Каркас ----------------------------------------------------- */
#app-shell, .phone-shell, .app-frame { display: flex; flex-direction: column; }
.phone-shell { width: 100%; min-height: 100vh; }
.app-frame { width: 100%; max-width: 460px; margin: 0 auto; flex: 1 1 auto; }
.mini-app-root { background: transparent; }
.topbar { display: none; }            /* статичную шапку рисует JS заново */

.screen { display: none; padding: 0 0 calc(104px + env(safe-area-inset-bottom)); animation: mwScreen .26s ease; }
.screen.active { display: block; }
.screen-pad { padding: 0; }
@keyframes mwScreen { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ---- 4. Типографика ------------------------------------------------ */
.screen-title, #screen-title {
  font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h1);
  letter-spacing: -0.02em; line-height: 1.12; color: var(--white-warm);
  text-wrap: balance;
}
.page-head h2, .market-help-dialog h2, .rec-of-day__teams { text-wrap: balance; }
.screen-sub { color: var(--text-2); font-size: var(--fs-body); line-height: 1.45; margin-top: 5px; }
.section-title {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body-lg); color: var(--white-warm);
  letter-spacing: -0.01em;
  margin: 16px 0 12px;
}
.section-kicker, .market-showcase-step {
  display: inline-block;
  font-family: var(--font-display); font-weight: 600; font-size: var(--fs-cap);
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted);
  margin-bottom: 7px;
}
.block-title {
  font-family: var(--font-display); font-weight: 600; font-size: var(--fs-caption);
  letter-spacing: 0; text-transform: none; color: var(--text-2);
  margin: 0 var(--pad-x) 10px;
}
.notice, .short-note, .muted-copy, .disclaimer {
  color: var(--text-2); font-size: 13px; line-height: 1.5;
}
.notice, .disclaimer { margin: 14px var(--pad-x) 4px; text-align: center; }

/* ---- 5. Шапка приложения ------------------------------------------ */
.app-bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 20px var(--pad-x) 12px;
}
.app-bar__brand { display: inline-flex; align-items: center; gap: 11px; }
.app-bar__brand .brand-logo { flex: none; filter: drop-shadow(0 4px 12px rgba(47, 125, 255, 0.45)); }
.brand-word, .brand-title {
  font-family: var(--font-display); font-weight: 800; font-size: 22px;
  letter-spacing: -0.01em; color: #fff;
}
.brand-word__win { color: var(--gold); }
.sync-pill {
  display: inline-flex; align-items: center; gap: 7px;
  min-height: 34px; padding: 0 13px;
  border-radius: var(--r-pill);
  border: 1px solid var(--line);
  background: rgba(13, 21, 38, 0.8);
  color: var(--text-2);
  font-family: var(--font-mono); font-size: 11.5px; font-weight: 500;
}
.sync-pill svg { stroke: var(--ice); fill: none; }
.sync-label { display: none; }

/* ---- 6. Кнопки ------------------------------------------------------ */
.btn, .primary-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 0 18px;
  border-radius: var(--r-md);
  font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body); line-height: 1.15;
  transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
  user-select: none;
}
.btn:active, .primary-button:active { transform: scale(0.97); }
.btn--primary, .primary-button {
  background: var(--grad-brand); color: #fff;
  box-shadow: 0 10px 24px -16px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.16);
}
.btn--cta {
  background: var(--grad-gold); color: #2a2008;
  box-shadow: var(--shadow-gold), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.btn--cta svg { stroke: #2a2008; }
.btn--ghost {
  background: rgba(255, 255, 255, 0.04);
  color: var(--text);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), inset 0 0 0 1px var(--line-strong);
}
.btn--danger {
  background: var(--red-tint); color: var(--red);
  box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.3);
}
.btn--primary:active, .primary-button:active { filter: brightness(0.9); }
.btn--cta:active { filter: brightness(0.93); }
.btn[disabled], .primary-button[disabled] {
  opacity: 0.45; pointer-events: none;
  filter: saturate(0.35);
  box-shadow: inset 0 0 0 1px var(--line);
}
.btn svg { stroke: currentColor; fill: none; flex: none; }
.link-button, .link-secondary {
  color: var(--ice); font-size: 13px; font-weight: 600; padding: 6px 0;
}
.icon-btn {
  display: grid; place-items: center;
  width: 46px; height: 46px; flex: none;
  border-radius: var(--r-md);
  background: var(--surface-2);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--muted);
  transition: color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.icon-btn:active { transform: scale(0.94); }
.icon-btn.is-active { color: var(--gold); background: var(--gold-tint); box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.45); }
.icon-btn svg { stroke: currentColor; fill: none; }

.back-button {
  display: inline-grid; place-items: center;
  width: 44px; height: 44px;
  margin: 14px var(--pad-x) 2px;
  border-radius: var(--r-pill);
  background: var(--surface-2);
  box-shadow: inset 0 0 0 1px var(--line-strong), var(--shadow-card);
  color: var(--text-2);
  font-size: 22px; line-height: 1; font-weight: 600;
  padding-bottom: 2px;
}

/* ---- 7. Карточная основа ------------------------------------------- */
.match-card, .match-detail-card, .history-panel, .signal-detail-block,
.decision-panel, .decision-system-card, .council-snapshot, .admin-panel,
.analysis-prep, .market-showcase, .hist-block, .readiness-card,
.movement-card, .clv-panel, .risk-panel, .execution-panel, .final-decision-card {
  background: var(--card-grad);
  border-radius: var(--r-lg);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line), var(--shadow-card);
}

/* ---- 8. Экран «Матчи» ---------------------------------------------- */
.screen-head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 18px var(--pad-x) 4px;
}
.screen-head--stack { flex-direction: column; align-items: flex-start; gap: 2px; padding-top: 18px; }
.trial-pill {
  flex: none; padding: 6px 12px;
  border-radius: var(--r-pill);
  background: var(--gold-tint);
  box-shadow: inset 0 0 0 1px rgba(220, 196, 136, 0.35);
  color: var(--gold);
  font-family: var(--font-display); font-size: var(--fs-cap); font-weight: 600;
  letter-spacing: 0; text-transform: none;
}
/* служебные строки под заголовком — шум, скрываем (warn-вариант остаётся) */
.sync-status-line { display: none; }
.sync-status-line--warn {
  display: block; margin: 8px var(--pad-x) 0;
  padding: 9px 13px; border-radius: var(--r-md);
  background: var(--gold-tint); color: var(--gold); font-size: 12.5px;
  box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.25);
}
.today-meta-line { display: none; }

/* Баннер ИИ-агента */
.agent-ask {
  position: relative; display: flex; align-items: center; gap: 13px;
  width: calc(100% - 2 * var(--pad-x));
  margin: 14px var(--pad-x) 2px; padding: 15px 16px;
  text-align: left; border-radius: var(--r-lg);
  overflow: hidden; isolation: isolate;
  color: var(--text);
  background:
    radial-gradient(135% 150% at 0% 0%, rgba(91, 130, 240, 0.16), transparent 58%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line), var(--shadow-card);
}
.agent-ask__icon {
  flex: none; display: grid; place-items: center;
  width: 44px; height: 44px; border-radius: var(--r-icon);
  /* СИНИЙ = продукт/ИИ (золото отдаём баннеру денег/премиума ниже — не два золотых
     промо подряд, чище семантика акцентов) */
  background: linear-gradient(160deg, rgba(91, 130, 240, 0.22), rgba(45, 79, 208, 0.12));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 0 0 1px rgba(91, 130, 240, 0.42);
}
.agent-ask__icon svg { stroke: var(--brand); fill: none; }
.agent-ask__body { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.agent-ask__body b { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body-lg); color: var(--white-warm); }
.agent-ask__body i { font-style: normal; font-size: var(--fs-caption); color: var(--text-2); }
.agent-ask__go {
  flex: none; display: grid; place-items: center;
  width: 32px; height: 32px; border-radius: var(--r-pill);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  color: var(--ice); font-weight: 700;
}

/* Поиск */
.search-box, .match-search { position: relative; display: block; margin: 12px var(--pad-x) 2px; }
.search-box input, .match-search input {
  width: 100%; min-height: 46px; padding: 0 16px 0 44px;
  border: 0; border-radius: var(--r-md);
  background: rgba(0, 0, 0, 0.25);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4), inset 0 0 0 1px var(--line);
  color: var(--text); font-size: var(--fs-body);
  transition: box-shadow .15s ease;
}
.search-box input:focus, .match-search input:focus {
  outline: none;
  box-shadow: inset 0 0 0 1.5px var(--brand);
}
.search-box input::placeholder, .match-search input::placeholder { color: var(--muted); }
.search-box > svg, .match-search > svg {
  position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  stroke: var(--muted); fill: none; pointer-events: none;
}
input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }

/* Фильтры-сегменты */
.segmented {
  display: flex; gap: 8px; overflow-x: auto;
  padding: 12px var(--pad-x) 6px;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.segmented::-webkit-scrollbar { display: none; }
.segmented button, .segmented__item {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 38px; padding: 0 16px;
  border-radius: var(--r-pill);
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--text-2); font-size: var(--fs-caption); font-weight: 600; white-space: nowrap;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.segmented button.active, .segmented button.is-active,
.segmented__item.active, .segmented__item.is-active {
  background: rgba(255, 255, 255, 0.10); color: #fff;
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.segmented button svg { stroke: currentColor; fill: none; }

/* Лента матчей */
.feed-v54, #feed { display: flex; flex-direction: column; gap: 14px; padding: 10px var(--pad-x) 28px; }
.match-card { padding: 17px 17px 16px; }

.match-card--hero {
  position: relative; overflow: hidden; isolation: isolate;
  padding: 22px 19px 19px;
  background:
    radial-gradient(140% 110% at 50% -18%, rgba(91, 130, 240, 0.22), transparent 60%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(220, 196, 136, 0.30), 0 24px 56px -22px rgba(0, 0, 0, 0.7);
}
.match-card__ribbon {
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: 15px;
  font-family: var(--font-display); font-weight: 600; font-size: var(--fs-cap);
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--gold);
}
.match-card__ribbon svg { stroke: var(--gold); fill: none; }

.match-card__meta { display: flex; align-items: center; gap: 8px; margin-bottom: 15px; min-width: 0; }
/* лига уже входит в строку времени — чип-дубль убираем */
.match-card__meta .league-chip { display: none; }
.match-card__time {
  flex: 1; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--text-2); font-family: var(--font-body); font-size: var(--fs-caption); font-weight: 500;
}
.league-chip {
  font-size: var(--fs-caption); font-weight: 600; color: var(--text-2);
  background: var(--brand-tint); border-radius: var(--r-pill); padding: 4px 10px;
}
.verdict {
  flex: none; margin-left: auto;
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-display); font-size: var(--fs-cap); font-weight: 600;
  letter-spacing: 0; text-transform: none;
  padding: 5px 11px; border-radius: var(--r-pill); white-space: nowrap;
}
.verdict--ai    { background: var(--brand-tint); color: var(--ice); box-shadow: inset 0 0 0 1px var(--line-strong); }
.verdict--watch { background: var(--brand-tint); color: var(--ice); box-shadow: inset 0 0 0 1px var(--line-strong); }
.verdict--ai::before, .verdict--watch::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%;
  background: var(--muted);
}
.verdict--bet, .verdict--cand { background: var(--green-tint); color: var(--green); box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.35); }
.verdict--bet::before, .verdict--cand::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%;
  background: var(--green);
}
.verdict--skip  { background: var(--red-tint); color: var(--red); box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.3); }

.match-card__teams, .fixture-teams {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: 8px;
  margin-bottom: 16px;
}
.team, .fixture-team { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; min-width: 0; }
/* команды — главный контент карточки, громче кнопки */
.team span, .fixture-team strong {
  font-family: var(--font-display); font-size: var(--fs-body-lg); font-weight: 700;
  letter-spacing: -0.01em; color: var(--text); line-height: 1.25;
}
.match-card--hero .team span { font-size: var(--fs-h2); font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; }
.featured-fixture .fixture-team strong { font-size: var(--fs-body-lg); }
.crest, .team-crest, .logo {
  width: 54px; height: 54px; flex: none;
  border-radius: var(--r-pill);
  display: grid; place-items: center; overflow: hidden;
  background: radial-gradient(120% 120% at 50% 30%, #243250 0%, #161f33 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.10), 0 6px 16px -8px rgba(0, 0, 0, 0.6);
}
.crest img, .team-crest img { width: 100%; height: 100%; object-fit: cover; }
.crest--mono, .logo--mono {
  background: var(--grad-brand);
  color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 17px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 6px 16px -8px rgba(0, 0, 0, 0.6);
}
.vs, .fixture-vs {
  display: inline-grid; place-items: center;
  width: 32px; height: 32px; margin-top: 14px;
  border-radius: var(--r-pill);
  background: var(--surface-3);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--muted);
  font-family: var(--font-mono); font-weight: 600; font-size: 10px;
}
.match-card--hero .vs { margin-top: 18px; }
.fixture-vs span { font-size: 10px; color: var(--muted); }

/* renderMatchVisual — компактный блок «дом vs гость» */
.match-visual {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: 8px;
  padding: 12px 0;
}
.match-visual.compact { padding: 6px 0; gap: 6px; }
.team-block {
  display: flex; flex-direction: column; align-items: center; gap: 9px;
  text-align: center; min-width: 0;
}
.team-block strong {
  font-family: var(--font-display); font-size: 14px; font-weight: 700;
  letter-spacing: -0.01em; color: var(--text); line-height: 1.25;
}
.match-visual.compact .team-block strong { font-size: 12.5px; }
.versus {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  gap: 4px; padding-top: 10px; text-align: center;
}
.versus > span {
  font-size: 10px; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.07em;
}
.versus > b {
  display: inline-grid; place-items: center;
  width: 32px; height: 32px;
  border-radius: var(--r-pill);
  background: var(--surface-3);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--muted);
  font-family: var(--font-mono); font-weight: 600; font-size: 10px;
}
.versus > small { font-size: 11px; color: var(--muted); }

.match-card__actions { display: flex; gap: 10px; }
.match-card__actions .btn--primary { flex: 1; }
/* рядовые карточки — тихие CTA: акцент экрана остаётся за hero */
.match-card:not(.match-card--hero) .match-card__actions .btn--primary {
  min-height: 44px; font-size: var(--fs-body);
  background: transparent;
  color: var(--ice);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.match-card:not(.match-card--hero) .match-card__actions .btn--primary:active {
  background: rgba(255, 255, 255, 0.05);
  filter: none;
}
.match-card--hero .btn--primary {
  background: var(--grad-gold); color: #2a2008;
  box-shadow: var(--shadow-gold), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.match-card--hero .btn--primary:active { filter: brightness(0.95); }
.match-card--hero .crest, .match-card--hero .team-crest {
  width: 66px; height: 66px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10), inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 8px 20px -8px rgba(0, 0, 0, 0.65);
}
.match-card--hero .vs {
  width: 40px; height: 40px; font-size: 11px;
  background: var(--gold-tint);
  color: var(--gold);
  box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.45), 0 0 14px -4px rgba(236, 203, 124, 0.4);
}

/* золотая карточка когда вердикт «СТАВИТЬ» — сигнал ценный, карточка выделяется */
.match-card:has(.verdict--bet), .match-card:has(.verdict--cand) {
  background:
    radial-gradient(120% 100% at 50% -5%, rgba(217, 173, 78, 0.16), transparent 55%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.32), var(--shadow-card);
}
.match-card.match-card--hero:has(.verdict--bet), .match-card.match-card--hero:has(.verdict--cand) {
  background:
    radial-gradient(145% 115% at 50% -18%, rgba(77, 124, 255, 0.28), transparent 62%),
    radial-gradient(130% 140% at 100% 110%, rgba(217, 173, 78, 0.22), transparent 50%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1.5px rgba(236, 203, 124, 0.72), 0 30px 68px -16px rgba(217, 173, 78, 0.5), 0 0 0 1px rgba(236, 203, 124, 0.14);
}

.feed-more, .show-more-matches { width: auto; }

/* ---- 9. Экран матча ------------------------------------------------- */
.page-head { padding: 8px var(--pad-x) 4px; }
.page-head h2 {
  font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h2);
  letter-spacing: -0.02em; color: var(--white-warm); line-height: 1.14;
}
.page-head p { color: var(--text-2); font-family: var(--font-body); font-size: var(--fs-caption); margin-top: 5px; }

.match-detail-card { margin: 12px var(--pad-x); padding: 18px 16px; }
.detail-head { display: none; }                       /* дубль лиги и времени */
.featured-fixture .fixture-meta {
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
}
.featured-fixture .fixture-league { display: none; }  /* дубль лиги */
.fixture-schedule {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 5px 13px; border-radius: var(--r-pill);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ice); font-family: var(--font-mono); font-size: 11.5px; font-weight: 500;
}
.fixture-date::after { content: " ·"; color: var(--muted); }
.featured-fixture .fixture-teams { margin-bottom: 2px; }
.featured-fixture .team-crest { width: 60px; height: 60px; }

/* Шаг 1 — что проверит разбор */
.analysis-prep { margin: 12px var(--pad-x); padding: 16px; }
.prep-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.prep-card {
  display: flex; flex-direction: column; gap: 4px;
  background: var(--surface-2);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), inset 0 0 0 1px var(--line);
  border-radius: var(--r-md); padding: 12px 11px;
}
.prep-card b { color: var(--white-warm); font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body); }
.prep-card span { color: var(--text-2); font-size: var(--fs-caption); line-height: 1.4; }
.verdict-placeholder {
  margin: 14px 0 0; padding: 14px;
  background: rgba(255, 255, 255, 0.03);
  box-shadow: inset 0 0 0 1px var(--line);
  border-radius: var(--r-md);
  color: var(--muted); text-align: center; font-size: var(--fs-caption);
}

/* Шаг 2 — рынки */
.market-showcase, .market-showcase-v2 { margin: 12px var(--pad-x); padding: 16px; }
.market-showcase-head { display: block; margin-bottom: 4px; }
.market-showcase-head > strong {
  display: block;
  font-family: var(--font-display); font-weight: 700; font-size: 17px; color: #fff;
}
.market-selection-status {
  display: inline-flex; align-items: center; gap: 7px;
  margin-top: 9px; padding: 5px 12px;
  border-radius: var(--r-pill);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--text-2); font-size: 12px; font-weight: 500;
}
.market-selection-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--muted); transition: background .2s ease;
}
.market-selection-status.has-selection { color: var(--ice); box-shadow: inset 0 0 0 1px var(--line-strong); }
/* «выбрано» = синий во всём приложении; зелёный зарезервирован под успех */
.market-selection-status.has-selection .market-selection-dot { background: var(--brand); box-shadow: 0 0 8px rgba(77, 124, 255, 0.8); }
.market-showcase-hint { color: var(--muted); font-size: 12.5px; margin: 9px 0 0; }

.tip-card {
  display: flex; align-items: flex-start; gap: 12px;
  margin: 13px 0; padding: 13px 14px;
  border-radius: var(--r-md);
  background: var(--gold-tint);
  box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.22);
  cursor: pointer;
}
.tip-card__icon {
  flex: none; display: grid; place-items: center;
  width: 34px; height: 34px; border-radius: 11px;
  background: rgba(236, 203, 124, 0.16);
  color: var(--gold);
}
.tip-card__icon svg { stroke: var(--gold); fill: none; }
.tip-card b { display: block; color: #fff; font-size: 13.5px; font-weight: 700; }
.tip-card p { color: var(--text-2); font-size: 12.5px; margin-top: 2px; line-height: 1.4; }

.market-category-list { display: flex; flex-direction: column; gap: 9px; margin-top: 12px; }
.market-category {
  background: rgba(255, 255, 255, 0.028);
  box-shadow: inset 0 0 0 1px var(--line);
  border-radius: var(--r-md); overflow: hidden;
  transition: box-shadow .2s ease;
}
.market-category.is-open { box-shadow: inset 0 0 0 1px var(--line-strong); }
.market-category.has-picked { box-shadow: inset 0 0 0 1.5px var(--brand); }
.market-category-row { display: flex; align-items: center; gap: 10px; padding: 13px 14px; cursor: pointer; }
.market-category-copy { flex: 1; min-width: 0; }
.market-category-title-row { display: inline-flex; align-items: center; gap: 8px; }
.market-category-copy strong { font-family: var(--font-display); font-weight: 700; font-size: 14.5px; color: #fff; }
.market-category-copy small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.market-category-info {
  display: grid; place-items: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--brand-tint); color: var(--ice);
}
.market-category-info svg { stroke: var(--ice); fill: none; width: 13px; height: 13px; }
/* счётчик показываем один раз — pill-дубль скрыт */
.market-category-row > .count-pill { display: none; }
.count-pill {
  display: inline-grid; place-items: center;
  min-width: 26px; height: 26px; padding: 0 8px;
  border-radius: var(--r-pill);
  background: var(--surface-3);
  color: var(--ice); font-family: var(--font-mono); font-size: 12px; font-weight: 600;
}
.market-category-toggle { display: inline-flex; align-items: center; padding: 6px 0 6px 6px; }
.market-category-meta { display: inline-flex; align-items: center; gap: 9px; }
.market-category-picked {
  display: inline-grid; place-items: center;
  min-width: 26px; height: 26px; padding: 0 8px;
  border-radius: var(--r-pill);
  background: var(--grad-brand); color: #fff;
  font-family: var(--font-mono); font-size: 12px; font-weight: 700;
  box-shadow: 0 4px 12px -4px rgba(77, 124, 255, 0.7), inset 0 1px 0 rgba(255, 255, 255, 0.25);
}
.market-category-picked[hidden] { display: none; }
.market-category-count {
  display: inline-grid; place-items: center;
  min-width: 34px; height: 26px; padding: 0 8px;
  border-radius: var(--r-pill);
  background: var(--surface-3);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ice); font-family: var(--font-mono); font-size: 12px; font-weight: 600;
}
.market-category-chevron {
  width: 16px; height: 16px;
  background: no-repeat center / 14px 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2367748f' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  transition: transform .22s ease;
}
.market-category.is-open .market-category-chevron, .market-category-chevron.is-open { transform: rotate(180deg); }

.market-choice-list { display: flex; flex-direction: column; gap: 8px; padding: 2px 12px 12px; }
.market-choice-list.is-collapsed { display: none; }
.market-choice {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 12px; text-align: left;
  border-radius: var(--r-md);
  background: var(--surface-2);
  box-shadow: inset 0 0 0 1px var(--line);
  transition: box-shadow .15s ease, background .15s ease;
}
.market-choice i {
  flex: none; display: grid; place-items: center;
  width: 38px; height: 38px; border-radius: var(--r-sm);
  background: var(--surface-3);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ice); font-style: normal;
  font-family: var(--font-mono); font-weight: 600; font-size: 12.5px;
}
.market-choice > span { flex: 1; min-width: 0; display: block; }
.market-choice strong { display: block; color: #fff; font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.market-choice small { display: block; color: var(--muted); font-size: 11.5px; margin-top: 1px; }
/* кружок выбора: JS сам кладёт «✓» текстом в <b> — рисуем ЕГО, без фоновых
   картинок (иначе галочка двоится). Пустой — «утопленный», заметный (WCAG 1.4.11) */
.market-choice > b {
  flex: none; display: grid; place-items: center;
  width: 23px; height: 23px;
  border-radius: 50%;
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.45), inset 0 0 0 1.5px rgba(157, 183, 255, 0.55);
  color: transparent; font-size: 0; line-height: 1;
  transition: background .15s ease, box-shadow .15s ease, color .15s ease;
}
.market-choice:active {
  background: var(--surface-3);
}
.market-choice.selected {
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1.5px var(--brand);
}
.market-choice.selected:active {
  background: rgba(77, 124, 255, 0.22);
}
.market-choice.selected i {
  background: rgba(77, 124, 255, 0.28);
  box-shadow: inset 0 0 0 1px rgba(157, 183, 255, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.12);
  color: #fff;
}
.market-choice.selected > b {
  background: var(--grad-brand);
  box-shadow: 0 4px 12px -4px rgba(77, 124, 255, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.25);
  color: #fff; font-size: 13px; font-weight: 800;
}
/* исход уже разобран */
.market-choice.is-done { opacity: 0.82; cursor: pointer; }
.market-choice.is-done > b {
  background: var(--green-tint);
  box-shadow: inset 0 0 0 1.5px rgba(49, 215, 156, 0.45);
  color: var(--green); font-size: 13px; font-weight: 800;
}

/* Добавить рынки (внутри анализа) */
.add-markets-btn { margin: 10px var(--pad-x); }
.add-markets-panel { margin: 10px var(--pad-x); padding: 14px; border-radius: var(--r-lg); background: var(--card-grad); box-shadow: var(--hairline), inset 0 0 0 1px var(--line); }
.add-markets-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; color: #fff; font-weight: 700; }
.add-markets-hint { color: var(--muted); font-size: 12.5px; margin-bottom: 10px; }

/* ---- 10. Sticky CTA + агент ----------------------------------------- */
.sticky-cta {
  position: sticky; bottom: calc(92px + env(safe-area-inset-bottom));
  z-index: 50;
  margin: 16px var(--pad-x) 4px;
  display: flex; flex-direction: column; gap: 8px;
}
/* скрим: контент не просвечивает под CTA в момент решения */
.sticky-cta::before {
  content: "";
  position: absolute;
  inset: -16px calc(-1 * var(--pad-x)) -12px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(4, 7, 14, 0) 0%, rgba(4, 7, 14, 0.88) 35%, rgba(4, 7, 14, 0.96) 100%);
}
.btn--agent-auto {
  width: 100%; min-height: 54px;
  border-radius: var(--r-lg);
  font-size: 14px;
}
.btn--agent-auto.btn--primary {
  position: relative; overflow: hidden;
  background: var(--grad-gold); color: #2a2008;
  box-shadow: var(--shadow-gold), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.btn--agent-auto.btn--primary svg { stroke: #2a2008; }
/* вторичная кнопка в sticky-стеке — «запасной выход», не конкурент золоту */
.btn--agent-auto.btn--ghost {
  min-height: 40px;
  font-size: 13px; font-weight: 600;
  color: var(--text-2);
  background: rgba(13, 21, 38, 0.92);
  box-shadow: inset 0 0 0 1px var(--line-strong), 0 10px 26px -12px rgba(0, 0, 0, 0.8);
}

.agent-think {
  display: flex; align-items: center; gap: 12px;
  width: calc(100% - 2 * var(--pad-x));
  margin: 14px var(--pad-x) 2px; padding: 17px 16px;
  border-radius: var(--r-lg);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line-strong);
}
.agent-think__text { font-size: 13.5px; color: var(--text-2); }
.agent-think__dots { display: inline-flex; gap: 5px; flex: none; }
.agent-think__dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--brand); animation: mwDot 1s infinite ease-in-out; }
.agent-think__dots i:nth-child(2) { animation-delay: .16s; background: var(--ice); }
.agent-think__dots i:nth-child(3) { animation-delay: .32s; background: var(--gold); }
@keyframes mwDot { 0%, 80%, 100% { transform: scale(.5); opacity: .4; } 40% { transform: scale(1); opacity: 1; } }

/* Рекомендация дня (ответ агента) */
.rec-of-day {
  position: relative; display: block;
  width: calc(100% - 2 * var(--pad-x));
  margin: 14px var(--pad-x) 2px; padding: 17px 16px;
  text-align: left; border-radius: var(--r-xl);
  overflow: hidden; isolation: isolate; color: var(--text);
  background:
    radial-gradient(140% 130% at 8% 0%, rgba(77, 124, 255, 0.28), transparent 55%),
    radial-gradient(120% 140% at 100% 110%, rgba(217, 173, 78, 0.14), transparent 60%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.3), 0 20px 46px -18px rgba(61, 99, 221, 0.55);
}
.rec-of-day__glow { position: absolute; inset: -50% -10% auto -10%; height: 180px; z-index: -1; background: radial-gradient(60% 80% at 50% 0%, rgba(236, 203, 124, 0.18), transparent 70%); }
.rec-of-day__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.rec-of-day__tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-display); font-weight: 700; font-size: 10.5px;
  letter-spacing: 0.13em; text-transform: uppercase; color: var(--gold);
}
.rec-of-day__tag svg { stroke: var(--gold); fill: none; }
.rec-of-day__reask {
  display: grid; place-items: center; width: 32px; height: 32px;
  border-radius: 50%; background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 0 0 1px var(--line); color: var(--ice);
}
.rec-of-day__reask svg { stroke: var(--ice); fill: none; }
.rec-of-day__teams { display: block; font-family: var(--font-display); font-weight: 800; font-size: 18px; line-height: 1.25; color: #fff; margin-bottom: 6px; }
.rec-of-day__teams i { color: var(--muted); font-style: normal; margin: 0 4px; }
.rec-of-day__pick { display: block; font-size: 14px; font-weight: 600; color: var(--ice); margin-bottom: 4px; }
.rec-of-day__pick b { color: var(--gold); }
.rec-of-day__metarow { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 13px; }
.rec-of-day__meta { font-size: 12px; color: var(--muted); }
.rec-of-day__conf {
  font-family: var(--font-mono); font-size: 11px; color: var(--text-2);
  padding: 4px 10px; border-radius: var(--r-pill);
  background: var(--brand-tint); box-shadow: inset 0 0 0 1px var(--line-strong);
}
.rec-of-day__cta {
  display: flex; align-items: center; justify-content: center;
  width: 100%; min-height: 46px; border-radius: var(--r-md);
  font-family: var(--font-display); font-weight: 700; font-size: 14px;
  color: #1c1402;
  background: linear-gradient(135deg, #f3da93, #d9ad4e);
  box-shadow: var(--shadow-gold), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* ---- 11. Результат разбора (вердикты, агенты, риски) ----------------- */
.selected-outcomes { margin: 12px var(--pad-x); }
.outcome-analysis {
  border-radius: var(--r-md); overflow: hidden;
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
  margin-bottom: 10px;
}
.outcome-analysis[open] { box-shadow: var(--hairline), inset 0 0 0 1px var(--line-strong); }
.outcome-analysis > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 14px; cursor: pointer; list-style: none; }
.outcome-analysis > summary::-webkit-details-marker { display: none; }
.outcome-analysis summary strong { display: block; color: #fff; font-size: 14px; font-weight: 700; }
.outcome-analysis summary small { color: var(--muted); font-size: 12px; }
.outcome-analysis summary > b { font-family: var(--font-mono); font-size: 16px; color: var(--gold); }
.outcome-body { padding: 0 14px 14px; color: var(--text-2); font-size: 13.5px; line-height: 1.5; }
.outcome-list { display: flex; flex-direction: column; gap: 10px; }
.outcome-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.outcome-metrics > div { background: rgba(255, 255, 255, 0.035); box-shadow: inset 0 0 0 1px var(--line); border-radius: var(--r-sm); padding: 10px 8px; text-align: center; }
.outcome-metrics span { display: block; color: var(--muted); font-size: 10.5px; margin-bottom: 3px; }
.outcome-metrics strong { font-family: var(--font-mono); color: #fff; font-size: 14px; }

.outcome-verdict {
  margin: 12px var(--pad-x); padding: 16px;
  border-radius: var(--r-lg);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line), var(--shadow-card);
}
.outcome-verdict-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.outcome-verdict-flag { font-weight: 800; font-family: var(--font-display); }
.outcome-verdict-price { font-family: var(--font-mono); color: var(--gold); font-size: 16px; font-weight: 600; }
.outcome-verdict-sub { color: var(--text-2); font-size: 13px; line-height: 1.5; }
.outcome-verdict-stake { color: var(--ice); font-family: var(--font-mono); font-size: 12.5px; margin-top: 8px; }
.outcome-verdict-cta { margin-top: 12px; }
.outcome-checklist { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; }
.outcome-checklist li { display: flex; gap: 9px; color: var(--text-2); font-size: 13px; line-height: 1.45; }

.agents-block, .agent-card { margin: 12px var(--pad-x); }
.agent-card {
  display: flex; gap: 12px; padding: 14px;
  border-radius: var(--r-md);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
  margin-bottom: 10px;
}
.agent-card .avatar, .analyst .avatar { width: 38px; height: 38px; border-radius: 12px; font-size: 15px; }
.agent-card strong { display: block; color: #fff; font-size: 13.5px; }
.agent-card em { font-style: normal; color: var(--gold); font-size: 12px; }
.agent-card p { color: var(--text-2); font-size: 13px; line-height: 1.45; margin-top: 3px; }

.analysis-breakdown, .analysis-details { margin: 12px var(--pad-x); padding: 4px 14px; border-radius: var(--r-md); background: var(--card-grad); box-shadow: var(--hairline), inset 0 0 0 1px var(--line); }
.analysis-details > summary { padding: 11px 0; cursor: pointer; font-weight: 700; color: var(--text); list-style: none; }
.analysis-details > summary::-webkit-details-marker { display: none; }
.analysis-details-text { color: var(--text-2); font-size: 13.5px; line-height: 1.55; padding-bottom: 13px; }

.factor-list, .warning-list, .audit-list, .plain-reasons { display: flex; flex-direction: column; gap: 8px; margin: 10px var(--pad-x); }
.factor-list li, .plain-reasons li { display: flex; gap: 9px; color: var(--text-2); font-size: 13px; line-height: 1.45; }
.warning-list { padding: 12px 14px; border-radius: var(--r-md); background: var(--red-tint); box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.22); color: #ffb8bf; font-size: 12.5px; }

.readiness-card, .movement-card, .clv-panel, .risk-panel, .execution-panel { margin: 12px var(--pad-x); padding: 15px; }
.readiness-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 10px; }
.readiness-grid > div {
  background: rgba(255, 255, 255, 0.035); box-shadow: inset 0 0 0 1px var(--line);
  border-radius: var(--r-sm); padding: 11px;
}
.risk { color: var(--text-2); font-size: 13px; }
.risk-summary { color: var(--text-2); font-size: 13.5px; line-height: 1.5; margin-top: 8px; }
.clv-line { font-family: var(--font-mono); font-size: 12.5px; color: var(--ice); }
.council-snapshot { margin: 12px var(--pad-x); padding: 15px; display: flex; flex-direction: column; gap: 10px; }
.decision-panel, .decision-system-card, .final-decision-card { margin: 12px var(--pad-x); padding: 16px; }
.decision-panel span { color: var(--text-2); font-size: 12px; }

/* ── Экран «Как система выбирает вход» — чистые нумерованные шаги ─────── */
.decision-system-card {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 15px 16px 16px;
}
.decision-system-card > .system-icon { display: none; }   /* пустой слот-иконка — убираем */
.decision-system-card > span {           /* номер шага — аккуратный бейдж, а не серая цифра */
  flex: none; display: grid; place-items: center;
  width: 30px; height: 30px; border-radius: var(--r-pill);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px rgba(91, 130, 240, 0.42);
  color: var(--brand);
  font-family: var(--font-display); font-weight: 700; font-size: 14px; line-height: 1;
}
.decision-system-card > div { flex: 1; min-width: 0; }
.decision-system-card h3 {
  font-family: var(--font-display); font-size: var(--fs-body-lg); font-weight: 700;
  color: var(--white-warm); margin: 3px 0 6px;
}
.decision-system-card p { color: var(--text-2); font-size: var(--fs-body); line-height: 1.5; margin: 0; }

/* Финал — золотой «выхлоп»: смысловой акцент, к чему всё ведёт */
.final-decision-card {
  display: flex; align-items: flex-start; gap: 14px; margin-top: 16px;
  padding: 16px;
  background:
    radial-gradient(130% 150% at 0% 0%, rgba(217, 173, 78, 0.15), transparent 60%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.32), var(--shadow-card);
}
.final-decision-card > .trophy-icon {
  flex: none; display: grid; place-items: center;
  width: 34px; height: 34px; border-radius: var(--r-icon);
  background: var(--grad-gold); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.final-decision-card > .trophy-icon::before { content: "★"; color: #2a2008; font-size: 16px; line-height: 1; }
.final-decision-card > div { flex: 1; min-width: 0; }
.final-decision-card h3 {
  font-family: var(--font-display); font-size: var(--fs-body-lg); font-weight: 700;
  color: var(--gold); margin: 3px 0 6px;
}
.final-decision-card p { color: var(--text-2); font-size: var(--fs-body); line-height: 1.5; margin: 0; }
.decision-panel strong { display: block; font-family: var(--font-display); font-weight: 800; font-size: 18px; color: #fff; margin: 6px 0; }
.decision-panel p { color: var(--text-2); font-size: 13.5px; line-height: 1.5; }
.execution-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; color: #fff; font-weight: 700; }
.execution-steps { display: flex; flex-direction: column; gap: 8px; }
.execution-note, .execution-result { color: var(--muted); font-size: 12.5px; margin-top: 8px; }

/* Вкладки внутри матча */
.match-tabs, .tabs-v54 {
  display: flex; gap: 7px; overflow-x: auto;
  margin: 12px var(--pad-x) 0; padding-bottom: 4px;
  scrollbar-width: none;
}
.match-tabs::-webkit-scrollbar, .tabs-v54::-webkit-scrollbar { display: none; }
.match-tabs button, .tabs-v54 button {
  flex: 0 0 auto; min-height: 36px; padding: 0 14px;
  border-radius: var(--r-pill);
  background: var(--surface); box-shadow: inset 0 0 0 1px var(--line);
  color: var(--text-2); font-size: 12.5px; font-weight: 600; white-space: nowrap;
}
.match-tabs button.active, .match-tabs button.is-active,
.tabs-v54 button.active, .tabs-v54 button.is-active {
  background: var(--grad-brand); color: #fff;
  box-shadow: 0 8px 18px -8px rgba(77, 124, 255, 0.7);
}
.match-tab-body { padding-top: 4px; }

/* ---- 12. Premium-нудж и баннеры ------------------------------------- */
.premium-nudge, .status-banner {
  display: flex; align-items: center; gap: 13px;
  margin: 12px var(--pad-x); padding: 14px 15px;
  border-radius: var(--r-lg); cursor: pointer;
  background:
    radial-gradient(130% 160% at 0% 0%, rgba(217, 173, 78, 0.13), transparent 60%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.26);
}
.gold-icon, .trophy-icon {
  display: grid; place-items: center;
  width: 40px; height: 40px; flex: none; border-radius: var(--r-icon);
  background: var(--grad-brand);
  color: #fff; font-size: 17px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.premium-nudge > div { flex: 1; min-width: 0; }
/* иконка — квадрат, а не растянутая плита (правило выше перебивало flex:none) */
.premium-nudge > div.gold-icon, .premium-nudge > div.trophy-icon { flex: 0 0 40px; }
.premium-nudge strong, .status-banner strong { color: #fff; font-weight: 700; font-size: 14px; }
.premium-nudge p, .status-banner p { color: var(--text-2); font-size: 12.5px; margin-top: 2px; }
.premium-nudge > span { color: var(--gold); font-size: 20px; }
.premium-nudge {
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.42), 0 12px 30px -16px rgba(217, 173, 78, 0.3);
}
.status-banner--ok { background: var(--green-tint); box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.3); }
.status-banner--gold { box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.4); }
.banner { margin: 12px var(--pad-x); padding: 13px 15px; border-radius: var(--r-md); background: var(--brand-tint); box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--text-2); font-size: 13px; }
.banner--ok { background: var(--green-tint); box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.3); color: var(--green); }
.streak-banner { margin: 12px var(--pad-x); padding: 12px 15px; border-radius: var(--r-md); background: var(--gold-tint); box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.25); color: var(--gold); font-size: 13px; }
.urgent { color: var(--gold); }

/* ---- 13. История ----------------------------------------------------- */
.hist-block { margin: 12px var(--pad-x); padding: 15px; }
.hist-block .block-title { margin: 0 0 12px; }
.stat-strip { display: flex; gap: 8px; }
.stat-strip .stat {
  flex: 1; padding: 13px 8px 11px;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.035);
  box-shadow: inset 0 0 0 1px var(--line);
  text-align: center;
}
.stat-strip .stat b, .stat b {
  display: block;
  font-family: var(--font-mono); font-weight: 600; font-size: 21px; color: #fff;
  margin-bottom: 3px;
}
.stat-strip .stat span, .stat span { display: block; color: var(--muted); font-size: 11px; }
.history-filters { padding: 2px 0 10px; }
.history-list { display: flex; flex-direction: column; gap: 10px; }
.history-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 12px var(--pad-x); }
.history-panel { padding: 13px; }
.history-copy { color: var(--text-2); font-size: 13px; line-height: 1.5; }
.history-event { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 13px; color: var(--text-2); }
.history-event:last-child { border-bottom: 0; }
.history-lock { text-align: center; color: var(--muted); padding: 18px; font-size: 13px; }

.signal-card {
  display: flex; flex-direction: column; gap: 8px;
  padding: 14px;
  border-radius: var(--r-md);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
}
.signal-main { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.signal-teams { color: #fff; font-weight: 700; font-size: 14px; }
.signal-market { color: var(--text-2); font-size: 12.5px; }
.signal-summary { display: flex; gap: 8px; margin: 12px var(--pad-x); }
.signal-summary > div { flex: 1; background: var(--card-grad); box-shadow: var(--hairline), inset 0 0 0 1px var(--line); border-radius: var(--r-md); padding: 11px; text-align: center; }
.signal-summary span { display: block; color: var(--muted); font-size: 11px; }
.signal-summary strong { font-family: var(--font-mono); font-size: 18px; color: #fff; }
.settlement { font-family: var(--font-mono); font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: var(--r-pill); }
.settlement.won { background: var(--green-tint); color: var(--green); }
.settlement.lost { background: var(--red-tint); color: var(--red); }
.settlement.pending { background: var(--brand-tint); color: var(--ice); }
.signal-detail-block { padding: 13px; }
.signal-detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 12px var(--pad-x); }
.signal-detail-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.signal-detail-teams { color: #fff; font-weight: 700; }
.signal-detail-score { font-family: var(--font-mono); color: var(--gold); font-size: 16px; }
.signal-detail-close { color: var(--muted); }
.signal-detail-inner { padding: 6px 0; }
.backtest-scoreboard { display: flex; gap: 8px; margin: 12px var(--pad-x); }

/* ---- 14. Premium ------------------------------------------------------ */
.benefit-grid { display: grid; grid-template-columns: 1fr; gap: 9px; margin: 4px var(--pad-x) 16px; }
.benefit {
  display: flex; flex-direction: column; gap: 3px;
  padding: 14px 15px;
  border-radius: var(--r-md);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
  position: relative; padding-left: 44px;
}
.benefit::before {
  content: "✓";
  position: absolute; left: 14px; top: 15px;
  display: grid; place-items: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  color: var(--ice); font-size: 12px; font-weight: 700; line-height: 1;
}
.benefit b { color: var(--white-warm); font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body-lg); }
.benefit span { color: var(--text-2); font-size: var(--fs-body); line-height: 1.45; }

.how-block {
  margin: 12px var(--pad-x); padding: 16px;
  border-radius: var(--r-lg);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
}
.how-block .block-title { color: var(--text-2); margin: 0 0 11px; }
.how-list { counter-reset: hw; display: flex; flex-direction: column; gap: 11px; }
.how-list li {
  position: relative; padding-left: 34px;
  font-size: var(--fs-body); color: var(--text-2); line-height: 1.45;
  counter-increment: hw;
}
.how-list li::before {
  content: counter(hw);
  position: absolute; left: 0; top: -1px;
  width: 24px; height: 24px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  color: var(--ice); font-family: var(--font-display); font-weight: 700; font-size: 12px;
}

/* CTA в потоке: ничего не липнет и не наезжает на тарифы */
.premium-cta-wrap {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  margin: 16px var(--pad-x) 8px;
}
.premium-cta-wrap .btn--cta { width: 100%; min-height: 52px; font-size: 15px; border-radius: var(--r-lg); }

.plan-section { margin: 20px var(--pad-x) 8px; }
.plan-section .block-title { margin-left: 0; }
/* gap 18px — бейджам «Выгоднее»/«Лучшая цена» нужен воздух над карточкой */
.plan-grid { display: flex; flex-direction: column; gap: 24px; margin-top: 16px; }
.plan-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "term price" "term note";
  align-items: center;
  gap: 4px 12px;
  padding: 16px;
  border-radius: var(--r-lg);
  background: var(--bg-2);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
}
.plan-card--save { box-shadow: var(--hairline), inset 0 0 0 1px var(--line-strong); }
.plan-card--best {
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1.5px rgba(220, 196, 136, 0.40), 0 16px 34px -20px rgba(0, 0, 0, 0.7);
}
.plan-card__term { grid-area: term; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body-lg); color: var(--white-warm); }
.plan-card__price {
  grid-area: price; justify-self: end;
  font-family: var(--font-display); font-weight: 700; font-size: 22px;
  font-variant-numeric: tabular-nums;
  color: var(--white-warm); letter-spacing: -0.01em;
}
.plan-card--best .plan-card__price { color: var(--gold); }
.plan-card__note { grid-area: note; justify-self: end; font-family: var(--font-mono); font-size: var(--fs-caption); color: var(--muted); }
.plan-badge {
  position: absolute; top: -10px; left: 14px;
  padding: 3px 10px; border-radius: var(--r-pill);
  background: var(--surface-3); color: var(--ice);
  font-size: 10px; font-weight: 700; letter-spacing: 0.04em;
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.plan-badge--gold { background: var(--surface-3); color: var(--gold); box-shadow: inset 0 0 0 1px rgba(220, 196, 136, 0.4); }
.plan-soon { margin: 13px 2px 0; font-size: var(--fs-caption); color: var(--muted); text-align: center; line-height: 1.5; }

/* ---- 15. Профиль ------------------------------------------------------ */
.profile-hero {
  display: flex; align-items: center; gap: 14px;
  margin: 16px var(--pad-x) 12px; padding: 17px 16px;
  border-radius: var(--r-lg);
  background:
    radial-gradient(130% 160% at 0% 0%, rgba(77, 124, 255, 0.18), transparent 55%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line), var(--shadow-card);
}
.avatar {
  display: grid; place-items: center;
  width: 56px; height: 56px; flex: none;
  border-radius: 50%;
  background: var(--grad-brand);
  color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 22px;
  box-shadow: 0 0 0 2px rgba(236, 203, 124, 0.45), 0 8px 20px -8px rgba(77, 124, 255, 0.8);
}
.avatar-photo { object-fit: cover; }
.profile-hero-info { flex: 1; min-width: 0; }
.profile-hero-info h2 {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--font-display); font-weight: 800; font-size: 19px; color: #fff;
}
.role-chip {
  flex: none; padding: 3px 9px;
  border-radius: var(--r-pill);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  color: var(--ice); font-size: 10.5px; font-weight: 700; letter-spacing: 0.03em;
}
.role-chip--premium, .role-chip--gold { background: var(--gold-tint); box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.4); color: var(--gold); }
.profile-username, .profile-hero__handle { color: var(--muted); font-size: 13px; }
.profile-sync {
  margin: 0 var(--pad-x) 12px; padding: 10px 14px;
  border-radius: var(--r-md);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--text-2); font-size: 12.5px; line-height: 1.45;
}
.profile-sync[data-state="error"] { background: var(--red-tint); box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.25); color: #ffb8bf; }
.profile-sync[data-state="ok"] { display: none; }

.stat-grid { display: grid; gap: 9px; margin: 0 var(--pad-x) 6px; }
.stat-cell {
  display: flex; flex-direction: column; gap: 2px;
  padding: 13px 14px;
  border-radius: var(--r-md);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
}
.stat-cell b { font-family: var(--font-mono); font-weight: 600; font-size: 20px; color: #fff; }
.stat-cell span { color: var(--muted); font-size: 11.5px; }
.stat-cell--ok b { color: var(--green); }

.access-card { margin: 12px var(--pad-x); padding: 15px 16px; border-radius: var(--r-lg); background: var(--card-grad); box-shadow: var(--hairline), inset 0 0 0 1px var(--line); }
.access-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 11px; }
.access-card-top span { color: var(--text-2); font-size: 13px; }
.access-card-top strong { font-family: var(--font-display); color: var(--gold); font-weight: 700; }
.access-status-list { display: flex; flex-direction: column; }
.access-status-list > div {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 9px 0; border-top: 1px solid var(--line);
  font-size: 13px;
}
.access-status-list span { color: var(--muted); }
.access-status-list strong { color: var(--text); font-weight: 600; text-align: right; }
.access-card-note { margin-top: 11px; color: var(--muted); font-size: 12px; line-height: 1.45; }

.settings-group {
  margin: 12px var(--pad-x);
  border-radius: var(--r-lg);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line), var(--shadow-card);
  overflow: hidden;
}
.settings-row {
  display: flex; align-items: center; gap: 13px;
  width: 100%; min-height: 56px; padding: 11px 15px;
  text-align: left;
  border-bottom: 1px solid var(--line);
  transition: background .15s ease;
}
.settings-row:last-child { border-bottom: 0; }
.settings-row:active { background: rgba(255, 255, 255, 0.04); }
.settings-icon {
  flex: none; display: grid; place-items: center;
  width: 34px; height: 34px; border-radius: 11px;
  background: var(--brand-tint);
  color: var(--ice);
}
.settings-icon svg { stroke: currentColor; fill: none; }
.settings-row__text { flex: 1; min-width: 0; }
.settings-row__text b { display: block; color: var(--text); font-size: 14px; font-weight: 600; }
.settings-row__text span { display: block; color: var(--muted); font-size: 12px; margin-top: 1px; }
.settings-row .icon-chevron { flex: none; stroke: var(--muted); }

.integration-card {
  display: flex; align-items: center; gap: 13px;
  margin: 12px var(--pad-x); padding: 14px 15px;
  border-radius: var(--r-lg); cursor: pointer;
  background:
    radial-gradient(130% 160% at 0% 0%, rgba(217, 173, 78, 0.10), transparent 60%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.22);
  color: var(--muted);
}
.integration-logo {
  flex: none; display: grid; place-items: center;
  width: 40px; height: 40px; border-radius: 13px;
  background: var(--gold-tint);
}
.integration-info { flex: 1; min-width: 0; }
.integration-info strong { display: block; color: #fff; font-size: 14px; }
.integration-info span { color: var(--text-2); font-size: 12.5px; }

.referral-section {
  margin: 12px var(--pad-x); padding: 15px 16px;
  border-radius: var(--r-lg);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
}
.referral-head strong { display: block; color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 15px; }
.referral-head span { color: var(--text-2); font-size: 12.5px; }
.referral-actions { display: flex; gap: 9px; margin-top: 13px; }
.referral-btn {
  flex: 1; min-height: 42px;
  border-radius: var(--r-md);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  color: var(--text); font-size: 13px; font-weight: 600;
}
.referral-btn--share { background: var(--grad-brand); color: #fff; box-shadow: 0 8px 20px -8px rgba(77, 124, 255, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.2); }

.danger-zone { margin: 22px var(--pad-x) 0; text-align: center; }
.danger-zone .btn--danger { width: 100%; }
.danger-zone p { margin-top: 9px; color: var(--muted); font-size: 11.5px; line-height: 1.45; }

/* ---- 16. Регистрация (гость) ----------------------------------------- */
.reg-hero {
  position: relative; overflow: hidden; isolation: isolate;
  margin: 16px var(--pad-x); padding: 22px 18px 18px;
  border-radius: var(--r-xl); color: var(--text);
  background:
    radial-gradient(120% 100% at 30% -10%, rgba(77, 124, 255, 0.32), transparent 60%),
    radial-gradient(110% 120% at 100% 110%, rgba(217, 173, 78, 0.12), transparent 60%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.28), 0 26px 54px -22px rgba(61, 99, 221, 0.6);
}
.reg-hero__glow { position: absolute; inset: -40% -10% auto -10%; height: 220px; z-index: -1; background: radial-gradient(60% 90% at 30% 0%, rgba(77, 124, 255, 0.4), transparent 70%); }
.reg-hero__brand { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.reg-hero__welcome { display: flex; align-items: center; gap: 13px; margin-bottom: 17px; }
.reg-hero__avatar { width: 50px; height: 50px; border-radius: 50%; flex: none; object-fit: cover; box-shadow: 0 0 0 2px rgba(236, 203, 124, 0.55); }
.reg-hero__avatar--mono { display: grid; place-items: center; background: var(--grad-brand); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 20px; }
.reg-hero__hi strong { display: block; font-family: var(--font-display); font-weight: 800; font-size: 19px; color: #fff; }
.reg-hero__hi span { font-size: 12.5px; color: var(--ice); }
.reg-hero__pitch { margin: -2px 0 16px; font-size: 13.5px; line-height: 1.5; color: var(--ice); }
.reg-hero__features { display: flex; flex-direction: column; gap: 11px; margin-bottom: 18px; }
.reg-hero__features li { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; line-height: 1.45; color: var(--text-2); }
.reg-hero__features svg { flex: none; margin-top: 1px; stroke: var(--gold); fill: none; }
.reg-hero__legal {
  display: flex; flex-direction: column;
  margin-bottom: 16px; padding: 4px 13px;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.045);
  box-shadow: inset 0 0 0 1px var(--line);
}
.reg-hero__legal label { display: flex; align-items: center; gap: 11px; min-height: var(--tap); cursor: pointer; font-size: 13px; color: var(--text-2); }
.reg-hero__legal input {
  appearance: none; -webkit-appearance: none;
  width: 22px; height: 22px; flex: none; margin: 0;
  border-radius: 7px;
  border: 1.5px solid rgba(157, 183, 255, 0.55);
  background: var(--brand-tint);
  display: grid; place-items: center;
}
.reg-hero__legal input:checked { background: var(--grad-brand); border-color: var(--brand); }
.reg-hero__legal input:checked::after {
  content: ""; width: 6px; height: 11px;
  border: solid #fff; border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg) translateY(-1px);
}
.reg-hero__cta {
  display: flex; align-items: center; justify-content: center;
  width: 100%; min-height: 54px;
  border-radius: var(--r-md);
  font-family: var(--font-display); font-weight: 800; font-size: 16px;
  color: #1c1402;
  background: linear-gradient(135deg, #f3da93, #d9ad4e);
  box-shadow: var(--shadow-gold), inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.reg-hero__note { margin-top: 12px; font-size: 11.5px; color: var(--muted); text-align: center; line-height: 1.5; }

/* Гость: «откройте в Telegram» */
.tg-required { color: var(--text-2); }

/* ---- 17. Пустые состояния / загрузка / скелетоны ---------------------- */
.empty-state, .empty-state-large, .loading-state, .error-retry-card {
  margin: 18px 0; padding: 30px 18px;
  border-radius: var(--r-lg);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
  text-align: center; color: var(--text-2);
}
.history-list .empty-state, .feed-v54 .empty-state { margin: 0; }
.empty-state strong, .loading-state strong, .error-retry-card strong {
  display: block; color: #fff;
  font-family: var(--font-display); font-weight: 700; font-size: 16px;
  margin-bottom: 6px;
}
.empty-state svg { stroke: var(--muted); fill: none; margin: 0 auto 12px; }
.empty-state p, .loading-state p, .error-retry-card p { font-size: 13px; line-height: 1.55; }
.empty-state .btn, .error-retry-card .btn { margin-top: 14px; }

.skeleton-list { display: flex; flex-direction: column; gap: 12px; padding: 10px var(--pad-x); }
.skeleton-card, .boot-skeleton {
  height: 132px; border-radius: var(--r-lg);
  background: linear-gradient(100deg, var(--surface) 35%, var(--surface-2) 50%, var(--surface) 65%);
  background-size: 220% 100%;
  animation: mwShimmer 1.5s infinite linear;
  box-shadow: inset 0 0 0 1px var(--line);
}
@keyframes mwShimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* загрузка index.html до маунта приложения */
.boot-skeleton { margin: 10px var(--pad-x); }
#boot-status {
  margin: 18px var(--pad-x) 6px; text-align: center;
  color: var(--text-2); font-size: 13.5px;
}
#boot-fallback { margin: 6px var(--pad-x); text-align: center; color: var(--muted); font-size: 12.5px; }
#boot-retry {
  display: block; margin: 10px auto;
  min-height: 44px; padding: 0 22px;
  border-radius: var(--r-md);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  color: var(--text); font-weight: 600;
}
.boot-cache-list { padding: 0 var(--pad-x); }
#tg-live-bar {
  position: fixed; top: 10px; left: 50%; transform: translateX(-50%);
  z-index: 999;
  padding: 7px 16px; border-radius: var(--r-pill);
  background: rgba(13, 21, 38, 0.92);
  box-shadow: inset 0 0 0 1px var(--line), var(--shadow-card);
  color: var(--text-2); font-size: 12px;
}

/* ---- 18. Таб-бар ------------------------------------------------------- */
.tabbar {
  position: fixed; left: 0; right: 0;
  bottom: calc(12px + env(safe-area-inset-bottom));
  width: min(calc(100vw - 28px), 432px);
  margin-inline: auto; z-index: 300;
  display: flex; padding: 8px;
  border-radius: var(--r-xl);
  background: rgba(11, 16, 27, 0.52);
  backdrop-filter: blur(30px) saturate(150%);
  -webkit-backdrop-filter: blur(30px) saturate(150%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.10), 0 18px 44px -16px rgba(0, 0, 0, 0.7);
}
.tab {
  flex: 1; position: relative;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 8px 4px;
  border-radius: var(--r-lg);
  color: var(--muted);
  transition: color .18s ease, background .18s ease;
}
.tab__ic { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.8; }
.tab__lbl { font-size: 11px; font-weight: 600; letter-spacing: 0; }
.tab:active:not(.tab--active) { color: var(--text-2); background: rgba(255, 255, 255, 0.05); }
.tab--active {
  color: #fff;
  background: rgba(255, 255, 255, 0.07);
}
.tab--active .tab__ic { stroke: var(--brand); }
.tab__badge {
  position: absolute; top: 3px; right: calc(50% - 20px);
  min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: var(--r-pill);
  background: var(--red);
  color: #fff;
  font-family: var(--font-display); font-size: 10px; font-weight: 700;
  display: grid; place-items: center;
}
.tab__badge[hidden] { display: none; }

/* ---- 19. Модалка-подсказка / тосты ------------------------------------ */
.market-help-modal { position: fixed; inset: 0; z-index: 900; display: grid; place-items: end center; }
.market-help-backdrop { position: absolute; inset: 0; background: rgba(2, 4, 10, 0.72); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.market-help-dialog {
  position: relative; width: 100%; max-width: 460px;
  margin: 0 auto;
  padding: 14px var(--pad-x) calc(22px + env(safe-area-inset-bottom));
  border-radius: var(--r-xl) var(--r-xl) 0 0;
  background: linear-gradient(180deg, #16213a, #0d1526);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), inset 0 0 0 1px var(--line-strong), 0 -18px 50px -20px rgba(0, 0, 0, 0.9);
  overflow: hidden; isolation: isolate;
  animation: mwSheet .28s cubic-bezier(0.22, 0.9, 0.36, 1);
}
@keyframes mwSheet { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.market-help-dialog::before {
  content: "";
  display: block; width: 40px; height: 4px;
  margin: 0 auto 14px;
  border-radius: var(--r-pill);
  background: rgba(255, 255, 255, 0.22);
}
.market-help-glow { position: absolute; inset: -50% -20% auto -20%; height: 180px; z-index: -1; background: radial-gradient(60% 80% at 50% 0%, rgba(77, 124, 255, 0.22), transparent 70%); }
.market-help-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.market-help-badge {
  display: inline-block; padding: 4px 11px;
  border-radius: var(--r-pill);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  color: var(--ice); font-size: 11px; font-weight: 700;
}
.market-help-close {
  display: grid; place-items: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 0 0 1px var(--line), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  color: var(--muted); font-size: 20px; line-height: 1;
  transition: transform .15s ease, background .15s ease;
}
.market-help-close:active { transform: scale(0.92); background: rgba(255, 255, 255, 0.12); }
.market-help-dialog h2 { font-family: var(--font-display); font-weight: 800; font-size: 19px; color: #fff; margin-bottom: 7px; }
.market-help-dialog p { color: var(--text-2); font-size: 13.5px; line-height: 1.55; }
.market-help-points { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.market-help-points > * {
  padding: 11px 13px; border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--text-2); font-size: 13px; line-height: 1.45;
}
.market-help-ok {
  width: 100%; min-height: 48px; margin-top: 16px;
  border-radius: var(--r-md);
  background: var(--grad-brand); color: #fff;
  font-family: var(--font-display); font-weight: 700; font-size: 15px;
  box-shadow: var(--shadow-brand), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.toast {
  position: fixed; left: 50%; bottom: calc(100px + env(safe-area-inset-bottom));
  transform: translateX(-50%) translateY(6px);
  max-width: 90%; padding: 12px 18px;
  border-radius: var(--r-md);
  background: var(--surface-3);
  box-shadow: inset 0 0 0 1px var(--line-strong), var(--shadow-card);
  color: #fff; font-size: 13.5px;
  z-index: 999; opacity: 0; pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
.toast.visible { opacity: 1; transform: translateX(-50%); }

/* ---- 20. Админка -------------------------------------------------------- */
.admin-panel { margin: 12px var(--pad-x); padding: 15px; }
.admin-warning { margin: 12px var(--pad-x); padding: 12px 14px; border-radius: var(--r-md); background: var(--red-tint); box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.25); color: #ffb8bf; font-size: 12.5px; }
.admin-status-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 12px 0; }
.admin-status-grid > div { background: rgba(255, 255, 255, 0.035); box-shadow: inset 0 0 0 1px var(--line); border-radius: var(--r-sm); padding: 11px; font-size: 12.5px; color: var(--text-2); }
.admin-users, .admin-signal-list { display: flex; flex-direction: column; gap: 9px; margin: 12px 0; }
.admin-user, .admin-signal {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 11px 13px; border-radius: var(--r-md);
  background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--line);
  font-size: 13px; color: var(--text-2);
}
.admin-signal-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.admin-signal-metrics { font-family: var(--font-mono); font-size: 12px; color: var(--ice); }
.admin-signal-actions { display: flex; gap: 8px; }
.admin-grant { color: var(--green); }
.admin-backtest-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.admin-diagnostics { margin: 12px var(--pad-x); padding: 13px; border-radius: var(--r-md); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); font-family: var(--font-mono); font-size: 11.5px; color: var(--muted); }
.danger-zone .copy-pill, .copy-pill { font-family: var(--font-mono); font-size: 12px; padding: 4px 10px; border-radius: var(--r-pill); background: var(--surface-3); color: var(--ice); }

/* ---- 21. Утилиты / системное ------------------------------------------- */
.system-icon, .system-icon svg { stroke: currentColor; fill: none; }
.icon { flex: none; }
.green-value { color: var(--green); }
/* единственное VPN-предупреждение на премиум-экране — тихая карточка, не крик */
.vpn-warning {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 0 var(--pad-x) 16px; padding: 12px 14px;
  border-radius: var(--r-md);
  background: var(--gold-tint);
  box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.24);
}
.vpn-warning .icon { flex: none; margin-top: 1px; color: var(--gold); }
.vpn-warning strong {
  display: block;
  font-size: 13px; font-weight: 600; color: var(--gold);
}
.vpn-warning p { margin: 3px 0 0; font-size: 12px; line-height: 1.45; color: var(--text-2); }
.compact-detail { padding: 10px; }

.fade-in { animation: mwFade .24s ease; }
@keyframes mwFade { from { opacity: 0.35; } to { opacity: 1; } }

@media (max-width: 359px) {
  :root { --pad-x: 13px; }
  .screen-title, #screen-title { font-size: 24px; }
  .crest, .team-crest, .logo { width: 46px; height: 46px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
/* пользовательская настройка «меньше анимаций» (prefs.reducedMotion →
   class на <html>) — дублирует медиа-запрос выше */
.reduced-motion *, .reduced-motion *::before, .reduced-motion *::after {
  animation: none !important; transition: none !important;
}

/* market-help failsafe (фикс 2026-06-09: подсказка не должна блокировать UI) */
.market-help-modal[hidden] { display: none !important; visibility: hidden !important; pointer-events: none !important; }
body:not(.market-help-open) .market-help-modal { display: none !important; visibility: hidden !important; pointer-events: none !important; }

/* ---- Отчёт ИИ-агента (полноэкранный sheet) ------------------------- */
.agent-report {
  position: fixed; inset: 0; z-index: 940; /* выше таб-бара (300) и market-help (900), ниже тоста (999) */
  opacity: 0; transition: opacity 0.22s ease;
}
.agent-report.visible { opacity: 1; }
.agent-report[hidden] { display: none !important; pointer-events: none !important; }
body:not(.agent-report-open) .agent-report { display: none !important; pointer-events: none !important; }
body.agent-report-open { overflow: hidden; }

.agent-report__backdrop {
  position: absolute; inset: 0;
  background: rgba(2, 4, 10, 0.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.agent-report__sheet {
  position: absolute; inset: 12px 0 0 0;
  display: flex; flex-direction: column;
  border-radius: var(--r-xl) var(--r-xl) 0 0;
  background: var(--bg-2);
  box-shadow: 0 -18px 60px -20px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(136, 162, 255, 0.14);
  transform: translateY(14px);
  transition: transform 0.24s cubic-bezier(0.2, 0.8, 0.3, 1);
  overflow: hidden;
}
.agent-report.visible .agent-report__sheet { transform: translateY(0); }

.agent-report__head {
  flex: none;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px var(--pad-x) 12px;
  border-bottom: 1px solid var(--line);
}
.agent-report__brand {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-display); font-weight: 700; font-size: 14px; color: var(--gold);
  text-transform: uppercase; letter-spacing: 0.08em;
}
.agent-report__close {
  width: 32px; height: 32px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--surface-2);
  color: var(--text-2);
  box-shadow: inset 0 0 0 1px var(--line);
}
.agent-report__body {
  flex: 1; overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px 0 calc(28px + env(safe-area-inset-bottom));
}

/* hero-вердикт */
.agent-report__hero {
  margin: 0 var(--pad-x) 12px; padding: 16px;
  border-radius: var(--r-lg);
  background:
    radial-gradient(140% 150% at 12% 0%, rgba(217, 173, 78, 0.14), transparent 55%),
    var(--card-grad);
  box-shadow: var(--shadow-card), var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.22);
}
.agent-report__hero.is-watch {
  background:
    radial-gradient(140% 150% at 12% 0%, rgba(77, 124, 255, 0.14), transparent 55%),
    var(--card-grad);
  box-shadow: var(--shadow-card), var(--hairline), inset 0 0 0 1px var(--line-strong);
}
.agent-report__hero.is-skip,
.agent-report__hero.is-locked {
  background: var(--card-grad);
  box-shadow: var(--shadow-card), var(--hairline), inset 0 0 0 1px var(--line);
}
.agent-report__meta {
  font-family: var(--font-mono); font-size: 11px; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.07em;
}
.agent-report__teams {
  margin: 6px 0 12px;
  font-family: var(--font-display); font-weight: 800; font-size: 20px; line-height: 1.2; color: #fff;
}
.agent-report__teams i { font-style: normal; color: var(--muted); }
.agent-report__verdict-row {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
}
.agent-report__verdict-main { min-width: 0; }
.agent-report__verdict {
  display: inline-block;
  padding: 5px 12px; border-radius: var(--r-pill);
  font-family: var(--font-display); font-weight: 800; font-size: 13px;
  text-transform: uppercase; letter-spacing: 0.1em;
  background: var(--grad-gold); color: #1c1402;
  box-shadow: var(--shadow-gold);
}
.agent-report__hero.is-watch .agent-report__verdict { background: var(--grad-brand); color: #fff; box-shadow: var(--shadow-brand); }
.agent-report__hero.is-skip .agent-report__verdict { background: var(--surface-3); color: var(--text-2); box-shadow: inset 0 0 0 1px var(--line-strong); }
.agent-report__pick-label {
  margin: 10px 0 0;
  font-family: var(--font-display); font-weight: 700; font-size: 16px; line-height: 1.3; color: #fff;
}

.agent-ring { position: relative; flex: none; width: 64px; height: 64px; }
.agent-ring svg { display: block; }
.agent-ring__track { fill: none; stroke: rgba(136, 162, 255, 0.16); stroke-width: 5; }
.agent-ring__fill { fill: none; stroke: var(--gold); stroke-width: 5; stroke-linecap: round; }
.agent-report__hero.is-watch .agent-ring__fill { stroke: var(--brand); }
.agent-ring b {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-family: var(--font-mono); font-weight: 600; font-size: 13px; color: #fff;
}

.agent-report__entry {
  display: flex; gap: 8px; margin-top: 14px;
}
.agent-report__entry > span {
  flex: 1;
  display: flex; flex-direction: column; gap: 2px;
  padding: 8px 10px; border-radius: var(--r-sm);
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 0 0 1px var(--line);
}
.agent-report__entry i {
  font-style: normal; font-size: 10.5px; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.07em;
}
.agent-report__entry b { font-family: var(--font-mono); font-size: 13.5px; color: #fff; }

.agent-report__lede {
  margin: 0 var(--pad-x) 16px;
  font-size: 13.5px; line-height: 1.5; color: var(--text-2);
}

/* секции отчёта */
.agent-report__block {
  margin: 0 var(--pad-x) 12px; padding: 14px 16px;
  border-radius: var(--r-lg);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
}
.agent-report__block h3 {
  display: flex; align-items: center; gap: 7px;
  margin: 0 0 10px;
  font-family: var(--font-display); font-weight: 700; font-size: 13px; color: var(--ice);
  text-transform: uppercase; letter-spacing: 0.08em;
}
.agent-report__block h3 .icon { color: var(--gold); }
.agent-report__note { margin: 8px 0 0; font-size: 12px; line-height: 1.5; color: var(--muted); }

.agent-report__reasons,
.agent-report__checklist { display: flex; flex-direction: column; gap: 8px; }
.agent-report__reasons li,
.agent-report__checklist li {
  position: relative; padding-left: 24px;
  font-size: 13px; line-height: 1.45; color: var(--text-2);
}
.agent-report__reasons li::before {
  content: "✓";
  position: absolute; left: 0; top: 0;
  color: var(--green); font-weight: 700;
}
.agent-report__checklist li::before {
  content: "";
  position: absolute; left: 4px; top: 7px;
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--gold-tint);
  box-shadow: inset 0 0 0 1.5px var(--gold);
}

.agent-report__scores { display: flex; gap: 8px; margin-top: 10px; }
.agent-score {
  flex: 1;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 10px 8px; border-radius: var(--r-sm);
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 0 0 1px var(--line);
}
.agent-score b { font-family: var(--font-mono); font-weight: 600; font-size: 16px; color: #fff; }
.agent-score i { font-style: normal; font-family: var(--font-mono); font-size: 11px; color: var(--gold); }

.agent-form { display: flex; flex-direction: column; gap: 9px; }
.agent-form__row { display: flex; align-items: center; gap: 10px; }
.agent-form__team {
  flex: none; width: 96px;
  font-size: 12px; color: var(--text-2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.agent-form__bar {
  flex: 1; height: 6px; border-radius: var(--r-pill);
  background: rgba(136, 162, 255, 0.12);
  overflow: hidden;
}
.agent-form__bar i {
  display: block; height: 100%;
  border-radius: var(--r-pill);
  background: var(--grad-brand);
}
.agent-form__row:first-child .agent-form__bar i { background: var(--grad-gold); }
.agent-form__pts { flex: none; width: 24px; text-align: right; font-family: var(--font-mono); font-size: 12px; color: #fff; }

.agent-report__value { display: flex; gap: 8px; }
.agent-report__value > span {
  flex: 1;
  display: flex; flex-direction: column; gap: 2px; align-items: center;
  padding: 10px 8px; border-radius: var(--r-sm);
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 0 0 1px var(--line);
}
.agent-report__value i {
  font-style: normal; font-size: 10.5px; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.07em;
}
.agent-report__value b { font-family: var(--font-mono); font-size: 15px; color: #fff; }
.agent-report__value .is-plus b { color: var(--green); }
.agent-report__value .is-minus b { color: var(--text-2); }

.agent-report__council { display: flex; flex-direction: column; gap: 8px; }
.agent-report__opinion {
  padding: 10px 12px; border-radius: var(--r-sm);
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 0 0 1px var(--line);
}
.agent-report__opinion header {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.agent-report__opinion b { font-size: 12.5px; color: #fff; }
.agent-report__opinion header span {
  font-family: var(--font-mono); font-size: 10.5px; color: var(--gold);
  text-transform: uppercase; letter-spacing: 0.06em;
}
.agent-report__opinion p { margin: 6px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--text-2); }

.agent-report__actions {
  display: flex; flex-direction: column; gap: 8px;
  margin: 16px var(--pad-x) 0;
}
.agent-report__actions .btn { width: 100%; min-height: 50px; font-size: 15px; border-radius: var(--r-lg); }
.agent-report__usage { margin: 12px var(--pad-x) 0; text-align: center; font-size: 11.5px; color: var(--muted); }
.agent-report__disclaimer { margin: 10px var(--pad-x) 0; text-align: center; font-size: 13px; color: var(--text-2); }

/* загрузка */
.agent-report__loading {
  display: flex; flex-direction: column; align-items: center;
  padding: 48px var(--pad-x) 24px; text-align: center;
}
.agent-orb { position: relative; width: 64px; height: 64px; margin-bottom: 20px; }
.agent-orb i {
  position: absolute; inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(243, 218, 147, 0.9), rgba(77, 124, 255, 0.35) 70%, transparent);
  animation: agentOrbPulse 1.8s ease-in-out infinite;
}
.agent-orb i:nth-child(2) { animation-delay: 0.45s; opacity: 0.55; }
.agent-orb i:nth-child(3) { animation-delay: 0.9s; opacity: 0.3; }
@keyframes agentOrbPulse {
  0%, 100% { transform: scale(0.82); opacity: 0.55; }
  50% { transform: scale(1.06); opacity: 1; }
}
.agent-report__stage {
  margin: 0 0 18px;
  font-family: var(--font-display); font-weight: 600; font-size: 15px; color: #fff;
}
.agent-report__skeleton { width: 100%; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.agent-report__skeleton span {
  display: block; height: 13px; border-radius: var(--r-pill);
  background: linear-gradient(90deg, rgba(136, 162, 255, 0.08) 25%, rgba(136, 162, 255, 0.18) 50%, rgba(136, 162, 255, 0.08) 75%);
  background-size: 200% 100%;
  animation: agentShimmer 1.4s linear infinite;
}
@keyframes agentShimmer { to { background-position: -200% 0; } }
.agent-report__loading-hint { margin: 18px 0 0; font-size: 11.5px; color: var(--muted); }

.agent-report__locked p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--text-2); }

.locked-veil {
  position: relative; border-radius: var(--r-lg); overflow: hidden;
  background: var(--surface-2); margin-bottom: 14px;
}
.locked-veil__bg {
  padding: 16px 16px 6px; filter: blur(6px);
  user-select: none; pointer-events: none;
}
.locked-veil__row {
  height: 11px; width: 100%; border-radius: 6px;
  background: linear-gradient(90deg, var(--surface-3), rgba(136, 162, 255, 0.18));
  margin-bottom: 10px;
}
.locked-veil__overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  background: rgba(10, 16, 30, 0.52);
  backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
}
.locked-veil__overlay .icon { color: var(--gold); width: 30px; height: 30px; }
.locked-veil__overlay span {
  font-family: var(--font-display); font-size: 11px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold);
}

.agent-report__error {
  display: flex; flex-direction: column; align-items: center; gap: 16px;
  padding: 48px var(--pad-x); text-align: center;
}
.agent-report__error p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--text-2); }

@media (prefers-reduced-motion: reduce) {
  .agent-orb i, .agent-report__skeleton span { animation: none; }
  .agent-report, .agent-report__sheet { transition: none; }
}

/* ---- Вкладки матча: Рынок / Риск / Вывод (добивка непокрытых блоков) ---- */
.market-panel, .market-options, .plain-reasons, .recommendation-card {
  margin: 12px var(--pad-x); padding: 15px;
  background: var(--card-grad);
  border-radius: var(--r-lg);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line), var(--shadow-card);
}

/* статус-чип справа в заголовке секции — вместо второго жирного текста */
.section-title strong {
  flex: none; max-width: 52%;
  font-family: var(--font-mono); font-weight: 600; font-size: 10.5px;
  color: var(--gold); text-transform: uppercase; letter-spacing: 0.06em;
  padding: 4px 10px; border-radius: var(--r-pill);
  background: var(--gold-tint);
  box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.22);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.section-title span { font-size: 14px; letter-spacing: 0.02em; }

.market-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.market-grid > div {
  display: flex; flex-direction: column; gap: 3px;
  padding: 9px 11px; border-radius: var(--r-sm);
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 0 0 1px var(--line);
}
.market-grid > div span { font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.market-grid > div strong { font-family: var(--font-mono); font-weight: 600; font-size: 14px; color: #fff; }

.market-panel > p, .movement-card > p, .readiness-card > p,
.council-snapshot > p, .market-options > p, .analysis-breakdown > p {
  margin: 10px 0 0; font-size: 12px; line-height: 1.5; color: var(--muted);
}

.market-option {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 2px;
  border-bottom: 1px solid var(--line);
}
.market-option:last-child { border-bottom: 0; padding-bottom: 2px; }
.market-option > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.market-option strong { font-size: 13px; font-weight: 600; color: #fff; }
.market-option span { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.market-option b { font-family: var(--font-mono); font-size: 14px; color: var(--ice); }
.market-option.selected strong, .market-option.selected b { color: var(--gold); }

/* шаги «как повторить» — нумерованные кружки, а не «1Открой» */
.execution-steps > div { display: flex; align-items: flex-start; gap: 10px; }
.execution-steps > div b {
  flex: none; width: 22px; height: 22px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--gold-tint); color: var(--gold);
  box-shadow: inset 0 0 0 1px rgba(236, 203, 124, 0.4);
  font-family: var(--font-mono); font-size: 11px; font-weight: 600;
}
.execution-steps > div span { padding-top: 2px; color: var(--text-2); font-size: 13px; line-height: 1.5; }

.execution-head { align-items: flex-start; }
.execution-head > div { display: flex; flex-direction: column; gap: 2px; }
.execution-head span { font-size: 10.5px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; }
.execution-head strong { font-family: var(--font-display); font-size: 15px; color: #fff; }

/* тёмное поле ввода коэффициента — никаких белых UA-инпутов */
.execution-checker { margin-top: 12px; }
.execution-checker label {
  display: block; margin-bottom: 7px;
  font-size: 10.5px; font-weight: 600; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.07em;
}
.execution-checker > div { display: flex; flex-direction: column; gap: 8px; }
.execution-checker input {
  width: 100%; min-height: 46px; padding: 0 14px;
  background: rgba(4, 7, 14, 0.55); color: #fff;
  font-family: var(--font-mono); font-size: 15px;
  border: 0; border-radius: var(--r-md);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  outline: none; -webkit-appearance: none; appearance: none;
}
.execution-checker input::placeholder { color: var(--muted); }
.execution-checker input:focus { box-shadow: inset 0 0 0 1.5px var(--brand); }
.execution-checker > div > button {
  min-height: 46px; border-radius: var(--r-md);
  background: var(--brand-tint); color: var(--ice);
  font-size: 13.5px; font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--line-strong);
}

.execution-result {
  margin-top: 10px; padding: 10px 12px;
  border-radius: var(--r-sm);
  background: rgba(4, 7, 14, 0.4);
  box-shadow: inset 0 0 0 1px var(--line);
}
.execution-result strong { display: block; margin-bottom: 2px; font-size: 12.5px; color: #fff; }
.execution-result.ok strong { color: var(--green); }
.execution-result.bad strong { color: var(--red); }

/* строки-факты: разметка использует div/p, не li */
.factor-list > div {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  font-size: 13px; color: var(--text-2);
}
.factor-list > div strong { font-family: var(--font-mono); font-size: 12.5px; color: #fff; text-align: right; }
.plain-reasons { gap: 9px; }
.plain-reasons > p { position: relative; margin: 0; padding-left: 22px; font-size: 13px; line-height: 1.5; color: var(--text-2); }
.plain-reasons > p::before {
  content: "";
  position: absolute; left: 4px; top: 7px;
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--gold-tint);
  box-shadow: inset 0 0 0 1.5px var(--gold);
}

.warning-list > p { position: relative; margin: 0 0 7px; padding-left: 18px; line-height: 1.45; }
.warning-list > p:last-child { margin-bottom: 0; }
.warning-list > p::before {
  content: "";
  position: absolute; left: 2px; top: 7px;
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(255, 111, 125, 0.65);
}
.warning-list .section-title { margin-bottom: 8px; }
.warning-list .section-title strong {
  color: #ffb8bf; background: rgba(255, 111, 125, 0.12);
  box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.25);
}

.council-meter { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.council-meter > div {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 9px 11px; border-radius: var(--r-sm);
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 0 0 1px var(--line);
}
.council-meter span { font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.council-meter strong { font-family: var(--font-mono); font-size: 16px; color: #fff; }

.recommendation-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.recommendation-card .league { display: block; margin-bottom: 4px; font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; }
.recommendation-card > div:first-child { min-width: 0; }
.recommendation-card > div:first-child strong { font-family: var(--font-display); font-size: 15px; color: #fff; }
.recommendation-card > div:first-child p { margin: 5px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--text-2); }
.recommendation-card.is-live { box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.3), var(--shadow-card); }
.recommendation-odds {
  flex: none; display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 9px 13px; border-radius: var(--r-sm);
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 0 0 1px var(--line);
}
.recommendation-odds span { font-size: 10px; color: var(--muted); text-transform: uppercase; }
.recommendation-odds strong { font-family: var(--font-mono); font-size: 16px; color: var(--gold); }
.recommendation-card.locked-analysis { opacity: 0.65; filter: saturate(0.25); }

.overview-cta { display: block; width: calc(100% - 2 * var(--pad-x)); margin: 12px var(--pad-x); }
.muted-decision { opacity: 0.94; }
.pick-visual { height: 1px; margin: 10px 0; background: linear-gradient(90deg, transparent, var(--line-strong), transparent); }
.pick-visual span { display: none; }

/* ---- Микро-движение: жизнь без суеты -------------------------------- */
@keyframes mwFadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
.screen.active > .screen-pad, .screen.active > .feed-v54 { animation: mwFadeUp 0.26s cubic-bezier(0.2, 0.8, 0.3, 1) backwards; }
.feed-v54 .match-card { animation: mwFadeUp 0.3s cubic-bezier(0.2, 0.8, 0.3, 1) backwards; }
.feed-v54 .match-card:nth-child(2) { animation-delay: 0.04s; }
.feed-v54 .match-card:nth-child(3) { animation-delay: 0.08s; }
.feed-v54 .match-card:nth-child(4) { animation-delay: 0.12s; }
.feed-v54 .match-card:nth-child(5) { animation-delay: 0.16s; }
.feed-v54 .match-card:nth-child(n+6) { animation-delay: 0.2s; }

.btn, .primary-button, .link-button, .agent-ask, .plan-card,
.match-card, .rec-of-day__cta, .copy-pill, .tabbar button, .market-option, .agent-report__close {
  transition: transform 0.12s ease, box-shadow 0.22s ease, background-color 0.22s ease, opacity 0.22s ease, color 0.22s ease;
}
.btn:active, .primary-button:active,
.agent-ask:active, .rec-of-day__cta:active, .copy-pill:active, .agent-report__close:active { transform: scale(0.97); }
.match-card:active, .plan-card:active { transform: scale(0.985); }

@media (prefers-reduced-motion: reduce) {
  .screen.active > .screen-pad, .screen.active > .feed-v54, .feed-v54 .match-card { animation: none; }
  .btn, .primary-button, .link-button, .agent-ask, .plan-card,
  .match-card, .rec-of-day__cta, .copy-pill, .tabbar button, .market-option, .agent-report__close { transition: none; }
}

/* единый вид ячеек метрик во всех сетках вкладок матча */
.readiness-grid > div, .admin-status-grid > div {
  display: flex; flex-direction: column; gap: 3px;
  background: rgba(4, 7, 14, 0.45);
  box-shadow: inset 0 0 0 1px var(--line);
  border-radius: var(--r-sm);
  padding: 9px 11px;
}
.readiness-grid > div span, .admin-status-grid > div span {
  font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em;
}
.readiness-grid > div strong, .admin-status-grid > div strong {
  font-family: var(--font-mono); font-weight: 600; font-size: 13.5px; color: #fff;
}

/* ======================================================================
   Финальный апгрейд дизайна — BET-момент и микро-детали (2026-06-10)
   ====================================================================== */

/* Герой-карточка отчёта агента — только для BET: золотой взрыв */
.agent-report__hero.is-bet {
  background:
    radial-gradient(165% 200% at 5% -10%, rgba(243, 218, 147, 0.32) 0%, rgba(217, 173, 78, 0.13) 40%, transparent 60%),
    radial-gradient(120% 140% at 98% 108%, rgba(217, 173, 78, 0.12), transparent 55%),
    var(--card-grad);
  box-shadow:
    var(--shadow-card),
    var(--hairline),
    inset 0 0 0 1.5px rgba(236, 203, 124, 0.54),
    0 24px 64px -18px rgba(217, 173, 78, 0.40);
}

/* Таблетка «СТАВИТЬ» — медленное золотое дыхание */
.agent-report__hero.is-bet .agent-report__verdict {
  animation: mwBetPulse 2.8s ease-in-out infinite;
}
@keyframes mwBetPulse {
  0%, 100% { box-shadow: var(--shadow-gold); }
  50%       { box-shadow: var(--shadow-gold), 0 0 30px -4px rgba(236, 203, 124, 0.62); }
}

/* Кольцо уверенности — золотое свечение для BET */
.agent-report__hero.is-bet .agent-ring__fill {
  filter: drop-shadow(0 0 5px rgba(236, 203, 124, 0.82));
}

@media (prefers-reduced-motion: reduce) {
  .agent-report__hero.is-bet .agent-report__verdict { animation: none; }
}

/* ---- Мои анализы (История) + выбор матча в отчёте ------------------- */
.history-tabs { padding: 14px var(--pad-x) 4px; }
.history-tabs button { flex: 1; justify-content: center; }

.my-analyses-list { display: flex; flex-direction: column; gap: 10px; margin: 8px var(--pad-x) 0; }
.my-analysis-card {
  display: flex; align-items: center; gap: 12px; text-align: left;
  padding: 13px 14px; border-radius: var(--r-lg);
  background: var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line), var(--shadow-card);
  transition: transform .12s ease, box-shadow .2s ease;
}
.my-analysis-card:active { transform: scale(0.99); }
.my-analysis-card__verdict {
  flex: none; align-self: flex-start;
  padding: 4px 9px; border-radius: var(--r-pill);
  font-family: var(--font-display); font-size: 11px; font-weight: 600;
}
.my-analysis-card__verdict.is-bet { background: var(--green-tint); color: var(--green); box-shadow: inset 0 0 0 1px rgba(49,215,156,0.32); }
.my-analysis-card__verdict.is-watch { background: var(--brand-tint); color: var(--ice); box-shadow: inset 0 0 0 1px var(--line-strong); }
.my-analysis-card__verdict.is-skip { background: var(--surface-3); color: var(--text-2); box-shadow: inset 0 0 0 1px var(--line); }
.my-analysis-card__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.my-analysis-card__teams { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body); color: var(--white-warm); }
.my-analysis-card__teams i { font-style: normal; color: var(--muted); }
.my-analysis-card__pick { font-size: var(--fs-caption); color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.my-analysis-card__meta { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.my-analysis-card__right { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.my-analysis-card__right b { font-family: var(--font-mono); font-size: var(--fs-body); color: var(--gold); }
.my-analysis-card__right i { font-style: normal; font-family: var(--font-mono); font-size: 11px; color: var(--muted); }

/* Личная История: авто-результат анализа ✅/❌ по каждому исходу */
.my-analysis-card.has-result { align-items: flex-start; }
.ua-result { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; padding-top: 8px; box-shadow: inset 0 1px 0 var(--line); }
.ua-result--pending { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; padding-top: 8px; box-shadow: inset 0 1px 0 var(--line); font-size: var(--fs-caption); color: var(--muted); }
.ua-result--pending .ua-result__head { display: inline-flex; align-items: center; gap: 5px; }
.ua-result--pending svg { opacity: .7; }
.ua-result__head { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-caption); color: var(--text-2); }
.ua-result__rows { display: flex; flex-wrap: wrap; gap: 6px; }
.ua-oc { display: inline-flex; align-items: center; gap: 4px; padding: 4px 9px; border-radius: var(--r-pill); font-size: 11px; font-family: var(--font-display); font-weight: 600; background: var(--surface-3); color: var(--text-2); box-shadow: inset 0 0 0 1px var(--line); }
.ua-oc.is-won { background: var(--green-tint); color: var(--green); box-shadow: inset 0 0 0 1px rgba(49,215,156,0.30); }
.ua-oc.is-lost { background: rgba(255,111,125,0.12); color: var(--red); box-shadow: inset 0 0 0 1px rgba(255,111,125,0.28); }
.ua-oc.is-void { background: var(--brand-tint); color: var(--ice); box-shadow: inset 0 0 0 1px var(--line-strong); }
.ua-oc.is-na { background: var(--surface-3); color: var(--muted); }

/* выбор матча «разобрать ещё» внутри отчёта */
.agent-report__picker { padding: 4px 0 8px; }
.agent-report__picker-title { margin: 0 0 14px; font-size: var(--fs-body); color: var(--text-2); }
.agent-pick-row {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  padding: 13px 14px; margin-bottom: 8px; border-radius: var(--r-md);
  background: var(--surface-2);
  box-shadow: inset 0 0 0 1px var(--line);
  transition: transform .12s ease, background .2s ease;
}
.agent-pick-row:active { transform: scale(0.99); background: var(--surface-3); }
.agent-pick-row__teams { flex: 1; min-width: 0; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body); color: var(--white-warm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.agent-pick-row__teams i { font-style: normal; color: var(--muted); }
.agent-pick-row__meta { flex: none; font-family: var(--font-mono); font-size: 11px; color: var(--muted); }
.agent-pick-row__go { flex: none; width: 26px; height: 26px; display: grid; place-items: center; border-radius: var(--r-pill); background: var(--brand-tint); color: var(--ice); box-shadow: inset 0 0 0 1px var(--line-strong); }

/* предупреждение об ошибочной цене в отчёте агента */
.agent-report__warn {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 0 var(--pad-x) 14px; padding: 12px 14px;
  border-radius: var(--r-md);
  background: rgba(255, 111, 125, 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.24);
}
.agent-report__warn .icon { flex: none; margin-top: 1px; color: var(--red); }
.agent-report__warn p { margin: 0; font-size: var(--fs-caption); line-height: 1.45; color: #ffc2c8; }
.agent-report__warn--soft { background: var(--brand-tint); box-shadow: inset 0 0 0 1px var(--line-strong); }
.agent-report__warn--soft .icon { color: var(--ice); }
.agent-report__warn--soft p { color: var(--text-2); }

/* ---- Отчёт агента: подсказки, блоки, сворачиваемая аналитика ---------- */
.mw-hint {
  display: inline-grid; place-items: center;
  width: 16px; height: 16px; margin-left: 4px; vertical-align: middle;
  border-radius: 50%; font-size: 10px; font-weight: 700; line-height: 1;
  color: var(--ice); background: rgba(255, 255, 255, 0.06);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.mw-hint.is-open { background: var(--brand); color: #fff; box-shadow: none; }
.mw-tip {
  position: fixed; z-index: 1000;
  padding: 10px 12px; border-radius: var(--r-md);
  background: var(--surface-3); color: var(--text);
  font-size: 12.5px; line-height: 1.45;
  box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.7), inset 0 0 0 1px var(--line-strong);
  animation: mwTipIn .14s ease;
}
@keyframes mwTipIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; } }

/* коэффициент с примером в рублях */
.agent-report__kef {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  margin-top: 14px; padding: 10px 12px; border-radius: var(--r-md);
  background: rgba(4, 7, 14, 0.4); box-shadow: inset 0 0 0 1px var(--line);
}
.agent-report__kef > span { font-size: 13px; color: var(--text-2); display: inline-flex; align-items: center; }
.agent-report__kef b { font-family: var(--font-mono); font-size: 17px; color: var(--gold); margin: 0 2px; }
.agent-report__kef > i { font-style: normal; font-size: 12px; color: var(--muted); white-space: nowrap; }

.agent-report__tier {
  display: inline-block; margin-top: 5px; padding: 2px 9px; border-radius: var(--r-pill);
  font-size: 11px; font-weight: 600; background: var(--green-tint); color: var(--green);
  box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.3);
}

/* блок «что сделать» — пронумерованные шаги */
.agent-report__steps {
  margin: 0 var(--pad-x) 12px; padding: 14px 16px; border-radius: var(--r-lg);
  background: var(--card-grad); box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
}
.agent-report__steps h3 {
  display: flex; align-items: center; gap: 7px; margin: 0 0 10px;
  font-family: var(--font-display); font-weight: 700; font-size: 13px; color: var(--ice);
  text-transform: uppercase; letter-spacing: 0.06em;
}
.agent-report__steps h3 .icon { color: var(--gold); }
.agent-report__steps ol { counter-reset: st; display: flex; flex-direction: column; gap: 9px; }
.agent-report__steps li {
  position: relative; padding-left: 30px; counter-increment: st;
  font-size: var(--fs-body); line-height: 1.45; color: var(--text-2);
}
.agent-report__steps li b { color: var(--white-warm); }
.agent-report__steps li::before {
  content: counter(st); position: absolute; left: 0; top: -1px;
  width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%;
  background: var(--brand-tint); color: var(--ice);
  box-shadow: inset 0 0 0 1px var(--line-strong);
  font-family: var(--font-display); font-weight: 700; font-size: 11px;
}

/* несколько вариантов исхода */
.agent-outcome {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 11px 13px; margin-top: 8px; border-radius: var(--r-md);
  background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--line);
}
.agent-outcome.is-rec { box-shadow: inset 0 0 0 1.5px rgba(49, 215, 156, 0.45); background: rgba(49, 215, 156, 0.06); }
.agent-outcome__main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.agent-outcome__main b { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body); color: var(--white-warm); }
.agent-outcome__main span { font-size: 11.5px; color: var(--muted); }
.agent-outcome.is-rec .agent-outcome__main span { color: var(--green); }
.agent-outcome__right { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.agent-outcome__right i { font-style: normal; font-family: var(--font-mono); font-size: 13px; color: var(--text); }
.agent-outcome__right b { font-family: var(--font-mono); font-size: 14px; color: var(--gold); }

/* сворачиваемая аналитика */
.agent-report__details {
  margin: 0 var(--pad-x) 10px; border-radius: var(--r-lg);
  background: var(--card-grad); box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
  overflow: hidden;
}
.agent-report__details > summary {
  display: flex; align-items: center; gap: 8px; padding: 14px 16px; cursor: pointer;
  list-style: none; font-family: var(--font-display); font-weight: 700; font-size: 13px;
  color: var(--ice); text-transform: uppercase; letter-spacing: 0.06em;
}
.agent-report__details > summary::-webkit-details-marker { display: none; }
.agent-report__details > summary .icon { color: var(--gold); }
.agent-report__details > summary::after {
  content: "›"; margin-left: auto; font-size: 20px; color: var(--muted);
  transform: rotate(90deg); transition: transform .2s ease; line-height: 1;
}
.agent-report__details[open] > summary::after { transform: rotate(-90deg); }
.agent-report__details > *:not(summary) { margin-left: var(--pad-x); margin-right: var(--pad-x); }
.agent-report__details .agent-form,
.agent-report__details .agent-report__value,
.agent-report__details .agent-report__scores,
.agent-report__details .agent-report__council,
.agent-report__details .agent-report__checklist { margin-bottom: 14px; }

/* ── value-итог в шапке отчёта ── */
.agent-report__value-summary {
  display: flex; gap: 10px; align-items: flex-start;
  margin: 12px var(--pad-x) 0; padding: 12px 14px;
  border-radius: 14px; background: var(--green-tint);
  box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.28);
}
.agent-report__value-summary.is-novalue {
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.agent-report__value-summary .icon { color: var(--green); flex: none; margin-top: 1px; }
.agent-report__value-summary.is-novalue .icon { color: var(--ice); }
.agent-report__value-summary b {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body);
  color: var(--white-warm);
}
.agent-report__value-summary p { margin-top: 3px; font-size: 12.5px; line-height: 1.45; color: var(--text-2); }

/* ── value-чип в карточке исхода ── */
.agent-outcome__value {
  display: inline-flex; align-items: center; gap: 3px;
  margin-top: 3px; padding: 2px 7px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.01em;
  background: var(--brand-tint); color: var(--text-2);
  width: fit-content;
}
.agent-outcome__value.is-value  { background: var(--green-tint); color: var(--green); }
.agent-outcome__value.is-thin   { background: var(--gold-tint);  color: var(--gold); }
.agent-outcome__value.is-fair   { background: var(--brand-tint); color: var(--ice); }
.agent-outcome__value.is-novalue{ background: var(--red-tint);   color: var(--red); }
.agent-outcome__value .mw-hint { width: 13px; height: 13px; font-size: 9px; opacity: 0.7; }
/* лёгкая подсветка рамки карточки по ценности */
.agent-outcome.is-value  { box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.30); }
.agent-outcome.is-novalue { opacity: 0.82; }
.agent-outcome.is-rec.is-value { box-shadow: inset 0 0 0 1.5px rgba(49, 215, 156, 0.5); background: rgba(49, 215, 156, 0.08); }

/* итог исхода после закрытия матча: зашло / не зашло — прямо на лестнице */
.agent-outcome.is-won  { box-shadow: inset 0 0 0 1.5px rgba(49, 215, 156, 0.55); background: rgba(49, 215, 156, 0.07); }
.agent-outcome.is-lost { box-shadow: inset 0 0 0 1.5px rgba(255, 111, 125, 0.5); background: rgba(255, 111, 125, 0.06); opacity: 1; }
.agent-outcome.is-void { box-shadow: inset 0 0 0 1px var(--line-strong); }
.oc-verdict { display: inline-flex; align-items: center; gap: 3px; padding: 3px 8px; border-radius: var(--r-pill); font-family: var(--font-display); font-size: 11px; font-weight: 700; white-space: nowrap; }
.oc-verdict--won  { background: var(--green-tint); color: var(--green); box-shadow: inset 0 0 0 1px rgba(49,215,156,0.32); }
.oc-verdict--lost { background: rgba(255,111,125,0.12); color: var(--red); box-shadow: inset 0 0 0 1px rgba(255,111,125,0.30); }
.oc-verdict--void { background: var(--brand-tint); color: var(--ice); box-shadow: inset 0 0 0 1px var(--line-strong); }
.oc-verdict--na   { background: var(--surface-3); color: var(--muted); font-weight: 600; }

/* ════════════════════════════════════════════════════════════════════
   PREMIUM PASS — доводка исполнения (бюджет золота, display-числа,
   ритм 4/8, слоистость). Переопределения поверх базовых правил.
   ════════════════════════════════════════════════════════════════════ */

/* ── 0. Фундамент ── */
.stat b, .stat-cell b, .agent-ring b, .agent-score b, .agent-outcome__right b,
.agent-report__kef b, .agent-report__entry b, .agent-report__value b,
.plan-card__price, .my-analysis-card__right b,
.outcome-metrics strong, .rec-of-day__conf b {
  font-variant-numeric: tabular-nums lining-nums;
}
.feed-v54 .match-card { content-visibility: auto; contain-intrinsic-size: auto 210px; }

/* ── 1. ОТЧЁТ АНАЛИЗА ── */
.agent-report__sheet {
  background: linear-gradient(180deg, #121a2d 0%, var(--bg-2) 160px);
}
.agent-report__sheet::before {
  content: ""; position: absolute; top: 8px; left: 50%; transform: translateX(-50%);
  width: 36px; height: 4px; border-radius: var(--r-pill);
  background: rgba(255, 255, 255, 0.22); z-index: 2;
}
.agent-report__brand { color: var(--text-2); }
.agent-report__brand .icon { color: var(--gold); }

.agent-report__hero { padding: 18px 18px 16px; }
.agent-report__meta { font-size: 10px; letter-spacing: 0.1em; }
.agent-report__teams {
  font-size: 22px; letter-spacing: -0.02em; line-height: 1.15;
  margin: 6px 0 14px; text-wrap: balance;
}
.agent-ring { width: 72px; height: 72px; }
.agent-ring svg { width: 100%; height: 100%; }
.agent-ring b { font-family: var(--font-display); font-weight: 800; font-size: 17px; }
.agent-report__verdict { padding: 6px 14px; font-size: 12px; letter-spacing: 0.12em; }
.agent-report__pick-label { font-size: 17px; margin-top: 12px; }
.agent-report__hero.is-bet {
  box-shadow: var(--hairline), inset 0 0 0 1.5px rgba(236, 203, 124, 0.54),
              0 24px 64px -18px rgba(217, 173, 78, 0.28);
}

.agent-report__kef { margin-top: 16px; padding: 12px 14px; }
.agent-report__kef > span { display: flex; flex-direction: column; gap: 2px; }
.agent-report__kef-cap {
  font-style: normal; font-size: 10px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.07em; color: var(--muted);
  display: inline-flex; align-items: center; gap: 4px;
}
.agent-report__kef b {
  font-family: var(--font-display); font-weight: 800; font-size: 24px;
  letter-spacing: -0.01em; color: var(--gold);
}
.agent-report__kef-ex { font-style: normal; font-size: 12px; color: var(--text-2); text-align: right; }

.agent-report__entry > span { padding: 10px 12px; border-radius: var(--r-sm); }
.agent-report__entry i { font-size: 10px; }
.agent-report__entry b {
  font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--white-warm);
}

.agent-report__value-summary {
  border-radius: var(--r-md);
  margin: 0 var(--pad-x) 12px;
  background: linear-gradient(180deg, rgba(49, 215, 156, 0.12), rgba(49, 215, 156, 0.05));
  box-shadow: inset 2px 0 0 var(--green), inset 0 0 0 1px rgba(49, 215, 156, 0.28);
}
.agent-report__value-summary.is-novalue {
  background: linear-gradient(180deg, rgba(91, 130, 240, 0.10), rgba(91, 130, 240, 0.04));
  box-shadow: inset 2px 0 0 var(--brand), inset 0 0 0 1px var(--line-strong);
}

.agent-outcome { padding: 12px 14px; border-radius: var(--r-md); margin-top: 8px; }
.agent-outcome__right { min-width: 64px; }
.agent-outcome__right b {
  font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--text);
}
.agent-outcome.is-rec .agent-outcome__right b { color: var(--gold); }
.agent-outcome__right i { font-size: 11px; color: var(--muted); }
.agent-outcome.is-rec {
  background: linear-gradient(180deg, rgba(49, 215, 156, 0.10), rgba(49, 215, 156, 0.03));
  box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.40), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.agent-outcome__value { font-size: 10.5px; padding: 3px 8px; margin-top: 5px; letter-spacing: 0.02em; }

.agent-report__steps { padding: 16px; }
.agent-report__steps ol { gap: 10px; }
.agent-report__steps li { font-size: 14px; line-height: 1.5; padding-left: 32px; position: relative; }
.agent-report__steps li::before { top: 0; }
.agent-report__steps li:not(:last-child)::after {
  content: ""; position: absolute; left: 10.5px; top: 26px; bottom: -10px;
  width: 1px; background: var(--line);
}

.agent-report__kicker { margin: 4px var(--pad-x) 8px; }
.agent-report__details summary { min-height: 48px; padding: 13px 16px; }
.agent-report__details summary:active { background: rgba(255, 255, 255, 0.03); }
.agent-report__details[open] { box-shadow: var(--hairline), inset 0 0 0 1px var(--line-strong); }
.agent-report__details summary::after {
  content: ""; width: 8px; height: 8px;
  border-right: 1.5px solid var(--muted); border-bottom: 1.5px solid var(--muted);
  transform: rotate(45deg); margin-left: auto; flex: none;
  transition: transform 0.2s ease;
}
.agent-report__details[open] > summary::after { transform: rotate(-135deg); }
.agent-report__details summary .icon { color: var(--ice); }
.agent-report__opinion header span { color: var(--ice); }
.agent-report__checklist li::before { border-color: var(--ice); }
.agent-score i { color: var(--muted); }
.agent-report__value b { font-family: var(--font-display); font-weight: 700; font-size: 17px; }
.agent-score b { font-family: var(--font-display); font-weight: 700; font-size: 18px; }
.agent-report__more {
  display: inline-flex; align-items: center; gap: 6px; justify-content: center;
  width: 100%; min-height: 44px; background: none; border: 0;
  color: var(--ice); font-size: 14px; font-weight: 600; cursor: pointer;
}
.agent-report__lede { font-size: 14px; }

/* ── 2. ГЛАВНАЯ ── */
.match-card { padding: 16px; }
.match-card__time {
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.03em;
  color: var(--muted); text-transform: uppercase;
}
.team span {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.match-card .btn--primary .icon { margin-left: 2px; margin-right: -4px; opacity: 0.7; }
.match-card:not(.match-card--hero) .btn--primary {
  min-height: 44px; background: var(--surface-3); color: var(--text-2);
  font-weight: 600; box-shadow: inset 0 0 0 1px var(--line), var(--hairline);
}
.match-card:not(.match-card--hero) .btn--primary:active { background: var(--surface-2); }
.match-card .icon-btn { width: 44px; height: 44px; }
.match-card--hero .btn--primary {
  background: var(--grad-brand); color: #fff;
  box-shadow: var(--shadow-brand), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.match-card--hero .vs {
  background: var(--surface-3); color: var(--ice);
  box-shadow: inset 0 0 0 1px var(--line);
}
.match-card--hero:has(.verdict--bet) {
  box-shadow: var(--hairline), inset 0 0 0 1.5px rgba(236, 203, 124, 0.55),
              0 24px 56px -22px rgba(217, 173, 78, 0.35);
}
.segmented button.active { background: var(--surface-3); }
.skeleton-card { height: 196px; }
.skeleton-list .skeleton-card:first-child { height: 264px; }
.rec-of-day__teams { font-size: 19px; letter-spacing: -0.01em; }

/* ── 3. ДЕТАЛКА МАТЧА ── */
.match-tabs button { height: 38px; }
.match-tabs button.active {
  background: var(--surface-3); color: #fff;
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.tip-card {
  background: rgba(255, 255, 255, 0.035);
  box-shadow: inset 0 0 0 1px var(--line);
}
.tip-card .icon { color: var(--gold); }
.outcome-metrics strong { font-family: var(--font-display); font-weight: 700; font-size: 15px; }
.outcome-analysis > summary b {
  font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--text);
}
.outcome-analysis.outcome-candidate > summary b { color: var(--gold); }
.btn--agent-auto { font-size: 15px; }

/* ── 4. ИСТОРИЯ ── */
.badge {
  flex: none; padding: 4px 10px; border-radius: var(--r-pill);
  font-family: var(--font-display); font-size: 11px; font-weight: 600; white-space: nowrap;
}
.badge--won { background: var(--green-tint); color: var(--green); box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.32); }
.badge--lost { background: var(--red-tint); color: var(--red); box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.28); }
.badge--pend { background: var(--brand-tint); color: var(--ice); box-shadow: inset 0 0 0 1px var(--line-strong); }
.stat-strip .stat b {
  font-family: var(--font-display); font-weight: 800; font-size: 24px; letter-spacing: -0.01em;
}
.my-analysis-card__right b { font-family: var(--font-display); font-weight: 700; font-size: 16px; }
.signal-card { padding: 13px 14px; }
.signal-card:active { transform: scale(0.99); }
.empty-state .icon { color: var(--muted); margin-bottom: 2px; }

/* ── 5. ПРЕМИУМ ── */
.plan-card { padding: 16px 18px; }
.plan-grid { gap: 20px; }
.plan-card__price { font-size: 24px; font-weight: 800; }
.plan-card--best .plan-card__price { font-size: 26px; }
.plan-card--best {
  background: radial-gradient(120% 140% at 100% 0%, rgba(220, 196, 136, 0.10), transparent 55%), var(--card-grad);
}
.vpn-warning {
  background: rgba(255, 255, 255, 0.04);
  box-shadow: inset 0 0 0 1px var(--line);
}
.vpn-warning .icon, .vpn-warning b { color: var(--gold); }

/* ── 6. ТАББАР / ОБЩИЕ ── */
.tab { transition: color 0.18s ease, background 0.18s ease, transform 0.12s ease; }
.tab:active { transform: scale(0.96); }
.tab--active { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07); }
.back-button { display: inline-flex; align-items: center; gap: 4px; }
.sync-pill.is-loading svg { animation: mwSpin 1s linear infinite; }
@keyframes mwSpin { to { transform: rotate(360deg); } }
.profile-sync .icon { vertical-align: -2px; margin-right: 4px; }
@media (prefers-reduced-motion: reduce) {
  .sync-pill.is-loading svg { animation: none; }
}

/* ── 7. ДЕТАЛКА: вердикты, рынок, агенты (премиум-пасс) ── */
/* статус исхода — тихая строка с точкой, НЕ псевдокнопка (жалоба владельца) */
.outcome-verdict-flag {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 0; border-radius: 0;
  background: none; box-shadow: none;
  font-size: 12.5px; letter-spacing: 0.02em; white-space: nowrap;
  color: var(--green);
}
.outcome-verdict-flag::before {
  content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%;
  background: currentColor;
}
.outcome-verdict-watch .outcome-verdict-flag,
.outcome-verdict-info_only .outcome-verdict-flag {
  background: none; box-shadow: none; color: var(--ice);
}
.outcome-verdict-no_pick .outcome-verdict-flag {
  background: none; box-shadow: none; color: var(--red);
}
.outcome-verdict-stake {
  font-family: var(--font-body); font-size: 12.5px; color: var(--text-2); margin-top: 0;
}
.outcome-verdict-price {
  font-family: var(--font-body); color: var(--text-2); font-size: 13px; font-weight: 400; margin-top: 8px;
}
.outcome-verdict-price b {
  font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--gold);
  font-variant-numeric: tabular-nums;
}
.market-grid > div { padding: 11px 12px; gap: 4px; }
.market-grid > div strong {
  font-family: var(--font-display); font-weight: 700; font-size: 15px;
  font-variant-numeric: tabular-nums;
}
.market-grid > div span { display: inline-flex; align-items: center; gap: 4px; }
.market-grid .mw-hint { width: 13px; height: 13px; font-size: 9px; }
.agent-card { flex-direction: column; gap: 4px; padding: 14px 16px; }
.agent-card span { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.agent-card strong { font-size: 14.5px; }
.admin-diagnostics .admin-status-grid { padding-bottom: 12px; }

/* ── 8. ДЕТАЛКА v2: ровный сегмент-контрол вкладок ── */
.match-tabs {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 4px; padding: 4px; overflow: visible;
  background: var(--surface);
  border-radius: var(--r-md);
  box-shadow: inset 0 0 0 1px var(--line);
}
.match-tabs button, .match-tabs .tab {
  width: 100%; min-height: 38px; padding: 0 4px;
  border-radius: 12px; background: transparent; box-shadow: none;
  font-size: 13px; text-align: center;
  /* текст строго по центру: класс .tab из таббара задаёт column-флекс под иконку */
  display: flex; flex-direction: row; align-items: center; justify-content: center;
  gap: 0; line-height: 1;
}
.match-tabs button.active, .match-tabs button.is-active,
.match-tabs .tab.active, .match-tabs .tab.is-active {
  background: var(--surface-3); color: #fff;
  box-shadow: inset 0 0 0 1px var(--line-strong), inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

/* ── 9. ДЕТАЛКА v2: понятные блоки ── */
/* бары надёжности расчёта */
.meter-list { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.meter-row { display: grid; grid-template-columns: 76px 1fr 44px; gap: 10px; align-items: center; }
.meter-row__label { font-size: 12px; color: var(--text-2); }
.meter-row__bar {
  height: 6px; border-radius: var(--r-pill); overflow: hidden;
  background: rgba(255, 255, 255, 0.07);
}
.meter-row__bar i { display: block; height: 100%; border-radius: var(--r-pill); }
.meter-row__bar i.is-good { background: var(--green); }
.meter-row__bar i.is-mid { background: var(--ice); }
.meter-row__bar i.is-low { background: var(--gold); }
.meter-row__val {
  font-family: var(--font-display); font-weight: 700; font-size: 13px; text-align: right;
  color: var(--text); font-variant-numeric: tabular-nums;
}
.analysis-breakdown__note { margin-top: 12px; font-size: 12.5px; line-height: 1.5; color: var(--text-2); }
.analysis-breakdown__factors { margin: 12px 0 4px !important; }
.analysis-breakdown__factors .factor-list { margin: 0; padding-bottom: 12px; }
.analysis-breakdown__factors .factor-list div { display: flex; flex-direction: column; gap: 2px; }
.analysis-breakdown__factors .factor-list span { font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.analysis-breakdown__factors .factor-list strong { font-size: 13px; line-height: 1.45; color: var(--text-2); font-weight: 500; }

/* чек-лист перед ставкой — нумерованные шаги */
.pre-entry__steps { counter-reset: pe; display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.pre-entry__steps li {
  position: relative; padding-left: 32px;
  font-size: 13.5px; line-height: 1.5; color: var(--text-2); list-style: none;
}
.pre-entry__steps li::before {
  counter-increment: pe; content: counter(pe);
  position: absolute; left: 0; top: 0;
  width: 22px; height: 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-weight: 700; font-size: 11px;
  background: var(--brand-tint); color: var(--ice);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.pre-entry__steps li:not(:last-child)::after {
  content: ""; position: absolute; left: 10.5px; top: 26px; bottom: -10px;
  width: 1px; background: var(--line);
}

/* готовность анализа — статусы цветом */
.readiness-cell strong { display: inline-flex; align-items: center; gap: 5px; }
.readiness-cell.is-good strong, .readiness-cell strong .icon-check { color: var(--green); }
.readiness-cell.is-good strong { color: var(--text); }
.readiness-cell.is-good .icon { color: var(--green); }
.readiness-cell.is-wait .icon { color: var(--ice); }
.readiness-cell.is-bad .icon { color: var(--red); }

/* согласие агентов — цвет ячеек по голосам */
.council-meter > div { border-radius: var(--r-sm); }
.council-meter .is-for.has-votes { background: var(--green-tint); box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.3); }
.council-meter .is-for.has-votes strong { color: var(--green); }
.council-meter .is-caution.has-votes { background: var(--gold-tint); box-shadow: inset 0 0 0 1px var(--line-gold); }
.council-meter .is-caution.has-votes strong { color: var(--gold); }
.council-meter .is-against.has-votes { background: var(--red-tint); box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.3); }
.council-meter .is-against.has-votes strong { color: var(--red); }
.council-meter strong { font-family: var(--font-display); font-weight: 800; font-size: 18px; font-variant-numeric: tabular-nums; }

/* цены по другим рынкам */
.market-option b { font-family: var(--font-display); font-weight: 700; font-size: 16px; font-variant-numeric: tabular-nums; }
.market-option strong { font-size: 13.5px; }
.market-option span { font-size: 11px; color: var(--muted); }
.market-options__source { margin-top: 12px; font-size: 12px; line-height: 1.5; color: var(--muted); }

/* оверлей деталей сигнала из истории */
.signal-detail-overlay {
  position: fixed; inset: 0; z-index: 1200;
  display: none; overflow-y: auto;
  background: rgba(4, 7, 14, 0.78);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  padding: 24px 0 40px;
}
.signal-detail-overlay.open { display: block; animation: mwScreen 0.2s ease; }
.signal-detail-inner {
  position: relative; max-width: 480px; margin: 0 auto;
  background: var(--bg-2); border-radius: var(--r-xl);
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line), var(--shadow-card);
  padding: 20px 0 16px; min-height: 200px;
}
.signal-detail-close {
  position: absolute; top: 10px; right: 12px; z-index: 2;
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--surface-3); color: var(--text-2);
  font-size: 19px; line-height: 1;
  box-shadow: inset 0 0 0 1px var(--line);
}

/* ── лестница исходов + экспресс ── */
.agent-outcome { position: relative; }
.agent-outcome__rank {
  flex: none; width: 22px; height: 22px; margin-right: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; align-self: flex-start; margin-top: 2px;
  font-family: var(--font-display); font-weight: 700; font-size: 11px;
  background: var(--surface-3); color: var(--ice);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.agent-outcome.is-rec .agent-outcome__rank {
  background: var(--green-tint); color: var(--green);
  box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.4);
}
.agent-outcome__bar {
  display: block; width: 100%; max-width: 180px; height: 4px;
  margin-top: 6px; border-radius: var(--r-pill); overflow: hidden;
  background: rgba(255, 255, 255, 0.08);
}
.agent-outcome__bar i {
  display: block; height: 100%; border-radius: var(--r-pill);
  background: var(--ice); opacity: 0.85;
}
.agent-outcome.is-rec .agent-outcome__bar i { background: var(--green); }

.agent-express { padding: 16px; }
.agent-express h3 .icon { color: var(--gold); }
.agent-express__leg {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 0; border-bottom: 1px solid var(--line);
  font-size: 13.5px; color: var(--text-2);
}
.agent-express__leg b {
  font-family: var(--font-display); font-weight: 700; font-size: 15px;
  color: var(--text); font-variant-numeric: tabular-nums;
}
.agent-express__total {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 12px 0 4px;
}
.agent-express__total span { font-size: 13px; color: var(--text-2); font-weight: 600; }
.agent-express__total b {
  font-family: var(--font-display); font-weight: 800; font-size: 22px;
  color: var(--gold); font-variant-numeric: tabular-nums;
}
.agent-express__example { font-size: 12.5px; color: var(--muted); }

.agent-report__fresh-pending {
  display: flex; gap: 10px; align-items: flex-start;
  margin: 0 var(--pad-x) 12px; padding: 11px 14px;
  border-radius: var(--r-md);
  background: var(--brand-tint);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.agent-report__fresh-pending .icon {
  flex: none; color: var(--ice); margin-top: 1px;
  animation: mwSpin 1.4s linear infinite;
}
.agent-report__fresh-pending p { font-size: 12.5px; line-height: 1.45; color: var(--text-2); }
@media (prefers-reduced-motion: reduce) {
  .agent-report__fresh-pending .icon { animation: none; }
}

/* ── ВОСПРИЯТИЕ: ритм, зоны, диета текста ── */

/* золото больше не на каждом заголовке — дефолт нейтральный */
.section-title strong {
  color: var(--text-2);
  background: var(--surface-3);
  box-shadow: inset 0 0 0 1px var(--line);
}

/* цветные плашки-иконки секций отчёта: цвет = смысл зоны */
.agent-report__block h3 .icon, .agent-report__steps h3 .icon {
  box-sizing: content-box; padding: 4px; border-radius: 8px;
  background: var(--surface-3); color: var(--ice);
}
.agent-report__steps h3 .icon { background: var(--brand-tint); color: var(--brand); }
.agent-express h3 .icon { background: var(--gold-tint); color: var(--gold); }
.agent-report__why h3 .icon { background: var(--green-tint); color: var(--green); }

/* левые рулинги — система зон */
.agent-report__steps { box-shadow: var(--hairline), inset 2px 0 0 var(--brand), inset 0 0 0 1px var(--line); }
.agent-express { box-shadow: var(--hairline), inset 2px 0 0 var(--gold), inset 0 0 0 1px var(--line-gold); }

/* «Почему так решили» — воздушная лента вместо карточки */
.agent-report__why {
  background: none !important;
  box-shadow: inset 2px 0 0 var(--green) !important;
  border-radius: 0;
  padding: var(--s1) 0 var(--s1) 14px;
  margin: 0 var(--pad-x) var(--s5);
}
.agent-report__why li { font-size: 13.5px; line-height: 1.55; }

/* пик-числа в свёрнутых блоках аналитики: ответ виден до клика */
.agent-report__details summary .details-peek {
  margin-left: auto;
  font-family: var(--font-display); font-weight: 700; font-size: 14px;
  color: var(--text); font-variant-numeric: tabular-nums;
  text-transform: none; letter-spacing: 0;
}
.details-peek.is-plus { color: var(--green); }
.agent-report__details summary:has(.details-peek)::after { margin-left: 10px; }

/* кикер-разделитель с протянутой линией: режет простыню на главы */
.zone-kicker { display: flex; align-items: center; gap: 10px; margin: var(--s5) var(--pad-x) var(--s2); }
.zone-kicker::after { content: ""; flex: 1; height: 1px; background: var(--line); }

/* дыхание между зонами */
.agent-report__steps { margin: var(--s5) var(--pad-x) var(--s3); }
.agent-report__kicker { margin: var(--s6) var(--pad-x) var(--s2); }
.agent-report__actions { margin: var(--s6) var(--pad-x) 0; }
.agent-report__lede { margin: var(--s4) var(--pad-x) var(--s5); font-size: var(--fs-body); line-height: 1.55; }

/* уверенность расчёта — крупное display-число, не чип */
.analysis-breakdown .section-title strong {
  background: none; box-shadow: none; padding: 0;
  font-family: var(--font-display); font-weight: 800; font-size: 24px;
  letter-spacing: -0.01em; color: var(--white-warm); text-transform: none;
}

/* перевес — широкая строка с крупным числом, ломает сетку */
.market-grid > div.market-grid__edge {
  grid-column: 1 / -1; flex-direction: row; align-items: baseline; justify-content: space-between;
}
.market-grid__edge strong { font-size: 22px; font-weight: 800; letter-spacing: -0.01em; }
.market-grid__edge.is-plus strong { color: var(--green); }

/* кламп LLM-текстов с fade: тап разворачивает */
.llm-clamp, .clamp-2, .clamp-3, .clamp-4 {
  display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 98%);
  mask-image: linear-gradient(180deg, #000 55%, transparent 98%);
  cursor: pointer;
}
.clamp-2 { -webkit-line-clamp: 2; }
.clamp-3, .llm-clamp { -webkit-line-clamp: 3; }
.clamp-4 { -webkit-line-clamp: 4; }
.llm-clamp.is-open, .clamp-2.is-open, .clamp-3.is-open, .clamp-4.is-open {
  -webkit-line-clamp: unset;
  -webkit-mask-image: none; mask-image: none;
}

/* светофор статусов в списке исходов деталки */
.outcome-analysis.outcome-candidate { box-shadow: var(--hairline), inset 2px 0 0 var(--green), inset 0 0 0 1px var(--line); }
.outcome-analysis.outcome-watch, .outcome-analysis.outcome-info_only { box-shadow: var(--hairline), inset 2px 0 0 var(--ice), inset 0 0 0 1px var(--line); }
.outcome-analysis.outcome-no_pick { box-shadow: var(--hairline), inset 2px 0 0 var(--red), inset 0 0 0 1px var(--line); }

/* топ-1 счёт выделен */
.agent-report__scores .agent-score:first-child { background: var(--surface-3); box-shadow: inset 0 0 0 1px var(--line-strong); }
.agent-report__scores .agent-score:first-child b { font-size: 20px; }

/* факт-строка в риск-сводке */
.risk-summary__facts { margin-top: var(--s2); font-size: 12.5px; color: var(--muted); }

/* вторичные строки-подписи */
.note-small { display: block; margin-top: 3px; font-size: 11.5px; color: var(--muted); }

/* шапка деталки: кнопка «назад» и заголовок в одном ряду — никаких наездов */
.screen-head-row {
  display: flex; align-items: flex-start; gap: 4px;
  padding: 14px 0 0;
}
.screen-head-row .back-button { margin: 0 0 0 var(--pad-x); flex: none; }
.screen-head-row .page-head { padding: 6px var(--pad-x) 4px 10px; flex: 1; min-width: 0; }

/* таймер актуальности цены — аккуратная строка, не полотно во всю ширину */
.fomo-timer-bar {
  display: flex; align-items: center; gap: 7px;
  margin: 12px var(--pad-x) 0; padding: 9px 13px;
  border-radius: var(--r-md);
  background: var(--gold-tint);
  box-shadow: inset 0 0 0 1px var(--line-gold);
  font-size: 12.5px; color: var(--text-2);
}
.fomo-timer-bar .icon { flex: none; color: var(--gold); }
.fomo-timer-bar strong {
  font-family: var(--font-display); font-weight: 800; font-size: 14px;
  color: var(--gold); font-variant-numeric: tabular-nums;
}
.fomo-timer-bar.urgent { box-shadow: inset 0 0 0 1px rgba(255, 111, 125, 0.35); background: var(--red-tint); }
.fomo-timer-bar.urgent .icon, .fomo-timer-bar.urgent strong { color: var(--red); }

/* флаги/логотипы команд — безрамочно: чистый круг с мягкой тенью */
.crest, .team-crest {
  background: none;
  box-shadow: 0 10px 24px -10px rgba(0, 0, 0, 0.75), 0 2px 6px rgba(0, 0, 0, 0.4);
}
.crest img, .team-crest img { border-radius: var(--r-pill); }

/* обёртка логотипа с предрендеренным фолбэком-инициалами */
.crest-wrap { display: inline-flex; align-items: center; justify-content: center; }

/* стрик-баннер: иконка не липнет к цифре, заголовок и подпись — отдельные строки */
.streak-banner strong {
  display: flex; align-items: center; gap: 7px;
  font-family: var(--font-display); font-weight: 700; font-size: 14px;
  color: var(--gold);
}
.streak-banner strong .icon { flex: none; }
.streak-banner span {
  display: block; margin-top: 4px;
  font-size: 12.5px; line-height: 1.45; color: var(--text-2);
}

/* риск-сводка с цветным рулингом */
.risk-summary { border-radius: var(--r-md); }
.risk-summary.low { box-shadow: inset 2px 0 0 var(--green), inset 0 0 0 1px var(--line); }
.risk-summary.medium { box-shadow: inset 2px 0 0 var(--gold), inset 0 0 0 1px var(--line); }
.risk-summary.high { box-shadow: inset 2px 0 0 var(--red), inset 0 0 0 1px var(--line); }

/* ════════════════════════════════════════════════════════════════════
   STYLE PASS v2 — перенос языка мокапов: тонкие границы, без свечений,
   табличные цифры, симметрия выигрыш/проигрыш. Логотип не трогаем.
   ════════════════════════════════════════════════════════════════════ */

/* 1. Свечения вон — главный маркёр «самоделки» */
.rec-of-day__glow, .agent-think__dots ~ * { display: none !important; }
.agent-report__hero.is-bet,
.match-card--hero:has(.verdict--bet),
.rec-of-day, .agent-ask {
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line) !important;
}
.match-card--hero:has(.verdict--bet) {
  box-shadow: var(--hairline), inset 0 0 0 1.5px rgba(220,196,136,.40) !important;
}

/* 2. Числа — табличные везде, где важно */
.agent-report__o2 b, .o2 b, .agent-report__kef b, .agent-report__entry b,
.plan-card__price, .plan-card__note, .stat-strip .stat b, .meter-row__val,
.market-grid > div strong, .agent-outcome__right b,
.rec-of-day__conf, .council-meter strong, .agent-score b {
  font-variant-numeric: tabular-nums lining-nums;
}

/* 3. Симметрия выигрыш/проигрыш — фирменный честный блок */
.agent-report__o2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
  margin: 12px var(--pad-x) 0;
}
.o2 { border-radius: 14px; padding: 11px 13px; }
.o2 i { display: block; font-style: normal; font-size: 11px; font-weight: 600; margin-bottom: 3px; }
.o2 b { font-family: var(--font-display); font-weight: 800; font-size: 20px; letter-spacing: -.01em; }
.o2--win { background: rgba(49,215,156,.10); box-shadow: inset 0 0 0 1px rgba(49,215,156,.28); }
.o2--win i, .o2--win b { color: var(--green); }
.o2--lose { background: rgba(255,111,125,.09); box-shadow: inset 0 0 0 1px rgba(255,111,125,.26); }
.o2--lose i, .o2--lose b { color: var(--red); }
.agent-report__o2-note { margin: 7px var(--pad-x) 0; font-size: 11px; color: var(--muted); text-align: center; }

/* 4. Блок «разбор дня» на главной — спокойный, одно золото */
.agent-ask {
  display: flex; align-items: center; gap: 12px;
  width: calc(100% - 2*var(--pad-x)); margin: 12px var(--pad-x);
  padding: 13px 15px; border-radius: var(--r-lg);
  background: var(--card-grad); border: 0;
}
.agent-ask__icon { flex: none; color: var(--gold); }
.agent-ask__body { flex: 1; min-width: 0; text-align: left; }
.agent-ask__body b { display: block; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body-lg); color: var(--white-warm); }
.agent-ask__body i { font-style: normal; font-size: 12.5px; color: var(--text-2); }
.agent-ask__go { flex: none; color: var(--ice); }

/* 5. Тарифы премиум — табличные цены, «/мес» виден на всех */
.plan-card__note { font-size: 11.5px; color: var(--muted); margin-top: 3px; }
.plan-card__price { font-variant-numeric: tabular-nums; }

/* ════════════════════════════════════════════════════════════════════
   DENSITY PASS — главная под макет: компактнее, флаги меньше, имена в строку
   ════════════════════════════════════════════════════════════════════ */
.match-card { padding: 14px !important; border-radius: var(--r-lg); }
.match-card__meta { margin-bottom: 12px; }
.match-card__teams, .fixture-teams { margin-bottom: 13px; gap: 6px; }
.team, .fixture-team { gap: 9px; }
.team span, .fixture-team strong {
  font-size: 14px; font-weight: 600; line-height: 1.2;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.match-card--hero .team span { font-size: 16px !important; font-weight: 700 !important; letter-spacing: -.01em !important; line-height: 1.18 !important; }
.crest, .team-crest, .logo { width: 44px !important; height: 44px !important; }
.match-card--hero .crest, .match-card--hero .team-crest { width: 54px !important; height: 54px !important; box-shadow: 0 10px 24px -10px rgba(0,0,0,.75) !important; }
.crest--mono, .logo--mono { font-size: 14px; }
.vs, .fixture-vs { width: 28px !important; height: 28px !important; margin-top: 9px !important; font-size: 9px; }
.match-card--hero .vs { width: 32px !important; height: 32px !important; margin-top: 12px !important; }
.match-card__actions .btn--primary { min-height: 44px; font-size: 13px; }
.match-card--hero .btn--primary { min-height: 46px; font-size: 14px; }
.match-card__ribbon { font-size: 11px; }
.match-card--hero { padding: 16px !important; }
/* «главный матч дня» — единственное золото: пилюлю «2 дня» в лёд */
.trial-pill { background: var(--brand-tint) !important; color: var(--ice) !important; box-shadow: inset 0 0 0 1px var(--line-strong) !important; }

/* ════════════════════════════════════════════════════════════════════
   DENSITY PASS v2 — история, профиль, деталка под макет
   ════════════════════════════════════════════════════════════════════ */

/* — История: честная статистика — */
.stat-strip--honest { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin: 12px 0 0; }
.stat-strip--honest .stat { border-radius: 12px; padding: 11px 8px; text-align: center; background: #111a2e; box-shadow: none; }
.stat-strip--honest .stat b { font-family: var(--font-display); font-weight: 800; font-size: 22px; font-variant-numeric: tabular-nums; display: block; }
.stat-strip--honest .stat span { font-size: 11px; color: var(--muted); margin-top: 2px; display: block; }
.stat-strip--honest .stat--win { background: var(--green-tint); } .stat--win b { color: var(--green); } .stat--win span { color: var(--green); }
.stat-strip--honest .stat--lose { background: var(--red-tint); } .stat--lose b { color: var(--red); } .stat--lose span { color: var(--red); }
.hist-note { display: flex; gap: 7px; align-items: flex-start; margin-top: 12px; padding: 10px 12px; border-radius: 12px; background: #111a2e; font-size: 11.5px; line-height: 1.45; color: var(--text-2); }
.hist-note .icon { flex: none; color: var(--ice); margin-top: 1px; }
.hist-collecting { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; margin-top: 14px; padding: 22px 16px; border-radius: var(--r-md); background: #0d1424; box-shadow: inset 0 0 0 1px var(--line); }
.hist-collecting .icon { color: var(--ice); }
.hist-collecting strong { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-body-lg); color: var(--white-warm); }
.hist-collecting p { font-size: 12.5px; color: var(--text-2); line-height: 1.5; max-width: 260px; }

/* — Профиль: первый разбор + забота о себе — */
.profile-first { display: flex; align-items: center; gap: 10px; margin: 0 var(--pad-x) 18px; padding: 14px; border-radius: var(--r-md); background: var(--card-grad); box-shadow: var(--hairline), inset 0 0 0 1px var(--line); }
.profile-first .icon { flex: none; color: var(--gold); }
.profile-first span { font-size: 13px; color: var(--text-2); line-height: 1.45; }
.profile-section-kicker { margin: 0 var(--pad-x) 10px; font-size: 11px; letter-spacing: .07em; text-transform: uppercase; color: var(--muted); }
.profile-care { margin: 0 var(--pad-x) 18px; border-radius: var(--r-md); background: #0d1424; box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; }
.profile-care__row { display: flex; align-items: center; gap: 12px; width: 100%; padding: 13px 14px; background: none; border: 0; text-align: left; color: var(--text); }
.profile-care__row + .profile-care__row { border-top: 1px solid var(--line); }
.profile-care__row > i { flex: none; color: var(--ice); display: inline-flex; }
.profile-care__main { flex: 1; min-width: 0; }
.profile-care__main b { display: block; font-size: 14px; font-weight: 600; }
.profile-care__main small { font-size: 11.5px; color: var(--muted); }
.profile-care__row > .icon { color: var(--muted); flex: none; }
.stat-grid--3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin: 0 var(--pad-x) 18px; }
.stat-grid--3 .stat-cell { background: #111a2e; border-radius: 12px; padding: 12px 8px; text-align: center; }
.stat-grid--3 .stat-cell b { font-family: var(--font-display); font-weight: 800; font-size: 21px; font-variant-numeric: tabular-nums; }
.stat-cell--lose b { color: var(--red); }

/* — Деталка: компактная карточка матча — */
.match-detail-card, .compact-detail { padding: 14px !important; }
.featured-fixture .team-crest { width: 48px !important; height: 48px !important; }
.featured-fixture .fixture-team strong { font-size: 14px; }
.fixture-teams { margin-bottom: 0; }
.fixture-meta { margin-bottom: 12px; }

/* — Отчёт: чуть плотнее hero — */
.agent-report__hero { padding: 16px 16px 14px; }
.agent-report__teams { font-size: 20px; margin: 6px 0 12px; }

/* ════════════════════════════════════════════════════════════════════
   ДЕТАЛКА «Вывод» — чистый блок решения как в отчёте
   ════════════════════════════════════════════════════════════════════ */
.ov-decision {
  margin: 12px var(--pad-x) 0; padding: 15px;
  border-radius: var(--r-lg); background: #0d1424;
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line);
}
.ov-decision__top { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.ov-verdict {
  font-size: 12px; font-weight: 600; padding: 4px 12px; border-radius: 999px;
  background: rgba(174,191,224,.10); color: var(--ice);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}
.ov-verdict.is-skip { background: var(--red-tint); color: var(--red); box-shadow: inset 0 0 0 1px rgba(255,111,125,.3); }
.ov-decision__risk { font-size: 11px; color: var(--muted); }
.ov-decision__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.ov-decision__pick b { display: block; font-family: var(--font-display); font-weight: 700; font-size: 17px; letter-spacing: -.01em; color: var(--white-warm); }
.ov-decision__pick i { font-style: normal; font-size: 12px; color: var(--muted); }
.ov-decision__kef { text-align: right; flex: none; }
.ov-decision__kef span { display: block; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: var(--text-2); }
.ov-decision__kef b { font-family: var(--font-display); font-weight: 800; font-size: 24px; color: var(--gold); font-variant-numeric: tabular-nums; line-height: 1; }

/* разборы исходов — компактнее, тоньше */
.analysis-details { padding: 4px 12px !important; }
.analysis-details > summary { padding: 12px 2px; font-size: 14px; }
.outcome-analysis { margin-bottom: 8px; padding: 12px 13px; border-radius: 14px; }
.outcome-verdict { margin: 0 0 10px !important; padding: 12px 13px !important; border-radius: 12px; }
.outcome-metrics { gap: 8px; }
.outcome-metrics > div { padding: 9px 10px; }
.market-showcase-step, .prep-card { padding: 12px !important; }

/* «Что проверит ИИ» — компактные ячейки */
.featured-fixture { padding: 0; }

/* ════════════════════════════════════════════════════════════════════
   ДЕТАЛКА «Рынок / Риск / Агенты» — единый чистый стиль как «Вывод»:
   плоская тёмная карта #0d1424, без шумной текстуры и теней-нимбов,
   золото только смысловое (1 акцент), вложенные ячейки одинаковые.
   ════════════════════════════════════════════════════════════════════ */

/* 1. Один материал карточки на всех вкладках разбора */
.market-panel, .market-options, .movement-card, .execution-panel,
.readiness-card, .council-snapshot, .analysis-breakdown, .risk-panel,
.agent-card, .plain-reasons {
  background: #0d1424 !important;
  border-radius: var(--r-lg) !important;
  box-shadow: var(--hairline), inset 0 0 0 1px var(--line) !important;
}

/* 2. Заголовок секции — спокойнее: чип-статус тихий, без капса-крика */
.match-tab-body .section-title { margin-bottom: 12px; }
.match-tab-body .section-title strong {
  font-family: var(--font-body) !important; font-weight: 600 !important;
  font-size: 11px !important; text-transform: none !important; letter-spacing: 0 !important;
  color: var(--muted) !important; background: rgba(255,255,255,.04) !important;
  box-shadow: inset 0 0 0 1px var(--line) !important;
}

/* 3. Шаги «как повторить» — номера в лёд, не в золото (золото бережём) */
.execution-steps > div b {
  background: var(--brand-tint); color: var(--ice);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}

/* 4. Вложенные ячейки данных — одинаковый тёмный инсет везде */
.market-grid > div, .readiness-grid > div {
  background: rgba(4,7,14,.5) !important;
  box-shadow: inset 0 0 0 1px var(--line) !important;
}
.market-grid > div strong { font-family: var(--font-display); font-weight: 700; }

/* 5. Числовой акцент готовности/уверенности — один тёплый display-кегль
   (перебивает тихий чип из п.2 для двух «процентных» заголовков) */
.readiness-card .section-title strong,
.analysis-breakdown .section-title strong {
  font-family: var(--font-display) !important; font-weight: 800 !important;
  font-size: 22px !important; color: var(--white-warm) !important;
  background: none !important; box-shadow: none !important; padding: 0 !important;
  text-transform: none !important; letter-spacing: -.01em !important;
}

/* 7. Предупреждения по риску — мягче, в общий ритм карт (но честно красные) */
.warning-list {
  margin: 12px var(--pad-x); padding: 14px 15px;
  border-radius: var(--r-lg);
  background: rgba(255,111,125,.07);
  box-shadow: inset 0 0 0 1px rgba(255,111,125,.20);
}

/* 8. Карта агента — заголовок-роль тише, вердикт ведёт */
.agent-card { padding: 14px 15px !important; }
.agent-card + .agent-card { margin-top: 10px; }

/* 9. Кнопка «назад» — стрелка строго по центру (был inline-flex без
   justify + сдвиг padding-bottom под текстовый глиф) */
.back-button {
  display: inline-grid !important; place-items: center !important;
  gap: 0 !important; padding: 0 !important;
}
.back-button .icon { display: block; }

/* 10. Риск-сводка — ОДНА карта вместо коробки в коробке:
   внешняя панель прозрачная, вся «кожа» на самой сводке */
.risk-panel {
  background: none !important; box-shadow: none !important;
  padding: 0 !important;
}
.risk-summary {
  display: block; margin-top: 0;
  padding: 14px 15px;
  border-radius: var(--r-lg);
  background: #0d1424;
}
.risk-summary.low { box-shadow: var(--hairline), inset 2px 0 0 var(--green), inset 0 0 0 1px var(--line); }
.risk-summary.medium { box-shadow: var(--hairline), inset 2px 0 0 var(--gold), inset 0 0 0 1px var(--line); }
.risk-summary.high { box-shadow: var(--hairline), inset 2px 0 0 var(--red), inset 0 0 0 1px var(--line); }
.risk-summary > strong {
  display: block; margin-bottom: 4px;
  font-family: var(--font-display); font-weight: 700; font-size: 15px;
  color: var(--white-warm);
}
.risk-summary__facts { margin-top: 8px; }

/* 11. «Из чего сложилась оценка» — обычный текст слева, не моно справа
   (наследовался .factor-list > div strong: mono + text-align right) */
.analysis-breakdown__factors .factor-list > div {
  align-items: flex-start; justify-content: flex-start; text-align: left;
}
.analysis-breakdown__factors .factor-list > div strong {
  font-family: var(--font-body); font-weight: 500;
  font-size: 13px; line-height: 1.5; color: var(--text-2);
  text-align: left;
}
.analysis-breakdown__factors .factor-list > div span { text-align: left; }

/* 12. Свёртки внутри вкладок — плоский тихий инсет вместо текстурной карты */
.match-tab-body .agent-report__details {
  background: rgba(4,7,14,.5) !important;
  box-shadow: inset 0 0 0 1px var(--line) !important;
  border-radius: var(--r-md) !important;
}

/* 13. Крестик очистки поиска — внутри поля справа (был голый button
   без стилей и выпадал строкой под инпут) */
.search-box, .match-search { overflow: visible; }
.search-box > button, .match-search > button {
  position: absolute; right: 7px; top: 50%; transform: translateY(-50%);
  width: 32px; height: 32px; padding: 0;
  display: grid; place-items: center;
  border: 0; border-radius: var(--r-pill);
  background: var(--surface-3); color: var(--text-2);
  box-shadow: inset 0 0 0 1px var(--line);
  cursor: pointer;
}
.search-box > button:active, .match-search > button:active { transform: translateY(-50%) scale(0.94); }
.search-box input, .match-search input { padding-right: 46px; }

/* ════════════════════════════════════════════════════════════════════
   НОЧНОЙ ПАСС 12.06 — хвосты волны 3: тарифы «скоро», лок сигналов,
   тише опасная кнопка
   ════════════════════════════════════════════════════════════════════ */

/* тарифы ещё не продаются — выглядят витриной, не кнопками */
.plan-card.is-soon { opacity: 0.72; }
.plan-card.is-soon:active { transform: none; }
.plan-card__soon {
  display: inline-block; margin-left: 8px; padding: 2px 9px;
  border-radius: var(--r-pill);
  background: var(--brand-tint); color: var(--ice);
  font-size: 10px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase;
  box-shadow: inset 0 0 0 1px var(--line-strong);
  vertical-align: middle;
  /* во flex-колонках тарифов не растягиваться полосой */
  align-self: flex-start; width: max-content; max-width: max-content;
}

/* залоченный сигнал для free: видно, что есть, но скрыто */
.signal-card.is-locked { opacity: 0.82; }
.signal-card.is-locked .badge { background: var(--gold-tint); color: var(--gold); box-shadow: inset 0 0 0 1px var(--line-gold); }

/* удаление аккаунта — не должно кричать ярче главного CTA */
.danger-zone .btn--danger {
  background: none; color: var(--muted);
  box-shadow: inset 0 0 0 1px var(--line);
}
.danger-zone .btn--danger:active { color: var(--red); box-shadow: inset 0 0 0 1px rgba(255,111,125,.3); }

/* ════════════════════════════════════════════════════════════════════
   ГЕЙТ-ПАСС 13.06 — free-тариф убран: баннер-крючок «N дней за
   регистрацию 1win» над лентой + лид-строка оффера на Premium-экране
   ════════════════════════════════════════════════════════════════════ */

/* баннер над лентой: золотой бюджет premium-nudge, но громче — это
   единственная дорога к разборам для незарегистрированного */
.gate-banner {
  display: flex; align-items: center; gap: 13px;
  margin: 14px var(--pad-x); padding: 13px 15px;
  border-radius: var(--r-lg); cursor: pointer;
  /* gold остаётся (это CTA на регистрацию), но без тяжёлого «нимба»-glow — спокойнее */
  background:
    radial-gradient(130% 160% at 0% 0%, rgba(217, 173, 78, 0.16), transparent 60%),
    var(--card-grad);
  box-shadow: var(--hairline), inset 0 0 0 1px rgba(236, 203, 124, 0.32),
              0 8px 22px -16px rgba(0, 0, 0, 0.5);
}
.gate-banner:active { transform: scale(0.985); }
.gate-banner__gift {
  display: grid; place-items: center;
  width: 40px; height: 40px; flex: none; border-radius: var(--r-icon);
  background: var(--grad-brand); font-size: 19px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.gate-banner__copy { flex: 1; min-width: 0; }
.gate-banner__copy strong { display: block; color: #fff; font-weight: 700; font-size: 14px; }
.gate-banner__copy p { color: var(--text-2); font-size: 12.5px; margin: 2px 0 0; }
.gate-banner__chev { color: var(--gold); font-size: 20px; }

/* лид-строка оффера на Premium-экране — между заголовком и шагами */
.how-block .how-lead { margin: -3px 0 11px; font-size: var(--fs-body); color: var(--text-2); line-height: 1.45; }

/* ── Распределение бюджета (калькулятор Келли) ──────────────────────────── */
.budget-open-btn {
  width: 100%; margin-top: 12px; padding: 13px 16px; border-radius: var(--r-md);
  background: var(--gold-tint); box-shadow: inset 0 0 0 1px var(--line-gold);
  color: var(--gold); font-family: var(--font-display); font-weight: 700; font-size: 14px;
  transition: transform .15s ease, background .15s ease;
}
.budget-open-btn:active { transform: scale(0.98); background: rgba(220, 196, 136, 0.18); }

.budget-modal[hidden] { display: none !important; }
.budget-modal { position: fixed; inset: 0; z-index: 950; display: grid; place-items: end center; opacity: 0; transition: opacity .22s ease; }
.budget-modal.visible { opacity: 1; }
.budget-modal__backdrop { position: absolute; inset: 0; background: rgba(2, 4, 10, 0.72); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.budget-modal__card {
  position: relative; width: 100%; max-width: 460px; margin: 0 auto; max-height: 88vh; overflow-y: auto;
  padding: 16px var(--pad-x) calc(20px + env(safe-area-inset-bottom));
  border-radius: var(--r-xl) var(--r-xl) 0 0; background: linear-gradient(180deg, #16213a, #0d1526);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), inset 0 0 0 1px var(--line-strong), 0 -18px 50px -20px rgba(0, 0, 0, 0.9);
  transform: translateY(40px); transition: transform .28s cubic-bezier(0.22, 0.9, 0.36, 1);
}
.budget-modal.visible .budget-modal__card { transform: none; }
.budget-modal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.budget-modal__head strong { font-family: var(--font-display); font-weight: 800; font-size: 18px; color: #fff; }
.budget-modal__close { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, 0.06); box-shadow: inset 0 0 0 1px var(--line); color: var(--muted); font-size: 20px; line-height: 1; transition: transform .15s ease; }
.budget-modal__close:active { transform: scale(0.92); }
.budget-intro { color: var(--text-2); font-size: 13px; line-height: 1.5; margin-bottom: 14px; }
.budget-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.budget-field > span { color: var(--muted); font-size: 12px; font-weight: 600; }
.budget-field input, .budget-row__odds input {
  width: 100%; padding: 12px 14px; border-radius: var(--r-md); background: var(--surface-2); border: 0;
  box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--text); font-family: var(--font-mono); font-size: 16px;
}
.budget-field input:focus, .budget-row__odds input:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--brand); }
.budget-risk { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.budget-risk__label { color: var(--muted); font-size: 12px; font-weight: 600; flex-shrink: 0; }
.budget-risk__tabs { display: flex; gap: 6px; flex: 1; }
.budget-risk__tab { flex: 1; padding: 9px 6px; border-radius: var(--r-sm); background: var(--surface-3); box-shadow: inset 0 0 0 1px var(--line); color: var(--text-2); font-size: 12px; font-weight: 600; transition: background .15s ease, box-shadow .15s ease, color .15s ease; }
.budget-risk__tab.is-active { background: var(--brand-tint); box-shadow: inset 0 0 0 1.5px var(--brand); color: #fff; }
.budget-rows { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.budget-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 13px; border-radius: var(--r-md); background: rgba(255, 255, 255, 0.03); box-shadow: inset 0 0 0 1px var(--line); }
.budget-row__info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.budget-row__info strong { color: var(--text); font-size: 14px; }
.budget-row__info small { color: var(--muted); font-size: 11.5px; }
.budget-row__odds { display: flex; flex-direction: column; gap: 4px; flex-shrink: 0; width: 104px; }
.budget-row__odds span { color: var(--muted); font-size: 10.5px; font-weight: 600; }
.budget-calc-btn { width: 100%; padding: 14px; border-radius: var(--r-md); background: var(--grad-gold); color: #1a1407; font-family: var(--font-display); font-weight: 800; font-size: 15px; box-shadow: 0 6px 18px -8px rgba(220, 196, 136, 0.6); transition: transform .15s ease; }
.budget-calc-btn:active { transform: scale(0.98); }
.budget-result { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.budget-result:empty { display: none; }
.budget-out { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: var(--r-md); background: var(--green-tint); box-shadow: inset 0 0 0 1px rgba(49, 215, 156, 0.25); }
.budget-out > div:first-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.budget-out strong { color: var(--text); font-size: 14px; }
.budget-out small { color: var(--muted); font-size: 11.5px; }
.budget-out__nums { text-align: right; flex-shrink: 0; display: flex; flex-direction: column; gap: 2px; }
.budget-out__nums strong { color: var(--green); font-family: var(--font-mono); font-size: 16px; }
.budget-out--skip { background: rgba(255, 255, 255, 0.03); box-shadow: inset 0 0 0 1px var(--line); }
.budget-out--skip span { color: var(--text-2); font-size: 14px; }
.budget-out--skip em { color: var(--muted); font-size: 11.5px; font-style: normal; text-align: right; }
.budget-total { display: flex; align-items: center; justify-content: space-between; padding: 13px 14px; border-radius: var(--r-md); background: var(--gold-tint); box-shadow: inset 0 0 0 1px var(--line-gold); }
.budget-total span { color: var(--text-2); font-size: 13px; font-weight: 600; }
.budget-total strong { color: var(--gold); font-family: var(--font-mono); font-size: 15px; }
.budget-note { color: var(--text-2); font-size: 12px; line-height: 1.45; margin-top: 4px; }
.budget-warn { color: var(--text-2); font-size: 13px; line-height: 1.5; padding: 12px 14px; border-radius: var(--r-md); background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--line); }
.budget-disclaimer { color: var(--muted); font-size: 11.5px; line-height: 1.45; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
body.budget-open { overflow: hidden; }

/* ============================================================
   ПОЛИРОВКА: атмосфера и глубина (19.06)
   Фон был плоско-тёмным. Даём мягкое холодное свечение сверху
   (эхо заставки и синего ореола «Главного матча дня») + едва
   заметный тёплый золотой намёк в правом верхнем углу. Глубина
   ощущается на всех экранах, особенно на онбординге и карточках.
   Слой на скролл-контейнере; !important перебивает boot-CSS из
   index.html (он грузится раньше). Чистый визуал — ничего не двигает.
   ============================================================ */
.phone-shell {
  background:
    radial-gradient(125% 62% at 50% -8%, rgba(70, 120, 222, 0.20) 0%, rgba(22, 36, 64, 0.10) 40%, rgba(7, 10, 18, 0) 72%),
    radial-gradient(82% 46% at 102% 3%, rgba(224, 198, 132, 0.07) 0%, rgba(7, 10, 18, 0) 58%),
    #070a12 !important;
}
/* логотипы команд — мягкий контактный пьедестал, чтобы «приподнять» со фона */
.crest { filter: drop-shadow(0 5px 12px rgba(0, 0, 0, 0.42)); }
