/* Дизайн «Неон»: глубокий тёмно-зелёный фон, салатовый (#b6ff3b) и бирюзовый (#2ef2c8) акценты со свечением,
   крупные гротескные заголовки и моноширинные цифры. Подключается ПОСЛЕДНИМ общим файлом на каждой странице
   (после ui.css): меняет токены и добавляет свечение. Убрать файл — вернётся прежний вид.
   Шрифты свои (CSP разрешает только этот сайт): Space Grotesk — латиница и цифры, Onest — кириллица (у Space Grotesk её нет),
   JetBrains Mono — числа в таблицах. Все три — SIL OFL 1.1 (LICENSE-*.txt рядом). */

@font-face { font-family:'LF Sans'; font-style:normal; font-weight:300 700; font-display:swap; src:url('/static/space-grotesk-latin-wght-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'LF Sans'; font-style:normal; font-weight:100 900; font-display:swap; src:url('/static/onest-cyrillic-wght-normal.woff2') format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'LF Mono'; font-style:normal; font-weight:100 800; font-display:swap; src:url('/static/jetbrains-mono-latin-wght-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'LF Mono'; font-style:normal; font-weight:100 800; font-display:swap; src:url('/static/jetbrains-mono-cyrillic-wght-normal.woff2') format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }

/* ---------- токены ---------- */
:root {
  --bg:#03110c; --panel:#061a12; --panel2:#071d15; --panel3:#0c2a1f; --line:#12382a; --line2:#1a4a38;
  --text:#e9fff5; --muted:#8fb8a6; --dim:#5d8676;
  --accent:#b6ff3b; --accent-bg:rgba(182,255,59,.11); --accent-line:rgba(182,255,59,.45);
  --accent2:#2ef2c8; --accent2-bg:rgba(46,242,200,.12); --accent2-line:rgba(46,242,200,.45);
  --violet:#c4b5fd; --violet-bg:rgba(196,181,253,.12);
  --amber:#ffd84d; --warn:#ffd84d;
  --up:#3dff9a; --up-bg:rgba(61,255,154,.13); --down:#ff6f8e; --down-bg:rgba(255,111,142,.13);
  --ask-bar:rgba(255,111,142,.16); --bid-bar:rgba(61,255,154,.16);
  --grad:linear-gradient(135deg, #b6ff3b, #2ef2c8);
  --glow:0 0 24px rgba(182,255,59,.42); --glow2:0 0 28px rgba(46,242,200,.32);
  --on-accent:#03110c;
  --font:'LF Sans','Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'LF Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;
  --menu-shadow:0 22px 50px -14px rgba(0,0,0,.8), 0 0 0 1px rgba(46,242,200,.06);
}
[data-theme="light"] {
  --bg:#f2f8f4; --panel:#ffffff; --panel2:#f5faf6; --panel3:#e7f1ea; --line:#d5e5da; --line2:#bfd6c7;
  --text:#06170f; --muted:#4f6b5d; --dim:#86a093;
  --accent:#3f8f00; --accent-bg:rgba(63,143,0,.10); --accent-line:rgba(63,143,0,.5);
  --accent2:#0a9e86; --accent2-bg:rgba(10,158,134,.10); --accent2-line:rgba(10,158,134,.5);
  --violet:#6d4fd8; --violet-bg:rgba(109,79,216,.10);
  --amber:#a87a00; --warn:#a87a00;
  --up:#0a8f4d; --up-bg:rgba(10,143,77,.1); --down:#c62f55; --down-bg:rgba(198,47,85,.1);
  --grad:linear-gradient(135deg, #4c9a00, #0a9e86);
  --glow:none; --glow2:none; --on-accent:#fff;
  --menu-shadow:0 18px 44px -14px rgba(10,40,25,.25);
}

/* ---------- основа ---------- */
body { font-family:var(--font); background-color:var(--bg);
  background-image:radial-gradient(1200px 520px at 12% -10%, rgba(182,255,59,.13), transparent 60%), radial-gradient(900px 480px at 95% 0%, rgba(46,242,200,.11), transparent 60%);
  background-repeat:no-repeat; }
[data-theme="light"] body { background-image:radial-gradient(1200px 520px at 12% -10%, rgba(63,143,0,.08), transparent 60%), radial-gradient(900px 480px at 95% 0%, rgba(10,158,134,.07), transparent 60%); }
::selection { background:rgba(182,255,59,.3); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline:2px solid var(--accent2); outline-offset:2px; }

/* числа — моноширинные: колонки не «прыгают», цифры читаются как в терминале */
td.num, th.num, .num, .term .price, .payprice strong, .kpi-mini b, .stat strong, .secret, .timer, .codes span, .lv, .summary .spreadcell, .fcell, .bot-table td.num { font-family:var(--mono); font-variant-numeric:tabular-nums; letter-spacing:0; }

/* ---------- шапка ---------- */
.topbar { background:color-mix(in srgb, var(--bg) 74%, transparent); border-bottom-color:var(--line); }
.brand { font-weight:700; letter-spacing:-.02em; }
.brand b { color:var(--accent); text-shadow:var(--glow); }
.nav a { color:var(--muted); font-weight:500; padding:8px 15px; }
.nav a:hover { color:var(--text); background:var(--panel3); }
.nav a.active { background:var(--accent); color:var(--on-accent); box-shadow:var(--glow); }
.tsearch input { background:var(--panel2); border-color:var(--line2); }
.tsearch input:focus { border-color:var(--accent2-line); box-shadow:0 0 0 3px var(--accent2-bg); }
.iconbtn { background:var(--panel2); border-color:var(--line2); }
.iconbtn:hover { border-color:var(--accent2-line); }
.iconbtn.primary { background:var(--grad); border-color:transparent; color:var(--on-accent); box-shadow:var(--glow2); }
.menu { background:var(--panel2); border-color:var(--line2); }

/* ---------- заголовки ---------- */
.container h1 { font-weight:700; text-transform:none; letter-spacing:-.03em; font-size:40px; line-height:1.06; }
.container h1::after { width:72px; height:4px; background:var(--grad); box-shadow:var(--glow); }
.container .lead { color:var(--muted); font-size:16px; }
h2 { font-weight:700; letter-spacing:-.02em; }
h3 { letter-spacing:-.01em; }
.eyebrow { color:var(--accent2); letter-spacing:.12em; text-transform:uppercase; font-size:12px; font-weight:600; }

/* ---------- карточки, кнопки, поля ---------- */
.card { background:linear-gradient(160deg, color-mix(in srgb, var(--panel3) 70%, var(--panel)), var(--panel)); border-color:var(--line); border-radius:20px; }
[data-theme="light"] .card { background:var(--panel); }
.btn { border-color:var(--line2); background:var(--panel2); color:var(--text); font-weight:600; transition:border-color .15s, box-shadow .15s, transform .15s; }
.btn:hover { border-color:var(--accent2); color:var(--accent2); }
.btn.primary { background:var(--grad); border-color:transparent; color:var(--on-accent); font-weight:700; box-shadow:var(--glow2); }
.btn.primary:hover { color:var(--on-accent); transform:translateY(-1px); box-shadow:0 0 34px rgba(46,242,200,.45); }
[data-theme="light"] .btn.primary, [data-theme="light"] .iconbtn.primary { color:#fff; }
.btn.danger { border-color:var(--down); color:var(--down); background:transparent; }
.btn:disabled, .btn.disabled { opacity:.45; transform:none; box-shadow:none; }
.btn-accent { background:var(--grad); color:var(--on-accent); border-color:transparent; }
.field input[type=text], .field input[type=email], .field input[type=password], .field input[type=number], .field select, .field textarea, .fieldlite, .filters input[type=number], .filters input[type=text], .filters select {
  background:var(--bg); border-color:var(--line2); border-radius:12px; }
.field input:focus, .field select:focus, .field textarea:focus, .fieldlite:focus, .filters input:focus, .filters select:focus { border-color:var(--accent2); box-shadow:0 0 0 3px var(--accent2-bg); outline:none; }
input[type=checkbox], input[type=radio], input[type=range] { accent-color:var(--accent); }
.tag { background:var(--panel3); color:var(--muted); border:1px solid var(--line2); }
.tag.ok { background:var(--up-bg); color:var(--up); border-color:transparent; }
.tag.pro { background:var(--accent-bg); color:var(--accent); border-color:var(--accent-line); }
.alert { border-radius:14px; }
.alert.info { background:var(--accent2-bg); border-color:var(--accent2-line); color:var(--text); }
.alert.ok { background:var(--up-bg); border-color:transparent; }
.alert.err { background:var(--down-bg); border-color:transparent; }
.alert a { color:var(--accent2); font-weight:600; }

/* переключатели: активный — салатовая «таблетка» со свечением */
.seg { background:var(--panel2); border-color:var(--line2); }
.seg button.active, .modes button.active, .tabs button.active, .bottom .tabs button.active { background:var(--accent); color:var(--on-accent); box-shadow:var(--glow); }
.modes button, .tabs button { border-radius:999px; }

/* ---------- таблицы ---------- */
.table-wrap { border-radius:22px; border-color:var(--line); background:var(--panel); }
.table-wrap th, table.plain th { color:var(--muted); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.table-wrap tbody tr:hover td, table.plain tbody tr:hover td { background:color-mix(in srgb, var(--accent2) 6%, transparent); }
.table-wrap tbody tr:first-child td { background-image:linear-gradient(90deg, rgba(182,255,59,.08), transparent 60%); }
[data-theme="light"] .table-wrap tbody tr:first-child td { background-image:none; }
td.num.strong, .pos.strong { text-shadow:0 0 14px rgba(61,255,154,.35); }
.filters { border-radius:20px; background:var(--panel); border-color:var(--line); }
.summary { border-radius:16px; border-color:var(--line2); }

/* ---------- тарифы ---------- */
.plan:nth-child(2) { border-color:var(--accent-line); box-shadow:0 0 0 1px var(--accent-bg), 0 30px 70px -40px var(--accent); }
.plan:nth-child(2)::before { background:var(--grad); height:3px; }
.plan:nth-child(2) h3 { color:var(--accent); }
.plan .price { font-weight:700; letter-spacing:-.03em; }
.plan.addon { border-style:solid; border-color:color-mix(in srgb, var(--violet) 45%, transparent); background:linear-gradient(160deg, color-mix(in srgb, var(--violet) 10%, var(--panel)), var(--panel)); }
.plan.addon h3, .plan .addon-note { color:var(--violet); }
.plan.addon::before { content:""; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg, var(--violet), var(--accent2)); }
.term .price { color:var(--accent); }
.paygroup-title { color:var(--text); }
.payplan.discounted { border-color:var(--accent-line); }
.paybadge { background:var(--accent); color:var(--on-accent); }

/* ---------- главная ---------- */
.lp-hero h1 { font-weight:700; text-transform:none; letter-spacing:-.035em; }
.lp-hero h1 em { background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; filter:drop-shadow(0 0 22px rgba(182,255,59,.35)); }
.lp-head h2, .lp-cta h2 { font-weight:700; text-transform:none; letter-spacing:-.025em; }
.lp-bg::after { filter:hue-rotate(125deg) saturate(1.2); }
.lp-btn.primary { background:var(--grad); color:var(--on-accent); box-shadow:var(--glow2); border-color:transparent; }
.lp-ico { background:var(--grad); border-color:transparent; box-shadow:var(--glow2); }
.lp-card, .lp-steps li, .lp-stat { background:linear-gradient(160deg, var(--panel3), var(--panel)); border-color:var(--line); }

/* ---------- бот ---------- */
.bot-state .dot.on { background:var(--up); box-shadow:0 0 14px var(--up); }
.preset { background:linear-gradient(160deg, var(--panel3), var(--panel)); border-color:var(--line); border-radius:20px; transition:transform .15s, box-shadow .15s; }
.preset:hover { transform:translateY(-2px); }
.preset.careful { border-top-color:var(--accent2); }
.preset.balanced { border-top-color:var(--accent); }
.preset.aggressive { border-top-color:#ff9f43; }
.preset.current { box-shadow:0 0 0 2px var(--accent-line), var(--glow); }
.cfg-cat { background:var(--panel); border-color:var(--line); }
.cfg-cat[open] { border-color:var(--line2); }
.decisions li { background:var(--panel); border-color:var(--line); }

/* ---------- подвал ---------- */
.sitefooter { border-top-color:var(--line); background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--panel) 80%, transparent)); }
.sitefooter .footlinks a:hover { color:var(--accent2); }

@media (max-width:720px) {
  .container h1 { font-size:30px; }
  .nav a { padding:8px 12px; }
}
@media (prefers-reduced-motion:reduce) {
  .btn, .preset { transition:none; }
  .btn.primary:hover, .preset:hover { transform:none; }
}
.nav a.navbot { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--accent-line); border-radius:999px; }
.nav a.navbot.locked { border-color:var(--line2); }
.nav a.navbot svg { opacity:.8; }
