/* ==========================================================================
   Публичный сайт TWS: главная (лендинг), вход/регистрация, публичный поиск.
   Редизайн 10.2026 — на дизайн-токенах кабинета (static/css/tokens.css
   подключается ПЕРВЫМ, тёмная тема — data-theme="auto" + prefers-color-scheme).
   Только токены --color-* / --space-* / --radius-* / --shadow-*; без
   захардкоженных цветов, кроме полосы бренда (--lp-band-*), заданной здесь же
   для обеих тем. Шрифты — /static/fonts (CSP font-src 'self').

   Разделы файла:
     0. Шрифты и локальные токены
     1. База, контейнер, кнопки, формы
     2. Шапка и футер
     3. Лендинг (.lp-*)
     4. Мокапы интерфейса (.mock-*) — демо-данные, без персональных данных
     5. Тарифы (резервная разметка, если нет _pricing_plans.html)
     6. Вход/регистрация (.auth-*)
     7. Публичный поиск и компоненты выдачи (_supplier_analysis_v2 и др.)
   ========================================================================== */

/* ---- 0. Шрифты и локальные токены ---------------------------------------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;
  src:url('/static/fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;
  src:url('/static/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;
  src:url('/static/fonts/inter-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;
  src:url('/static/fonts/inter-cyrillic-ext.woff2') format('woff2');
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
/* 20.10.2026: урезанный статичный шрифт иконок публичного сайта (~10 КБ вместо ~4 МБ):
   только имена из static/fonts/material-symbols-public.txt, оси FILL 0/wght 400/GRAD 0/opsz 24
   (scripts/build_public_icon_font.py). Кабинет (cabinet.css) грузит полный шрифт. */
@font-face{font-family:'Material Symbols Outlined';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('/static/fonts/material-symbols-public.woff2?v=20261022') format('woff2');}

:root{
  --lp-max:1200px;
  --lp-gutter:16px;
  --lp-section-y:64px;
  /* Тёмная «полоса бренда» (финальный CTA, акцентный блок) — в обеих темах
     тёмная; текст на ней #fff (15:1) и --lp-band-muted (≥ 9:1). */
  --lp-band-bg:#0f2747; --lp-band-bg-2:#1a3a66; --lp-band-border:transparent;
  --lp-band-text:#ffffff; --lp-band-muted:#c9d7ec;
  --lp-hero-glow:rgba(240,116,15,.10); --lp-hero-glow-2:rgba(52,102,176,.10);
  --lp-grid-line:rgba(15,39,71,.05);
  --panel2:var(--color-surface-2);   /* старое имя из inline-стилей шаблонов */
  --primary2:var(--color-link);
}
:root[data-theme="dark"]{
  --lp-band-bg:#13213a; --lp-band-bg-2:#182a4a; --lp-band-border:#24406b;
  --lp-hero-glow:rgba(255,138,61,.10); --lp-hero-glow-2:rgba(122,162,247,.10);
  --lp-grid-line:rgba(255,255,255,.04);
}
@media (prefers-color-scheme:dark){
  :root[data-theme="auto"]{
    --lp-band-bg:#13213a; --lp-band-bg-2:#182a4a; --lp-band-border:#24406b;
    --lp-hero-glow:rgba(255,138,61,.10); --lp-hero-glow-2:rgba(122,162,247,.10);
    --lp-grid-line:rgba(255,255,255,.04);
  }
}
@media (min-width:640px){ :root{ --lp-gutter:24px; --lp-section-y:80px; } }
@media (min-width:1024px){ :root{ --lp-gutter:32px; --lp-section-y:88px; } }

/* ---- 1. База ------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg);
  color:var(--color-text);font-family:var(--font-sans);font-size:15px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
.page{flex:1 0 auto;width:100%}
.page:focus{outline:none}
h1,h2,h3,h4{color:var(--color-heading);margin:0;font-weight:650;letter-spacing:-.015em;line-height:1.25}
p{margin:0}
a{color:var(--color-link);text-decoration:none}
a:hover{color:var(--color-link-hover);text-decoration:underline;text-underline-offset:2px}
img,svg{max-width:100%}
:focus-visible{outline:var(--ring-width) solid var(--color-focus);outline-offset:2px;border-radius:4px}
.material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;vertical-align:middle;line-height:1;
  font-size:20px;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;
  -webkit-font-smoothing:antialiased;flex-shrink:0;overflow:hidden;width:1em;font-feature-settings:'liga'}
/* 20.10.2026: имя иконки - в data-icon, не в тексте (не попадает в индексируемый текст и сниппеты);
   лигатура работает и в ::before. */
.material-symbols-outlined[data-icon]::before{content:attr(data-icon)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--color-surface);color:var(--color-text);
  padding:10px 14px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-weight:600}
.skip-link:focus{top:12px}
.wrap{width:100%;max-width:calc(var(--lp-max) + 2 * var(--lp-gutter));margin:0 auto;padding:0 var(--lp-gutter)}
.ps-page{padding-bottom:var(--space-9)}
.muted{color:var(--color-text-muted)}
.subtle{color:var(--color-text-subtle)}
.small{font-size:13px}
.num,.tnum{font-variant-numeric:tabular-nums}

/* Кнопки: .btn + модификатор; старые классы (button.primary, .btn.primary,
   button.secondary, .btn-secondary, .btn-sm) поддержаны. */
.btn,button{font:inherit}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-h-lg);
  padding:0 18px;border-radius:var(--radius-md);border:1px solid transparent;font-weight:600;font-size:15px;
  line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-fast)}
.btn:hover{text-decoration:none}
.btn .material-symbols-outlined{font-size:20px}
.btn-primary,.btn.primary,button.primary{background:var(--color-action);border-color:var(--color-action);color:var(--color-on-action)}
.btn-primary:hover,.btn.primary:hover,button.primary:hover{background:var(--color-action-hover);border-color:var(--color-action-hover);color:var(--color-on-action)}
.btn-secondary,button.secondary,.btn.secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}
.btn-secondary:hover,button.secondary:hover,.btn.secondary:hover{background:var(--color-surface-2);border-color:var(--color-border-input);color:var(--color-text)}
.btn-ghost{background:transparent;color:var(--color-text-2)}
.btn-ghost:hover{background:var(--color-surface-hover);color:var(--color-text)}
.btn-on-band{background:transparent;border-color:rgba(255,255,255,.4);color:var(--lp-band-text)}
.btn-on-band:hover{background:rgba(255,255,255,.08);border-color:#fff;color:var(--lp-band-text)}
.btn-lg{min-height:52px;padding:0 24px;font-size:16px;border-radius:var(--radius-lg)}
.btn-sm{min-height:var(--control-h-sm);padding:0 10px;font-size:13px}
.btn-block{width:100%}
button:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}

