/* Slotester 0.20.0 — тёмная тема v2, слой «тон» (docs/design-tone.md). Подключается последним, правила под body.ai-tone:
   сейчас класс стоит только на главной (inc/enqueue.php), по мере приёмки владельцем — на остальных страницах.
   Иерархия цвета: 1) название слота — самый светлый текст; 2) измеренный RTP — единственное цветное число строки (шкала
   ai_rtp_color: коралл → янтарь → бирюза); 3) остальные показатели, приборы, подписи, рамки — нейтральный графит в три ступени.
   Бирюза бренда остаётся только у RTP, CTA и активного состояния (сортировка, наведение). Свечения (drop-shadow, glow) сняты. */
body.ai-tone {
  --tn-surface: #10141a;          /* панель таблицы */
  --tn-surface-2: #151a21;        /* шапка таблицы, наведение */
  --tn-line: rgba(255, 255, 255, .055);
  --tn-line-2: rgba(255, 255, 255, .09);
  --tn-t1: #eef1f4;               /* названия, H1 */
  --tn-t2: #a4adb7;               /* лид, подписи графика */
  --tn-num: #8e97a1;              /* второстепенные числа строки (HIT, MAX, BUY…) */
  --tn-t3: #737c87;               /* подписи, мета */
  --tn-t4: #4c545e;               /* иконки, штрихи */
  --tn-accent: #4fd1b2;           /* бренд, спокойнее прежней #5eead4 */
  --tn-accent-dim: rgba(79, 209, 178, .14);
  --tn-amber: #e3b04f;
  --tn-meter: rgba(206, 214, 222, .30);      /* активная часть прибора */
  --tn-meter-hi: rgba(226, 232, 238, .55);   /* то же при наведении на строку */
  --tn-track: rgba(255, 255, 255, .065);     /* пустая часть прибора */
  --tn-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 10' preserveAspectRatio='none'%3E%3Cpath d='M0 5Q25 -1.8 50 5T100 5' fill='none' stroke='%239aa4ae' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
  --tn-ecg-spike: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4.5 10' preserveAspectRatio='none'%3E%3Cpath d='M0 6L1.5 1.5L3 9.5L4.5 6' fill='none' stroke='%239aa4ae' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
}

