/* ════════════════════════════════════════════════════════════════════════
   MAESTRO — редизайн v2 «смелее»: тёмная премиальная тема (по умолчанию).
   Грузится ПОСЛЕДНИМ: style → motion → light-theme → design-v2 (= светлая
   тема, редизайн v1) → dark-auto (сгенерированный хвост) → этот файл.

   Всё здесь — только под html[data-mx-theme="dark"] и только на экране
   (@media screen): печать и PDF остаются светлыми. Светлая тема = v1 без
   единой правки, она живёт в design-v2.css.

   Специфичность. Старые слои прибиты !important; dark-auto пишет
   «html[data-mx-theme=dark] <селектор>». Этот файл пишет
   «html[data-mx-theme=dark] body <селектор>» — на один элемент тяжелее,
   поэтому ручное решение по ключевым экранам всегда побеждает
   сгенерированное.

   Источники решений:
   · apple-design §12 — материалы: тёмное стекло (rgba + backdrop-filter),
     светлая кромка 1px сверху = свет на грани материала; тяжёлый материал
     у колонки, лёгкий у интерактивного; стекло на стекло не кладём;
     §14 — reduced-transparency: стекло сплошное; reduced-motion: без
     движения; смена темы — растворением, без скачка яркости;
     §15 — крупные числа: отрицательный трекинг, плотный интерлиньяж,
     табличные цифры.
   · emil-design-eng — только transform/opacity/filter; ease-out на входе,
     вход ≤ 360 мс, stagger 30–60 мс, blur ≤ 8 px; hover — только под
     (hover:hover) and (pointer:fine); нажатие scale(.97).
   · find-animation-opportunities — частое (строки списка, кнопки) не
     анимируем сверх нажатия; «вау» — на редком: вход, герой, первый
     показ чисел.
   ════════════════════════════════════════════════════════════════════════ */