/* Поля */
label{font-size:14px;font-weight:500;color:var(--color-text)}
input,select,textarea{font:inherit;font-size:15px;color:var(--color-text);background:var(--color-surface);
  border:1px solid var(--color-border-input);border-radius:var(--radius-md);padding:0 14px;
  min-height:var(--control-h-lg);max-width:100%;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
textarea{padding:10px 14px;width:100%;min-height:90px;resize:vertical}
input[type="checkbox"],input[type="radio"]{min-height:0;width:16px;height:16px;padding:0;accent-color:var(--color-action)}
input::placeholder,textarea::placeholder{color:var(--color-text-placeholder)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-focus);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--color-focus) 22%,transparent)}
button{cursor:pointer}
button:not(.btn):not(.supplier-tab):not(.sa-tab):not(.nav-toggle):not(.theme-toggle):not(.nav-more-btn):not(.lp-faq-q):not(.offer-strip-close):not(.cc-btn){min-height:var(--control-h-lg);
  padding:0 18px;border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface);
  color:var(--color-text);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px}
button.primary:not(.btn){border-color:var(--color-action);background:var(--color-action);color:var(--color-on-action)}
button.primary:not(.btn):hover{background:var(--color-action-hover)}
.field{display:flex;flex-direction:column;gap:6px}
.field input{width:100%}
.field-hint{font-size:13px;color:var(--color-text-muted);font-weight:400}
.field-optional{font-weight:400;color:var(--color-text-muted)}
.input-icon{position:relative;flex:1;min-width:0}
.input-icon > .material-symbols-outlined{position:absolute;left:14px;top:50%;transform:translateY(-50%);
  color:var(--color-text-subtle);pointer-events:none}
.input-icon input{width:100%;padding-left:44px}

/* Сообщения */
.error,.notice,.notice-success,.notice-warning{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;
  border-radius:var(--radius-md);margin:0 0 16px;font-size:14px;line-height:1.5;border:1px solid}
.error{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}
.notice{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info)}
.notice-success,.ok{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}
.notice-warning{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-text)}
.error .material-symbols-outlined,.notice .material-symbols-outlined,.notice-success .material-symbols-outlined{margin-top:1px}

/* ---- 2. Шапка и футер ---------------------------------------------------- */
.site-header{position:sticky;top:0;z-index:40;flex-shrink:0;
  background:var(--color-bg);
  background:color-mix(in srgb,var(--color-bg) 82%,transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid var(--color-border)}
.site-header .bar{display:flex;align-items:center;gap:24px;min-height:64px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--color-heading);font-weight:700;
  font-size:16px;letter-spacing:-.01em;text-decoration:none;flex-shrink:0}
.brand:hover{text-decoration:none;color:var(--color-heading)}
.brand img{width:32px;height:32px;border-radius:8px}
.brand-name small{display:block;font-size:11.5px;font-weight:500;color:var(--color-text-muted);letter-spacing:0}
.site-nav{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}
/* 11.10.2026: список ссылок занимает всё свободное место (flex:1 1 0 + min-width:0) и НЕ сжимается ниже
   содержимого пунктов: если они не помещаются, nav_priority.js уводит лишние в «Ещё», а не даёт им налезть
   на «Войти»/CTA (раньше: margin:0 auto + min-width:0 без перераспределения - пункты вылезали поверх кнопок). */
.site-nav-links{display:flex;align-items:center;gap:2px;margin:0 8px 0 12px;padding:0;list-style:none;flex:1 1 0;min-width:0}
.site-nav-links>li{flex:0 0 auto}
.site-nav-links a{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;white-space:nowrap;border-radius:var(--radius-md);
  color:var(--color-text-2);font-size:14.5px;font-weight:500}
.site-nav-links a:hover{color:var(--color-text);background:var(--color-surface-hover);text-decoration:none}
.site-nav-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.site-nav-actions .btn{white-space:nowrap}
.site-nav-actions .btn{min-height:40px;font-size:14.5px;padding:0 16px}
.nav-toggle{display:none;margin-left:auto;width:44px;height:44px;border-radius:var(--radius-md);border:1px solid var(--color-border);
  background:var(--color-surface);color:var(--color-text);align-items:center;justify-content:center;padding:0}
.nav-toggle .material-symbols-outlined{font-size:24px}
/* 02.10.2026: переключатель темы в шапке (светлая → тёмная → как в системе). */
.theme-toggle{order:10;margin-left:12px;width:40px;height:40px;flex:0 0 auto;border-radius:var(--radius-md);
  border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);
  display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer}
.theme-toggle:hover{background:var(--color-surface-2, var(--color-surface));border-color:var(--color-border-strong)}
.theme-toggle:focus-visible{outline:2px solid var(--color-focus, var(--color-action));outline-offset:2px}
.theme-toggle .material-symbols-outlined{font-size:22px}
@media (max-width:960px){
  .site-header .bar{min-height:60px}
  .nav-toggle{display:inline-flex;order:11;margin-left:8px}
  .theme-toggle{order:0;margin-left:auto;width:44px;height:44px}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:8px;
    padding:12px var(--lp-gutter) 20px;background:var(--color-surface);border-bottom:1px solid var(--color-border);
    box-shadow:var(--shadow-lg);max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);overflow-y:auto;overscroll-behavior:contain}
  .site-nav.open{display:flex}
  .site-nav-links{flex-direction:column;align-items:stretch;margin:0;gap:0}
  .site-nav-links a{display:flex;min-height:48px;font-size:16px;padding:0 8px;border-bottom:1px solid var(--color-border);border-radius:0}
  .nav-more{display:none}
  .site-nav-actions{flex-direction:column;align-items:stretch;padding-top:8px}
  .site-nav-actions .btn{min-height:48px;font-size:16px}
}

.site-footer{flex-shrink:0;margin-top:auto;background:var(--color-surface);border-top:1px solid var(--color-border);
  color:var(--color-text-muted);font-size:14px}
.site-footer .footer-grid{display:grid;gap:32px;padding:48px 0 32px;grid-template-columns:1fr}
@media (min-width:640px){.site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer .footer-about{grid-column:1/-1}}
@media (min-width:960px){.site-footer .footer-grid{grid-template-columns:2fr 1fr 1fr}.site-footer .footer-about{grid-column:auto}}
.site-footer .footer-about p{margin-top:12px;max-width:340px;line-height:1.55}
/* 11.10.2026: ссылка на Telegram-канал в подвале (иконка + текст; цвет иконки фирменный, текст - основной цвет темы). */
.site-footer .footer-tg{display:flex;align-items:flex-start;gap:10px;margin-top:16px;max-width:340px;min-height:44px;
  color:var(--color-text);font-weight:500;line-height:1.4;text-decoration:none;overflow-wrap:anywhere;-webkit-tap-highlight-color:transparent}