/* ======================================================================== hero */
body.ai-tone .ai-hx-h1 { color: var(--tn-t1); }
body.ai-tone .ai-hx-l2 { background-image: linear-gradient(92deg, #b4f0e1 0%, #4fd1b2 44%, #38b898 66%, #9de6d3 100%); filter: none; }
body.ai-tone .ai-hx-lead { color: var(--tn-t2); }
body.ai-tone .ai-hx-lead::before { background: radial-gradient(closest-side, rgba(11,15,20,.9), rgba(11,15,20,.66) 62%, transparent); }

/* главная кнопка: та же форма (скругление, стекло, ключ, бег света по кромке), без неонового ореола */
body.ai-tone .ai-hx-go { color: #e9fbf6; border-color: rgba(79,209,178,.42); background: linear-gradient(180deg, rgba(22,40,42,.92), rgba(10,17,20,.95));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 6px 22px rgba(0,0,0,.35); text-shadow: none; }
body.ai-tone .ai-hx-go::before { background: conic-gradient(from var(--hx-a), transparent 0 66%, rgba(200,245,235,.55) 80%, transparent 90%); }
body.ai-tone .ai-hx-go-key { border-color: rgba(79,209,178,.5); background: rgba(79,209,178,.1); box-shadow: none; }
body.ai-tone .ai-hx-go-key::before { border-left-color: #a8eedd; filter: none; }
body.ai-tone .ai-hx-go:hover, body.ai-tone .ai-hx-go:focus-visible { color: #fff; border-color: rgba(120,226,201,.75); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 8px 26px rgba(0,0,0,.4), 0 0 0 4px rgba(79,209,178,.08); }
body.ai-tone .ai-hx-go:hover .ai-hx-go-key, body.ai-tone .ai-hx-go:focus-visible .ai-hx-go-key { background: var(--tn-accent); }
body.ai-tone .ai-hx-alt { color: var(--tn-t2); text-shadow: none; }
body.ai-tone .ai-hx-alt::after { background: linear-gradient(90deg, rgba(164,173,183,.55), rgba(164,173,183,.08)); }
body.ai-tone .ai-hx-alt i { color: var(--tn-t3); }
body.ai-tone .ai-hx-alt:hover { color: var(--tn-t1); }
body.ai-tone .ai-hx-alt:hover i { color: var(--tn-accent); }

/* блок графика: рамка-прицел и подписи — графит; цветной только подсвеченный прогон */
body.ai-tone .ai-hx-lock { border-color: rgba(255,255,255,.16); filter: none; }
body.ai-tone .ai-hx.is-locked .ai-hx-stage::after { animation: none; }
body.ai-tone .ai-hx-track { color: var(--tn-t4); }
body.ai-tone .ai-hx-track b { color: var(--tn-t3); }
body.ai-tone .ai-hx-track-ico { border-color: var(--tn-t4); box-shadow: none; }
body.ai-tone .ai-hx-track-ico::after { background: var(--tn-t3); }
body.ai-tone .ai-home-rig { background: #0c1015; } /* непрозрачный: ткань hero не должна просвечивать сквозь график и счётчики */
body.ai-tone .ai-home-rig-head { color: var(--tn-t3); }
body.ai-tone .ai-home-rig-dot { background: var(--tn-accent); box-shadow: none; }
body.ai-tone .ai-home-rig-now { color: var(--tn-t2); opacity: 1; }
body.ai-tone .ai-home-rig-tick { color: var(--tn-t3); }
body.ai-tone .ai-home-chart { border-color: var(--tn-line); background: repeating-linear-gradient(90deg, transparent 0 63px, rgba(255,255,255,.035) 63px 64px), repeating-linear-gradient(180deg, transparent 0 49px, rgba(255,255,255,.035) 49px 50px), #0a0d11; }
body.ai-tone .ai-home-chart-zero { stroke: rgba(255,255,255,.2); }
body.ai-tone .ai-home-chart-cursor { stroke: rgba(255,255,255,.28); filter: none; }
body.ai-tone .ai-home-band { fill: #a4adb7; opacity: .045; }
body.ai-tone .ai-home-band.is-core { opacity: .085; }
body.ai-tone .ai-home-median { stroke: rgba(164,173,183,.42); }
body.ai-tone .ai-home-run, body.ai-tone .ai-home-run.is-down { stroke: #a4adb7; opacity: .16; }
body.ai-tone .ai-home-run.is-hot, body.ai-tone .ai-home-run:hover { stroke: var(--tn-accent); opacity: .9; stroke-width: 2; filter: none; }
body.ai-tone .ai-home-run.is-down.is-hot, body.ai-tone .ai-home-run.is-down:hover { stroke: var(--tn-amber); filter: none; }
body.ai-tone .ai-home-spot { stroke: var(--tn-accent); stroke-width: 2; filter: none; }
body.ai-tone .ai-home-spot.is-down { stroke: var(--tn-amber); filter: none; }
body.ai-tone .ai-home-rig-legend { color: var(--tn-t4); }
body.ai-tone .ai-home-rig-name { color: var(--tn-t3); }
body.ai-tone .ai-home-counters { border-top-color: var(--tn-line); }
body.ai-tone .ai-home-counters b { color: #cdd3d9; font-weight: 600; }
body.ai-tone .ai-home-counters span { color: var(--tn-t4); }

/* ======================================================================== таблица тестов */
body.ai-tone .ai-reg-home { background: var(--tn-surface); border-color: var(--tn-line-2); }
body.ai-tone .ai-reg-home::before { display: none; } /* точечная сетка фона */
body.ai-tone .ai-reg-home .ai-reg-row + .ai-reg-row { border-top-color: var(--tn-line); }

/* шапка */
body.ai-tone .ai-reg-head { color: var(--tn-t3); background: var(--tn-surface-2); border-bottom: 1px solid var(--tn-line-2); }
body.ai-tone .ai-reg-head :where(button, a[data-sort]) { color: var(--tn-t3); }
body.ai-tone .ai-reg-head [data-sort]:hover { color: var(--tn-t1); }
body.ai-tone .ai-reg-head [data-sort].is-active { color: var(--tn-t1); text-shadow: none; }
body.ai-tone .ai-reg-head [data-sort].is-active.is-desc::after, body.ai-tone .ai-reg-head [data-sort].is-active.is-asc::after { filter: none; }
body.ai-tone .ai-reg-head-rtp > i { color: var(--tn-t4); }
body.ai-tone .ai-reg-head-name::before, body.ai-tone .ai-reg-head [data-sort]::before, body.ai-tone .ai-reg-head-spark::before,
body.ai-tone .ai-reg-home .ai-reg-stat > i::before { filter: grayscale(1) brightness(1.15); opacity: .4; }
body.ai-tone .ai-reg-head button:hover::before, body.ai-tone .ai-reg-head [data-sort].is-active::before { filter: grayscale(1) brightness(1.6); opacity: .8; }
body.ai-tone .ai-reg-head .ai-reg-find { border-color: var(--tn-line-2); background: transparent; color: var(--tn-t3); box-shadow: none; }
body.ai-tone .ai-reg-head .ai-reg-find:hover, body.ai-tone .ai-reg-head .ai-reg-find:focus-visible { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.04); color: var(--tn-t1); box-shadow: none; }
body.ai-tone .ai-reg-head-search .ai-reg-search { background: var(--tn-surface-2); }

/* строка: наведение — ровный подсвет и тонкая бирюзовая кромка, без свечения */
body.ai-tone .ai-reg-home .ai-reg-link::before { width: 2px; box-shadow: none; background: var(--tn-accent); }
body.ai-tone .ai-reg-home .ai-reg-link:hover, body.ai-tone .ai-reg-home .ai-reg-link:focus-visible { background: rgba(255,255,255,.025); }

/* миниатюра: без бирюзовой тонировки и уголков-прицелов; чуть приглушена, в цвет — при наведении */
body.ai-tone .ai-reg-home .ai-reg-thumb { border-color: var(--tn-line); background: var(--tn-surface-2); }
body.ai-tone .ai-reg-home .ai-reg-thumb img, body.ai-tone .ai-reg-home .ai-reg-thumb .ai-placeholder { filter: saturate(.55) brightness(.7); transform: none; }
body.ai-tone .ai-reg-home .ai-reg-thumb::after { background: linear-gradient(180deg, rgba(16,20,26,0) 40%, rgba(16,20,26,.35)); mix-blend-mode: normal; }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-thumb img { filter: none; transform: scale(1.03); }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-thumb::after { opacity: 0; }
body.ai-tone .ai-reg-home .ai-reg-brk, body.ai-tone .ai-reg-home .ai-reg-scan { display: none; }
body.ai-tone .ai-reg-home .ai-reg-rank { color: var(--tn-t1); background: rgba(10,13,17,.88); box-shadow: 0 0 0 1px rgba(255,255,255,.14); }

/* 1 — название: главный текст строки */
body.ai-tone .ai-reg-home .ai-reg-name { font-size: 15.5px; color: var(--tn-t1); }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-name { color: #fff; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-meta { color: var(--tn-t3); }
body.ai-tone .ai-reg-home .ai-reg-dates { color: var(--tn-t4); }
body.ai-tone .ai-reg-home .ai-reg-date.is-retest { color: var(--tn-t3); }

/* 2 — RTP: цвет у числа (inline из ai_rtp_color), печать и значок студии — монохром, заявленный — третий план */
body.ai-tone .ai-reg-home .ai-reg-stat.is-rtp b { font-size: 15px; font-weight: 700; letter-spacing: -.01em; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-lab-seal { filter: grayscale(1) brightness(1.1); opacity: .55; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-rtp-m:hover .ai-lab-seal { filter: none; opacity: 1; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-rtp-d { color: var(--tn-t3); font-weight: 500; }
body.ai-tone .ai-reg-home .ai-reg-rtp-d { font-size: 12px; } /* только в строке таблицы: в карточке RTP главной заявленный крупный */
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-rtp-d .ai-prov-badge { filter: grayscale(1); opacity: .6; box-shadow: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-rtp-d:hover .ai-prov-badge { filter: none; opacity: 1; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-rtp-sep { background: linear-gradient(180deg, transparent, rgba(164,173,183,.45) 28%, rgba(164,173,183,.45) 72%, transparent); }
/* пробирка: тоньше и плоская — жидкость цвета RTP без бликов и ореола, отметка «заявлено» — светлая черта */
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-gauge { height: 6px; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-gauge-tube { background: repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 8.3333%), var(--tn-track); box-shadow: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-gauge-fill { background: var(--c); opacity: .78; box-shadow: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-gauge-fill::before { background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-gauge-ci { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--c) 26%, transparent) 0 2px, transparent 2px 5px); box-shadow: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-gauge-level { background: color-mix(in srgb, var(--c) 55%, #fff); box-shadow: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-gauge-spec { background: rgba(226,232,238,.8); box-shadow: 0 0 0 1px var(--tn-surface); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-gauge-spec::before { border-top-color: rgba(226,232,238,.8); }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-gauge-tube { box-shadow: none; }

/* 3 — остальные показатели: графит, без свечений; при наведении на строку становятся светлее */
body.ai-tone .ai-reg-home .ai-reg-stat b { color: var(--tn-num); font-weight: 500; }
body.ai-tone .ai-reg-home .ai-reg-stat.is-rtp b { color: var(--tn-t1); }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-stat b { color: #cfd5db; text-shadow: none; }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-stat.is-rtp b { color: var(--tn-t1); }
body.ai-tone .ai-reg-home .ai-reg-stat i { color: var(--tn-t4); }
body.ai-tone .ai-reg-home .ai-reg-bonly { background: var(--tn-t3); box-shadow: none; }

/* HIT — ячейки */
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-leds { filter: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-leds > i { background: var(--tn-track); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-leds > i::before { background: var(--tn-meter); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-leds > i::after { background: rgba(226,232,238,.5); }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-m.is-leds > i::before { background: var(--tn-meter-hi); filter: none; }
/* MAX — лестница */
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-peak { filter: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-peak > i { background: var(--tn-track); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-peak > i::before { background: var(--tn-meter); }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-m.is-peak > i::before { background: var(--tn-meter-hi); filter: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-peak::after { background: rgba(226,232,238,.75); box-shadow: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-peak.is-gold::after { background: var(--tn-amber); box-shadow: none; }
/* BUY — коромысло */
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-bal { background: linear-gradient(rgba(255,255,255,.12), rgba(255,255,255,.12)) 25% 50% / 1px 6px no-repeat, linear-gradient(rgba(255,255,255,.12), rgba(255,255,255,.12)) 75% 50% / 1px 6px no-repeat, linear-gradient(var(--tn-track), var(--tn-track)) 0 50% / 100% 2px no-repeat; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-bal::before { background: rgba(226,232,238,.6); box-shadow: 0 0 0 1px var(--tn-surface); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-up::after, body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-down::after { background: var(--tn-meter); box-shadow: none; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-bal > i { --bc: #b9c1ca; background: #b9c1ca; box-shadow: 0 0 0 2px var(--tn-surface); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-none { background: repeating-linear-gradient(90deg, rgba(255,255,255,.1) 0 3px, transparent 3px 6px) 0 50% / 100% 2px no-repeat; }
/* BONUS и DRY — экраны: тёмное стекло без бирюзовой кромки, линия графитовая */
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-scope, body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-ecg { background: repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 10%), rgba(0,0,0,.22); box-shadow: inset 0 0 0 1px rgba(255,255,255,.04); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-scope { background: linear-gradient(rgba(255,255,255,.05), rgba(255,255,255,.05)) 0 50% / 100% 1px no-repeat, repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 10%), rgba(0,0,0,.22); }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-m.is-scope, body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-m.is-ecg { box-shadow: inset 0 0 0 1px rgba(255,255,255,.09); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-scope::before, body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-ecg::before { filter: none; opacity: .62; }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-m.is-scope::before, body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-m.is-ecg::before { opacity: 1; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-scope::before, body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-scope.is-sat::before { background-image: var(--tn-wave); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-ecg::before {
  background:
    var(--tn-ecg-spike) calc(3.5% / 0.955) 0 / 4.5% 100% no-repeat,
    var(--tn-ecg-spike) calc(var(--x1, 50%) / 0.955) 0 / 4.5% 100% no-repeat,
    linear-gradient(90deg, #9aa4ae 0 3.5%, transparent 3.5%) 0 60% / 100% 1.2px no-repeat,
    linear-gradient(90deg, transparent 0 8%, rgba(154,164,174,.55) 8% var(--x1, 50%), transparent var(--x1, 50%)) 0 60% / 100% 1.2px no-repeat,
    linear-gradient(90deg, transparent 0 calc(var(--x1, 50%) + 4.5%), rgba(255,255,255,.12) calc(var(--x1, 50%) + 4.5%)) 0 60% / 100% 1px no-repeat; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-scope.is-flat::before, body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-ecg.is-flat::before { background: linear-gradient(rgba(255,255,255,.14), rgba(255,255,255,.14)) 0 50% / 100% 1px no-repeat; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-ecg.is-flat::before { background-position: 0 60%; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-ecg::after { background: radial-gradient(circle, rgba(236,240,244,.8) 0, rgba(236,240,244,.2) 34%, transparent 70%); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-reg-m.is-ecg > i::before { background: #dfe4e9; box-shadow: none; }
/* кривая баланса: серая линия, заливка едва видна; цвет итога остаётся только у точки на конце */
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-spark-line { stroke: rgba(164,173,183,.6) !important; opacity: 1; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-spark-area { fill: rgba(164,173,183,.5) !important; opacity: .07; }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-spark-zero { stroke: rgba(255,255,255,.12); }
body.ai-tone :is(.ai-reg-home, .ai-hm) .ai-spark-end { stroke: var(--tn-surface); filter: none; }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-spark-line { stroke: rgba(206,214,222,.85) !important; filter: none; }

/* шеврон перехода */
body.ai-tone .ai-reg-home .ai-reg-go { border-color: transparent; color: var(--tn-t4); }
body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-go { color: var(--tn-surface); background: var(--tn-accent); border-color: var(--tn-accent); box-shadow: none; }

/* пейджер под таблицей: позиция и номера — графит, текущая страница — светлая с бирюзовой рамкой (активное состояние) */
body.ai-tone .ai-pager { border-color: var(--tn-line-2); background: var(--tn-surface); }
body.ai-tone .ai-pager::before { display: none; }
body.ai-tone .ai-pager-pos { color: var(--tn-t3); }
body.ai-tone .ai-pager-pos b { color: var(--tn-t1); text-shadow: none; }
body.ai-tone .ai-pager-pos-of { color: var(--tn-t2); }
body.ai-tone .ai-pager-pos-sep, body.ai-tone .ai-pager-gap { color: var(--tn-t4); }
body.ai-tone .ai-pager-cell { border-color: var(--tn-line-2); background: transparent; color: var(--tn-t2); }
body.ai-tone a.ai-pager-cell:hover, body.ai-tone a.ai-pager-cell:focus-visible { color: var(--tn-t1); border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.04); box-shadow: none; }
body.ai-tone .ai-pager-cell.is-current { color: var(--tn-t1); border-color: rgba(79,209,178,.55); background: rgba(79,209,178,.08); box-shadow: none; }
body.ai-tone .ai-pager-cell.is-off { color: var(--tn-t4); border-color: var(--tn-line); }
body.ai-tone :is(.ai-pager-all, .ai-reg-foot-link) { color: var(--tn-t2); border-bottom-color: rgba(164,173,183,.35); }
body.ai-tone :is(.ai-pager-all, .ai-reg-foot-link):hover { color: var(--tn-t1); border-bottom-color: rgba(226,232,238,.6); }
body.ai-tone .ai-reg-foot { border-color: var(--tn-line-2); background: var(--tn-surface); }

/* подсказка к показателям — без бирюзового ореола */
body.ai-tone .ai-rtp-tip { border-color: rgba(255,255,255,.12); box-shadow: 0 16px 42px rgba(0,0,0,.6); }
body.ai-tone .ai-rtp-tip-h { color: var(--tn-t1); }
body.ai-tone .ai-rtp-tip-x { border-top-color: rgba(255,255,255,.08); }

/* телефон и планшет: чипы сортировки и поиск над таблицей */
body.ai-tone .ai-reg-sort-btn { border-color: var(--tn-line-2); background: var(--tn-surface); color: var(--tn-t3); }
body.ai-tone .ai-reg-sort-btn::before { background: var(--tn-t4); }
body.ai-tone .ai-reg-sort-btn::after { display: none; }
body.ai-tone .ai-reg-sort-btn:hover { color: var(--tn-t1); border-color: rgba(255,255,255,.2); }
body.ai-tone .ai-reg-sort-btn.is-active { color: var(--tn-t1); border-color: rgba(79,209,178,.45); background: var(--tn-surface-2); box-shadow: none; animation: none; }
body.ai-tone .ai-reg-sort-btn.is-active::before { background: var(--tn-accent); box-shadow: none; }
body.ai-tone .ai-reg-sort-dir { filter: none; }
body.ai-tone .ai-reg-tools .ai-reg-search { background: var(--tn-surface); border-color: var(--tn-line-2); }
body.ai-tone .ai-reg-search:hover { border-color: rgba(255,255,255,.18); }
body.ai-tone .ai-reg-search.is-focus { border-color: rgba(79,209,178,.5); box-shadow: 0 0 0 3px rgba(79,209,178,.08); background: var(--tn-surface-2); }
body.ai-tone .ai-reg-search::before, body.ai-tone .ai-reg-search::after { border-color: var(--tn-t3); }
body.ai-tone .ai-reg-search-tag::after { color: var(--tn-t3); }

/* ======================================================================== блоки главной под таблицей (этап 2, 28.10.2026)
   parts/home-measures | home-all | home-reports | home-how и FAQ. Тот же порядок: заголовки — светлые, цифры RTP — цветные
   (ai_rtp_color), прочие цифры и приборы — графит; ссылки в тексте — светлые с бирюзовым подчёркиванием, бирюза — при наведении.
   Бесконечные петли в покое сняты (диод «specimen», бегущая точка конвейера, искра банкролла, диоды плашек). */
body.ai-tone {
  --tn-body: #98a1ab;             /* текст карточек и ответов */
  --tn-screen: #0b0e12;           /* «экран» внутри карточки */
}
body.ai-tone .ai-sec { border-bottom-color: var(--tn-line-2); }
body.ai-tone .ai-sec h2 { color: var(--tn-t1); }
body.ai-tone .ai-sec-meas { color: var(--tn-t3); }
body.ai-tone .ai-sec-meas a { color: var(--tn-t2); }
body.ai-tone .ai-sec-meas a:hover { color: var(--tn-t1); }
body.ai-tone :is(.ai-hm, .ai-home-faq) :is(p, dd, .ai-prose, .ai-hm-stage-p, .ai-hm-note, .ai-hm-lead) a:not([class]), body.ai-tone .ai-hm-open-mail a { color: #d3d9df; text-decoration: underline; text-decoration-color: rgba(79,209,178,.45); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .2s, text-decoration-color .2s; }
body.ai-tone :is(.ai-hm, .ai-home-faq) :is(p, dd, .ai-prose, .ai-hm-stage-p, .ai-hm-note, .ai-hm-lead) a:not([class]):hover, body.ai-tone .ai-hm-open-mail a:hover { color: var(--tn-accent); text-decoration-color: var(--tn-accent); }

/* карточки и экраны */
body.ai-tone :is(.ai-hm-card, .ai-hm-panel, .ai-hm-report, .ai-hm-stage) { border-color: var(--tn-line-2); background: var(--tn-surface); }
body.ai-tone :is(.ai-hm-card, .ai-hm-panel, .ai-hm-report):hover { border-color: rgba(255,255,255,.16); box-shadow: 0 14px 34px rgba(0,0,0,.3); }
body.ai-tone :is(.ai-hm-card-h, .ai-hm-panel-h) h3, body.ai-tone .ai-hm-report h3 a, body.ai-tone .ai-hm-stage-t, body.ai-tone .ai-hm-open-text h3 { color: var(--tn-t1); }
body.ai-tone .ai-hm-ico { background-color: rgba(255,255,255,.035); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); filter: grayscale(1) brightness(1.35); opacity: .85; }
body.ai-tone .ai-hm-unit { color: var(--tn-t4); }
body.ai-tone .ai-hm-screen { background: var(--tn-screen); box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); }
body.ai-tone .ai-hm-grid.is-swap .ai-hm-screen { box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); }
body.ai-tone .ai-hm-val { color: #d9dee3; }
body.ai-tone .ai-hm-val small { color: var(--tn-t3); }
body.ai-tone .ai-hm-f, body.ai-tone .ai-hm-stage-v { color: var(--tn-t2); background: rgba(255,255,255,.03); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
body.ai-tone .ai-hm-stage-v i { background: var(--tn-t3); box-shadow: none; animation: none; }
body.ai-tone :is(.ai-hm-card p, .ai-hm-note, .ai-hm-report p, .ai-hm-stage-p, .ai-hm-open-text p) { color: var(--tn-body); }

/* образец (specimen) */
body.ai-tone .ai-hm-spec { background: var(--tn-surface); box-shadow: inset 0 0 0 1px var(--tn-line-2); }
body.ai-tone :is(.ai-hm-spec-k, .ai-hm-kicker) { color: var(--tn-t3); }
body.ai-tone .ai-hm-spec-led { background: var(--tn-t3); box-shadow: none; animation: none; } /* диоды «живой» — серые точки, без дыхания */
body.ai-tone .ai-hm-spec-name { color: var(--tn-t1); }
body.ai-tone .ai-hm-spec-name:hover { color: #fff; }
body.ai-tone .ai-hm-spec-meta { color: var(--tn-t3); }
body.ai-tone .ai-hm-spec-nav { color: var(--tn-t4); }
body.ai-tone .ai-hm-spec-nav b { color: var(--tn-t2); }
body.ai-tone .ai-hm-spec-nav button { color: var(--tn-t3); box-shadow: inset 0 0 0 1px var(--tn-line-2); }
body.ai-tone .ai-hm-spec-nav button:hover, body.ai-tone .ai-hm-spec-nav button:focus-visible { color: var(--tn-t1); background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); }

/* сводка: измерено против заявленного — столбики цвета RTP (три ступени), плоские, без бликов и ореола */
body.ai-tone .ai-hm-gapbars { background: repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 25%); }
body.ai-tone .ai-hm-gapbar i { background: linear-gradient(180deg, #ec8080 0 var(--o), var(--c) var(--o) 100%); box-shadow: none; opacity: .82; }
body.ai-tone .ai-hm-gapbars .ai-hm-gapbar:hover i { opacity: 1; filter: none; }
body.ai-tone .ai-hm-gapbar b { color: var(--tn-t2); }
body.ai-tone .ai-hm-gapzero { background: rgba(226,232,238,.8); box-shadow: 0 0 0 1px var(--tn-surface); }
body.ai-tone .ai-hm-gapaxis { color: var(--tn-t4); }
body.ai-tone .ai-hm-gapaxis .is-zero { color: var(--tn-t2); }
body.ai-tone .ai-hm-legend { color: var(--tn-t3); }
body.ai-tone .ai-hm-lbar { background: var(--tn-accent); box-shadow: none; }
body.ai-tone .ai-hm-lbar.is-out { background: #ec8080; box-shadow: none; }
body.ai-tone .ai-hm-lscale { background: linear-gradient(90deg, #ec8080 0 33.3%, #e3b04f 33.3% 66.6%, #4fd1b2 66.6%); }
body.ai-tone .ai-hm-dl div { border-bottom-color: var(--tn-line); }
body.ai-tone .ai-hm-dl dt { color: var(--tn-t3); }
body.ai-tone .ai-hm-dl dd { color: var(--tn-t2); }
/* покупки против цены: выше цены — светлый графит, ниже — тёмный; белая черта цены без ореола */
body.ai-tone .ai-hm-buybars { background: linear-gradient(rgba(255,255,255,.06), rgba(255,255,255,.06)) 0 0 / 100% 1px no-repeat, linear-gradient(rgba(255,255,255,.06), rgba(255,255,255,.06)) 0 100% / 100% 1px no-repeat; }
body.ai-tone .ai-hm-buybars::before { background: rgba(226,232,238,.75); box-shadow: 0 0 0 1px var(--tn-surface); }
body.ai-tone .ai-hm-buybar.is-up i { background: rgba(214,221,228,.55); box-shadow: none; }
body.ai-tone .ai-hm-buybar.is-down i { background: rgba(150,160,170,.3); box-shadow: none; }
body.ai-tone .ai-hm-buybars .ai-hm-buybar:hover i, body.ai-tone .ai-hm-buybar:focus-visible i { filter: brightness(1.4); }
body.ai-tone .ai-hm-buyaxis { color: var(--tn-t4); }
body.ai-tone .ai-hm-buyaxis span:nth-child(2) { color: var(--tn-t2); }
/* банкролл: фитиль графитовый, искра на конце стоит */
body.ai-tone .ai-hm-fuse-k { color: var(--tn-t3); }
body.ai-tone .ai-hm-fuse-v { color: var(--tn-t2); }
body.ai-tone .ai-hm-fuse-t { background: repeating-linear-gradient(90deg, rgba(255,255,255,.08) 0 1px, transparent 1px 33.333%), var(--tn-track); }
body.ai-tone .ai-hm-fuse-t i { background: linear-gradient(90deg, rgba(206,214,222,.12), rgba(206,214,222,.5)); box-shadow: none; }
body.ai-tone .ai-hm-fuse-t i::after { background: radial-gradient(circle, #e6eaee 0, rgba(206,214,222,.5) 40%, rgba(206,214,222,0) 70%); animation: none; }
body.ai-tone .ai-hm-scale-log { color: var(--tn-t4); }
/* спектр выплат */
body.ai-tone .ai-hm-lead { color: var(--tn-t2); }
body.ai-tone .ai-hm-lead b { color: var(--tn-t1); }
body.ai-tone .ai-hm-bars { background: repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 25%), var(--tn-screen); box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); }
body.ai-tone .ai-hm-bar i { background: rgba(206,214,222,.42); box-shadow: none; }
body.ai-tone .ai-hm-bars li.is-zero .ai-hm-bar i { background: rgba(150,160,170,.22); box-shadow: none; }
body.ai-tone .ai-hm-bars b { color: var(--tn-t2); }
body.ai-tone .ai-hm-bars li > span:last-child { color: var(--tn-t4); }

/* отчёты лаборатории */
body.ai-tone .ai-hm-report-fig { background: var(--tn-screen); box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); }
body.ai-tone .ai-hm-report-fig .ai-rs-thumb img { filter: saturate(.6) brightness(.72); }
body.ai-tone .ai-hm-report:hover .ai-rs-thumb img { filter: none; }
body.ai-tone .ai-hm-report-scan { display: none; }
body.ai-tone .ai-hm-report-meta { color: var(--tn-t4); }
body.ai-tone .ai-hm-report:hover h3 a { color: #fff; }

/* как работает лаборатория: конвейер без бегущей точки, узлы графитовые */
body.ai-tone .ai-hm-pipe::before { background: repeating-linear-gradient(90deg, rgba(255,255,255,.12) 0 6px, transparent 6px 11px); opacity: 1; }
body.ai-tone .ai-hm-pipe::after { display: none; }
body.ai-tone .ai-hm-node { color: var(--tn-t2); background: var(--tn-screen); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1), 0 0 0 5px var(--tn-surface); }
body.ai-tone .ai-hm-stage-no { color: var(--tn-t4); opacity: 1; }

/* открытые данные: терминал */
body.ai-tone .ai-hm-open { border-color: var(--tn-line-2); background: var(--tn-surface); }
body.ai-tone .ai-hm-term { background: #080b0e; box-shadow: inset 0 0 0 1px rgba(255,255,255,.07), 0 18px 40px rgba(0,0,0,.4); }
body.ai-tone .ai-hm-term-bar { background: #0e1217; box-shadow: inset 0 -1px 0 rgba(255,255,255,.05); }
body.ai-tone .ai-hm-term-bar i { opacity: .45 !important; }
body.ai-tone .ai-hm-term-bar span { color: var(--tn-t4); }
body.ai-tone .ai-hm-term-body { background: none; }
body.ai-tone .ai-hm-t { color: var(--tn-t2); }
body.ai-tone .ai-hm-t.is-cmd { color: var(--tn-t1); }
body.ai-tone .ai-hm-t-ps { color: var(--tn-t4); }
body.ai-tone .ai-hm-t.is-out { color: var(--tn-t3); }
body.ai-tone .ai-hm-t.is-big { color: var(--tn-accent); text-shadow: none; } /* итог проверки — это RTP, ему цвет */
body.ai-tone .ai-hm-t.is-ok { color: #8fd3a8; }
body.ai-tone .ai-hm-t-cur, body.ai-tone .ai-hm-term.is-typing .ai-hm-t.is-on.is-cmd:not(.is-done) [data-ai-type]::after { background: var(--tn-t2); }
body.ai-tone .ai-hm-open-acts .ai-btn-ghost { color: var(--tn-t1); border-color: var(--tn-line-2); background: transparent; }
body.ai-tone .ai-hm-open-acts .ai-btn-ghost:hover { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.04); }
body.ai-tone .ai-hm-open-mail { color: var(--tn-t4); }
body.ai-tone .ai-hm-open-mail svg { color: var(--tn-t3); }

/* вопросы (все FAQ страниц с гаммой): открытый — тонкая бирюзовая кромка слева, номер и стрелка светлые; без ореола */
body.ai-tone .ai-faq .ai-faq-item { border-color: var(--tn-line); background: var(--tn-surface); }
body.ai-tone .ai-faq .ai-faq-item:hover { border-color: var(--tn-line-2); }
body.ai-tone .ai-faq .ai-faq-item[open] { border-color: rgba(255,255,255,.13); box-shadow: none; }
body.ai-tone .ai-faq .ai-faq-item summary { color: var(--tn-t1); }
body.ai-tone .ai-faq .ai-faq-no { color: var(--tn-t3); border-color: var(--tn-line-2); background: transparent; }
body.ai-tone .ai-faq .ai-faq-item[open] .ai-faq-no { color: var(--tn-t1); background: rgba(255,255,255,.08); border-color: transparent; }
body.ai-tone .ai-faq .ai-faq-chev { border-color: var(--tn-line-2); color: var(--tn-t3); }
body.ai-tone .ai-faq .ai-faq-item[open] .ai-faq-chev { color: var(--tn-t1); border-color: rgba(255,255,255,.22); }
body.ai-tone .ai-faq .ai-faq-tag { color: var(--tn-t3); }
body.ai-tone .ai-faq .ai-faq-tag::before { background: var(--tn-accent); box-shadow: none; }
body.ai-tone .ai-faq .ai-faq-body .ai-prose { color: var(--tn-t2); border-left-color: var(--tn-line-2); }

/* телефон: разделитель секций «линия с точкой» (main.css, ≤640 px) — графит вместо бирюзы */
body.ai-tone .ai-section + .ai-section::before { background: linear-gradient(90deg, transparent, rgba(255,255,255,.1) 20%, rgba(255,255,255,.1) 80%, transparent); }
body.ai-tone .ai-section + .ai-section::after { border-color: var(--tn-t4); box-shadow: none; }

/* ======================================================================== этап 3 (28.10.2026): все таблицы сайта, кроме обзора
   Гамма включена на всех страницах, кроме обзоров слотов (`ai_tone_on()`): реестры подборок, провайдеров, архива /page/N/ и
   статей Research идут теми же правилами, что таблица главной (.ai-reg-home). Здесь — общие таблицы .ai-table, таблицы Research
   .ai-lab-table и индекс A–Z. Цвет: RTP (inline ai_rtp_color) и смысловые статусы приглушённо; ключи и подписи — графит. */
body.ai-tone .ai-table td, body.ai-tone .ai-table th { border-bottom-color: var(--tn-line); }
body.ai-tone .ai-table td:first-child { color: var(--tn-t3); }
body.ai-tone .ai-table td:last-child { color: var(--tn-t1); }
body.ai-tone .ai-table-grid th { color: var(--tn-t3); border-bottom-color: var(--tn-line-2); }
body.ai-tone .ai-table-grid td { color: var(--tn-t2); }
body.ai-tone .ai-table-grid td:first-child, body.ai-tone .ai-table-grid td.is-val { color: var(--tn-t1); }
body.ai-tone .ai-table-grid td:last-child { color: var(--tn-t2); }
body.ai-tone .ai-table-grid td.is-key { color: var(--tn-t1); }
body.ai-tone .ai-table-grid td.is-ex { color: var(--tn-t3); }
body.ai-tone .ai-table-grid td.is-ok { color: #8fd3a8; }
body.ai-tone .ai-table-grid td.is-bust { color: var(--tn-amber); }
body.ai-tone .ai-table-grid td.is-sha { color: var(--tn-t4); }
body.ai-tone .ai-table-grid tbody tr:hover td { background: rgba(255,255,255,.025); }
body.ai-tone .ai-lab-table th { color: var(--tn-t3); border-bottom-color: var(--tn-line-2); }
body.ai-tone .ai-lab-table td { color: var(--tn-t2); border-bottom-color: var(--tn-line); }
body.ai-tone .ai-lab-table td a { color: var(--tn-t1); }
body.ai-tone .ai-lab-table td a:hover { color: var(--tn-accent); }
body.ai-tone .ai-lab-table tr.is-up td.is-key { color: var(--tn-accent); }
body.ai-tone .ai-lab-table tr.is-down td.is-key { color: var(--tn-amber); }
body.ai-tone .ai-lab-table tr.is-pair-head:not(:first-child) td { border-top-color: var(--tn-line-2); }
body.ai-tone .ai-lab-table tr.is-edition td.is-key::before { color: var(--tn-t4); }

/* индекс A–Z (/tests/): буквы и группы — графит, название — главный текст, RTP — цветом шкалы */
body.ai-tone .ai-az-rail a, body.ai-tone .ai-az-rail span { border-color: var(--tn-line-2); background: var(--tn-surface); color: var(--tn-t2); box-shadow: none; }
body.ai-tone .ai-az-rail a:hover, body.ai-tone .ai-az-rail a:focus-visible { color: var(--tn-t1); border-color: rgba(255,255,255,.22); box-shadow: none; }
body.ai-tone .ai-az-rail span.is-off { color: var(--tn-t4); border-color: var(--tn-line); background: transparent; }
body.ai-tone .ai-az-group { border-color: var(--tn-line-2); background: var(--tn-surface); }
body.ai-tone .ai-az-head { background: var(--tn-surface-2); border-bottom-color: var(--tn-line-2); }
body.ai-tone .ai-az-head b { color: var(--tn-t1); text-shadow: none; }
body.ai-tone .ai-az-head span { color: var(--tn-t3); }
body.ai-tone .ai-az-row { border-top-color: var(--tn-line); }
body.ai-tone .ai-az-row:hover { background: rgba(255,255,255,.025); }
body.ai-tone .ai-az-name { color: var(--tn-t1); }
body.ai-tone .ai-az-name:hover { color: #fff; }
body.ai-tone .ai-az-prov { color: var(--tn-t3); }
body.ai-tone .ai-az-rtp i { color: var(--tn-t4); }
body.ai-tone .ai-az-rtp span { color: var(--tn-t3); }
body.ai-tone .ai-az-date, body.ai-tone .ai-az-foot { color: var(--tn-t4); }

/* ======================================================================== этап 5 (28.10.2026): шапки страниц
   Шапки подборок, провайдеров, A–Z, архива /page/N/ и Research: карточка со скруглением 14 px без точечного фона; кикеров
   («● RANKING · …») нет нигде (убраны из разметки); значки «182 slots tested…» — графит. Внешняя подложка графиков (.ai-hv, и на
   главной .ai-home-rig) — скругление 12 px и обычный отступ сверху. Цвет у графиков шапок — только у данных RTP (лестница «declared
   vs measured»: выше заявленного — бирюза, ниже — янтарь, приглушённо); остальные графики — графит, активная строка — бирюза. */
body.ai-tone :is(.ai-land-hero, .ai-rs-hero) { border-color: var(--tn-line-2); border-radius: 14px; background: var(--tn-surface); }
body.ai-tone :is(.ai-land-hero-bg, .ai-rs-hero-bg) { display: none; }
body.ai-tone :is(.ai-land-hero, .ai-rs-hero) .ai-h1 { color: var(--tn-t1); }
body.ai-tone .ai-land-lead { color: var(--tn-t2); }
body.ai-tone .ai-land-lead a { color: #d3d9df; text-decoration: underline; text-decoration-color: rgba(79,209,178,.45); text-underline-offset: 3px; }
body.ai-tone .ai-land-lead a:hover { color: var(--tn-accent); text-decoration-color: var(--tn-accent); }
body.ai-tone .ai-home-trust { color: var(--tn-t3); }
body.ai-tone .ai-home-trust svg { color: var(--tn-t3); }
body.ai-tone :is(.ai-hv, .ai-home-rig) { border-radius: 12px; }
body.ai-tone .ai-hv { padding-top: 14px; background: #0c1015; }
body.ai-tone .ai-visual-head { color: var(--tn-t3); }
body.ai-tone .ai-hv-dot { background: var(--tn-accent); box-shadow: none; animation: none; }
body.ai-tone .ai-home-rig-dot { animation: none; }
body.ai-tone .ai-hv-tick { color: var(--tn-t3); }
body.ai-tone .ai-hv-svg { border-color: var(--tn-line); background: repeating-linear-gradient(90deg, transparent 0 63px, rgba(255,255,255,.035) 63px 64px), repeating-linear-gradient(180deg, transparent 0 49px, rgba(255,255,255,.035) 49px 50px), #0a0d11; }
body.ai-tone .ai-hv-label, body.ai-tone .ai-visual-tick { fill: var(--tn-t3); }
body.ai-tone .ai-hv-val, body.ai-tone .ai-visual-val { fill: var(--tn-t2); }
body.ai-tone .ai-hv-readout { border-color: var(--tn-line); background: var(--tn-surface); }
body.ai-tone .ai-hv-ro-name { color: var(--tn-t1); }
body.ai-tone .ai-hv-ro-val { color: var(--tn-t2); }
body.ai-tone .ai-hv-legend { color: var(--tn-t4); }
body.ai-tone .ai-hv-name { color: var(--tn-t2); }
body.ai-tone :is(.ai-hv-scan, .ai-hv-head, .ai-hv-playhead) { stroke: rgba(226,232,238,.55); filter: none; }
body.ai-tone :is(.ai-hv-declared, .ai-visual-mark, .ai-visual-price) { stroke: rgba(226,232,238,.5); }
body.ai-tone .ai-visual-marklabel { fill: var(--tn-t2); }
body.ai-tone .ai-visual-grid { stroke: rgba(255,255,255,.05); }
/* 1. лестница RTP — данные RTP, цвет шкалы */
body.ai-tone .ai-hv-pt.is-up .ai-hv-lad { fill: var(--tn-accent); opacity: .8; }
body.ai-tone .ai-hv-pt.is-down .ai-hv-lad { fill: var(--tn-amber); opacity: .8; }
body.ai-tone .ai-hv-pt.is-hot .ai-hv-lad, body.ai-tone .ai-hv-pt:hover .ai-hv-lad { fill: var(--tn-t1); opacity: 1; filter: none; }
body.ai-tone .ai-hv-ci { stroke: var(--tn-t1); }
body.ai-tone .ai-visual-stem.is-up { stroke: var(--tn-accent); }
body.ai-tone .ai-visual-stem.is-down { stroke: var(--tn-amber); }
body.ai-tone .ai-visual-pt { stroke: #0c1015; }
body.ai-tone .ai-visual-pt.is-up { fill: var(--tn-accent); filter: none; }
body.ai-tone .ai-visual-pt.is-down { fill: var(--tn-amber); filter: none; }
body.ai-tone .ai-visual-bar { fill: rgba(206,214,222,.5); filter: none; }
/* 2. лента покупок — выше цены светлый графит, ниже тёмный */
body.ai-tone .ai-hv-bar.is-up { fill: #d6dde4; }
body.ai-tone .ai-hv-bar.is-down { fill: #8a96a3; }
body.ai-tone .ai-hv-bar.is-on.is-up { filter: none; }
body.ai-tone .ai-hv-mean { stroke: var(--tn-t1); }
/* 3. альтиметр max win */
body.ai-tone .ai-hv-alt { stroke: rgba(206,214,222,.5); filter: none; }
body.ai-tone .ai-hv-row.is-hot .ai-hv-alt { stroke: var(--tn-accent); }
body.ai-tone .ai-hv-captrack { stroke: rgba(255,255,255,.06); }
body.ai-tone .ai-hv-row.is-hot .ai-hv-captrack { stroke: rgba(79,209,178,.14); }
body.ai-tone .ai-hv-capval { fill: var(--tn-t3); }
body.ai-tone .ai-hv-row.is-hot .ai-hv-capval { fill: var(--tn-t1); }
body.ai-tone .ai-hv-dial-arc { stroke: rgba(255,255,255,.08); }
body.ai-tone .ai-hv-dial-fill { stroke: var(--tn-accent); filter: none; }
body.ai-tone .ai-hv-dial-needle { stroke: var(--tn-t1); }
body.ai-tone .ai-hv-dial-pin { fill: var(--tn-t2); }
/* 4. ожидание фриспинов */
body.ai-tone .ai-hv-track { stroke: rgba(255,255,255,.08); }
body.ai-tone .ai-hv-link { stroke: rgba(206,214,222,.45); }
body.ai-tone .ai-hv-avg { fill: #d6dde4; stroke: #0c1015; }
body.ai-tone .ai-hv-gapdot { fill: #0c1015; stroke: #8a96a3; }
body.ai-tone :is(.ai-hv-avg, .ai-hv-gapdot).is-on { filter: none; }
body.ai-tone .ai-hv-lane.is-hot :is(.ai-hv-label, .ai-hv-val) { fill: var(--tn-t1); }
/* счётчик архива /page/N/ */
body.ai-tone .ai-reg-arch-counter { border-color: var(--tn-line-2); background: #0c1015; box-shadow: none; }
body.ai-tone :is(.ai-reg-arch-head, .ai-reg-arch-foot) { color: var(--tn-t3); }
body.ai-tone .ai-reg-arch-digits b { color: var(--tn-t1); text-shadow: none; }
body.ai-tone .ai-reg-arch-digits span { color: var(--tn-t3); }
body.ai-tone .ai-reg-arch-cells i { background: rgba(255,255,255,.06); box-shadow: none; }
body.ai-tone .ai-reg-arch-cells i.is-past { background: rgba(206,214,222,.22); }
body.ai-tone .ai-reg-arch-cells i.is-on { background: var(--tn-accent); box-shadow: none; }
/* панель архива Research «dataset behind the articles»: клетка = тест, цвет — RTP (шкала), приглушённо; подписи — графит */
body.ai-tone .ai-rs-panel { padding-top: 14px; border-radius: 12px; background: #0c1015; }
body.ai-tone .ai-rs-panel-head { color: var(--tn-t3); }
body.ai-tone .ai-rs-panel-head .ai-rs-panel-n { color: var(--tn-t3); }
body.ai-tone .ai-rs-cells { border-color: var(--tn-line); background: #0a0d11; }
body.ai-tone .ai-rs-cell { background: var(--tn-accent); }
body.ai-tone .ai-rs-cell.is-down { background: var(--tn-amber); }
body.ai-tone .ai-rs-cells.is-static .ai-rs-cell, body.ai-tone .ai-rs-cells.is-set .ai-rs-cell { opacity: .62; }
body.ai-tone .ai-rs-cell.is-hot, body.ai-tone .ai-rs-cell:hover { box-shadow: 0 0 0 1.5px var(--tn-t1); }
body.ai-tone .ai-rs-panel-live { border-color: var(--tn-line); background: var(--tn-surface); color: var(--tn-t3); }
body.ai-tone .ai-rs-panel-live :is(a, b, strong) { color: var(--tn-t1); }
body.ai-tone .ai-rs-stats li { border-color: var(--tn-line); }
body.ai-tone .ai-rs-stats b { color: #d9dee3; }
body.ai-tone :is(.ai-rs-stats span, .ai-rs-panel-foot) { color: var(--tn-t4); }
body.ai-tone .ai-rs-live-v { color: var(--tn-t1); }
@media (max-width: 640px) { body.ai-tone :is(.ai-land-hero, .ai-rs-hero) { background: none; border-radius: 0; } } /* на телефоне шапка без подложки, как было: отступов по бокам у неё нет */

/* ======================================================================== этап 6a (29.10.2026): Research — архив и статьи
   Панель архива без строки-заголовка «dataset behind the articles» и без подвала «N articles published · data as of» (владелец
   29.10); итоги 2×2, чтобы «3,210,000» не вылезал из клетки. Карточки статей и связанные — поверхность графита, миниатюры
   приглушены до наведения (как «From the lab» на главной). В статье: мета, оглавление, бейджи LIVE DATA, подписи, код — графит;
   ссылки в тексте — светлые с бирюзовым подчёркиванием (как в лиде подборок); блоки данных — подложка 12 px как у графиков шапок;
   цвет у графиков — только у данных RTP и возврата (бирюза/янтарь приглушённо), остальное графит. Таблицы и реестры — этап 3. */
body.ai-tone .ai-rs-panel { padding-top: 12px; }
body.ai-tone .ai-rs-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.ai-tone .ai-rs-stats li { background: var(--tn-surface); }
/* архив: полка статей */
body.ai-tone .ai-rs-item { background: var(--tn-surface); border-color: var(--tn-line-2); border-radius: 12px; }
body.ai-tone .ai-rs-item::before { background: rgba(255,255,255,.22); }
body.ai-tone .ai-rs-item:hover { border-color: rgba(255,255,255,.14); box-shadow: none; }
body.ai-tone .ai-rs-title a { color: var(--tn-t1); }
body.ai-tone .ai-rs-title a:hover { color: #fff; }
body.ai-tone .ai-rs-abs { color: var(--tn-body); }
body.ai-tone .ai-rs-meta { color: var(--tn-t4); }
body.ai-tone .ai-rs-meta :is(b, .is-live) { color: var(--tn-t3); }
body.ai-tone .ai-rs-thumb { border-color: var(--tn-line); }
body.ai-tone .ai-rs-item:hover .ai-rs-thumb { border-color: rgba(255,255,255,.16); }
body.ai-tone .ai-rs-item .ai-rs-thumb img { filter: saturate(.6) brightness(.72); transition: filter .2s; }
body.ai-tone .ai-rs-item:hover .ai-rs-thumb img { filter: none; }
body.ai-tone .ai-rs-thumb.is-fig { background: repeating-linear-gradient(90deg, transparent 0 31px, rgba(255,255,255,.035) 31px 32px), #0c1015; }
body.ai-tone .ai-rs-spark { fill: rgba(206,214,222,.42); opacity: 1; }
body.ai-tone .ai-rs-spark.is-warn { fill: var(--tn-amber); opacity: .6; }
body.ai-tone .ai-rs-line { stroke: rgba(206,214,222,.6); }
body.ai-tone .ai-rs-grid { stroke: var(--tn-line); }
body.ai-tone .ai-rs-fig-cap { color: var(--tn-t4); }
body.ai-tone .ai-rs-queue li { border-color: var(--tn-line-2); color: var(--tn-t2); }
body.ai-tone .ai-rs-queue :is(b, small) { color: var(--tn-t4); }
/* мета: даты и время чтения — одним графитом (дата правки больше не бирюзовая) */
body.ai-tone :is(.ai-tp-meta, .ai-rs-meta) .ai-rs-mi { color: var(--tn-t3); }
body.ai-tone :is(.ai-tp-meta, .ai-rs-meta) .ai-rs-mi.is-upd { color: var(--tn-t2); }
body.ai-tone .ai-rs-mi svg { opacity: .55; }
/* статья: шапка и оглавление */
body.ai-tone .ai-rs-article .ai-h1 { color: var(--tn-t1); }
body.ai-tone .ai-rs-article .ai-tp-lead { color: var(--tn-t2); }
body.ai-tone .ai-rs-toc { border-color: var(--tn-line-2); border-radius: 12px; background: var(--tn-surface); }
body.ai-tone .ai-rs-toc-head { background: none; color: var(--tn-t3); }
body.ai-tone :is(.ai-rs-toc-pos, .ai-rs-toc-chev) { color: var(--tn-t3); }
body.ai-tone .ai-rs-toc-bar { background: var(--tn-line); }
body.ai-tone .ai-rs-toc-bar i { background: rgba(79,209,178,.55); box-shadow: none; }
body.ai-tone .ai-rs-toc-list a { color: var(--tn-t2); border-bottom-color: var(--tn-line); }
body.ai-tone .ai-rs-toc-list b { color: var(--tn-t4); }
body.ai-tone .ai-rs-toc-list a:hover { color: var(--tn-t1); background: rgba(255,255,255,.03); }
body.ai-tone .ai-rs-toc-list li.is-current a { color: var(--tn-t1); background: linear-gradient(90deg, rgba(255,255,255,.045), transparent 70%); }
body.ai-tone .ai-rs-toc-list li.is-current b { color: var(--tn-accent); text-shadow: none; }
body.ai-tone .ai-rs-toc-list li.is-done b { color: var(--tn-t4); }
/* статья: тело */
body.ai-tone .ai-rs-body { color: var(--tn-body); }
body.ai-tone .ai-rs-body :is(h2, h3) { color: var(--tn-t1); }
body.ai-tone .ai-rs-body h2 { border-top-color: var(--tn-line); }
body.ai-tone .ai-rs-body strong { color: #d9dee3; }
body.ai-tone :is(.ai-rs-body, .ai-rs-article .ai-tp-lead) :is(p, li, figcaption, h3) a:not([class]) { color: #d3d9df; text-decoration: underline; text-decoration-color: rgba(79,209,178,.4); text-underline-offset: 3px; }
body.ai-tone :is(.ai-rs-body, .ai-rs-article .ai-tp-lead) :is(p, li, figcaption, h3) a:not([class]):hover { color: var(--tn-accent); text-decoration-color: var(--tn-accent); }
body.ai-tone .ai-lab-stat { color: #d9dee3; border-bottom-color: rgba(255,255,255,.2); }
body.ai-tone .ai-rs-body figure img { border-color: var(--tn-line); }
body.ai-tone .ai-rs-body figcaption { color: var(--tn-t3); }
body.ai-tone .ai-rs-body .ai-lab-new { border-color: var(--tn-line-2); color: var(--tn-t2); }
body.ai-tone .ai-rs-body .ai-callout { border-color: var(--tn-line-2); border-left-color: rgba(79,209,178,.45); background: #0c1015; }
body.ai-tone .ai-rs-body .ai-callout.is-warn { border-left-color: rgba(227,176,79,.55); }
body.ai-tone .ai-rs-body .ai-callout b { color: var(--tn-t1); }
body.ai-tone .ai-rs-body .ai-callout p { color: var(--tn-t2); }
body.ai-tone .ai-rs-body .ai-code { color: var(--tn-t2); background: #0c1015; border-color: var(--tn-line); }
body.ai-tone .ai-rs-body code { color: #d9dee3; }
/* статья: блоки данных (графики, таблицы) и бейдж LIVE DATA */
body.ai-tone .ai-lab-block:not(.is-register) { background: #0c1015; border-color: var(--tn-line-2); border-radius: 12px; }
body.ai-tone .ai-lab-block .ai-hv { padding-top: 0; }
body.ai-tone .ai-lab-block-head { color: var(--tn-t3); }
body.ai-tone :is(.ai-lab-block figcaption, .ai-lab-block-foot) { color: var(--tn-t4); }
body.ai-tone .ai-rs-badge { border-color: var(--tn-line-2); color: var(--tn-t3); }
body.ai-tone .ai-rs-badge::before { background: var(--tn-accent); box-shadow: none; animation: none; opacity: .8; }
body.ai-tone .ai-ladder-list b { color: var(--tn-t1); }
body.ai-tone .ai-ladder-list span { color: var(--tn-t3); }
body.ai-tone .ai-ladder-list > li > i { background: rgba(255,255,255,.06); }
body.ai-tone .ai-ladder-list > li > i > i { background: rgba(206,214,222,.5); box-shadow: none; }
body.ai-tone .ai-lab-bar { background: rgba(206,214,222,.5); box-shadow: none; }
body.ai-tone .ai-lab-bar.is-warn { background: var(--tn-amber); opacity: .75; box-shadow: none; }
/* статья: «More from the lab» */
body.ai-tone .ai-rs-related a { background: var(--tn-surface); border-color: var(--tn-line-2); border-radius: 12px; color: var(--tn-t1); }
body.ai-tone .ai-rs-related a:hover { border-color: rgba(255,255,255,.16); color: #fff; }
body.ai-tone .ai-rs-related small { color: var(--tn-t4); }
@media (min-width: 641px) { body.ai-tone .ai-rs-body.ai-card { background: var(--tn-surface); border-color: var(--tn-line-2); border-radius: 14px; } }
@media (max-width: 640px) { /* этап 6a: таблицы статей на телефоне — карточки (разметка в lab-ext.css), здесь только гамма */
  body.ai-tone .ai-lab-block.is-table { background: none; border-color: transparent; }
  body.ai-tone .ai-rs-body .ai-lab-table tr { border-color: var(--tn-line-2); background: var(--tn-surface); }
  body.ai-tone .ai-rs-body .ai-lab-table td { border-top-color: var(--tn-line); color: #c9d0d7; }
  body.ai-tone .ai-rs-body .ai-lab-table td::before { color: var(--tn-t3); }
  body.ai-tone .ai-rs-body .ai-lab-table td.is-key { color: var(--tn-t1); }
  body.ai-tone .ai-rs-body .ai-lab-table tr.is-up td.is-key { color: var(--tn-accent); }
  body.ai-tone .ai-rs-body .ai-lab-table tr.is-down td.is-key { color: var(--tn-amber); }
  body.ai-tone .ai-rs-body .ai-lab-table tr.is-edition td.is-key::before { color: var(--tn-t4); }
  body.ai-tone .ai-rs-body .ai-lab-table tbody tr:hover td { background: none; }
}

/* ======================================================================== 29.10 (владелец): левых вертикальных черт-акцентов нет нигде
   — ни у раскрытых плашек (main.css), ни у открытого вопроса FAQ, ни у строки таблицы при наведении, ни у карточки статьи Research;
   у врезок, заметок и цитат левая черта — обычная рамка (тревожная врезка .is-warn оставлена янтарной) */
body.ai-tone .ai-faq-item::before, body.ai-tone .ai-reg-link::before, body.ai-tone .ai-rs-item::before { display: none; }
body.ai-tone .ai-callout:not(.is-warn), body.ai-tone .ai-rs-body .ai-callout:not(.is-warn) { border-left: 1px solid var(--tn-line-2); }
body.ai-tone :is(.ai-rec-note, .ai-vrun-body, .ai-compose-hint) { border-left-color: transparent; }
body.ai-tone .ai-note.is-session > .ai-note-in { border-left-color: transparent; }
body.ai-tone .ai-strip-lab::before { background: var(--tn-line-2); box-shadow: none; }
body.ai-tone .ai-drawer-links a:hover { border-left-color: rgba(255,255,255,.3); }
/* 29.10 (владелец): телефон — между карточками таблицы просвечивала общая подложка списка (светлее страницы), а сверху у каждой
   карточки был бирюзовый отсвет; подложки нет, карточка — ровная поверхность графита, как плашки */
@media (max-width: 640px) {
  body.ai-tone :is(.ai-reg, .ai-reg-home) { background: none; }
  body.ai-tone .ai-reg-row { background: var(--tn-surface); border-color: var(--tn-line-2); }
  body.ai-tone :is(.ai-reg, .ai-reg-home) .ai-reg-row + .ai-reg-row { border-top-color: var(--tn-line-2); }
}

/* ======================================================================== 29.10 (владелец): шапки подборок, провайдеров, A–Z, архива /page/N/
   и Research — как hero главной, только без «ткани» знаков: без карточки вокруг, крупный заголовок, прибор справа без подложки и рамки */
body.ai-tone :is(.ai-land-hero, .ai-rs-hero) { gap: 48px; padding: 34px 0 38px; margin-bottom: 24px; border: 0; border-radius: 0; background: none; box-shadow: none; }
body.ai-tone :is(.ai-land-hero, .ai-rs-hero) .ai-h1 { max-width: 680px; margin: 0 0 20px; font-size: clamp(34px, 4.25vw, 58px); font-weight: 800; line-height: 1.02; letter-spacing: -.03em; }
body.ai-tone :is(.ai-land-lead, .ai-rs-lead) { font-size: 16.5px; line-height: 1.62; }
body.ai-tone .ai-land-hero .ai-hv { padding: 0; border-radius: 0; background: none; }
body.ai-tone .ai-rs-hero .ai-rs-panel { padding: 0; border-radius: 0; background: none; }
body.ai-tone .ai-reg-arch .ai-reg-arch-counter { padding: 0; border: 0; border-radius: 0; background: none; }
@media (max-width: 640px) {
  body.ai-tone :is(.ai-land-hero, .ai-rs-hero) { gap: 22px; padding: 8px 0 18px; margin-bottom: 18px; }
  body.ai-tone :is(.ai-land-hero, .ai-rs-hero) .ai-h1 { margin-bottom: 14px; font-size: clamp(30px, 9.2vw, 40px); }
  body.ai-tone :is(.ai-land-lead, .ai-rs-lead) { font-size: 15.5px; }
}

/* 29.10 (владелец): название слота в таблицах крупнее — главный текст строки (без кривой баланса места хватает) */
body.ai-tone .ai-reg .ai-reg-name, body.ai-tone .ai-reg-home .ai-reg-name { font-size: 17px; }
@media (max-width: 640px) { body.ai-tone .ai-reg .ai-reg-name, body.ai-tone .ai-reg-home .ai-reg-name { font-size: 16px; } }

/* ======================================================================== 29.10 (владелец): «ткань» знаков в шапках посадочных — как в hero главной
   (холст .ai-hx-canvas из hero-x.css: во всю ширину окна, края растворены маской); текст и прибор поверх, под лидом — ореол цвета
   страницы, чтобы строки читались поверх знаков; холст чуть выходит за шапку сверху и снизу, как на главной */
.ai-main:has(.ai-hx-land) { overflow-x: clip; }
body.ai-tone .ai-hx-land { isolation: isolate; }
body.ai-tone .ai-hx-land > .ai-hx-canvas { top: -34px; height: calc(100% + 64px); }
body.ai-tone .ai-hx-land :is(.ai-land-hero-text, .ai-land-hero-visual, .ai-rs-hero-text, .ai-rs-hero-panel) { position: relative; z-index: 1; }
body.ai-tone .ai-hx-land :is(.ai-land-lead, .ai-rs-lead) { position: relative; text-shadow: 0 0 14px rgba(11,15,20,.95), 0 0 3px rgba(11,15,20,.9); }
body.ai-tone .ai-hx-land :is(.ai-land-lead, .ai-rs-lead)::before { content: ""; position: absolute; z-index: -1; inset: -10px -40px -22px -34px; background: radial-gradient(closest-side, rgba(11,15,20,.88), rgba(11,15,20,.6) 62%, transparent); pointer-events: none; }
body.ai-tone .ai-hx-land .ai-h1 { text-shadow: 0 0 18px rgba(11,15,20,.6); }
@media (max-width: 640px) { body.ai-tone .ai-hx-land :is(.ai-land-lead, .ai-rs-lead)::before { inset: -6px -16px -18px; } }

/* 29.10 (владелец): стрелка строки таблицы при наведении — без рамки и подложки: просто бирюзовая, чуть крупнее и жирнее (у маски
   своя версия иконки с линией 3 вместо 2) */
body.ai-tone .ai-reg .ai-reg-go, body.ai-tone .ai-reg-home .ai-reg-go { border-color: transparent; background: none; box-shadow: none; }
body.ai-tone .ai-reg .ai-reg-go::before { transition: transform .25s cubic-bezier(.2,.8,.2,1); }
body.ai-tone .ai-reg .ai-reg-link:hover .ai-reg-go, body.ai-tone .ai-reg-home .ai-reg-link:hover .ai-reg-go { color: var(--tn-accent); background: none; border-color: transparent; box-shadow: none; }
body.ai-tone .ai-reg .ai-reg-link:hover .ai-reg-go::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); transform: rotate(-90deg) scale(1.22); }
/* 29.10 (владелец): прибор справа в шапках посадочных — на непрозрачной подложке цвета страницы, как график на главной: ткань знаков
   не просвечивает сквозь график, панель Research и счётчик архива */
body.ai-tone .ai-hx-land :is(.ai-land-hero-visual > .ai-hv, .ai-rs-panel, .ai-reg-arch-counter) { padding: 14px 16px; border-radius: 12px; background: #0c1015; }

/* 29.10 (владелец): кнопки «Play for real money», «Get bonus», «Play with bonus» — вместо бегущего по обводке блика и проблеска ровная
   лёгкая пульсация: мягкое кольцо цвета кнопки набирается и гаснет (2.8 с), при наведении замирает. Цвет кольца — --ai-magic,
   базовая тень кнопки — --ai-cta-base (светлая тема задаёт свои в light.css) */
body.ai-tone .ai-btn-magic { --ai-magic: 79, 209, 178; --ai-cta-base: inset 0 1px 0 rgba(255,255,255,.03); animation: ai-cta-breathe 2.8s ease-in-out infinite; }
body.ai-tone .ai-btn-bonus { --ai-magic: 227, 176, 79; }
body.ai-tone .ai-btn-magic::before, body.ai-tone .ai-btn-magic::after { display: none; }
body.ai-tone .ai-btn-magic:hover { animation-play-state: paused; }
@keyframes ai-cta-breathe {
  0%, 100% { box-shadow: var(--ai-cta-base, 0 0 transparent), 0 0 0 0 rgba(var(--ai-magic), 0); }
  50% { box-shadow: var(--ai-cta-base, 0 0 transparent), 0 0 0 4px rgba(var(--ai-magic), .17); }
}
@media (prefers-reduced-motion: reduce) { body.ai-tone .ai-btn-magic { animation: none; } }