@media screen{

/* ── 0. Токены ─────────────────────────────────────────────────────────
   Переопределяем семантические переменные старых слоёв: на них стоят
   сотни правил и ~180 инлайновых style="" в карточке тендера, в том числе
   полоса долей (MSH_BG), цвет «Запаса» (--c-money/--c-time/--c-risk) и
   цвет вердикта. Значения — яркие на тёмном, с контрастом ≥ 4.5:1 к самому
   светлому стеклу (#2A2350), см. отчёт. Специфичность (0,3,0) +
   !important: в light-theme.css часть токенов прибита !important на :root. */
:root[data-mx-theme="dark"][data-theme]{
  color-scheme:dark;
  --bg:#0B0A14 !important; --surface:#17142C !important; --surface-2:#1C1836 !important; --soft:#221D40 !important;
  --line:rgba(255,255,255,.10) !important; --line-strong:rgba(255,255,255,.22) !important;
  --ink:#F5F3FF !important; --ink-2:#DCD6F5 !important; --muted:#B3ACD6 !important; --faint:#8F88B5 !important;
  --accent:#A78BFA !important; --accent-hover:#C4B5FD !important; --accent-active:#8B5CF6 !important;
  --accent-soft:rgba(139,92,246,.18) !important; --accent-ink:#C4B5FD !important; --ring:rgba(167,139,250,.45) !important;
  --teal:#2DD4BF !important;
  --success:#34D399 !important; --success-soft:#0E3326 !important; --success-ink:#6EE7B7 !important;
  --warning:#FBBF24 !important; --warning-soft:#3B2C0A !important; --warning-ink:#FCD34D !important;
  --danger:#F87171 !important; --danger-soft:#3D1518 !important; --danger-ink:#FCA5A5 !important;
  --c-act:#A78BFA !important; --c-ai:#A78BFA !important; --c-money:#34D399 !important;
  --c-risk:#F87171 !important; --c-time:#FBBF24 !important; --c-nav:#B3ACD6 !important;
  --shadow-xs:0 1px 2px rgba(0,0,0,.45) !important;
  --shadow-sm:0 1px 3px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4) !important;
  --shadow-md:0 6px 18px -6px rgba(0,0,0,.6) !important;
  --shadow-lg:0 22px 50px -18px rgba(0,0,0,.75) !important;

  /* v2-токены тёмной темы */
  --mx-ink:#F5F3FF; --mx-ink-2:#DCD6F5; --mx-muted:#B3ACD6;
  --mx-canvas:#0B0A14;
  --mx-glass:rgba(24,20,50,.62);           /* стекло карточек */
  --mx-glass-2:rgba(32,27,64,.70);         /* стекло на ступень выше: плитки чисел */
  --mx-glass-solid:#17142C;                /* меню, всплывашки: сплошное */
  --mx-edge:rgba(255,255,255,.10);
  --mx-edge-hi:rgba(255,255,255,.16);
  --mx-hi:inset 0 1px 0 rgba(255,255,255,.09);
  --mx-inner-glow:inset 0 0 0 1px rgba(255,255,255,.02),inset 0 24px 48px -32px rgba(167,139,250,.28);
  --mx-sh-card:0 1px 1px rgba(0,0,0,.35),0 24px 60px -30px rgba(0,0,0,.85);
  /* Градиент-акцент: фиолет → электрик-синий → маджента. Все три стопа
     держат белый текст ≥ 4.7:1 (#6D28D9 7.1, #2563EB 5.2, #C026D3 4.7). */
  --mx-grad:linear-gradient(115deg,#6D28D9 0%,#2563EB 52%,#C026D3 100%);
  --mx-grad-soft:linear-gradient(115deg,rgba(109,40,217,.32),rgba(37,99,235,.26) 52%,rgba(192,38,211,.30));
  --mx-glow-a:rgba(124,58,237,.55); --mx-glow-b:rgba(37,99,235,.45); --mx-glow-c:rgba(192,38,211,.45);
  --mx-text-grad:linear-gradient(100deg,#C4B5FD 0%,#93C5FD 45%,#F0ABFC 100%);
  --mx-v-glow:rgba(167,139,250,.55);       /* цвет вердикта переопределяется ниже */
}
/* Акцент «аврора»: изумруд → бирюза → фиолет → роза. Белый текст на
   кнопке: #047857 5.5, #0E7490 5.4, #6D28D9 7.1 (роза — только в свечении). */
:root[data-mx-theme="dark"][data-mx-accent="aurora"][data-theme]{
  --mx-canvas:#0A0A14;
  --mx-glass:rgba(16,24,44,.60); --mx-glass-2:rgba(22,32,58,.70); --mx-glass-solid:#121A2E;
  --surface:#121A2E !important; --surface-2:#16203A !important; --soft:#1B2644 !important;
  --mx-grad:linear-gradient(115deg,#047857 0%,#0E7490 45%,#6D28D9 100%);
  --mx-grad-soft:linear-gradient(115deg,rgba(16,185,129,.26),rgba(6,182,212,.22) 45%,rgba(139,92,246,.30));
  --mx-glow-a:rgba(16,185,129,.45); --mx-glow-b:rgba(6,182,212,.40); --mx-glow-c:rgba(236,72,153,.40);
  --mx-text-grad:linear-gradient(100deg,#6EE7B7 0%,#67E8F9 40%,#C4B5FD 75%,#F9A8D4 100%);
  --mx-inner-glow:inset 0 0 0 1px rgba(255,255,255,.02),inset 0 24px 48px -32px rgba(45,212,191,.22);
  --accent:#7DD3FC !important; --accent-hover:#BAE6FD !important; --accent-ink:#A5F3FC !important;
  --accent-soft:rgba(6,182,212,.16) !important; --ring:rgba(103,232,249,.40) !important;
  --c-act:#7DD3FC !important; --c-ai:#7DD3FC !important;
}

/* ── 1. Полотно и живой фон ──────────────────────────────────────────── */
html[data-mx-theme="dark"]{background:var(--mx-canvas)}
html[data-mx-theme="dark"] body{color:var(--mx-ink)}
/* Статичный фолбэк (нет JS / нет WebGL / reduced-motion): тёмное поле с
   насыщенными светилами — тот же характер, что у WebGL-ступени. */
html[data-mx-theme="dark"] .mx-ambient[data-shader-bg]{
  background:
    radial-gradient(38% 42% at 14% 10%,rgba(124,58,237,.55) 0%,rgba(124,58,237,0) 70%),
    radial-gradient(34% 40% at 90% 16%,rgba(37,99,235,.45) 0%,rgba(37,99,235,0) 70%),
    radial-gradient(40% 44% at 76% 94%,rgba(192,38,211,.38) 0%,rgba(192,38,211,0) 70%),
    radial-gradient(30% 36% at 30% 80%,rgba(79,70,229,.35) 0%,rgba(79,70,229,0) 70%),
    linear-gradient(180deg,#14112B 0%,#0B0A14 100%)}
html[data-mx-theme="dark"][data-mx-accent="aurora"] .mx-ambient[data-shader-bg]{
  background:
    radial-gradient(38% 42% at 14% 10%,rgba(16,185,129,.42) 0%,rgba(16,185,129,0) 70%),
    radial-gradient(34% 40% at 90% 16%,rgba(6,182,212,.40) 0%,rgba(6,182,212,0) 70%),
    radial-gradient(40% 44% at 76% 94%,rgba(236,72,153,.32) 0%,rgba(236,72,153,0) 70%),
    radial-gradient(30% 36% at 30% 80%,rgba(139,92,246,.38) 0%,rgba(139,92,246,0) 70%),
    linear-gradient(180deg,#0C1424 0%,#0A0A14 100%)}
html[data-mx-theme="dark"] .mx-ambient::before,
html[data-mx-theme="dark"] [data-shader-bg]>span.mx-fx-css::before{
  background:
    radial-gradient(26% 30% at 28% 30%,var(--mx-glow-a),transparent 70%),
    radial-gradient(24% 28% at 74% 38%,var(--mx-glow-b),transparent 70%),
    radial-gradient(28% 32% at 52% 76%,var(--mx-glow-c),transparent 70%)}
/* Зерно поверх полотна — убирает «пластик» у больших тёмных градиентов и
   полосы на 8-битных панелях. Статичное: двигать шум незачем. */
html[data-mx-theme="dark"] .mx-ambient::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ── 2. Типографика ──────────────────────────────────────────────────── */
html[data-mx-theme="dark"] body h1,html[data-mx-theme="dark"] body h2,html[data-mx-theme="dark"] body h3{color:var(--mx-ink)}
html[data-mx-theme="dark"] body .muted{color:var(--mx-muted)}
html[data-mx-theme="dark"] body a.link,html[data-mx-theme="dark"] body .link{color:var(--accent-ink)}
html[data-mx-theme="dark"] body ::selection{background:rgba(167,139,250,.45);color:#fff}

/* ── 3. Поверхности: тёмное стекло ──────────────────────────────────────
   rgba-заливка + размытие фона + кромка 1px + внутреннее свечение сверху.
   Стекло карточки лежит на живом фоне, а не на другом стекле. */
html[data-mx-theme="dark"] body .card,html[data-mx-theme="dark"] body .finance-panel,html[data-mx-theme="dark"] body .decision-summary,
html[data-mx-theme="dark"] body .table-wrap,html[data-mx-theme="dark"] body .stats .stat,html[data-mx-theme="dark"] body .ptier,
html[data-mx-theme="dark"] body .review,html[data-mx-theme="dark"] body .article-card,html[data-mx-theme="dark"] body .tier,html[data-mx-theme="dark"] body .hall,
html[data-mx-theme="dark"] body .stat,html[data-mx-theme="dark"] body .trow{
  background:var(--mx-glass) !important;color:var(--mx-ink);
  border:1px solid var(--mx-edge) !important;
  -webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%);
  box-shadow:var(--mx-hi),var(--mx-inner-glow),var(--mx-sh-card) !important}
/* Вложенная карточка — НЕ второе стекло (apple §12: стекло на стекло
   ломает читаемость), а лёгкая подложка. */
html[data-mx-theme="dark"] body .card .card,html[data-mx-theme="dark"] body .card .table-wrap{
  background:rgba(255,255,255,.035) !important;-webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:none !important;border-color:rgba(255,255,255,.08) !important}
html[data-mx-theme="dark"] body .card:hover{box-shadow:var(--mx-hi),var(--mx-inner-glow),var(--mx-sh-card) !important}
html[data-mx-theme="dark"] body details>summary{color:var(--mx-ink)}
html[data-mx-theme="dark"] body hr{border-color:var(--mx-edge)}

/* ── 4. Оболочка ─────────────────────────────────────────────────────── */
/* Колонка — самый тяжёлый материал экрана: почти непрозрачное тёмное
   стекло, свет фона проступает только краем. */
html[data-mx-theme="dark"] body.has-side .app-side{
  background:linear-gradient(180deg,rgba(20,16,44,.86) 0%,rgba(12,10,26,.92) 100%) !important;
  border-right:1px solid rgba(255,255,255,.07) !important;
  -webkit-backdrop-filter:blur(30px) saturate(160%);backdrop-filter:blur(30px) saturate(160%);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.04),18px 0 60px -30px rgba(0,0,0,.8) !important;color:var(--mx-ink)}
html[data-mx-theme="dark"] body .side-brand,html[data-mx-theme="dark"] body .side-brand-t{color:#fff}
html[data-mx-theme="dark"] body .side-brand-t small{color:var(--mx-muted)}
html[data-mx-theme="dark"] body .side-nav a{color:#CBC5EA;border-color:transparent !important}
html[data-mx-theme="dark"] body .side-nav a .ic{color:#A79FD0}
html[data-mx-theme="dark"] body .side-nav a.is-active{color:#fff !important;background:var(--mx-grad) !important;border-color:transparent !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 24px -8px var(--mx-glow-a),0 4px 18px -10px var(--mx-glow-c) !important}
html[data-mx-theme="dark"] body .side-nav a.is-active .ic{color:#fff}
html[data-mx-theme="dark"] body .side-nav a.is-active::before{background:#fff !important;box-shadow:0 0 12px rgba(255,255,255,.8)}
@media (hover:hover) and (pointer:fine){
  html[data-mx-theme="dark"] body .side-nav a:not(.is-active):hover{background:rgba(255,255,255,.06) !important;color:#fff}
}
html[data-mx-theme="dark"] body .side-sec,html[data-mx-theme="dark"] body .side-tool-h,html[data-mx-theme="dark"] body .side-tool-t{color:#B3ACD6 !important}
html[data-mx-theme="dark"] body .side-user{border-top-color:rgba(255,255,255,.08) !important}
html[data-mx-theme="dark"] body .side-user-meta b{color:#fff}
html[data-mx-theme="dark"] body .side-user-meta span{color:var(--mx-muted)}
html[data-mx-theme="dark"] body .side-ava{background:var(--mx-grad) !important;color:#fff !important;box-shadow:0 6px 18px -6px var(--mx-glow-a)}
html[data-mx-theme="dark"] body .side-actions a{color:#CBC5EA !important}
html[data-mx-theme="dark"] body .side-data{border-top-color:rgba(255,255,255,.08)}
html[data-mx-theme="dark"] body .crm-folder{color:#CBC5EA !important}
html[data-mx-theme="dark"] body .crm-count,html[data-mx-theme="dark"] body .side-tool-n{background:rgba(255,255,255,.08) !important;color:#DCD6F5 !important}
html[data-mx-theme="dark"] body .crm-folder.is-active{background:rgba(167,139,250,.16) !important;color:#fff !important;border-color:rgba(167,139,250,.3) !important}
html[data-mx-theme="dark"] body .side-key-input,html[data-mx-theme="dark"] body .crm-newfolder input{background:rgba(255,255,255,.05) !important;color:#fff !important;border-color:rgba(255,255,255,.12) !important}
html[data-mx-theme="dark"] body .crm-addbtn{background:rgba(167,139,250,.14) !important;color:#E4DCFF !important;border-color:rgba(167,139,250,.3) !important}

/* Гостевая шапка и подвал */
html[data-mx-theme="dark"] body .hdr{background:rgba(11,10,20,.55) !important;border-bottom:1px solid rgba(255,255,255,.07) !important;
  -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%)}
html[data-mx-theme="dark"] body .hdr .brand,html[data-mx-theme="dark"] body .hdr .nav-pub a:not(.nav-cta){color:#EDE9FE !important}
html[data-mx-theme="dark"] body .hdr .brand small{color:var(--mx-muted) !important}
html[data-mx-theme="dark"] body .ftr{background:transparent !important;border-top:1px solid rgba(255,255,255,.07) !important;color:var(--mx-muted)}
html[data-mx-theme="dark"] body .ftr a{color:#DCD6F5}
html[data-mx-theme="dark"] body .ftr-brand{color:#fff}

/* ── 5. Шапки страниц и «сегодня» ────────────────────────────────────── */
html[data-mx-theme="dark"] body .page-head.dash-head,html[data-mx-theme="dark"] body .page-head.tender-head{
  border-color:var(--mx-edge) !important;box-shadow:var(--mx-hi),var(--mx-inner-glow),var(--mx-sh-card)}
html[data-mx-theme="dark"] body .page-head.dash-head::before,html[data-mx-theme="dark"] body .page-head.tender-head::before{
  background:var(--mx-glass)}
html[data-mx-theme="dark"] body .page-head h1{color:#fff}
/* Заголовок списка — градиентным светом: единственное место, где буквы
   цветные, и это не данные, а имя раздела. */
html[data-mx-theme="dark"] body .page-head.dash-head h1{background:var(--mx-text-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;font-size:clamp(1.8rem,1.2rem + 1.4vw,2.6rem);letter-spacing:-.035em}
html[data-mx-theme="dark"] body .todaybar.todaybar{background:var(--mx-glass) !important;border-color:var(--mx-edge) !important;
  box-shadow:var(--mx-hi),var(--mx-sh-card)}
html[data-mx-theme="dark"] body .todaybar.todaybar .tb-num{background:rgba(255,255,255,.06) !important;border-color:rgba(255,255,255,.12) !important;color:#EDE9FE !important;box-shadow:none}
html[data-mx-theme="dark"] body .todaybar.todaybar .tb-num b{color:#fff}
html[data-mx-theme="dark"] body .todaybar.todaybar .tb-num.is-on{background:var(--mx-grad-soft) !important;border-color:rgba(196,181,253,.45) !important;
  box-shadow:0 0 0 1px rgba(196,181,253,.15),0 8px 22px -10px var(--mx-glow-a)}
html[data-mx-theme="dark"] body .todaybar.todaybar .tb-hot{background:rgba(251,191,36,.14) !important;border-color:rgba(251,191,36,.4) !important;color:#FDE68A !important}
html[data-mx-theme="dark"] body .tb-soon a,html[data-mx-theme="dark"] body .tb-what{color:#EDE9FE}
html[data-mx-theme="dark"] body .tb-when{color:#FCD34D}

/* ── 6. Кнопки, поля, чипы ───────────────────────────────────────────── */
html[data-mx-theme="dark"] body a.btn-pri,html[data-mx-theme="dark"] body button.btn-pri,html[data-mx-theme="dark"] body .btn,
html[data-mx-theme="dark"] body .nav-cta{
  background:var(--mx-grad) !important;background-size:140% 100% !important;color:#fff !important;border:0 !important;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 1px 2px rgba(0,0,0,.4),0 10px 28px -10px var(--mx-glow-a),0 6px 24px -12px var(--mx-glow-c) !important}
html[data-mx-theme="dark"] body .nav-cta{border-radius:12px !important;padding:9px 16px}
@media (hover:hover) and (pointer:fine){
  /* hover — свечение, а не смена цвета: градиент чуть сдвигается
     (background-position не анимируем — меняем мгновенно), тень растёт. */
  html[data-mx-theme="dark"] body a.btn-pri:hover,html[data-mx-theme="dark"] body button.btn-pri:hover,html[data-mx-theme="dark"] body .btn:hover,
  html[data-mx-theme="dark"] body .nav-cta:hover{background-position:100% 0 !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 0 0 1px rgba(255,255,255,.08),0 14px 36px -10px var(--mx-glow-a),0 10px 34px -12px var(--mx-glow-c) !important}
}
html[data-mx-theme="dark"] body .btn-sec,html[data-mx-theme="dark"] body a.btn-sec,html[data-mx-theme="dark"] body .btn-sm,html[data-mx-theme="dark"] body .btn-quiet,
html[data-mx-theme="dark"] body .btn-row{
  background:rgba(255,255,255,.06) !important;color:#EDE9FE !important;border:1px solid rgba(255,255,255,.14) !important;box-shadow:var(--mx-hi) !important}
@media (hover:hover) and (pointer:fine){
  html[data-mx-theme="dark"] body .btn-sec:hover,html[data-mx-theme="dark"] body .btn-sm:hover,html[data-mx-theme="dark"] body .btn-quiet:hover,html[data-mx-theme="dark"] body .btn-row:hover{
    background:rgba(167,139,250,.14) !important;border-color:rgba(196,181,253,.45) !important;color:#fff !important;
    box-shadow:var(--mx-hi),0 0 22px -6px var(--mx-glow-a) !important}
}
html[data-mx-theme="dark"] body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),
html[data-mx-theme="dark"] body select,html[data-mx-theme="dark"] body textarea{
  background:rgba(8,6,20,.55) !important;color:#F5F3FF !important;border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.35) !important}
html[data-mx-theme="dark"] body input::placeholder,html[data-mx-theme="dark"] body textarea::placeholder{color:#8F88B5 !important}
html[data-mx-theme="dark"] body input:focus,html[data-mx-theme="dark"] body select:focus,html[data-mx-theme="dark"] body textarea:focus{
  border-color:#A78BFA !important;box-shadow:0 0 0 4px rgba(167,139,250,.22),0 0 24px -6px var(--mx-glow-a) !important}
html[data-mx-theme="dark"] body select option{background:#17142C;color:#F5F3FF}
html[data-mx-theme="dark"] body .form label,html[data-mx-theme="dark"] body label{color:#DCD6F5}
/* Чипы статуса — яркие на тёмном: насыщенная вуаль + светлая буква того же
   тона + кромка. Все пары ≥ 7:1. */
html[data-mx-theme="dark"] body .chip{background:rgba(255,255,255,.06) !important;color:#E4DEFF !important;border:1px solid rgba(255,255,255,.14) !important}
html[data-mx-theme="dark"] body .chip-ok{background:linear-gradient(rgba(52,211,153,.14),rgba(52,211,153,.14)),rgba(8,6,20,.6) !important;color:#A7F3D0 !important;border-color:rgba(52,211,153,.45) !important;box-shadow:0 0 16px -8px rgba(52,211,153,.6)}
html[data-mx-theme="dark"] body .chip-warn{background:linear-gradient(rgba(251,191,36,.13),rgba(251,191,36,.13)),rgba(8,6,20,.6) !important;color:#FDE68A !important;border-color:rgba(251,191,36,.45) !important;box-shadow:0 0 16px -8px rgba(251,191,36,.6)}
html[data-mx-theme="dark"] body .chip-bad{background:linear-gradient(rgba(248,113,113,.14),rgba(248,113,113,.14)),rgba(8,6,20,.6) !important;color:#FECACA !important;border-color:rgba(248,113,113,.5) !important;box-shadow:0 0 16px -8px rgba(248,113,113,.6)}
html[data-mx-theme="dark"] body .status-pill{background:rgba(255,255,255,.07) !important;color:#E4DEFF !important;border:1px solid rgba(255,255,255,.12) !important}
/* Точки статуса: «Расчёт завершён» в светлой теме — графит #1E293B, на
   тёмном он исчезает; здесь — светлая точка с кольцом. Смысловые — ярче. */
html[data-mx-theme="dark"] body .qdot-calc{background:#E4DEFF !important;box-shadow:0 0 0 3px rgba(228,222,255,.16)}
html[data-mx-theme="dark"] body .qdot-ready{box-shadow:0 0 0 3px rgba(52,211,153,.2),0 0 10px rgba(52,211,153,.6)}
html[data-mx-theme="dark"] body .qdot-review{box-shadow:0 0 0 3px rgba(251,191,36,.2),0 0 10px rgba(251,191,36,.5)}
html[data-mx-theme="dark"] body .qdot-error{box-shadow:0 0 0 3px rgba(248,113,113,.2),0 0 10px rgba(248,113,113,.5)}
html[data-mx-theme="dark"] body .status-pill:has(.qdot-ready){background:rgba(52,211,153,.13) !important;color:#A7F3D0 !important;border-color:rgba(52,211,153,.35) !important}
html[data-mx-theme="dark"] body .status-pill:has(.qdot-review){background:rgba(251,191,36,.13) !important;color:#FDE68A !important;border-color:rgba(251,191,36,.35) !important}
html[data-mx-theme="dark"] body .status-pill:has(.qdot-error){background:rgba(248,113,113,.13) !important;color:#FECACA !important;border-color:rgba(248,113,113,.38) !important}
html[data-mx-theme="dark"] body .flag{background:rgba(251,191,36,.15) !important;color:#FCD34D !important;border-color:rgba(251,191,36,.4) !important}
html[data-mx-theme="dark"] body .ok{background:rgba(52,211,153,.14) !important;color:#6EE7B7 !important}
html[data-mx-theme="dark"] body .badge{background:rgba(167,139,250,.16);color:#E4DCFF}

/* ── 7. Список заявок ────────────────────────────────────────────────── */
html[data-mx-theme="dark"] body .qlist-cards .qrow:not(.qrow-add){
  background:var(--mx-glass) !important;border:1px solid var(--mx-edge) !important;
  -webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);
  box-shadow:var(--mx-hi),var(--mx-sh-card) !important}
html[data-mx-theme="dark"] body .qlist-cards .qname{color:#fff}
html[data-mx-theme="dark"] body .qlist-cards .qsum{color:#fff;font-size:20px;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
html[data-mx-theme="dark"] body .qlist-cards .qmeta,html[data-mx-theme="dark"] body .qlist-cards .qinfo{color:var(--mx-muted) !important}
@media (hover:hover) and (pointer:fine){
  html[data-mx-theme="dark"] body .qlist-cards .qrow:not(.qrow-add):hover{background:rgba(34,28,70,.72) !important;border-color:rgba(196,181,253,.32) !important;
    box-shadow:var(--mx-hi),0 0 0 1px rgba(196,181,253,.10),0 18px 50px -22px var(--mx-glow-a),var(--mx-sh-card) !important}
}
html[data-mx-theme="dark"] body .qlist-cards .qrow-add{background:rgba(255,255,255,.03) !important;border-color:rgba(196,181,253,.28) !important;color:#DCD6F5 !important}

/* ── 8. Карточка тендера: блок решения — дашборд премиум-финтеха ────────
   Фон — свой WebGL-холст «hero» (тёмное поле, третья капля — цвет
   вердикта), поверх — свечение вердикта по контуру. Цвет ответа не
   придуман: тот же уровень d-go/d-warn/d-no, что красит заголовок. */
html[data-mx-theme="dark"] body .dblock.d-go{--mx-v:#34D399;--mx-v-glow:rgba(52,211,153,.55)}
html[data-mx-theme="dark"] body .dblock.d-ok{--mx-v:#A78BFA;--mx-v-glow:rgba(167,139,250,.55)}
html[data-mx-theme="dark"] body .dblock.d-warn{--mx-v:#FBBF24;--mx-v-glow:rgba(251,191,36,.50)}
html[data-mx-theme="dark"] body .dblock.d-no{--mx-v:#F87171;--mx-v-glow:rgba(248,113,113,.55)}
html[data-mx-theme="dark"] body .dblock{
  position:relative;isolation:isolate;overflow:hidden;color:var(--mx-ink);
  background:
    radial-gradient(60% 90% at 0% 0%,color-mix(in srgb,var(--mx-v,#A78BFA) 22%,transparent),transparent 70%),
    radial-gradient(50% 80% at 100% 100%,rgba(192,38,211,.22),transparent 70%),
    linear-gradient(160deg,#1A1540 0%,#0F0C24 100%) !important;
  border:1px solid color-mix(in srgb,var(--mx-v,#A78BFA) 38%,rgba(255,255,255,.08)) !important;
  border-left:1px solid color-mix(in srgb,var(--mx-v,#A78BFA) 38%,rgba(255,255,255,.08)) !important;
  border-radius:28px !important;padding:30px 32px 30px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 0 0 1px rgba(255,255,255,.02),
             0 0 0 1px rgba(0,0,0,.4),0 30px 90px -40px var(--mx-v-glow),0 40px 80px -40px rgba(0,0,0,.9) !important}
/* Канвас шейдера внутри блока: под содержимым; поверх — вуаль, которая
   держит самый яркий кадр холста тёмным под текстом. */
html[data-mx-theme="dark"] body .dblock>canvas,html[data-mx-theme="dark"] body .dblock>span.mx-fx-css{position:absolute;inset:0;width:100%;height:100%;z-index:-2;border-radius:inherit}
html[data-mx-theme="dark"] body .dblock::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
  background:linear-gradient(180deg,rgba(11,9,26,.42),rgba(11,9,26,.62))}
/* Полоса цвета вердикта по верхней кромке — сигнал читается и без
   свечения (при reduced-transparency, на тусклом экране). */
html[data-mx-theme="dark"] body .dblock::after{content:"";position:absolute;left:28px;right:28px;top:0;height:2px;z-index:0;pointer-events:none;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--mx-v,#A78BFA) 18%,var(--mx-v,#A78BFA) 60%,transparent);
  box-shadow:0 0 18px 2px var(--mx-v-glow)}
html[data-mx-theme="dark"] body .dblock .muted,html[data-mx-theme="dark"] body .dblock .small.muted{color:#BDB6E0 !important}
html[data-mx-theme="dark"] body .dblock .db-title{font-size:clamp(1.3rem,1.05rem + .7vw,1.75rem) !important;letter-spacing:-.025em;
  color:var(--mx-v,#fff) !important;text-shadow:0 0 28px var(--mx-v-glow)}
html[data-mx-theme="dark"] body .dblock .db-score{background:rgba(255,255,255,.08) !important;color:#fff !important;border:1px solid rgba(255,255,255,.14);box-shadow:var(--mx-hi);font-variant-numeric:tabular-nums}
html[data-mx-theme="dark"] body .dblock .db-score-max{color:#BDB6E0 !important}
html[data-mx-theme="dark"] body .dblock .db-dl,html[data-mx-theme="dark"] body .dblock .db-cust{color:#DCD6F5 !important}
html[data-mx-theme="dark"] body .dblock .db-reasons li,html[data-mx-theme="dark"] body .v-list li{color:#DCD6F5 !important}
html[data-mx-theme="dark"] body .dblock .db-nums{display:grid;align-items:stretch;grid-template-columns:minmax(0,1.32fr) minmax(0,1.32fr) minmax(0,.74fr);gap:14px;margin-top:22px}
html[data-mx-theme="dark"] body .dblock .db-num{position:relative;overflow:hidden;
  /* Тёмная основа под светлой вуалью: холст под плиткой живой, и без основы
     яркое «светило» вердикта съедало контраст подписи (замер: 3,6:1). */
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025)),linear-gradient(rgba(12,9,30,.58),rgba(12,9,30,.58)) !important;
  border:1px solid rgba(255,255,255,.11) !important;border-radius:20px;padding:20px 22px 22px;
  -webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 18px 40px -26px rgba(0,0,0,.9) !important}
/* «Запас» — плитка с подсветкой цвета вердикта: это ответ на вопрос «есть
   ли куда снижать цену», главный после самого вердикта. */
html[data-mx-theme="dark"] body .dblock .db-num:nth-child(3){
  background:radial-gradient(120% 120% at 100% 0%,color-mix(in srgb,var(--mx-v,#A78BFA) 16%,transparent),transparent 65%),
             linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025)),linear-gradient(rgba(12,9,30,.62),rgba(12,9,30,.62)) !important;
  border-color:color-mix(in srgb,var(--mx-v,#A78BFA) 35%,rgba(255,255,255,.1)) !important}
html[data-mx-theme="dark"] body .dblock .db-num .db-cap,html[data-mx-theme="dark"] body .dblock .db-num .small.muted.db-cap{color:#E4DEFF !important;font-size:12px;letter-spacing:.12em}
html[data-mx-theme="dark"] body .dblock .db-big{color:#fff !important;-webkit-text-fill-color:#fff !important}
html[data-mx-theme="dark"] body .dblock .db-big,html[data-mx-theme="dark"] body .dblock .db-mid{
  color:#fff;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;
  font-weight:760;letter-spacing:-.04em;line-height:1.02;white-space:nowrap}
/* Размер — от ширины плитки (cqi), потолок 64 px. Запасной размер — для
   браузеров без контейнерных запросов. */
html[data-mx-theme="dark"] body .dblock .db-big{font-size:34px;font-size:min(64px,12.4cqi)}
html[data-mx-theme="dark"] body .dblock .db-mid{font-size:30px;font-size:min(64px,12.4cqi)}
/* Нет «Запаса» (нет НМЦК или себестоимости) — две плитки делят строку
   поровну, без пустой третьей колонки. */
html[data-mx-theme="dark"] body .dblock .db-nums:not(:has(>.db-num:nth-child(3))){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
/* «Запас» короткий («15%», «в 4,1 раза») — ему можно крупнее всех: до 64 px,
   но не шире своей плитки (10 знаков «в 5092 раза» — 15cqi помещаются). */
html[data-mx-theme="dark"] body .dblock .db-num:nth-child(3) .db-mid{font-size:min(64px,15cqi)}
/* Процент запаса («15%», «100%» — до 4 знаков; класс .db-mid--pct ставит
   шаблон) — во всю силу: 64 px. */
html[data-mx-theme="dark"] body .dblock .db-num .db-mid.db-mid--pct{font-size:min(64px,34cqi)}
html[data-mx-theme="dark"] body .dblock .db-num:nth-child(3) .db-mid{text-shadow:0 0 32px currentColor}
html[data-mx-theme="dark"] body .dblock .db-src,html[data-mx-theme="dark"] body .dblock .db-lsr{color:#BDB6E0 !important}
/* Полоса долей — толстая, со скруглением и мягким свечением своих цветов. */
html[data-mx-theme="dark"] body .dblock .db-shares{margin:18px 0 6px;padding:16px 18px;border-radius:18px;
  background:rgba(255,255,255,.04) !important;border:1px solid rgba(255,255,255,.09) !important;box-shadow:var(--mx-hi) !important;color:#E4DEFF}
@media (hover:hover) and (pointer:fine){
  html[data-mx-theme="dark"] body .dblock .db-shares:hover{background:rgba(255,255,255,.07) !important;border-color:rgba(196,181,253,.3) !important}
}
html[data-mx-theme="dark"] body .dblock .db-meter{height:16px !important;border-radius:999px;background:rgba(255,255,255,.07) !important;overflow:visible !important;
  display:flex;gap:3px;margin-bottom:12px !important;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.5)}
html[data-mx-theme="dark"] body .dblock .db-meter>i{border-radius:999px;box-shadow:0 0 16px -2px var(--mx-v-glow),inset 0 1px 0 rgba(255,255,255,.35)}
html[data-mx-theme="dark"] body .dblock .db-legend,html[data-mx-theme="dark"] body .dblock .db-lg{color:#DCD6F5}
html[data-mx-theme="dark"] body .dblock .db-lg b{color:#fff;font-variant-numeric:tabular-nums}
html[data-mx-theme="dark"] body .dblock .nmc-alert{border-radius:16px !important}
html[data-mx-theme="dark"] body .dblock .db-basis,html[data-mx-theme="dark"] body .dblock .db-cust,html[data-mx-theme="dark"] body .dblock .db-reasons + *{border-top-color:rgba(255,255,255,.09) !important}
html[data-mx-theme="dark"] body .dblock a:not(.btn-sec):not(.db-shares){color:#C4B5FD}
html[data-mx-theme="dark"] body .nmc-alert-ok{background:rgba(52,211,153,.10) !important;border-color:rgba(52,211,153,.38) !important;color:#A7F3D0 !important}
html[data-mx-theme="dark"] body .nmc-alert-warn{background:rgba(251,191,36,.10) !important;border-color:rgba(251,191,36,.38) !important;color:#FDE68A !important}
html[data-mx-theme="dark"] body .nmc-alert-bad{background:rgba(248,113,113,.11) !important;border-color:rgba(248,113,113,.42) !important;color:#FECACA !important}
html[data-mx-theme="dark"] body .nmc-alert b{color:#fff}
/* Вне блока решения плашка лежит прямо на живом фоне — подкладываем
   тёмную основу, иначе её тон зависит от того, какое «светило» под ней. */
html[data-mx-theme="dark"] body .main>.nmc-alert,html[data-mx-theme="dark"] body .card>.nmc-alert{background-color:transparent !important;
  background-image:linear-gradient(var(--mx-alert-tint),var(--mx-alert-tint)),linear-gradient(rgba(18,14,38,.86),rgba(18,14,38,.86)) !important;
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
html[data-mx-theme="dark"] body .nmc-alert-ok{--mx-alert-tint:rgba(52,211,153,.10)}
html[data-mx-theme="dark"] body .nmc-alert-warn{--mx-alert-tint:rgba(251,191,36,.10)}
html[data-mx-theme="dark"] body .nmc-alert-bad{--mx-alert-tint:rgba(248,113,113,.11)}
html[data-mx-theme="dark"] body .qlist .qname,html[data-mx-theme="dark"] body .view-toggle a:not(.is-on){color:#EDE9FE !important}
/* Свечение за курсором (motion-v2.js двигает .mx-glow через transform). */
html[data-mx-theme="dark"] body .dblock>.mx-glow{position:absolute;left:-260px;top:-260px;width:520px;height:520px;z-index:-1;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--mx-v,#A78BFA) 26%,transparent),transparent);
  opacity:0;transition:opacity 400ms var(--mx-ease-out);will-change:transform}
html[data-mx-theme="dark"] body .dblock.mx-glow-on>.mx-glow{opacity:1}
html[data-mx-theme="light"] .mx-glow{display:none}

/* ── 9. Смета и таблицы ──────────────────────────────────────────────── */
html[data-mx-theme="dark"] body table{color:var(--mx-ink)}
html[data-mx-theme="dark"] body th{color:#C9C2EC !important;background:transparent}
html[data-mx-theme="dark"] body td,html[data-mx-theme="dark"] body th{border-color:rgba(255,255,255,.07) !important}
html[data-mx-theme="dark"] body tbody tr:hover>td{background:rgba(255,255,255,.025)}
/* Статус-чипы строк: яркий тон на тёмной вуали, кромка того же тона. */
html[data-mx-theme="dark"] body tr.rs-ok .rs-chip{background:rgba(52,211,153,.15) !important;color:#6EE7B7 !important;border-color:rgba(52,211,153,.45) !important}
html[data-mx-theme="dark"] body tr.rs-srcknown .rs-chip{background:rgba(147,197,253,.13) !important;color:#BFDBFE !important;border-color:rgba(147,197,253,.4) !important}
html[data-mx-theme="dark"] body tr.rs-flag .rs-chip{background:rgba(251,191,36,.14) !important;color:#FCD34D !important;border-color:rgba(251,191,36,.45) !important}
html[data-mx-theme="dark"] body tr.rs-bad .rs-chip{background:rgba(248,113,113,.15) !important;color:#FCA5A5 !important;border-color:rgba(248,113,113,.5) !important}
html[data-mx-theme="dark"] body .rs-chip{border-radius:999px !important;padding:2px 9px !important;border-width:1px;border-style:solid}
html[data-mx-theme="dark"] body .ok,html[data-mx-theme="dark"] body .flag{border-radius:999px !important}
/* Меню «Документы и выгрузки» — сплошной материал: сквозь него не должны
   читаться строки сметы. */
html[data-mx-theme="dark"] body .export-menu-pop{background:var(--mx-glass-solid) !important;border:1px solid rgba(255,255,255,.12) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 24px 60px -18px rgba(0,0,0,.9) !important}
html[data-mx-theme="dark"] body .export-menu-pop a{color:#E4DEFF !important}
html[data-mx-theme="dark"] body .export-menu-pop a:hover{background:rgba(167,139,250,.16) !important;color:#fff !important}
html[data-mx-theme="dark"] body .m-modal,html[data-mx-theme="dark"] body .m-toast{background:var(--mx-glass-solid) !important;color:var(--mx-ink);border-color:rgba(255,255,255,.12) !important}
html[data-mx-theme="dark"] body .err{background:rgba(248,113,113,.12) !important;color:#FECACA !important;border-color:rgba(248,113,113,.4) !important}
html[data-mx-theme="dark"] body code,html[data-mx-theme="dark"] body kbd{background:rgba(255,255,255,.08);color:#EDE9FE}
/* Инлайновые цвета шаблонов, которых не достать переменной: красный
   #c0392b / #e53e3e на тёмном даёт ~3:1 — поднимаем до читаемого. */
html[data-mx-theme="dark"] body [style*="color:#c0392b"],html[data-mx-theme="dark"] body [style*="color:#e53e3e"],
html[data-mx-theme="dark"] body [style*="color:#dc2626"]{color:#FCA5A5 !important}
html[data-mx-theme="dark"] body [style*="background:#e53e3e"]{background:#F87171 !important}

/* Средняя ширина (ноутбук 1024–1180, планшет): три плитки в ряд сжимали
   числа до 25 px, а «в 5092 раза» — до 14 px. Деньги — парой, запас —
   строкой под ними во всю ширину. */
@media(min-width:761px) and (max-width:1180px){
  html[data-mx-theme="dark"] body .dblock .db-nums{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  html[data-mx-theme="dark"] body .dblock .db-num:nth-child(3){grid-column:1 / -1}
  html[data-mx-theme="dark"] body .dblock .db-num:nth-child(3) .db-mid{font-size:min(56px,8cqi)}
  html[data-mx-theme="dark"] body .dblock .db-num .db-mid.db-mid--pct{font-size:min(64px,10cqi)}
}

/* ── 10. Мобильная шапка ─────────────────────────────────────────────── */
@media(max-width:760px){
  html[data-mx-theme="dark"] body .mobile-topbar{background:rgba(11,10,20,.62) !important;border-bottom:1px solid rgba(255,255,255,.08) !important;color:#fff}
  html[data-mx-theme="dark"] body .mobile-brand{color:#fff !important}
  html[data-mx-theme="dark"] body .mobile-brand span{color:var(--mx-muted)}
  html[data-mx-theme="dark"] body .mobile-menu-btn,html[data-mx-theme="dark"] body .mobile-quick{background:rgba(255,255,255,.07) !important;color:#EDE9FE !important;border-color:rgba(255,255,255,.14) !important}
  html[data-mx-theme="dark"] body .mobile-dimmer{background:rgba(5,4,12,.6) !important}
  html[data-mx-theme="dark"] body.has-side .app-side{background:linear-gradient(180deg,#16123A 0%,#0C0A1C 100%) !important}
  html[data-mx-theme="dark"] body .dblock{padding:22px 18px 22px !important;border-radius:22px !important}
  html[data-mx-theme="dark"] body .dblock .db-nums{grid-template-columns:1fr;gap:10px}
  html[data-mx-theme="dark"] body .dblock .db-num{padding:16px 18px 18px;border-radius:16px}
  /* На телефоне плитка — во всю ширину: 64 px «Запаса» и ~40 px денег. */
  html[data-mx-theme="dark"] body .dblock .db-big{font-size:34px;font-size:min(48px,12cqi)}
  html[data-mx-theme="dark"] body .dblock .db-mid{font-size:32px;font-size:min(48px,12cqi)}
  html[data-mx-theme="dark"] body .dblock .db-num:nth-child(3) .db-mid{font-size:min(56px,14cqi)}
  html[data-mx-theme="dark"] body .dblock .db-num .db-mid.db-mid--pct{font-size:min(64px,22cqi)}
  html[data-mx-theme="dark"] body .dblock .db-meter{height:14px !important}
  html[data-mx-theme="dark"] body .page-head.dash-head h1{font-size:30px}
}

/* ── 11. Вход и регистрация: герой на весь экран ─────────────────────────
   В тёмной теме хиро — не карточка в рамке, а вся первая полоса экрана:
   выходит из .wrap на всю ширину окна, живой холст «auth» под ней. */
html[data-mx-theme="dark"] body .hero[data-shader-bg],html[data-mx-theme="dark"] body .auth-hero[data-shader-bg]{
  position:relative;isolation:isolate;
  width:100vw;max-width:none;margin:-1px 0 0 calc(50% - 50vw);border-radius:0;border:0;
  padding:clamp(36px,5vw,72px) max(24px,calc((100vw - 1180px) / 2)) clamp(48px,6vw,96px);
  min-height:calc(100vh - 64px);min-height:calc(100svh - 64px);
  background:
    radial-gradient(40% 50% at 18% 20%,rgba(124,58,237,.65),transparent 70%),
    radial-gradient(40% 50% at 85% 25%,rgba(37,99,235,.55),transparent 70%),
    radial-gradient(45% 55% at 70% 95%,rgba(219,39,119,.45),transparent 70%),
    linear-gradient(180deg,#1A1040 0%,#0B0A14 100%) !important;
  box-shadow:none !important;overflow:hidden}
html[data-mx-theme="dark"][data-mx-accent="aurora"] body .hero[data-shader-bg],html[data-mx-theme="dark"][data-mx-accent="aurora"] body .auth-hero[data-shader-bg]{
  background:
    radial-gradient(40% 50% at 18% 20%,rgba(16,185,129,.5),transparent 70%),
    radial-gradient(40% 50% at 85% 25%,rgba(8,145,178,.5),transparent 70%),
    radial-gradient(45% 55% at 70% 95%,rgba(139,92,246,.5),transparent 70%),
    linear-gradient(180deg,#0B1A2A 0%,#0A0A14 100%) !important}
html[data-mx-theme="dark"] body .hero[data-shader-bg]>canvas,html[data-mx-theme="dark"] body .auth-hero[data-shader-bg]>canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
/* Вуаль над холстом: самый яркий кадр «светил» не должен съедать контраст
   подписей (на телефоне пятно занимает пол-экрана). */
html[data-mx-theme="dark"] body .hero[data-shader-bg]::before,html[data-mx-theme="dark"] body .auth-hero[data-shader-bg]::before{
  content:"";display:block !important;position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(9,7,22,.22) 0%,rgba(9,7,22,.42) 60%,rgba(9,7,22,.5) 100%) !important;animation:none !important;opacity:1 !important;filter:none !important}
@media(max-width:860px){
  html[data-mx-theme="dark"] body .hero[data-shader-bg]::before,html[data-mx-theme="dark"] body .auth-hero[data-shader-bg]::before{
    background:linear-gradient(180deg,rgba(9,7,22,.38),rgba(9,7,22,.58)) !important}
}
/* Нижний край хиро растворяется в полотне страницы — без шва. */
html[data-mx-theme="dark"] body .hero[data-shader-bg]::after,html[data-mx-theme="dark"] body .auth-hero[data-shader-bg]::after{
  content:"";display:block !important;position:absolute;left:0;right:0;bottom:0;height:160px;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,transparent,var(--mx-canvas))}
html[data-mx-theme="dark"] body .hero-h1{color:#fff !important;font-size:clamp(2.4rem,1.2rem + 3vw,4.1rem) !important;line-height:.98;letter-spacing:-.045em;font-weight:820}
html[data-mx-theme="dark"] body .hero-h1 .mx-grad-text,html[data-mx-theme="dark"] body .mx-grad-text{background:var(--mx-text-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent}
html[data-mx-theme="dark"] body .hero-sub{color:#DCD6F5 !important;font-size:clamp(16px,1.2vw,19px)}
html[data-mx-theme="dark"] body .hero-badge{background:rgba(10,8,26,.5) !important;color:#EDE9FE !important;border:1px solid rgba(255,255,255,.18) !important;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--mx-hi)}
html[data-mx-theme="dark"] body .hero-points b{color:#fff}
html[data-mx-theme="dark"] body .hero-points .muted{color:#C9C2EC !important}
html[data-mx-theme="dark"] body .hero-points .hp-ico{background:rgba(255,255,255,.08) !important;color:#E4DCFF !important;border:1px solid rgba(255,255,255,.14);box-shadow:var(--mx-hi)}
html[data-mx-theme="dark"] body .hero-pitch>.muted.small{color:#C9C2EC !important}
html[data-mx-theme="dark"] body .hero-form .form-card,html[data-mx-theme="dark"] body .auth-hero .card.form{
  background:rgba(16,12,36,.58) !important;border:1px solid rgba(255,255,255,.14) !important;
  -webkit-backdrop-filter:blur(28px) saturate(160%);backdrop-filter:blur(28px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 40px 100px -40px rgba(0,0,0,.9),0 0 0 1px rgba(0,0,0,.3) !important}
html[data-mx-theme="dark"] body .form-title{color:#fff}
html[data-mx-theme="dark"] body .hero-form .btn,html[data-mx-theme="dark"] body .auth-hero .btn{width:100%;padding:13px 18px;font-size:15.5px;font-weight:700}
html[data-mx-theme="dark"] body .hero-form .link,html[data-mx-theme="dark"] body .auth-hero a{color:#DDD6FE}
html[data-mx-theme="dark"] body .hero-form .muted,html[data-mx-theme="dark"] body .auth-hero .muted{color:#DCD6F5 !important}
html[data-mx-theme="dark"] body .pricing h2{color:#fff}
html[data-mx-theme="dark"] body .pprice{color:#fff}
html[data-mx-theme="dark"] body .btn-social{background:rgba(255,255,255,.06) !important;color:#F5F3FF !important;border-color:rgba(255,255,255,.14) !important}

/* ── 12. Макет карточки тендера на входе (HTML из настоящих классов) ─────
   Не картинка: тот же .dblock, что на карточке, — значит, и в тёмной, и
   в светлой теме макет выглядит ровно как продукт. Плавает: 7 с вверх-вниз
   на 8 px (далеко от «укачивающих» 0,2 Гц и только transform). */
.mx-mock{position:relative;margin-top:30px;max-width:640px;perspective:1400px}
.mx-mock-card{transform:rotateX(6deg) rotateY(-8deg) rotateZ(.6deg);transform-origin:30% 50%;transform-style:preserve-3d}
html.mx-anim .mx-mock-card{animation:mx-float 7s var(--mx-ease-in-out) 600ms infinite alternate}
@keyframes mx-float{from{transform:rotateX(6deg) rotateY(-8deg) rotateZ(.6deg) translate3d(0,0,0)}
  to{transform:rotateX(4deg) rotateY(-5deg) rotateZ(.2deg) translate3d(0,-8px,0)}}
.mx-mock .dblock{margin:0;pointer-events:none;user-select:none}
.mx-mock .dblock .db-num{container-type:inline-size}
.mx-mock-tag{position:absolute;z-index:2;font-size:12px;font-weight:700;letter-spacing:.02em;padding:6px 11px;border-radius:999px;white-space:nowrap}
/* Размеры макета — для обеих тем (в светлой v1-правила блока решения
   рассчитаны на ширину карточки, а не на макет в половину хиро). */
html body .mx-mock .dblock{padding:22px 22px 20px !important;border-radius:24px !important}
html body .mx-mock .dblock .db-head{flex-wrap:nowrap}
html body .mx-mock .dblock .db-nums{display:grid;margin-top:16px;gap:10px;grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,.8fr)}
html body .mx-mock .dblock .db-num{padding:14px 14px 16px;border-radius:16px;min-width:0}
html body .mx-mock .dblock .db-cap{font-size:10.5px;letter-spacing:.07em;line-height:1.25}
html body .mx-mock .dblock .db-big,html body .mx-mock .dblock .db-mid{font-size:22px;font-size:min(40px,12cqi);white-space:nowrap;font-weight:760;letter-spacing:-.035em}
html body .mx-mock .dblock .db-num:nth-child(3) .db-mid{font-size:min(44px,24cqi)}
html body .mx-mock .dblock .db-title{font-size:20px !important;white-space:nowrap}
html[data-mx-theme="light"] body .mx-mock .dblock .db-num{padding:12px 12px 14px}
html[data-mx-theme="light"] body .mx-mock .dblock .db-big,html[data-mx-theme="light"] body .mx-mock .dblock .db-mid{font-size:min(30px,14.5cqi)}
html[data-mx-theme="light"] body .mx-mock .dblock .db-num:nth-child(3) .db-mid{font-size:min(36px,26cqi)}
html[data-mx-theme="dark"] body .mx-mock-tag{background:rgba(16,12,36,.72);color:#EDE9FE;border:1px solid rgba(255,255,255,.16);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 14px 34px -14px rgba(0,0,0,.9)}
html[data-mx-theme="light"] .mx-mock-tag{background:rgba(255,255,255,.8);color:#363F54;border:1px solid rgba(255,255,255,.9);box-shadow:var(--mx-sh-2)}
.mx-mock-tag--a{right:-10px;top:-14px}
.mx-mock-tag--b{left:-12px;bottom:-14px}
/* «Пример» — над левым верхним углом макета, в обеих темах.
   Тёмная: #FFFFFF на #2A2350 ≈ 13:1; светлая: #2E1F6B на #FFFFFF ≈ 13:1. */
/* Подпись плитки в макете: правило блока решения (.12em) тяжелее и рвало
   «СЕБЕСТОИМОСТЬ» на 390 — для макета трекинг уже. */
html[data-mx-theme] body .mx-mock .dblock .db-num .db-cap{font-size:10.5px !important;letter-spacing:.05em !important;white-space:nowrap}
.mx-mock-tag--ex{left:-10px;top:-14px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800}
html[data-mx-theme="dark"] body .mx-mock-tag--ex{background:#2A2350;color:#fff;border:1px solid rgba(255,255,255,.28)}
html[data-mx-theme="light"] body .mx-mock-tag--ex{background:#fff;color:#2E1F6B;border:1px solid rgba(76,56,160,.35)}
@media(max-width:860px){.mx-mock-tag--ex{left:8px}}
/* Длинная честная подпись не должна вылезать за макет на телефоне. */
.mx-mock-tag--b{max-width:calc(100% - 16px);white-space:normal;line-height:1.3}
@media(max-width:860px){.mx-mock-tag--b{position:static;display:inline-block;margin:12px 0 0;max-width:100%}}
.mx-mock-tag i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px;background:#34D399;box-shadow:0 0 10px #34D399}
@media(max-width:860px){
  .mx-mock{margin-top:8px}
  .mx-mock-card{transform:none}
  html.mx-anim .mx-mock-card{animation:none}
  .mx-mock-tag--a{right:8px}
  .mx-mock-tag--b{left:8px}
}
@media(max-width:560px){
  html body .mx-mock .dblock .db-nums{grid-template-columns:1fr 1fr}
  html body .mx-mock .dblock .db-num:nth-child(3){grid-column:1 / -1}
  html body .mx-mock .dblock .db-head{flex-wrap:wrap}
  html body .mx-mock .dblock .db-title{white-space:normal}
}

/* ── 13. Появление: stagger + размытие → резкость ───────────────────────
   Поверх v1-входа (design-v2.css §8): в тёмной теме блоки ещё и
   «наводятся на резкость» (blur 8 → 0) — стекло материализуется, а не
   просто проявляется (apple §12). 360 мс, ease-out, шаг 45 мс. */
@keyframes mx-rise-dark{from{opacity:0;transform:translateY(14px) scale(.985);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
html.mx-anim[data-mx-theme="dark"] .main .page-head,
html.mx-anim[data-mx-theme="dark"] .main .todaybar,
html.mx-anim[data-mx-theme="dark"] .main .dblock,
html.mx-anim[data-mx-theme="dark"] .main .card,
html.mx-anim[data-mx-theme="dark"] .qlist-cards>.qrow,
html.mx-anim[data-mx-theme="dark"] .hero-pitch>*,html.mx-anim[data-mx-theme="dark"] .hero-form,
html.mx-anim[data-mx-theme="dark"] .mx-mock,html.mx-anim[data-mx-theme="dark"] .auth-hero>*{
  animation:mx-rise-dark 360ms var(--mx-ease-out) backwards !important;animation-delay:var(--mx-d,0ms) !important}
html.mx-anim[data-mx-theme="dark"] .hero-pitch>:nth-child(2){--mx-d:45ms}
html.mx-anim[data-mx-theme="dark"] .hero-pitch>:nth-child(3){--mx-d:90ms}
html.mx-anim[data-mx-theme="dark"] .hero-pitch>:nth-child(4){--mx-d:135ms}
html.mx-anim[data-mx-theme="dark"] .hero-pitch>:nth-child(n+5){--mx-d:180ms}
html.mx-anim[data-mx-theme="dark"] .hero-form{--mx-d:120ms}
html.mx-anim[data-mx-theme="dark"] .mx-mock{--mx-d:260ms}
html.mx-anim[data-mx-theme="dark"] .auth-hero>:nth-child(2){--mx-d:120ms}
html.mx-anim[data-mx-theme="dark"] .auth-hero>:nth-child(3){--mx-d:200ms}
/* После входа плавание макета продолжает свой собственный цикл: задержка
   сверху — именно поэтому у .mx-mock-card своя анимация, а не у .mx-mock. */

/* ── 14. Переключатель темы ──────────────────────────────────────────── */
.mx-theme-btn{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
  padding:6px 10px;border-radius:10px;border:1px solid transparent;background:transparent;color:inherit;
  transition:transform var(--mx-t-press) var(--mx-ease-out),background-color var(--mx-t-fast) ease,border-color var(--mx-t-fast) ease}
.mx-theme-btn:active{transform:scale(.97)}
.mx-theme-btn:focus-visible{outline:2px solid #A78BFA;outline-offset:2px}
.mx-theme-ico{position:relative;width:16px;height:16px;border-radius:50%;flex:none;
  /* луна/солнце одним кругом: в тёмной — «солнце» (что включит), в светлой — «луна» */
  background:radial-gradient(circle at 50% 50%,#FCD34D 0 45%,transparent 47%);
  box-shadow:0 0 0 2px rgba(252,211,77,.25)}
html[data-mx-theme="light"] .mx-theme-ico{background:radial-gradient(circle at 70% 30%,transparent 0 40%,#6D4AFF 42%);box-shadow:none}
.side-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
html[data-mx-theme="dark"] .side-actions .mx-theme-btn{color:#CBC5EA;border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.04)}
html[data-mx-theme="light"] .side-actions .mx-theme-btn{color:#E2D6FF;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06)}
.mx-theme-btn--icon .mx-theme-lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mx-theme-btn--icon{padding:9px;margin-right:4px}
html[data-mx-theme="dark"] .mx-theme-btn--icon{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.05)}
html[data-mx-theme="light"] .mx-theme-btn--icon{border-color:rgba(76,56,160,.18);background:rgba(255,255,255,.6)}
@media (hover:hover) and (pointer:fine){
  html[data-mx-theme="dark"] .mx-theme-btn:hover{background:rgba(255,255,255,.09);color:#fff}
}
/* Перекрёстное растворение темы: 280 мс, без сдвигов. */
::view-transition-old(root),::view-transition-new(root){animation-duration:280ms;animation-timing-function:cubic-bezier(.23,1,.32,1)}

/* Хиро вплотную к шапке: отступ .main сверху на гостевых страницах с
   хиро убираем, иначе между шапкой и градиентом остаётся полоса фона. */
html[data-mx-theme="dark"] body main.wrap.main:has(>.hero[data-shader-bg]),html[data-mx-theme="dark"] body main.wrap.main:has(>.auth-hero){padding-top:0 !important;margin-top:0 !important}
html[data-mx-theme="dark"] body .hero[data-shader-bg],html[data-mx-theme="dark"] body .auth-hero[data-shader-bg]{margin-top:0 !important}

/* «Начать бесплатно» — белым по градиенту в ОБЕИХ темах. В v1 буквы были
   тёмными: .nav-pub a{color:var(--ink-2)} (motion.css) перебивал .nav-cta. */
html body .nav-pub a.nav-cta{color:#fff !important;white-space:nowrap}
html[data-mx-theme="light"] body .nav-pub a.nav-cta{background:linear-gradient(135deg,#6D4AFF 0%,#5B36D9 55%,#5632D6 100%) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 8px 20px -10px rgba(91,54,217,.65) !important}
/* Узкий телефон: шапка не переносится в две строки — остаются знак,
   переключатель темы и кнопка; имя продукта стоит в самом хиро. */
@media(max-width:480px){
  html body .hdr .brand>span:not(.logo){display:none}
  html body .hdr .nav-pub{gap:8px}
  html body .nav-pub a.nav-cta{padding:9px 14px}
}

/* ── 15. Раскладка входа и регистрации (обе темы) ──────────────────────
   Вход: слева — питч и под ним макет продукта, справа — форма на всю
   высоту; три пункта «что умеет» — строкой под ними. На телефоне форма
   идёт СРАЗУ после заголовка: войти важнее, чем рассмотреть макет. */
html body .hero[data-shader-bg]{display:grid;align-items:start}
@media(min-width:861px){
  html body .hero[data-shader-bg]{grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);
    grid-template-areas:"pitch form" "mock form" "points points";column-gap:56px;row-gap:8px}
  html body .hero[data-shader-bg]>.hero-pitch{grid-area:pitch}
  html body .hero[data-shader-bg]>.hero-form{grid-area:form;align-self:center}
  html body .hero[data-shader-bg]>.mx-mock{grid-area:mock}
  html body .hero[data-shader-bg]>.mx-points{grid-area:points}
}
@media(max-width:860px){
  html body .hero[data-shader-bg]{grid-template-columns:minmax(0,1fr);row-gap:22px}
  html body .hero[data-shader-bg]>.hero-pitch{order:1}
  html body .hero[data-shader-bg]>.hero-form{order:2}
  html body .hero[data-shader-bg]>.mx-mock{order:3}
  html body .hero[data-shader-bg]>.mx-points{order:4}
}
html body .mx-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:34px 0 0;padding:0}
html body .mx-points li{padding:16px 18px;border-radius:18px}
html[data-mx-theme="dark"] body .mx-points li{background:rgba(10,8,26,.48);border:1px solid rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--mx-hi)}
html[data-mx-theme="light"] body .mx-points li{background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.8)}
@media(max-width:860px){html body .mx-points{grid-template-columns:1fr;margin-top:6px}}
html body .hero-pitch .hero-sub{max-width:560px}

/* Регистрация: два столбца — питч и форма. */
html body .auth.auth-hero[data-shader-bg]{display:grid;gap:24px 56px;align-items:center;text-align:left}
html[data-mx-theme="light"] body .auth.auth-hero[data-shader-bg]{max-width:1120px}
@media(min-width:861px){
  html body .auth.auth-hero[data-shader-bg]{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);
    grid-template-areas:"pitch form" "illus form"}
  html body .auth.auth-hero[data-shader-bg]>.auth-pitch{grid-area:pitch}
  html body .auth.auth-hero[data-shader-bg]>.auth-col{grid-area:form}
  html body .auth.auth-hero[data-shader-bg]>.auth-illustration{grid-area:illus;align-self:start}
}
/* На телефоне форма идёт сразу после питча — тот же приём, что для
   .mx-mock на входе: регистрация важнее, чем рассмотреть иллюстрацию. */
@media(max-width:860px){
  html body .auth.auth-hero[data-shader-bg]>.auth-pitch{order:1}
  html body .auth.auth-hero[data-shader-bg]>.auth-col{order:2}
  html body .auth.auth-hero[data-shader-bg]>.auth-illustration{order:3}
}
html body .auth-illustration img{display:block;width:100%;height:auto;border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}
html body .auth-hero h1{font-size:clamp(2.2rem,1.4rem + 2.6vw,4rem) !important;line-height:1;letter-spacing:-.045em;margin:0 0 10px}
html body .auth-hero .auth-pitch>.muted{font-size:17px}
html body .auth-gets{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px;max-width:520px}
html body .auth-gets li{display:grid;gap:2px;padding:14px 16px 14px 44px;border-radius:16px;position:relative}
html body .auth-gets li::before{content:"";position:absolute;left:16px;top:18px;width:14px;height:14px;border-radius:50%;
  background:var(--mx-grad,linear-gradient(135deg,#8466FF,#5632D6));box-shadow:0 0 14px -2px var(--mx-glow-a,rgba(109,74,255,.6))}
html body .auth-gets b{font-size:15px}
html body .auth-gets span{font-size:13.5px;line-height:1.45}
html[data-mx-theme="dark"] body .auth-gets li{background:rgba(10,8,26,.48);border:1px solid rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
html[data-mx-theme="dark"] body .auth-gets b{color:#fff}
html[data-mx-theme="dark"] body .auth-gets span{color:#DCD6F5}
html[data-mx-theme="light"] body .auth-gets li{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.85)}
html[data-mx-theme="light"] body .auth-gets span{color:var(--mx-ink-2)}
/* Светлая: белый на #8466FF (верхний стоп v1) — 3,9:1; начинаем с #6D4AFF (5,2:1). */
html[data-mx-theme="light"] body a.btn-pri,html[data-mx-theme="light"] body button.btn-pri,html[data-mx-theme="light"] body .btn{
  background:linear-gradient(135deg,#6D4AFF 0%,#5B36D9 55%,#5632D6 100%) !important}
/* Подписи регистрации в светлой теме лежат прямо на градиенте — графит, а не серый. */
html[data-mx-theme="light"] body .auth-hero .muted,html[data-mx-theme="light"] body .auth-hero .muted a,
html[data-mx-theme="light"] body .hero-pitch>.muted.small{color:#363F54 !important}
html[data-mx-theme="light"] body .auth-col a{color:#4B2AA8 !important;font-weight:650}
html body .auth-col .card.form{padding:28px}
html[data-mx-theme="light"] body .auth.auth-hero[data-shader-bg]{padding:44px 44px 36px}
@media(max-width:860px){
  html[data-mx-theme="light"] body .auth.auth-hero[data-shader-bg]{padding:26px 18px 20px}
  html body .auth-gets{margin-top:18px}
  html body .auth-col .card.form{padding:22px}
}

/* ── 16. Доступность ─────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  .mx-mock-card,html.mx-anim .mx-mock-card{animation:none !important}
  ::view-transition-old(root),::view-transition-new(root){animation:none !important}
}
@media (prefers-reduced-transparency: reduce){
  html[data-mx-theme="dark"] body .card,html[data-mx-theme="dark"] body .qlist-cards .qrow:not(.qrow-add),html[data-mx-theme="dark"] body .todaybar.todaybar,
  html[data-mx-theme="dark"] body .page-head.dash-head::before,html[data-mx-theme="dark"] body .page-head.tender-head::before,
  html[data-mx-theme="dark"] body .hero-form .form-card,html[data-mx-theme="dark"] body .auth-hero .card.form,html[data-mx-theme="dark"] body .dblock .db-num,
  html[data-mx-theme="dark"] body .hdr,html[data-mx-theme="dark"] body .mobile-topbar{
    background:#17142C !important;-webkit-backdrop-filter:none !important;backdrop-filter:none !important}
  html[data-mx-theme="dark"] body.has-side .app-side{background:#100D22 !important;-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media (prefers-contrast: more){
  html[data-mx-theme="dark"] body .card,html[data-mx-theme="dark"] body .qlist-cards .qrow,html[data-mx-theme="dark"] body .dblock .db-num{
    background:#0B0A14 !important;border-color:#B3ACD6 !important}
  html[data-mx-theme="dark"] body .muted{color:#DCD6F5 !important}
}
}