.site-footer .footer-tg svg{flex:0 0 22px;width:22px;height:22px;margin-top:1px;color:#229ed9}
.site-footer .footer-tg span{min-width:0}
.site-footer .footer-tg:hover span{text-decoration:underline;text-underline-offset:3px}
.site-footer .footer-tg:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:6px}
/* 23.10.2026: «Мы на площадках» - текстовые ссылки-чипы на официальные площадки (brand_links.py). */
.site-footer .footer-social{margin-top:20px;max-width:340px}
.site-footer .footer-about .footer-social-title{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--color-text)}
.site-footer .footer-social ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.site-footer .footer-social a{display:inline-flex;align-items:center;min-height:32px;padding:4px 12px;border:1px solid var(--color-border);
  border-radius:999px;color:var(--color-text);font-size:13px;text-decoration:none;-webkit-tap-highlight-color:transparent}
.site-footer .footer-social a:hover{border-color:var(--color-accent)}
.site-footer .footer-social a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
/* 15.10.2026: кнопка-ссылка на Telegram-бота проверки закупки (hero главной и подвал). Перенос строк, без горизонтального скролла. */
.tg-bot-link{display:inline-flex;align-items:center;gap:10px;box-sizing:border-box;max-width:100%;min-height:44px;padding:10px 14px;
  border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text);font-weight:500;
  font-size:14px;line-height:1.35;text-decoration:none;overflow-wrap:anywhere;-webkit-tap-highlight-color:transparent}
.tg-bot-link svg{flex:0 0 22px;width:22px;height:22px;color:#229ed9}
.tg-bot-link span{min-width:0}
.tg-bot-link:hover{border-color:var(--color-accent)}
.tg-bot-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
.lp-quick .tg-bot-link{margin-top:12px;width:100%}
.site-footer .tg-bot-link{margin-top:16px;max-width:340px}
.site-footer h2,.site-footer .footer-h{font-size:13px;font-weight:600;color:var(--color-text);letter-spacing:0;margin:0 0 12px;line-height:1.25}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.site-footer ul a{color:var(--color-text-muted);display:inline-flex;min-height:32px;align-items:center}
.site-footer ul a:hover{color:var(--color-text)}
.site-footer .footer-bottom{border-top:1px solid var(--color-border);padding:20px 0 28px;display:flex;flex-wrap:wrap;
  gap:8px 24px;justify-content:space-between;font-size:13px;color:var(--color-text-subtle)}

/* ---- 3. Лендинг ---------------------------------------------------------- */
.lp-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--color-accent-text);
  letter-spacing:.01em;margin-bottom:16px}
.lp-eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:var(--color-accent)}
.lp-section{padding:var(--lp-section-y) 0}
.lp-section.is-alt{background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}
.lp-section.is-tight-top{padding-top:0}
.lp-head{max-width:720px;margin-bottom:40px}
.lp-head.is-center{margin-left:auto;margin-right:auto;text-align:center}
.lp-head h2{font-size:clamp(26px,3.2vw,40px);line-height:1.15;letter-spacing:-.025em;font-weight:700}
.lp-head p{margin-top:14px;font-size:17px;line-height:1.6;color:var(--color-text-muted)}

/* Hero */
.lp-hero{position:relative;overflow:hidden;padding:48px 0 56px;isolation:isolate}
.lp-hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(600px 360px at 85% 10%,var(--lp-hero-glow),transparent 70%),
    radial-gradient(520px 380px at 5% 90%,var(--lp-hero-glow-2),transparent 70%),
    linear-gradient(var(--lp-grid-line) 1px,transparent 1px) 0 0/48px 48px,
    linear-gradient(90deg,var(--lp-grid-line) 1px,transparent 1px) 0 0/48px 48px;
  -webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
.lp-hero-grid{display:grid;gap:48px;align-items:center;grid-template-columns:minmax(0,1fr)}
@media (min-width:1024px){.lp-hero{padding:64px 0 88px}.lp-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}}
.lp-hero h1{font-size:clamp(32px,3.6vw,50px);line-height:1.1;letter-spacing:-.03em;font-weight:750;max-width:620px;text-wrap:balance}
.lp-hero h1 em{font-style:normal;color:var(--color-accent-text)}
.lp-lead{margin-top:20px;font-size:clamp(16px,1.6vw,19px);line-height:1.6;color:var(--color-text-2);max-width:580px}
.lp-cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.lp-cta-note{display:flex;flex-wrap:wrap;gap:6px 18px;margin:16px 0 0;padding:0;list-style:none;font-size:14px;color:var(--color-text-muted)}
.lp-cta-note li{display:inline-flex;align-items:center;gap:6px}
.lp-cta-note .material-symbols-outlined{font-size:18px;color:var(--color-success)}
@media (max-width:480px){.lp-cta-row .btn{flex:1 1 100%}}

/* Быстрая проверка закупки (форма GET /search) */
.lp-quick{margin-top:32px;max-width:580px;padding:16px;border-radius:var(--radius-xl);background:var(--color-surface);
  border:1px solid var(--color-border);box-shadow:var(--shadow-md)}
.lp-quick label{display:block;font-size:14px;font-weight:600;margin-bottom:10px}
.lp-quick form{display:flex;gap:8px}
.lp-quick .btn{flex-shrink:0}
.lp-quick-hint{margin-top:10px;font-size:13px;color:var(--color-text-muted);display:flex;gap:6px;align-items:center}
.lp-quick-hint .material-symbols-outlined{font-size:17px;color:var(--color-success)}
@media (max-width:560px){.lp-quick form{flex-direction:column}.lp-quick .btn{width:100%}}

/* Полоса фактов о продукте (без вымышленных метрик) */
.lp-facts{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:var(--color-surface)}
.lp-facts ul{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:900px){.lp-facts ul{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lp-facts li{display:flex;gap:12px;align-items:flex-start;padding:20px 16px;font-size:14px;color:var(--color-text-muted);line-height:1.45}
.lp-facts li + li{border-left:1px solid var(--color-border)}
@media (max-width:899px){.lp-facts li:nth-child(3){border-left:0}.lp-facts li:nth-child(n+3){border-top:1px solid var(--color-border)}}
.lp-facts strong{display:block;color:var(--color-text);font-size:15px;font-weight:650}
.lp-facts .material-symbols-outlined{color:var(--color-accent);font-size:22px;margin-top:1px}

/* Сетки карточек */
.lp-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.lp-grid.cols-2,.lp-grid.cols-4,.lp-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.lp-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lp-products{padding-top:40px}
.lp-products-grid{align-items:stretch}
.lp-product{gap:12px;position:relative;border-width:2px;border-color:var(--color-accent-soft)}
.lp-product:hover{border-color:var(--color-accent)}
.lp-product h3{font-size:20px;line-height:1.3}
.lp-product-tag{align-self:flex-start;font-size:13px;font-weight:600;padding:4px 12px;border-radius:999px;
  background:var(--color-accent-soft);color:var(--color-accent-text)}
.lp-product-tag.is-free{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}
.lp-product-points{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px;color:var(--color-text-muted)}
.lp-product-points li{padding-left:22px;position:relative}
.lp-product-points li::before{content:"✓";position:absolute;left:0;color:var(--color-success);font-weight:700}
.lp-product-cta{margin-top:auto;padding-top:8px;display:flex;flex-wrap:wrap;gap:8px}
.lp-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:24px;
  display:flex;flex-direction:column;gap:10px}
.is-alt .lp-card{background:var(--color-bg)}
.lp-card h3{font-size:17px;line-height:1.35}
.lp-card p{color:var(--color-text-muted);font-size:15px;line-height:1.55}
.lp-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;
  background:var(--color-accent-soft);color:var(--color-accent-text);margin-bottom:6px}
.lp-icon .material-symbols-outlined{font-size:24px}
.lp-icon.is-navy{background:var(--color-surface-selected);color:var(--color-heading)}

/* Боль → решение */
.lp-split{display:grid;gap:32px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1024px){.lp-split{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:start}}
.lp-subhead{font-size:14px;font-weight:600;color:var(--color-text-muted);margin-bottom:12px;letter-spacing:0}
.lp-pain{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.lp-pain li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:16px 18px;border-radius:var(--radius-lg);
  background:var(--color-surface);border:1px solid var(--color-border)}
.lp-pain .material-symbols-outlined{color:var(--color-danger);margin-top:2px}
.lp-pain b{display:block;color:var(--color-text);font-weight:600}
.lp-pain span.muted{font-size:14.5px}

/* Шаги */
.lp-steps{list-style:none;margin:0;padding:0;display:grid;gap:16px;grid-template-columns:minmax(0,1fr);counter-reset:step}
@media (min-width:640px){.lp-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.lp-steps{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lp-step{position:relative;padding:24px;border-radius:var(--radius-xl);background:var(--color-surface);border:1px solid var(--color-border);counter-increment:step}
.is-alt .lp-step{background:var(--color-bg)}
.lp-step::before{content:counter(step);display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:50%;background:var(--color-action-2);color:#fff;font-weight:700;font-size:15px;margin-bottom:16px;font-variant-numeric:tabular-nums}
.lp-step h3{font-size:17px;margin-bottom:8px}
.lp-step p{color:var(--color-text-muted);font-size:15px;line-height:1.55}
.lp-step .lp-step-tag{display:inline-block;margin-top:12px;font-size:12.5px;font-weight:600;color:var(--color-text-subtle)}

/* Возможности: строки «текст + мокап», через одну зеркально */
.lp-feature{display:grid;gap:32px;align-items:center;grid-template-columns:minmax(0,1fr);padding:40px 0}
.lp-feature + .lp-feature{border-top:1px solid var(--color-border)}
@media (min-width:1024px){
  .lp-feature{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;padding:56px 0}
  .lp-feature.is-flip{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
  .lp-feature.is-flip > .lp-feature-text{order:2}
}
.lp-feature-text h3{font-size:clamp(22px,2.4vw,30px);line-height:1.2;letter-spacing:-.02em;font-weight:700}
.lp-feature-text > p{margin-top:12px;font-size:16.5px;line-height:1.6;color:var(--color-text-muted)}
.lp-kicker{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--color-text-subtle);margin-bottom:12px}
.lp-kicker .material-symbols-outlined{font-size:18px;color:var(--color-accent)}
.lp-checks{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px}
.lp-checks li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:15px;line-height:1.5;color:var(--color-text-2)}
.lp-checks .material-symbols-outlined{color:var(--color-success);font-size:20px;margin-top:1px}

/* Малые возможности */
.lp-mini{display:flex;gap:14px;align-items:flex-start;padding:20px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface)}
.lp-mini .material-symbols-outlined{color:var(--color-heading);font-size:22px;margin-top:2px}
.lp-mini h3{font-size:15.5px;margin-bottom:4px}
.lp-mini p{font-size:14px;color:var(--color-text-muted);line-height:1.5}

/* Для кого */
.lp-who .lp-card{gap:12px}
.lp-who ul{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px}
.lp-who li{display:grid;grid-template-columns:18px 1fr;gap:8px;font-size:14.5px;color:var(--color-text-2);line-height:1.45}
.lp-who li .material-symbols-outlined{font-size:18px;color:var(--color-success);margin-top:1px}

/* FAQ — нативные <details>, без JS */
.lp-faq{max-width:840px;margin:0 auto;border-top:1px solid var(--color-border)}
.lp-faq details{border-bottom:1px solid var(--color-border)}
.lp-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 4px;font-size:17px;font-weight:600;color:var(--color-heading);min-height:56px}
.lp-faq summary::-webkit-details-marker{display:none}
.lp-faq summary::after{content:"add";font-family:'Material Symbols Outlined';font-size:24px;font-weight:400;color:var(--color-text-subtle);
  flex-shrink:0;transition:transform var(--dur-base) var(--ease-out)}
.lp-faq details[open] summary::after{content:"remove"}
.lp-faq summary:hover{color:var(--color-link-hover)}
.lp-faq .lp-faq-a{padding:0 4px 22px;color:var(--color-text-2);font-size:15.5px;line-height:1.65;max-width:720px}
.lp-faq .lp-faq-a p + p{margin-top:10px}

/* Финальный CTA — тёмная полоса бренда */
.lp-band{position:relative;overflow:hidden;border-radius:24px;padding:48px 24px;color:var(--lp-band-text);text-align:center;
  background:radial-gradient(520px 260px at 92% 0%,rgba(240,116,15,.14),transparent 70%),
    linear-gradient(150deg,var(--lp-band-bg) 0%,var(--lp-band-bg-2) 100%);border:1px solid var(--lp-band-border)}
@media (min-width:768px){.lp-band{padding:72px 48px}}
.lp-band h2{color:var(--lp-band-text);font-size:clamp(26px,3.4vw,42px);letter-spacing:-.025em;line-height:1.15;max-width:760px;margin:0 auto}
.lp-band h3{color:var(--lp-band-text);background:none;font-size:clamp(22px,2.6vw,30px);letter-spacing:-.02em;line-height:1.2;margin:0 auto;max-width:760px}
.lp-band p{color:var(--lp-band-muted);font-size:17px;margin:16px auto 0;max-width:600px;line-height:1.6}
.lp-band .lp-cta-row{justify-content:center}
.lp-band .lp-cta-note{justify-content:center;color:var(--lp-band-muted)}
.lp-band .lp-cta-note .material-symbols-outlined{color:#86efac}

/* ---- 4. Мокапы интерфейса ---------------------------------------------------
   Перерисовка реальных экранов кабинета (доска закупок, обзвон, доска сделок,
   разбор поставщика) на HTML/CSS: легче картинок, резкие на любом экране,
   сами переключаются в тёмную тему. Данные — вымышленные (подпись «Демо»). */
.lp-visual{position:relative}
.mock{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;
  box-shadow:var(--shadow-lg);overflow:hidden;font-size:13px;line-height:1.4;color:var(--color-text);text-align:left}
.mock-bar{display:flex;align-items:center;gap:10px;height:38px;padding:0 14px;border-bottom:1px solid var(--color-border);
  background:var(--color-surface-2);font-size:12.5px;font-weight:600;color:var(--color-text-muted)}
.mock-dots{display:inline-flex;gap:6px}
.mock-dots i{width:10px;height:10px;border-radius:50%;background:var(--color-border-strong)}
.mock-demo{margin-left:auto;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--color-surface-3);color:var(--color-text-muted)}
.mock-body{padding:14px}
.mock-chip{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:999px;font-size:11px;font-weight:600;
  background:var(--color-surface-3);color:var(--color-text-2);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.mock-chip.is-hot{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}
.mock-chip.is-warn{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}
.mock-chip.is-info{background:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border)}
.mock-chip.is-ok{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}
.mock-chip.is-new{background:var(--color-accent-soft);color:var(--color-accent-text)}
.mock-chip .material-symbols-outlined{font-size:13px;width:auto}

/* Доска закупок */
.mock-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mock-col{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px;min-width:0}
.mock-col.is-hot{border-color:var(--color-accent-border);background:color-mix(in srgb,var(--color-accent) 7%,var(--color-surface-2))}
.mock-col-head{display:flex;align-items:center;gap:6px;font-weight:650;font-size:12.5px;color:var(--color-heading)}
.mock-col-head .material-symbols-outlined{font-size:16px;color:var(--color-text-subtle)}
.mock-col.is-hot .mock-col-head .material-symbols-outlined{color:var(--color-accent)}
.mock-col-head .mock-count{margin-left:auto;font-size:11px;font-weight:600;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:0 7px}
.mock-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border-strong);border-radius:8px;
  padding:9px 10px;display:flex;flex-direction:column;gap:5px;box-shadow:var(--shadow-xs);min-width:0}
.mock-card.is-hot{border-left-color:var(--color-accent)}
.mock-card .mock-no{font-weight:650;font-size:12px;color:var(--color-link);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mock-card .mock-title{font-size:12px;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mock-card .mock-sub{font-size:11px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mock-card .mock-sum{font-weight:700;font-size:12.5px;font-variant-numeric:tabular-nums}
.mock-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.mock-card.is-ghost{opacity:.55}
@media (max-width:560px){.mock-board{grid-template-columns:repeat(2,minmax(0,1fr))}.mock-board .mock-col:first-child{display:none}}

/* Карточка звонка (рабочее место обзвона) */
.mock-call-head{padding:14px 16px;border-bottom:1px solid var(--color-border)}
.mock-call-name{font-size:17px;font-weight:700;color:var(--color-heading);margin:6px 0 4px;letter-spacing:-.01em}
.mock-call-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12px;color:var(--color-text-muted)}
.mock-call-body{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
@media (min-width:640px){.mock-call-body.is-split{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.mock-call-body.is-split > div + div{border-left:1px solid var(--color-border)}}
.mock-call-body > div{padding:14px 16px}
.mock-phone{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;font-size:16px;white-space:nowrap;font-weight:700;
  letter-spacing:.01em;background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border);font-variant-numeric:tabular-nums}
.mock-kv{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin-top:12px;font-size:12px}
.mock-kv dt{color:var(--color-text-muted)}
.mock-kv dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mock-script{font-size:12px;color:var(--color-text-2);display:grid;gap:6px}
.mock-script b{color:var(--color-heading);font-size:12px;display:flex;align-items:center;gap:6px}
.mock-script b .material-symbols-outlined{font-size:16px;color:var(--color-accent)}
.mock-script p{padding-left:10px;border-left:2px solid var(--color-border)}
.mock-outcomes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:12px 16px;border-top:1px solid var(--color-border);background:var(--color-surface-2)}
.mock-out{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border-radius:8px;border:1px solid var(--color-border);
  background:var(--color-surface);font-size:10.5px;font-weight:600;color:var(--color-text-2);text-align:center;line-height:1.2}
.mock-out .material-symbols-outlined{font-size:17px}
.mock-out.is-ok{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}
.mock-out.is-bad{color:var(--color-danger)}
.mock-out kbd{position:absolute;top:3px;left:4px;font:600 9px/1 var(--font-sans);color:var(--color-text-subtle)}
@media (max-width:420px){.mock-out span:not(.material-symbols-outlined){font-size:9.5px}}

/* Плавающая карточка поверх доски в hero */
.lp-hero .mock-float{margin-top:-28px;margin-left:auto;max-width:400px;position:relative;z-index:2}
@media (min-width:1024px){.lp-hero .lp-visual{padding-bottom:170px}
  .lp-hero .mock-float{position:absolute;left:-32px;bottom:0;margin:0;width:350px}}
/* На телефоне в hero — только карточка звонка (доска есть ниже, в «Возможностях»). */
@media (max-width:640px){.lp-hero .lp-visual > .mock:not(.mock-float){display:none}.lp-hero .mock-float{margin:0;max-width:none}}

/* Доска сделок (CRM) */
.mock-deals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:560px){.mock-deals{grid-template-columns:repeat(2,minmax(0,1fr))}.mock-deals .mock-col:nth-child(n+3){display:none}}
.mock-col .mock-total{font-size:11px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}
.mock-stage{height:3px;border-radius:2px;background:var(--chart-2)}
.mock-col:nth-child(2) .mock-stage{background:var(--chart-1)}
.mock-col:nth-child(3) .mock-stage{background:var(--color-success-solid)}
.mock-col:nth-child(4) .mock-stage{background:var(--chart-accent)}
.mock-who{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;
  background:var(--color-surface-selected);color:var(--color-heading);font-size:9.5px;font-weight:700;margin-left:auto}

/* Разбор поставщика */
.mock-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.mock-score{border:1px solid var(--color-border);border-radius:10px;padding:10px;background:var(--color-surface-2)}
.mock-score small{display:block;font-size:10.5px;font-weight:600;color:var(--color-text-muted)}
.mock-score strong{display:block;font-size:19px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--color-heading);margin-top:2px}
.mock-meter{height:4px;border-radius:2px;background:var(--color-track);margin-top:6px;overflow:hidden}
.mock-meter i{display:block;height:100%;background:var(--chart-1);border-radius:2px}
.mock-reasons{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:12px}
.mock-reasons li{display:grid;grid-template-columns:16px 1fr;gap:6px;color:var(--color-text-2)}
.mock-reasons .material-symbols-outlined{font-size:16px;color:var(--color-success)}
.mock-reasons li.is-risk .material-symbols-outlined{color:var(--color-warning)}
@media (max-width:420px){.mock-scores{grid-template-columns:1fr 1fr}.mock-scores .mock-score:last-child{grid-column:1/-1}}

/* ---- 5. Тарифы (резервная разметка лендинга; partial _pricing_plans.html
   агента «тарифы» может использовать эти же классы или свои) ------------- */
.pricing-group{margin-top:24px}
.pricing-group-head{margin-bottom:16px}
.pricing-group-head h3{font-size:18px}
.pricing-group-head p{margin-top:4px;color:var(--color-text-muted);font-size:14.5px}
.pricing-row{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
@media (min-width:700px){.pricing-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.pricing-row--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.plan{position:relative;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-xl);padding:24px}
.is-alt .plan{background:var(--color-bg)}
.plan-body{display:flex;flex-direction:column;flex:1}
.plan.highlight{border:2px solid var(--color-accent);box-shadow:var(--shadow-md)}
.plan.highlight::before{content:"Популярный";position:absolute;top:-12px;left:20px;background:var(--color-action);color:var(--color-on-action);
  font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}
.plan .title{font-weight:650;font-size:16px;color:var(--color-heading)}
.plan .price{font-size:30px;font-weight:750;letter-spacing:-.025em;color:var(--color-heading);margin-top:10px;font-variant-numeric:tabular-nums}
.plan .period{color:var(--color-text-muted);font-size:13px;margin-top:4px}
.plan .tagline{color:var(--color-text-2);font-size:14px;margin:12px 0 16px;line-height:1.5}
.plan ul{list-style:none;margin:0;padding:0;flex:1;display:grid;gap:8px;align-content:start}
.plan ul li{display:grid;grid-template-columns:18px 1fr;gap:8px;font-size:14px;line-height:1.45;color:var(--color-text-2)}
.plan ul li .material-symbols-outlined{color:var(--color-success);font-size:18px;margin-top:1px}
.plan .cta{margin-top:20px;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--control-h-lg);
  border-radius:var(--radius-md);font-weight:600;background:var(--color-action-2);color:#fff}
.plan .cta:hover{background:var(--color-action-2-hover);color:#fff;text-decoration:none}
.plan.highlight .cta{background:var(--color-action)}
.plan.highlight .cta:hover{background:var(--color-action-hover)}

/* ---- 6. Вход и регистрация ----------------------------------------------- */
.auth-shell{display:grid;gap:32px;align-items:start;max-width:1040px;margin:0 auto;padding:40px var(--lp-gutter) 64px;
  grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.auth-shell{grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:64px;padding-top:72px}
  .auth-shell.is-narrow{grid-template-columns:minmax(0,460px);justify-content:center}}
.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);
  padding:28px 24px;box-shadow:var(--shadow-md)}
@media (min-width:640px){.auth-card{padding:36px 36px 32px}}
.auth-card h1{font-size:26px;letter-spacing:-.02em;font-weight:700}
.auth-card .auth-sub{margin-top:8px;color:var(--color-text-muted);font-size:15px}
.auth-form{display:flex;flex-direction:column;gap:16px;margin-top:24px}
.auth-form .btn{margin-top:4px}
.auth-alt{margin-top:20px;padding-top:20px;border-top:1px solid var(--color-border);font-size:14.5px;color:var(--color-text-muted);text-align:center}
.auth-legal{margin-top:14px;font-size:12.5px;color:var(--color-text-subtle);line-height:1.5;text-align:center}
/* В DOM карточка формы идёт первой (порядок заголовков h1 → h2, на телефоне
   форма сверху); на десктопе пояснение — слева. */
@media (min-width:900px){.auth-aside{order:-1;padding-top:12px}}
.auth-aside h2{font-size:clamp(24px,2.6vw,32px);letter-spacing:-.025em;line-height:1.15;font-weight:700}
.auth-aside > p{margin-top:12px;color:var(--color-text-muted);font-size:16px;line-height:1.6}
.auth-aside .lp-checks{margin-top:24px}
.auth-aside .mock{margin-top:28px;max-width:440px}
@media (max-width:899px){.auth-aside .mock{display:none}}
.auth-card .auth-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;
  background:var(--color-accent-soft);color:var(--color-accent-text);margin-bottom:16px}
.auth-card .auth-icon .material-symbols-outlined{font-size:26px}
.auth-card .auth-icon.is-success{background:var(--color-success-bg);color:var(--color-success)}
/* Старая разметка служебных страниц (verify, invite, csrf) */
.container-narrow{max-width:520px;margin:48px auto;padding:0 var(--lp-gutter)}
.container-narrow > .card{padding:28px 24px;box-shadow:var(--shadow-md)}
@media (min-width:640px){.container-narrow > .card{padding:36px}}
.container-narrow h1{font-size:24px;letter-spacing:-.02em}
.container-narrow form label input{width:100%;margin-top:6px}
.container-narrow form label{display:block}

/* ---- 7. Публичный поиск и компоненты выдачи -------------------------------- */
.ps-hero{padding:40px 0 8px}
.ps-hero h1{font-size:clamp(26px,3.4vw,38px);letter-spacing:-.025em;font-weight:700}
.ps-hero > p{margin-top:10px;color:var(--color-text-muted);font-size:16px;max-width:720px;line-height:1.6}
.ps-form{margin-top:20px;display:flex;gap:8px;max-width:720px;padding:12px;border-radius:var(--radius-xl);
  background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}
@media (max-width:560px){.ps-form{flex-direction:column}.ps-form .btn{width:100%}}
.ps-note{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--color-text-muted)}
.ps-note .material-symbols-outlined{font-size:17px;color:var(--color-success)}
.ps-state{max-width:720px;margin-top:24px}
/* Лимит исчерпан: регистрация и разовая проверка - два равноправных блока рядом */
.ps-limit{margin-top:24px;max-width:720px}
.ps-limit .ps-state{max-width:none;margin-top:0}
.ps-limit--two{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;max-width:1040px;align-items:stretch}
.ps-oneoff{display:flex;flex-direction:column}
.ps-oneoff .lp-cta-row{margin-top:auto!important;padding-top:16px}
.ps-limit .ps-state{min-width:0}
.ps-limit .btn{white-space:normal;height:auto;min-height:40px;text-align:center}
.ps-limit h2{overflow-wrap:anywhere}
@media (max-width:760px){.ps-limit--two{grid-template-columns:minmax(0,1fr)}.ps-limit .lp-cta-row .btn{width:100%;justify-content:center}}
.ps-results{margin-top:32px}
.ps-section-title{display:flex;align-items:center;gap:8px;font-size:20px;margin:32px 0 12px}
.ps-section-title .material-symbols-outlined{color:var(--color-text-subtle)}

.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;
  box-shadow:var(--shadow-xs);margin-bottom:16px}
@media (min-width:640px){.card{padding:24px}}
.card > h2,.card > h3{font-size:18px;margin-bottom:14px}
.card-title{margin:0;font-size:16px;font-weight:600;color:var(--color-heading)}
.badge-free{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-info);background:var(--color-info-bg);
  border:1px solid var(--color-info-border);padding:4px 12px;border-radius:999px}
.badge-free .material-symbols-outlined{font-size:16px}

table{width:100%;border-collapse:collapse;font-size:14px}
.table-scroll,.table-wrap-flush{overflow-x:auto;-webkit-overflow-scrolling:touch}
th,td{padding:10px 12px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}
th{color:var(--color-text-muted);font-weight:600;font-size:12.5px}
.kv{display:grid;grid-template-columns:200px 1fr;gap:10px 16px;font-size:14px}
.kv > div.k,.kv .k{color:var(--color-text-muted)}
@media (max-width:560px){.kv{grid-template-columns:1fr;gap:2px 0}.kv > div.k{padding-top:10px;font-size:12.5px;font-weight:600}}
.supplier-tablist{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 12px;border-bottom:1px solid var(--color-border)}
.supplier-tab{-webkit-appearance:none;appearance:none;background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);padding:10px 12px;font-size:14px;
  border-bottom:2px solid transparent;margin-bottom:-1px;min-height:40px}
.supplier-tab:hover{color:var(--color-text)}
.supplier-tab.active{color:var(--color-heading);border-bottom-color:var(--color-accent);font-weight:600}
.deep-report{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);margin-top:8px}
.deep-report-summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:12px 14px;font-weight:600}
.deep-report-summary::-webkit-details-marker{display:none}
.deep-report-body{padding:0 14px 14px;line-height:1.55}
.deep-report-hint{display:block;font-weight:500;font-size:12.5px;color:var(--color-text-muted);margin-top:2px}
.sa-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 12px}
@media (max-width:860px){.sa-scores{grid-template-columns:1fr}}
.sa-score{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);padding:10px 12px}
.sa-score-label{font-size:12px;font-weight:650;color:var(--color-text-muted);margin-bottom:4px}
.sa-score-value{font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.2;font-variant-numeric:tabular-nums}
.sa-score-sub{display:block;font-size:12.5px;font-weight:600;color:var(--color-text);margin-top:4px}
.sa-score-hint{margin:8px 0 0;font-size:12.5px;color:var(--color-text-muted);line-height:1.45}
.sa-flags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}
.source-tags{display:inline-flex;flex-wrap:wrap;gap:6px}
.procedure-kind-note{margin:10px 0 0;padding:10px 12px;border-radius:var(--radius-md);background:var(--color-info-bg);
  border:1px solid var(--color-info-border);color:var(--color-info);font-size:13.5px}
.procedure-kind-note.muted{background:var(--color-surface-2);border-color:var(--color-border);color:var(--color-text-muted)}
.sa-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 16px}
.sa-filter-label{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:13.5px}
.sa-factors{margin-top:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px}
.sa-factors summary{cursor:pointer;font-weight:600}
.sa-factors-table{width:100%;font-size:13px}
.empty-state{text-align:center;padding:18px 8px;color:var(--color-text-muted)}
.empty-state .material-symbols-outlined{font-size:32px;display:block;margin:0 auto 8px;width:auto}
.md-body .md-h,.md-content h1,.md-content h2,.md-content h3{margin:.85em 0 .4em;font-weight:650}
.md-body p,.md-content p{margin:.55em 0}
.md-list{margin:.5em 0 .5em 1.2em;padding:0}
.md-table-wrap{overflow-x:auto;margin:.7em 0}
.md-table{width:100%;border-collapse:collapse;font-size:13px}
.md-table th,.md-table td{border:1px solid var(--color-border);padding:6px 10px;text-align:left;vertical-align:top}
.md-table th{background:var(--color-surface-2);font-weight:600}
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:500;
  border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-2);line-height:1.5}
.badge-success,.badge.won,.badge.trial,.badge.pro,.badge.corporate{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}
.badge-info{background:var(--color-info-bg);color:var(--color-info);border-color:var(--color-info-border)}
.badge-warning,.badge.contacted{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}
.badge-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}
.badge-neutral,.badge.free,.badge.unknown{background:var(--color-surface-2);color:var(--color-text-muted);border-color:var(--color-border)}
form.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.text-accent{color:var(--color-accent-text)}
.form-hint{color:var(--color-text-muted);font-size:12.5px;margin-top:5px}
.icon-inline{font-size:18px;vertical-align:-3px}
.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-5{margin-top:var(--space-5)}
.flex{display:flex}.items-center{align-items:center}.gap-2{gap:var(--space-2)}
.contact-line{display:flex;align-items:center;gap:6px}
.contact-line .material-symbols-outlined{font-size:17px;color:var(--color-text-subtle)}

/* 03.10.2026 / 11.10.2026: шапка на десктопе. Раньше сжатие отступов и скрытие пунктов были подогнаны под
   961-1560 px, а контейнер ограничен 1200 px - на 1380-1600+ px (и на широких шрифтах macOS уже с 1100 px)
   «Блог»/«Проверить закупку» налезали на «Войти». Теперь: пункты уходят в «Ещё» по факту нехватки места
   (nav_priority.js), отступы плавно сжимаются через clamp, CTA и переключатель темы не вытесняют меню. */
@media (min-width:961px){
  .site-header .bar{gap:clamp(8px,1vw,16px)}
  .site-nav-links{margin:0 4px 0 8px}
  .site-nav-links a{padding:0 clamp(8px,.6vw,10px);font-size:14px}
  .site-nav-actions .btn{padding:0 clamp(10px,.9vw,14px);font-size:14px}
  .theme-toggle{margin-left:4px}
  .brand-name{font-size:16px}
}
@media (min-width:961px) and (max-width:1100px){
  .brand-name{display:none}
}
@media (min-width:961px){.lp-cta-login{display:none}}
/* пункт «Ещё» (выпадающий список скрытых пунктов) */
.nav-more{position:relative}
.nav-more-btn{display:inline-flex;align-items:center;gap:2px;min-height:40px;padding:0 clamp(8px,.6vw,10px);border:0;border-radius:var(--radius-md);
  background:none;color:var(--color-text-2);font:inherit;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;
  -webkit-appearance:none;appearance:none}
.nav-more-btn:hover,.nav-more-btn[aria-expanded="true"]{color:var(--color-text);background:var(--color-surface-hover)}
.nav-more-btn:focus-visible{outline:2px solid var(--color-focus, var(--color-action));outline-offset:2px}
.nav-more-btn .material-symbols-outlined{font-size:20px}
.nav-more-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:50;min-width:220px;margin:0;padding:6px;list-style:none;
  background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}
.nav-more-menu[hidden]{display:none}
.nav-more-menu a{display:flex;align-items:center;min-height:40px;padding:0 12px;white-space:nowrap;border-radius:var(--radius-sm, 6px);
  color:var(--color-text-2);font-size:14px;font-weight:500}
.nav-more-menu a:hover{color:var(--color-text);background:var(--color-surface-hover);text-decoration:none}
/* без JS (html:not(.nav-prio)): запасной вариант - второстепенные пункты скрыты, они есть в подвале */
@media (min-width:961px) and (max-width:1280px){
  html:not(.nav-prio) .site-nav-links>li[data-nav-priority="2"],
  html:not(.nav-prio) .site-nav-links>li[data-nav-priority="5"]{display:none}
}

/* ---- 09.10.2026: адаптивность (docs/RESPONSIVE_AUDIT_2026-10-09.md) ----------
   Шапка на узком экране: кнопка меню не сжимается (раньше на 360px была 26px
   шириной), название бренда усекается; поля ввода 16px - iOS Safari не
   приближает страницу при фокусе; ссылки футера - зона касания не меньше 40px. */
.nav-toggle,.theme-toggle{flex:0 0 auto}
@media (max-width:960px){
  .site-header .bar{gap:8px}
  .brand{flex-shrink:1;min-width:0}
  .brand-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .site-footer ul a{min-height:40px}
}
@media (max-width:420px){
  .brand{gap:8px;font-size:15px}
  .brand img{width:30px;height:30px}
}
@media (max-width:768px),(hover:none) and (pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea{font-size:16px}
}
@media (max-width:960px){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .site-footer{padding-bottom:env(safe-area-inset-bottom)}
}

/* ---- 20.10.2026: SEO-тексты посадочных (калькулятор БГ и подстраницы, /search, /pobediteli-tenderov,
   /o-servise, /kontakty): статья, «Коротко», хлебные крошки, таблицы, блок ссылок. ---------------- */
.lp-crumbs{font-size:13px;color:var(--color-text-subtle);margin-bottom:14px}
.lp-crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 6px}
.lp-crumbs li+li::before{content:"/";margin-right:6px;color:var(--color-border-strong)}
.lp-crumbs a{color:var(--color-text-muted)}
.lp-short{margin-top:20px;max-width:760px;padding:14px 16px;border:1px solid var(--color-border);border-left:3px solid var(--color-accent);
  border-radius:var(--radius-md);background:var(--color-surface);font-size:15px;line-height:1.55;color:var(--color-text)}
.lp-short b{display:block;margin-bottom:4px;font-size:13px;letter-spacing:.02em;color:var(--color-text-muted)}
.lp-short p+p{margin-top:6px}
.lp-prose{max-width:780px;font-size:16px;line-height:1.65;color:var(--color-text);overflow-wrap:anywhere}
.lp-prose h2{font-size:clamp(22px,2.6vw,30px);line-height:1.2;letter-spacing:-.02em;margin:40px 0 14px}
.lp-prose h2:first-child{margin-top:0}
.lp-prose h3{font-size:18px;line-height:1.35;margin:24px 0 8px}
.lp-prose p{margin:0 0 12px}
.lp-prose ul,.lp-prose ol{margin:0 0 14px;padding-left:22px}
.lp-prose li{margin:4px 0}
.lp-prose .muted{color:var(--color-text-muted)}
.lp-prose .lp-note{font-size:14px;color:var(--color-text-muted);border-left:3px solid var(--color-border-strong);padding:6px 12px;margin:12px 0}
.lp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0 16px}
.lp-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45}
.lp-table caption{caption-side:top;text-align:left;font-size:13px;color:var(--color-text-muted);padding-bottom:6px}
.lp-table th,.lp-table td{border:1px solid var(--color-border);padding:8px 10px;text-align:left;vertical-align:top}
.lp-table th{background:var(--color-surface-2);font-weight:600}
.lp-table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.lp-links{display:grid;gap:10px;grid-template-columns:minmax(0,1fr);margin:16px 0 0;padding:0;list-style:none}
@media (min-width:720px){.lp-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lp-links li{display:flex}
.lp-links li>a{flex:1 1 auto}
.lp-links a{position:relative;display:block;padding:16px 46px 16px 18px;border:1px solid var(--color-accent-border,var(--color-accent));
  border-left:5px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent-soft);
  color:var(--color-text);font-weight:600;font-size:16px;text-decoration:none;box-shadow:0 1px 2px rgba(15,23,42,.06);
  transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}
.lp-links a::after{content:"\2192";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:700;
  color:var(--color-accent-text);transition:transform .15s ease}
.lp-links a:hover,.lp-links a:focus-visible{border-color:var(--color-accent);box-shadow:0 6px 16px rgba(15,23,42,.12);transform:translateY(-1px)}
.lp-links a:hover::after,.lp-links a:focus-visible::after{transform:translateY(-50%) translateX(4px)}
.lp-links a span{display:block;font-weight:400;font-size:14px;color:var(--color-text-muted);margin-top:4px}
@media (prefers-reduced-motion:reduce){.lp-links a,.lp-links a::after{transition:none}.lp-links a:hover{transform:none}}
.demo-card{max-width:620px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-xl);padding:18px;background:var(--color-surface);font-size:14px}
.demo-card .demo-tag{display:inline-block;font-size:12px;font-weight:600;color:var(--color-accent-text);margin-bottom:6px}
.demo-card dl{display:grid;grid-template-columns:minmax(110px,34%) minmax(0,1fr);gap:6px 12px;margin:10px 0 0}
.demo-card dt{color:var(--color-text-muted)}
.demo-card dd{margin:0}
.contact-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}
.contact-list li{display:flex;gap:10px;align-items:flex-start}

/* 22.10.2026: разгрузка главной - боли в ряд, строка «Ещё в сервисе», компактные тарифы */
.lp-pain.is-row{gap:16px}
@media (min-width:900px){.lp-pain.is-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
.lp-chips{list-style:none;margin:40px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px 12px}
.lp-chips a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);font-weight:600;font-size:15px;text-decoration:none}
.lp-chips a:hover{border-color:var(--color-accent);color:var(--color-accent-text)}
.lp-pricing-more{margin:20px 0 0;text-align:center;font-size:15.5px;color:var(--color-text-muted)}
.lp-pricing-more a{font-weight:600}

/* 22.10.2026: таблица сравнения на /ii-assistent - заголовок строки не рвётся посреди слова, колонки делят ширину поровну.
   На телефоне таблица превращается в карточки (без горизонтальной прокрутки). */
.lp-table--cmp{table-layout:fixed}
.lp-table--cmp thead th:first-child,.lp-table--cmp tbody th{width:170px;overflow-wrap:normal;word-break:normal;hyphens:manual}
@media (max-width:720px){
  .lp-table--cmp,.lp-table--cmp tbody,.lp-table--cmp tr,.lp-table--cmp th,.lp-table--cmp td{display:block;width:auto}
  .lp-table--cmp caption{display:block;width:auto;text-align:left}
  .lp-table--cmp thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .lp-table--cmp tr{margin:0 0 12px;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}
  .lp-table--cmp th,.lp-table--cmp td{border:0;border-bottom:1px solid var(--color-border)}
  .lp-table--cmp tbody th{width:auto;background:var(--color-surface-2)}
  .lp-table--cmp td:last-child{border-bottom:0}
  .lp-table--cmp td[data-label]::before{content:attr(data-label);display:block;margin-bottom:2px;font-size:12px;font-weight:600;color:var(--color-text-muted)}
}

/* 22.10.2026: на телефоне иллюстрации-макеты возможностей (кроме первой) скрыты - они удлиняли главную на ~3 экрана; смысл блоков остаётся в тексте */
@media (max-width:640px){.lp-feature ~ .lp-feature .lp-visual{display:none}}

.lp-more{margin:16px 0 0;font-size:15px;color:var(--color-text-muted)}
