/* поток. — общая система стилей (v4 · дизайн-проход). База едина для всех страниц. */
@import url('https://fonts.bunny.net/css?family=bricolage-grotesque:400,500,600,700,800');

:root{
  --bg:#0B111C; --surface:#131A29; --surface2:#1B2436; --line:rgba(236,239,245,.09);
  --text:#ECEFF5; --muted:#93A0B6;
  --hot:#FF5B34; --hot2:#FF7A57; --cool:#22C3AF; --cool2:#5FD9C9;
  --ring:rgba(255,91,52,.55); --glow:rgba(255,91,52,.20); --cglow:rgba(34,195,175,.16);
  --ok:#3ECF8E; --shadow:0 24px 60px -28px rgba(0,0,0,.65);
  --r:16px; --rd:12px; --maxw:1160px;
  --dsp:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --display:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"Cascadia Code","SF Mono","JetBrains Mono",ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme:light){:root{
  --bg:#F3F5F9; --surface:#FFFFFF; --surface2:#E9EDF4; --line:rgba(13,18,32,.10);
  --text:#0D1220; --muted:#57627A; --hot:#E8431F; --hot2:#FF6A45; --cool:#0D9C8A; --cool2:#25B7A4;
  --ring:rgba(232,67,31,.4); --glow:rgba(232,67,31,.10); --cglow:rgba(13,156,138,.10);
  --ok:#149E66; --shadow:0 22px 48px -28px rgba(20,30,60,.30);}}
:root[data-theme="dark"]{
  --bg:#0B111C; --surface:#131A29; --surface2:#1B2436; --line:rgba(236,239,245,.09);
  --text:#ECEFF5; --muted:#93A0B6; --hot:#FF5B34; --hot2:#FF7A57; --cool:#22C3AF; --cool2:#5FD9C9;
  --ring:rgba(255,91,52,.55); --glow:rgba(255,91,52,.20); --cglow:rgba(34,195,175,.16);
  --ok:#3ECF8E; --shadow:0 24px 60px -28px rgba(0,0,0,.65);}
:root[data-theme="light"]{
  --bg:#F3F5F9; --surface:#FFFFFF; --surface2:#E9EDF4; --line:rgba(13,18,32,.10);
  --text:#0D1220; --muted:#57627A; --hot:#E8431F; --hot2:#FF6A45; --cool:#0D9C8A; --cool2:#25B7A4;
  --ring:rgba(232,67,31,.4); --glow:rgba(232,67,31,.10); --cglow:rgba(13,156,138,.10);
  --ok:#149E66; --shadow:0 22px 48px -28px rgba(20,30,60,.30);}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--dsp);line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;text-wrap:balance;letter-spacing:-.03em;font-weight:700;line-height:1.05;
  font-family:var(--display);font-optical-sizing:auto;font-variation-settings:"wdth" 100}
h1{font-size:clamp(2.2rem,5.8vw,4rem);font-weight:700;font-variation-settings:"wdth" 95}
h2{font-size:clamp(1.55rem,3.1vw,2.4rem);font-weight:700}
h3{font-weight:600;letter-spacing:-.02em}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
.mono{font-family:var(--mono)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;border:0;cursor:pointer;
  font-family:var(--display);font-weight:600;font-size:1rem;padding:.9em 1.4em;border-radius:12px;
  letter-spacing:-.01em;font-variation-settings:"wdth" 100;
  transition:transform .15s,box-shadow .2s,border-color .2s,color .2s;text-align:center;white-space:nowrap}
.btn-lg{font-size:1.08rem;padding:1.05em 1.7em}
.btn:focus-visible,.tgl:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,
summary:focus-visible,.chip:focus-visible{outline:3px solid var(--ring);outline-offset:2px}
.btn-hot{background:linear-gradient(135deg,var(--hot),var(--hot2));color:#fff;box-shadow:0 10px 28px -10px var(--glow)}
.btn-hot:hover{transform:translateY(-2px)}
/* заблокированная кнопка должна ВЫГЛЯДЕТЬ заблокированной, а не звать нажать */
.btn:disabled,.btn[disabled]{opacity:.42;cursor:not-allowed;filter:grayscale(.35);
  box-shadow:none;transform:none!important;pointer-events:none}
.btn-cool{background:transparent;color:var(--text);border:1.5px solid var(--line)}
.btn-cool:hover{border-color:var(--cool);color:var(--cool);transform:translateY(-2px)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
/* чистые линейные иконки вместо эмодзи (нарисованы, а не сгенерены) */
.ic-svg{width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em;margin-right:.4em;flex:0 0 auto}
/* компактная полоса «партнёрка» вместо трёх больших карточек */
.eco-strip{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:26px 30px;border-radius:var(--rd)}
.eco-strip .lead-line{font-size:1.05rem;font-weight:600;font-family:var(--display)}
.eco-strip ul{list-style:none;margin:0;padding:0;display:flex;gap:26px;flex-wrap:wrap;flex:1;min-width:260px}
.eco-strip li{display:flex;flex-direction:column;gap:2px;font-size:.9rem;color:var(--muted)}
.eco-strip li b{color:var(--text);font-size:.95rem}
.eco-strip .mono{color:var(--cool);font-family:var(--mono);font-size:.78rem}
@media(max-width:760px){.eco-strip ul{gap:16px}}
/* эффект «прожектор»: пятно света следует за курсором (см. app.js) */
.card.spot{position:relative}
.card.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  opacity:0;transition:opacity .35s;z-index:0;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,-120%),
    color-mix(in srgb,var(--hot) 13%,transparent),transparent 62%)}
.card.spot:hover{border-color:color-mix(in srgb,var(--hot) 35%,var(--line))}
.card.spot:hover::after{opacity:1}
.card.spot>*{position:relative;z-index:1}

/* NAV */
header.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);
  background:color-mix(in srgb,var(--bg) 84%,transparent);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:62px;gap:10px}
.brand{font-family:var(--display);font-weight:700;font-size:1.42rem;letter-spacing:-.045em;
  display:flex;align-items:center;gap:.42em;font-variation-settings:"wdth" 92}
.brand i{width:9px;height:9px;border-radius:50%;background:var(--hot);box-shadow:0 0 0 4px var(--glow);
  animation:pulse 2s infinite;flex:0 0 auto}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px var(--glow)}50%{box-shadow:0 0 0 9px transparent}}
.nav-menu{display:flex;gap:18px;font-size:.92rem;color:var(--muted)}
.nav-menu a:hover{color:var(--text)}
.nav-menu a.on{color:var(--hot);font-weight:700}
.nav-cta{display:flex;align-items:center;gap:9px}
.tgl{background:var(--surface2);border:1px solid var(--line);color:var(--text);width:37px;height:37px;
  border-radius:10px;cursor:pointer;font-size:1rem;display:grid;place-items:center}
@media(max-width:820px){.nav-menu{display:none}}

/* ЖИВОЙ ТИКЕР — тезис дизайна: сначала показываем поток, потом о нём говорим */
.ticker{position:sticky;top:62px;z-index:40;height:34px;background:var(--surface);
  border-bottom:1px solid var(--line);overflow:hidden;display:flex;align-items:center}
.ticker-lbl{flex:0 0 auto;padding:0 14px 0 22px;font-family:var(--mono);font-size:.66rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px;
  border-right:1px solid var(--line);height:100%;background:var(--bg)}
.ticker-lbl .live-dot{width:6px;height:6px}
/* На телефоне подпись занимала 204px из 375 — больше половины полосы, и на сами
   заявки оставалось 171px: строку было не прочитать. Прячем длинную часть,
   оставляя точку и слово «сейчас» — смысл тот же, места втрое меньше. */
@media(max-width:560px){
  .ticker-lbl{padding:0 10px 0 14px}
  .ticker-lbl .tl-long{display:none}
  .ticker-run{padding-left:14px;gap:26px}
  .ticker-track::after{width:44px}
}
.ticker-track{flex:1;overflow:hidden;position:relative;height:100%}
.ticker-track::after{content:"";position:absolute;right:0;top:0;bottom:0;width:80px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--surface))}
.ticker-run{position:absolute;top:0;bottom:0;display:flex;align-items:center;gap:36px;padding-left:22px;
  white-space:nowrap;animation:tickroll 90s linear infinite;font-size:.85rem;
  will-change:transform}   /* длительность пересчитывает app.js под фактическую ширину */
.ticker-run{will-change:transform;transform:translateZ(0)}
.ticker-run.off{animation-play-state:paused}
.ticker-item{display:inline-flex;align-items:center;gap:10px;color:var(--text)}
.ticker-item .dt{font-family:var(--mono);font-size:.72rem;color:var(--muted);letter-spacing:.05em}
.ticker-item .ni{color:var(--hot);font-weight:600}
.ticker-item .di{color:var(--muted)}
.ticker-item .sep{color:var(--line)}
@keyframes tickroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:640px){.ticker-lbl{padding:0 10px 0 14px}.ticker-run{gap:24px;font-size:.8rem}}
@media(max-width:560px){
  .nav-in{gap:8px}
  .brand{font-size:1.18rem}
  .nav-cta{gap:6px}
  .nav-cta [data-nav="cab"]{display:none}          /* «Вход» есть в бургер-меню и футере */
  .nav-cta .btn{padding:.5em .8em;font-size:.82rem}
  .tgl{width:34px;height:34px}
}

/* БУРГЕР + мобильная панель навигации (верхнее меню прячется ≤820) */
.burger{display:none;width:38px;height:38px;border:1px solid var(--line);background:var(--surface2);
  border-radius:10px;cursor:pointer;flex-direction:column;gap:4px;align-items:center;justify-content:center;padding:0}
.burger span{width:18px;height:2px;background:var(--text);border-radius:2px;transition:transform .2s,opacity .2s}
.burger.on span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger.on span:nth-child(2){opacity:0}
.burger.on span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.nav-panel{display:none;position:fixed;top:62px;left:0;right:0;z-index:60;flex-direction:column;
  background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow);
  max-height:calc(100vh - 62px);overflow:auto}
.nav-panel.open{display:flex}
.nav-panel a{display:flex;align-items:center;gap:14px;padding:16px 22px;border-top:1px solid var(--line);
  font-weight:600;color:var(--text);font-size:1.02rem}
.nav-panel a svg{width:21px;height:21px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;color:var(--cool)}
.nav-panel a .chev{width:16px;height:16px;margin-left:auto;color:var(--muted);stroke-width:2}
.nav-panel a:first-child{border-top:0;color:var(--hot)}
.nav-panel a:first-child svg{color:var(--hot)}
.nav-panel a:hover,.nav-panel a:active{background:var(--surface2)}
@media(max-width:820px){ .burger{display:flex} }
@media(min-width:821px){ .nav-panel{display:none!important} .burger{display:none!important} }
@media(max-width:560px){ .burger{width:34px;height:34px} }

/* СЕКЦИИ */
section.blk{padding:clamp(44px,6vw,84px) 0}
.sec-head{max-width:54ch;margin-bottom:clamp(24px,3vw,40px)}
.sec-head .eyebrow{display:block;margin-bottom:16px}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.75rem)}
.sec-head p{color:var(--muted);font-size:1.12rem;margin:16px 0 0;line-height:1.5}
.band{background:var(--surface2)}
.page-hero{padding:clamp(38px,5.5vw,64px) 0 8px}
.page-hero p.lead{color:var(--muted);font-size:1.1rem;max-width:60ch;margin:16px 0 0}

/* анимированный фон-радар (canvas, см. app.js) */
.hero-canvas{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-grid,.hero>.wrap{position:relative;z-index:1}
.page-hero{position:relative;overflow:hidden}
.page-hero .wrap{position:relative;z-index:1}

/* ГЕРОЙ ГЛАВНОЙ */
.hero{position:relative;overflow:hidden;padding:clamp(44px,6.5vw,88px) 0 30px}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(52% 42% at 78% 8%,var(--glow),transparent 70%),
             radial-gradient(40% 34% at 12% 90%,var(--cglow),transparent 70%)}
.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:48px;align-items:center;position:relative}
/* проф-полоса под hero-кнопками: заполняет колонку доказательствами, а не воздухом */
.hero-proof{display:flex;align-items:stretch;gap:0;margin-top:26px;border:1px solid var(--line);
  border-radius:14px;overflow:hidden;background:color-mix(in srgb,var(--surface) 55%,transparent);
  backdrop-filter:blur(6px);max-width:520px}
.hero-proof>div{flex:1;padding:14px 18px;display:flex;flex-direction:column;gap:2px}
.hero-proof>div+div{border-left:1px solid var(--line)}
.hero-proof b{font-family:var(--mono);font-size:1.32rem;font-weight:700;letter-spacing:-.03em;line-height:1}
.hero-proof b .accent{color:var(--hot)}
.hero-proof b .pct{margin-left:.08em}
.hero-proof>div>span{font-size:.76rem;color:var(--muted)}
/* Только прямой потомок: было `.hero-proof span` и правило доставало <span>
   ВНУТРИ <b> — число «99» рисовалось вдвое мельче знака «%» рядом.
   Та же мина была в .dmap-stats; если добавляешь ещё блок цифр — проверь. */
.hero-proof b span{font-size:inherit;color:inherit}
.hero-proof b .accent{color:var(--hot)}
.hero-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.hpill{display:inline-flex;align-items:center;gap:.5em;font-size:.8rem;color:var(--text);
  border:1px solid var(--line);border-radius:999px;padding:.42em .85em;
  background:color-mix(in srgb,var(--surface) 50%,transparent)}
.hpill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cool)}
.hpill.hot::before{background:var(--hot)}
.hero-note{margin:16px 0 0;font-size:.78rem;color:var(--muted);font-family:var(--mono);opacity:.8}
.hero-note a{color:var(--cool)}
/* cookie-согласие (внизу, на всех страницах; выбор сохраняется в localStorage) */
.cookie-bar{position:fixed;left:0;right:0;bottom:0;z-index:80;padding:12px;
  background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);box-shadow:0 -12px 30px -20px rgba(0,0,0,.5)}
.cookie-in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:18px;
  flex-wrap:wrap;justify-content:space-between;padding:0 22px}
.cookie-in>span{font-size:.86rem;color:var(--muted);flex:1;min-width:240px}
.cookie-in a{color:var(--cool)}
.cookie-btns{display:flex;gap:10px;flex-wrap:wrap}
.cookie-btns .btn{font-size:.88rem;padding:.6em 1.1em}
@media(max-width:560px){.cookie-in{padding:0 12px}.cookie-btns{width:100%}.cookie-btns .btn{flex:1}}
/* виджет поддержки: плавающая кнопка + панель «быстрый вопрос» */
.support-fab{position:fixed;right:22px;bottom:22px;z-index:70;display:inline-flex;align-items:center;gap:.5em;
  border:0;cursor:pointer;font-family:var(--display);font-weight:600;font-size:.95rem;color:#fff;
  background:linear-gradient(135deg,var(--cool),var(--cool2));border-radius:999px;padding:.7em 1.15em;
  box-shadow:0 14px 34px -12px var(--cglow);transition:transform .15s,box-shadow .2s}
.support-fab:hover{transform:translateY(-2px)}
.support-fab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.support-fab.on{transform:scale(.96)}
.support-panel{position:fixed;right:22px;bottom:78px;z-index:71;width:min(340px,calc(100vw - 32px));
  background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
.support-panel[hidden]{display:none}
.sp-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;
  border-bottom:1px solid var(--line);font-family:var(--display);font-weight:600}
.sp-x{background:none;border:0;color:var(--muted);font-size:1.4rem;line-height:1;cursor:pointer;padding:0 .2em}
.sp-body{padding:16px;display:grid;gap:10px}
.sp-hint{margin:0;font-size:.82rem;color:var(--muted)}
.sp-faq{display:grid;gap:2px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 0}
.sp-faq details{border-radius:8px}
.sp-faq summary{cursor:pointer;list-style:none;padding:8px 4px;font-size:.86rem;font-weight:600;display:flex;justify-content:space-between;gap:8px}
.sp-faq summary::-webkit-details-marker{display:none}
.sp-faq summary::after{content:"+";color:var(--muted);font-weight:400}
.sp-faq details[open] summary::after{content:"–"}
.sp-faq details>div{padding:0 4px 9px;font-size:.82rem;color:var(--muted);line-height:1.5}
.support-panel textarea,.support-panel input{width:100%;background:var(--surface2);border:1px solid var(--line);
  border-radius:10px;padding:.7em .8em;color:var(--text);font:inherit;font-size:.9rem;resize:vertical}
.support-panel .hp{position:absolute;left:-9999px}
.support-panel .btn-hot{width:100%}
.sp-alt{font-size:.82rem;color:var(--cool);text-align:center}
.sp-msg{margin:0;font-size:.82rem;color:var(--muted);min-height:1em}
@media(max-width:560px){.support-fab span{display:none}.support-fab{padding:.8em}}
/* ── ассистент: чат-интерфейс ── */
.support-panel{display:flex;flex-direction:column;max-height:min(74vh,600px)}
.support-panel .sp-head{flex:none}
.sp-title{display:flex;align-items:center;gap:.5em}
.sp-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px color-mix(in srgb,#22c55e 26%,transparent)}
.sp-log{flex:1;min-height:180px;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:9px}
.sp-b{max-width:88%;padding:.6em .8em;border-radius:14px;font-size:.87rem;line-height:1.5;word-wrap:break-word;animation:spIn .18s ease}
.sp-b.bot{align-self:flex-start;background:var(--surface2);border:1px solid var(--line);border-bottom-left-radius:5px}
.sp-b.me{align-self:flex-end;background:linear-gradient(135deg,var(--cool),var(--cool2));color:#fff;border-bottom-right-radius:5px}
.sp-b a{color:var(--cool);font-weight:600}
.sp-b.me a{color:#fff;text-decoration:underline}
@keyframes spIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sp-typing{display:inline-flex;gap:4px;align-items:center;padding:2px 0}
.sp-typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);opacity:.5;animation:spDot 1s infinite}
.sp-typing i:nth-child(2){animation-delay:.15s}.sp-typing i:nth-child(3){animation-delay:.3s}
@keyframes spDot{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.sp-chips{flex:none;display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 4px}
.sp-chip{cursor:pointer;border:1px solid var(--line);background:var(--surface2);color:var(--text);border-radius:999px;
  padding:.42em .8em;font:inherit;font-size:.78rem;line-height:1;transition:border-color .15s,color .15s}
.sp-chip:hover{border-color:var(--cool);color:var(--cool)}
.sp-ask{flex:none;display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.sp-ask input{flex:1;background:var(--surface2);border:1px solid var(--line);border-radius:999px;
  padding:.6em .9em;color:var(--text);font:inherit;font-size:.9rem}
.sp-ask input:focus{outline:none;border-color:var(--cool)}
.sp-go{flex:none;width:40px;height:40px;border:0;border-radius:50%;cursor:pointer;color:#fff;font-size:1.2rem;line-height:1;
  background:linear-gradient(135deg,var(--cool),var(--cool2));box-shadow:0 8px 20px -8px var(--cglow)}
.sp-human{margin-top:8px;display:grid;gap:8px}
.sp-human .btn-hot{width:100%}
@media(max-width:560px){.support-panel{max-height:78vh}}
/* кнопки в hero внутренних страниц не должны липнуть к тексту */
.page-hero .doors{margin-top:26px}

/* ── «дорогие» эффекты без переписывания ── */
/* 1) плавное появление секций/карточек при скролле (класс навешивает app.js —
      если JS отключён, ничего не прячется) */
.reveal{opacity:0;transform:translateY(26px);will-change:opacity,transform;
  transition:opacity .7s cubic-bezier(.22,.7,.2,1),transform .7s cubic-bezier(.22,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal,.reveal.in{opacity:1;transform:none;transition:none}}

/* 2) мягкое свечение на секциях-полосах — читается «дороже» */
.blk.band{position:relative;overflow:hidden}
.blk.band::before{content:"";position:absolute;pointer-events:none;z-index:0;
  width:min(62vw,760px);height:min(62vw,760px);border-radius:50%;top:-22%;right:-12%;
  background:radial-gradient(circle,color-mix(in srgb,var(--cool) 12%,transparent),transparent 62%)}
.blk.band>.wrap{position:relative;z-index:1}
#zayavka.band::before{top:auto;right:auto;bottom:-26%;left:-14%;
  background:radial-gradient(circle,color-mix(in srgb,var(--hot) 12%,transparent),transparent 62%)}

/* 3) световой блик по главной кнопке на ховере */
.btn-hot{position:relative;overflow:hidden}
.btn-hot::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;transform:skewX(-18deg);
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);pointer-events:none}
.btn-hot:hover::after{animation:shine .75s ease}
@keyframes shine{from{left:-70%}to{left:130%}}
@media (prefers-reduced-motion:reduce){.btn-hot:hover::after{animation:none}}
.kbadge{display:inline-flex;gap:.6em;align-items:center;font-family:var(--mono);font-size:.71rem;
  letter-spacing:.11em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);
  border-radius:999px;padding:.5em .9em;margin-bottom:20px;background:color-mix(in srgb,var(--surface) 60%,transparent)}
.kbadge b{color:var(--cool);font-weight:700}
.hero h1 em{font-style:normal;color:var(--hot);font-variation-settings:"wdth" 92}
.hero p.lead{font-size:1.18rem;color:var(--muted);max-width:38ch;margin:22px 0 30px;line-height:1.45}
.doors{display:flex;gap:12px;flex-wrap:wrap}
.under{margin-top:14px;font-size:.85rem;color:var(--muted)}
.under b{color:var(--cool)}

/* РАДАР-ЛЕНТА */
.feed{position:relative;height:470px;border-radius:20px;overflow:hidden;border:1px solid var(--line);
  background:var(--surface);box-shadow:var(--shadow)}
.feed::before,.feed::after{content:"";position:absolute;left:0;right:0;height:64px;z-index:2;pointer-events:none}
.feed::before{top:44px;background:linear-gradient(var(--surface),transparent)}
.feed::after{bottom:0;height:96px;background:linear-gradient(transparent,var(--surface) 62%)}
.feed-head{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;gap:9px;
  padding:13px 16px;font-family:var(--mono);font-size:.71rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--muted);border-bottom:1px solid var(--line);background:var(--surface)}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--hot);animation:pulse 1.7s infinite}
/* ЛЕНТА ЗАЯВОК. Крутится 60 карточек на 4668px. Без выноса в отдельный слой
   браузер перерисовывает это на главном потоке и лента дёргается («завис радар»).
   will-change + translateZ отдают анимацию композитору; contain отсекает влияние
   внутренних перерисовок на остальную страницу. */
.stream{position:absolute;top:46px;left:0;right:0;padding:10px 13px;display:flex;flex-direction:column;gap:9px;
  animation:roll 60s linear infinite;
  will-change:transform;transform:translateZ(0);backface-visibility:hidden;contain:layout paint}
.feed{contain:layout paint}
/* Лента за пределами экрана продолжала крутиться и жгла процессор — на телефоне
   от этого дёргалась вся страница. JS вешает .off, когда блок ушёл из вида. */
.stream.off{animation-play-state:paused}
@keyframes roll{from{transform:translateY(0)}to{transform:translateY(-50%)}}
/* карточка заявки — значок ниши в цветном квадрате + строка, мягкая подсветка на ховере */
.lc{position:relative;display:flex;align-items:center;gap:13px;background:var(--surface2);
  border:1px solid var(--line);border-radius:14px;padding:12px 14px;overflow:hidden;
  transition:transform .18s ease,border-color .2s ease,box-shadow .25s ease}
.lc::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s;
  background:radial-gradient(130% 120% at 0% 0%,color-mix(in srgb,var(--cat,var(--hot)) 12%,transparent),transparent 55%)}
.lc:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--cat,var(--hot)) 45%,var(--line));
  box-shadow:0 16px 32px -22px color-mix(in srgb,var(--cat,var(--hot)) 70%,transparent)}
.lc:hover::after{opacity:1}
.lc-ic{position:relative;z-index:1;width:42px;height:42px;border-radius:12px;flex:0 0 auto;display:grid;
  place-items:center;color:var(--cat,var(--hot));background:color-mix(in srgb,var(--cat,var(--hot)) 15%,transparent);
  border:1px solid color-mix(in srgb,var(--cat,var(--hot)) 24%,transparent)}
.lc-ic svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.lc-b{position:relative;z-index:1;flex:1;min-width:0}
.lc-t{font-family:var(--display);font-weight:600;font-size:.95rem;line-height:1.25;letter-spacing:-.01em;
  color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-m{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:.75rem;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-cat{color:var(--cat,var(--hot));font-weight:600;flex:0 0 auto}
.lc-sep{opacity:.5;flex:0 0 auto}
.lc-loc{overflow:hidden;text-overflow:ellipsis}
.lc-side{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:0 0 auto}
.lc-tm{font-family:var(--mono);font-size:.72rem;color:var(--muted);opacity:.8;font-variant-numeric:tabular-nums}
.lc-u{font-family:var(--mono);font-size:.58rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;
  color:var(--hot);background:color-mix(in srgb,var(--hot) 15%,transparent);border-radius:999px;
  padding:.28em .55em;display:inline-flex;align-items:center;gap:.4em}
.lc-u::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--hot);animation:pulse 1.5s infinite}
.feed-note{position:absolute;bottom:0;left:0;right:0;z-index:3;text-align:center;font-family:var(--mono);
  font-size:.66rem;color:var(--muted);letter-spacing:.06em;padding:9px 8px;background:var(--surface)}

/* СТАТЫ */
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-top:42px;position:relative}
.stat{padding:18px 20px}
.stat b{display:block;font-family:var(--mono);font-size:1.72rem;font-weight:700;letter-spacing:-.04em;
  font-variant-numeric:tabular-nums}
.stat b .accent{color:var(--hot)}
.stat span{font-size:.82rem;color:var(--muted)}
.stats-note{grid-column:1/-1;font-size:.74rem;color:var(--muted);font-family:var(--mono);text-align:right;opacity:.75}

/* КАРТОЧКИ-СЕТКИ */
.mag{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.mag .card{padding:26px 24px 24px;display:flex;flex-direction:column;gap:12px;border-radius:var(--rd);position:relative;
  border:1px solid var(--line);transition:transform .2s,border-color .2s,box-shadow .2s}
.mag .card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c,var(--hot)) 42%,var(--line));
  box-shadow:0 22px 46px -26px var(--c,rgba(0,0,0,.5))}
.mag-ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--c) 16%,var(--surface2))}
.mag-ic svg{width:24px;height:24px;fill:none;stroke:var(--c);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mag h3{font-size:1.12rem;line-height:1.25}
.mag p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}
.soon{display:inline-block;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--cool);border:1px solid var(--cool);border-radius:6px;padding:.2em .55em;margin-left:.5em;vertical-align:middle}

/* ЛЕНТА ИСТОЧНИКОВ — тонкий бар доверия «откуда идёт поток» (Marquee) */
.sources{margin:8px 0 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;position:relative;padding:20px 0}
.sources::before,.sources::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none}
.sources::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.sources::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
.band .sources::before{background:linear-gradient(90deg,var(--surface2),transparent)}
.band .sources::after{background:linear-gradient(270deg,var(--surface2),transparent)}
.src-run{display:flex;gap:52px;white-space:nowrap;width:max-content;animation:srcroll 34s linear infinite}
.sources:hover .src-run{animation-play-state:running}
.src-run span{display:inline-flex;align-items:center;gap:.5em;font-family:var(--display);font-weight:600;
  font-size:1.15rem;color:var(--muted);letter-spacing:-.01em}
.src-run span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cool);opacity:.6}
@keyframes srcroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.src-run{animation:none;flex-wrap:wrap;white-space:normal;gap:16px 32px}}

.eco{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.eco .card{padding:32px 28px;position:relative;overflow:hidden;border-radius:var(--rd);transition:transform .2s}
.eco .card:hover{transform:translateY(-3px)}
.eco .card::before{content:"";position:absolute;top:0;left:26px;right:26px;height:1px;background:var(--cool);opacity:.5}
.eco .n{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:14px}
.eco .n b{color:var(--cool);font-weight:600}
.eco h3{font-size:1.14rem;margin-bottom:8px}
.eco p{margin:0;color:var(--muted);font-size:.92rem}
.eco .payout{margin-top:14px;font-family:var(--mono);font-size:.8rem;color:var(--cool)}
.eco-rules{margin-top:22px;padding:20px 24px;display:flex;gap:26px;flex-wrap:wrap;font-size:.86rem;color:var(--muted)}
.eco-rules b{color:var(--text)}
.eco-rules span{display:flex;gap:.5em;align-items:baseline}
.eco-rules span::before{content:"—";color:var(--cool);font-weight:700}

.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.path{padding:28px}
.path h3{font-size:1.26rem;margin-bottom:5px}
.path .who{font-family:var(--mono);font-size:.71rem;letter-spacing:.14em;text-transform:uppercase}
.path.client .who{color:var(--hot)} .path.biz .who{color:var(--cool)}
.steps{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:15px;counter-reset:s}
.steps li{display:flex;gap:13px;align-items:flex-start}
.steps li::before{counter-increment:s;content:counter(s);flex:0 0 auto;width:27px;height:27px;border-radius:8px;
  display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:.83rem;
  background:var(--surface2);border:1px solid var(--line)}
.path.client .steps li::before{color:var(--hot)} .path.biz .steps li::before{color:var(--cool)}
.steps b{font-weight:700}.steps p{margin:2px 0 0;color:var(--muted);font-size:.9rem}

.niches{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.58em 1em;font-weight:600;
  font-size:.93rem;transition:.15s;display:inline-flex;align-items:center;gap:.5em;cursor:pointer;color:var(--text);font-family:var(--dsp)}
.chip:hover,.chip.sel{border-color:var(--hot);color:var(--hot);transform:translateY(-2px)}
.chip i{width:6px;height:6px;border-radius:50%;background:var(--hot);opacity:.75}
.chip.new i{background:var(--cool)}
.niches-hint{margin-top:14px;font-size:.8rem;color:var(--muted);font-family:var(--mono)}

/* ФОРМА */
.form-wrap{display:grid;grid-template-columns:1.06fr .94fr;gap:20px;align-items:start}
form.lead-form{padding:26px;display:grid;gap:13px}
label{display:block;font-size:.8rem;font-weight:600;margin-bottom:5px}
label .opt{color:var(--muted);font-weight:400}
input,select,textarea{width:100%;background:var(--bg);border:1.5px solid var(--line);color:var(--text);
  border-radius:11px;padding:.78em .9em;font-family:var(--dsp);font-size:1rem}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--hot);box-shadow:0 0 0 4px var(--glow)}
textarea{resize:vertical;min-height:86px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.urgent{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px dashed var(--line);border-radius:11px;
  cursor:pointer;transition:border-color .2s;user-select:none}
.urgent:has(input:checked){border-color:var(--hot);background:color-mix(in srgb,var(--hot) 7%,transparent)}
.urgent input{width:auto;accent-color:var(--hot)}
.urgent b{font-size:.9rem}.urgent span{font-size:.78rem;color:var(--muted)}
.side{display:flex;flex-direction:column;gap:14px}
.promise{padding:22px 24px}
.promise h3{font-size:1.05rem;margin-bottom:10px}
.promise ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:.9rem;color:var(--muted)}
.promise li{display:flex;gap:9px}.promise li::before{content:"✓";color:var(--cool);font-weight:800}
.gift{padding:20px 24px;border:1.5px dashed var(--cool);border-radius:var(--r);font-size:.88rem;color:var(--muted)}
.gift b{color:var(--text)}
.ok-box{display:none;padding:28px}
.ok-box.on{display:block}
.ok-box .big{font-size:1.35rem;font-weight:800;margin-bottom:8px}
.ok-box .big span{color:var(--ok)}
.tg-fall{margin-top:16px;padding:16px;border:1.5px solid var(--line);border-radius:12px;display:none}
.tg-fall.on{display:block}
.tg-fall p{margin:0 0 12px;font-size:.88rem;color:var(--muted)}
.tg-fall textarea{font-family:var(--mono);font-size:.82rem;min-height:120px}
.fall-btns{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}

/* УМНАЯ ФОРМА */
.smart{padding:22px 24px;margin-bottom:16px;border:1.5px solid var(--cool);position:relative}
.smart label{font-size:.85rem}
.smart .parse{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;min-height:30px}
.ptag{font-family:var(--mono);font-size:.74rem;border:1px solid var(--cool);color:var(--cool);
  border-radius:999px;padding:.32em .8em;animation:pin .2s ease-out}
.ptag.hotk{border-color:var(--hot);color:var(--hot)}
@keyframes pin{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
.smart .hint{font-size:.74rem;color:var(--muted);font-family:var(--mono);margin-top:8px}

/* ЧЕК-ЛИСТ */
.cl{margin-top:16px;border:1.5px solid var(--cool);border-radius:var(--r);overflow:hidden}
.cl summary{cursor:pointer;list-style:none;padding:16px 20px;font-weight:700;display:flex;align-items:center;gap:10px;
  background:color-mix(in srgb,var(--cool) 8%,transparent)}
.cl summary::-webkit-details-marker{display:none}
.cl summary::after{content:"+";margin-left:auto;font-family:var(--mono);font-size:1.2rem;color:var(--cool)}
.cl[open] summary::after{content:"–"}
.cl-body{padding:6px 22px 20px}
.cl-body ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px;font-size:.9rem}
.cl-body li b{display:block}
.cl-body li span{color:var(--muted);font-size:.85rem}

/* БИЗНЕС */
.fora{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:40px}
.fora .card{padding:26px}
.fora h3{font-size:1.12rem;margin-bottom:8px}
.fora p{margin:0;color:var(--muted);font-size:.93rem}
.fora .big-mono{font-family:var(--mono);font-size:2rem;font-weight:700;color:var(--cool);letter-spacing:-.03em;margin-bottom:6px}
.srcs{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.src{font-family:var(--mono);font-size:.72rem;border:1px solid var(--line);border-radius:7px;padding:.35em .7em;color:var(--muted)}

.tar{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.plan{padding:25px;display:flex;flex-direction:column;gap:5px;position:relative}
.plan.hi{border-color:var(--hot);box-shadow:0 0 0 1px var(--hot),0 18px 40px -20px var(--glow)}
.plan .tag{position:absolute;top:-11px;left:24px;background:var(--hot);color:#fff;font-size:.66rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;padding:.32em .7em;border-radius:6px}
.plan .nm{font-weight:800;font-size:1.15rem}
.plan .price{font-family:var(--mono);font-size:1.85rem;font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.plan .price small{font-size:.85rem;color:var(--muted);font-weight:600;font-family:var(--dsp)}
.plan .per{font-family:var(--mono);font-size:.76rem;color:var(--cool)}
.plan ul{list-style:none;padding:0;margin:12px 0 18px;display:flex;flex-direction:column;gap:8px;font-size:.9rem}
.plan li{display:flex;gap:9px;color:var(--muted)}.plan li::before{content:"✓";color:var(--cool);font-weight:800}
.plan .btn{margin-top:auto}
.packs{margin-top:18px;padding:20px 24px}
.packs h3{font-size:1rem;margin-bottom:12px}
.packs table,.dtable{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.88rem;font-variant-numeric:tabular-nums}
.packs th,.dtable th{text-align:left;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  padding:6px 8px;border-bottom:1px solid var(--line);font-weight:600}
.packs td,.dtable td{padding:8px;border-bottom:1px solid var(--line)}
.packs tr:last-child td,.dtable tr:last-child td{border-bottom:0}
.packs .pl,.dtable .pl{color:var(--cool)}
.tar-note{margin-top:14px;font-size:.8rem;color:var(--muted)}

/* ЛИД-КАРТОЧКА КАК В БОТЕ */
.botmsg{font-family:var(--mono);font-size:.83rem;line-height:1.6;background:var(--surface2);
  border:1px solid var(--line);border-radius:14px;padding:18px 20px;white-space:pre-wrap;overflow-x:auto}
.botmsg .h{color:var(--hot);font-weight:700}
.botmsg .c{color:var(--cool)}
.bot-demo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bot-demo .cap{font-size:.8rem;color:var(--muted);margin-top:8px;font-family:var(--mono)}

/* КАЛЬКУЛЯТОР */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.calc-form{padding:26px;display:grid;gap:15px}
.calc-form .rng{display:flex;align-items:center;gap:12px}
.calc-form input[type=range]{accent-color:var(--hot);padding:0;flex:1}
.calc-form .rv{font-family:var(--mono);font-weight:700;min-width:64px;text-align:right;font-variant-numeric:tabular-nums}
.calc-out{padding:26px;display:grid;gap:13px}
.calc-out .row{display:flex;justify-content:space-between;gap:12px;font-size:.95rem;padding:9px 0;border-bottom:1px dashed var(--line)}
.calc-out .row:last-of-type{border-bottom:0}
.calc-out .row b{font-family:var(--mono);font-variant-numeric:tabular-nums}
.calc-out .total{font-size:1.15rem;padding-top:6px}
.calc-out .total b{color:var(--cool);font-size:1.5rem}
.calc-note{font-size:.78rem;color:var(--muted)}

/* ГРАФИКИ (CSS-бары) */
.bars{display:flex;align-items:flex-end;gap:5px;height:150px;padding:16px 2px 0;
  border-bottom:1px solid var(--line);position:relative}
/* тонкая сетка-ориентир на фоне столбиков */
.bars::before{content:"";position:absolute;left:0;right:0;top:16px;bottom:1px;pointer-events:none;
  background:repeating-linear-gradient(to top,transparent,transparent 32px,var(--line) 32px,var(--line) 33px);opacity:.5}
.bars .b{flex:1;background:linear-gradient(180deg,var(--hot2),var(--hot));border-radius:5px 5px 0 0;min-height:4px;
  position:relative;transition:filter .15s;cursor:default}
.bars .b:hover{filter:brightness(1.3)}
.bars .b.cl{background:linear-gradient(180deg,var(--cool2),var(--cool))}
/* значение над столбиком при наведении */
.bars .b::after{content:attr(data-v);position:absolute;left:50%;top:-16px;transform:translateX(-50%);
  font-family:var(--mono);font-size:.6rem;color:var(--text);opacity:0;transition:opacity .15s;pointer-events:none}
.bars .b:hover::after{opacity:1}
.bars-x{display:flex;gap:5px;padding:8px 2px 0;font-family:var(--mono);font-size:.62rem;color:var(--muted)}
.bars-x span{flex:1;text-align:center}
.hbars{display:grid;gap:11px}
.hbar{display:grid;grid-template-columns:150px 1fr 46px;gap:14px;align-items:center;font-size:.9rem}
.hbar .tr{height:14px;background:var(--surface2);border-radius:7px;overflow:hidden}
.hbar .fl{height:100%;background:linear-gradient(90deg,var(--cool),var(--cool2));border-radius:7px;
  transition:filter .15s}
.hbar:hover .fl{filter:brightness(1.15)}
.hbar .fl.cl{background:linear-gradient(90deg,var(--cool),var(--cool2))}
/* лидер списка — акцентным цветом */
.hbars .hbar:first-child .fl{background:linear-gradient(90deg,var(--hot),var(--hot2))}
.hbar b{font-family:var(--mono);font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.hbar .lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* РАДАР-СТРАНИЦА */
.radar-full{display:grid;gap:11px;grid-template-columns:1fr 1fr}
@media(max-width:720px){.radar-full{grid-template-columns:1fr}}
.radar-full .lc{animation:pin .25s ease-out}
.radar-filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}
.rstats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px}
.rstats .card{padding:22px 24px}
.rstats h3{font-size:1rem;margin-bottom:14px}

/* ЦЕНЫ/СПРОС */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.pcard{padding:22px 24px;display:flex;flex-direction:column;gap:6px}
.pcard .pn{font-weight:800;font-size:1.08rem;text-transform:capitalize}
.pcard .pv{font-family:var(--mono);font-size:1.5rem;font-weight:700;color:var(--cool)}
.pcard .pv small{font-size:.8rem;color:var(--muted)}
.pcard .pm{font-size:.8rem;color:var(--muted)}
.pcard ul{list-style:none;margin:10px 0 0;padding:0;font-size:.84rem;color:var(--muted);display:grid;gap:5px}
.pcard li{display:flex;justify-content:space-between;gap:8px}
.pcard li b{font-family:var(--mono);color:var(--text);font-variant-numeric:tabular-nums}
.pcard li.pmore{opacity:.6;font-size:.78rem;font-style:italic;margin-top:2px}

/* FAQ */
/* монохромный минимал-аккордеон: одна колонка, крупный шрифт, тонкие линии (без карточек) */
.faq{max-width:860px;margin:0 auto;display:grid;gap:10px}
.qa{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;
  transition:border-color .2s,background .2s}
.qa:hover{border-color:color-mix(in srgb,var(--text) 22%,var(--line))}
.qa[open]{border-color:color-mix(in srgb,var(--hot) 42%,var(--line));background:color-mix(in srgb,var(--hot) 4%,var(--surface))}
.qa summary{cursor:pointer;list-style:none;padding:20px 22px;font-weight:600;font-size:1.12rem;
  letter-spacing:-.01em;line-height:1.3;display:flex;align-items:center;gap:16px}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";margin-left:auto;flex:0 0 auto;width:10px;height:10px;margin-top:-3px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);
  transition:transform .25s,border-color .25s}
.qa[open] summary::after{transform:rotate(-135deg);margin-top:3px;border-color:var(--hot)}
.qa>div{padding:0 22px 22px;color:var(--muted);font-size:1rem;line-height:1.65;max-width:66ch;
  animation:faqIn .28s ease}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(max-width:560px){.qa summary{font-size:1.02rem;padding:17px 18px}.qa>div{padding:0 18px 18px}}
/* анимированные цифры калькуляторов: блюр-морф при изменении */
.num-blur{display:inline-block}
.num-blur.flash{animation:numblur .42s cubic-bezier(.2,.7,.2,1)}
@keyframes numblur{0%{filter:blur(7px);opacity:.35;transform:scale(.92)}100%{filter:blur(0);opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.num-blur.flash{animation:none}.qa>div{animation:none}}

/* ОФЕРТА */
.offer{padding:clamp(22px,3vw,34px);display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(260px,.9fr);gap:clamp(20px,2.4vw,30px);align-items:stretch;
  background:linear-gradient(115% 100% at 0 0,var(--glow),transparent 55%),var(--surface)}
.offer>div:first-child{display:flex;flex-direction:column}
.offer>div:first-child .btn{align-self:flex-start;margin-top:auto}
.offer-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:9px}
.offer-list li{position:relative;padding-left:26px;color:var(--muted);font-size:.94rem;line-height:1.4}
.offer-list li::before{content:"";position:absolute;left:0;top:.32em;width:15px;height:15px;border-radius:50%;
  background:color-mix(in srgb,var(--cool) 20%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cool) 55%,transparent)}
.offer-list li::after{content:"";position:absolute;left:5px;top:.62em;width:4.5px;height:2.4px;
  border-left:1.6px solid var(--cool);border-bottom:1.6px solid var(--cool);transform:rotate(-45deg)}
.req{font-family:var(--mono);font-size:.82rem;line-height:1.9;color:var(--muted)}
.req b{color:var(--text)}
/* панель-рамка реквизитов — только в блоках «оферта/подключение» */
.offer .req{border:1px solid var(--line);border-radius:var(--rd);padding:22px 24px;
  background:color-mix(in srgb,var(--bg) 40%,transparent);display:flex;flex-direction:column;justify-content:center}
".req-note{display:block;opacity:.6;margin-top:10px;font-size:.72rem}
/* «Зажечь заявку» — платная опция клиента. Выделяем, но не кричим: это выбор,
   а не обязательный шаг, и форма не должна выглядеть как воронка допродаж. */
.boost-row{display:flex;gap:11px;align-items:flex-start;margin:2px 0 4px;padding:12px 14px;
  border:1px solid color-mix(in srgb,var(--hot) 34%,var(--line));border-radius:12px;cursor:pointer;
  background:color-mix(in srgb,var(--hot) 6%,transparent);transition:border-color .2s,background .2s}
.boost-row:hover{border-color:color-mix(in srgb,var(--hot) 55%,var(--line))}
.boost-row input{margin-top:3px;flex:0 0 auto;accent-color:var(--hot);width:17px;height:17px}
.boost-row b{display:block;font-size:.92rem;color:var(--text);font-weight:600}
.boost-row i{display:block;font-style:normal;font-size:.8rem;color:var(--muted);line-height:1.45;margin-top:2px}
/* ── Панель фактов внутри .offer: раньше это была цепочка <br>, и в узкой колонке
   она ломалась по одному слову в строку («потолок / 20.00 BYN / подписка / мастера:»).
   Теперь строка = подпись слева + значение справа, значение не переносится вовсе. ── */
.req-t{display:block;font-family:var(--display);font-size:.72rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.req-t+.req-t{margin-top:20px}
.req-rows{display:grid;gap:0;margin:0;padding:0;list-style:none}
.req-rows>li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 14px;
  padding:9px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.req-rows>li:last-child{border-bottom:0;padding-bottom:0}
.req-rows>li:first-child{padding-top:0}
.req-rows .k{font-family:var(--mono);font-size:.76rem;color:var(--muted);line-height:1.35}
.req-rows .v{font-family:var(--mono);font-size:.86rem;font-weight:700;color:var(--text);
  white-space:nowrap;text-align:right;margin-left:auto}
.req-rows .v small{display:block;font-weight:400;font-size:.7rem;color:var(--muted);white-space:normal}
/* Списки «что скрыто / что получает» — маркер вместо тире, без переносов посреди фразы */
.req-ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.req-ul li{position:relative;padding-left:16px;font-family:var(--mono);font-size:.78rem;
  line-height:1.5;color:var(--muted)}
.req-ul li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:1.5px;
  background:color-mix(in srgb,var(--cool) 70%,transparent)}
.req-ul.yes li::before{width:6px;height:6px;top:.42em;border-radius:50%;background:var(--cool)}
@media(max-width:860px){.req-rows>li{padding:8px 0}}
/* партнёрская программа: строка призыва под тремя карточками */
.eco-cta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:24px}
.eco-cta .muted{font-size:.85rem}
.doc{max-width:820px;margin:0 auto;padding:36px 40px}
.doc h2{font-size:1.25rem;margin:28px 0 10px}
.doc h2:first-child{margin-top:0}
.doc p,.doc li{color:var(--muted);font-size:.93rem}
.doc .ph{background:color-mix(in srgb,var(--hot) 9%,transparent);border-radius:4px;padding:0 .3em;font-family:var(--mono);font-size:.85em}

/* ── СТРАНИЦА ЦЕННОСТИ ── */
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.vcard{padding:26px;display:flex;flex-direction:column;gap:10px;position:relative}
.vcard.accent{border-color:var(--hot);box-shadow:0 0 0 1px var(--hot),0 18px 40px -22px var(--glow)}
.vnum{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-family:var(--mono);
  font-weight:700;background:var(--surface2);border:1px solid var(--line);color:var(--hot)}
.vcard h3{font-size:1.08rem}
.vcard p{margin:0;color:var(--muted);font-size:.92rem}
.vcard p a{color:var(--cool);text-decoration:underline;text-underline-offset:2px}
.vgain{margin-top:auto;padding-top:10px;font-family:var(--mono);font-size:.78rem;color:var(--cool);
  border-top:1px dashed var(--line)}
table.cmp{width:100%;border-collapse:collapse;font-size:.9rem;min-width:720px}
table.cmp th{text-align:left;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600}
table.cmp td{padding:12px;border-bottom:1px solid var(--line);color:var(--muted);vertical-align:top}
table.cmp tr.us td{background:color-mix(in srgb,var(--hot) 7%,transparent);color:var(--text)}
table.cmp tr.us td:first-child b{color:var(--hot)}
table.cmp .y{color:var(--ok)} table.cmp .n{color:var(--hot)} table.cmp .m{color:var(--muted)}

/* ── ПУТЬ БАЛЛА ── */
.flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:stretch}
.fstep{padding:22px;display:flex;flex-direction:column;gap:8px}
.fstep h3{font-size:1.02rem}
.fstep p{margin:0;color:var(--muted);font-size:.88rem}
.fdot{width:12px;height:12px;border-radius:50%}
.fdot.pend{background:var(--muted)} .fdot.hold{background:var(--hot)}
.fdot.avail{background:var(--ok)} .fdot.paid{background:var(--cool)}
.fwhy{margin-top:auto;padding-top:10px;border-top:1px dashed var(--line);font-size:.76rem;color:var(--muted);font-style:italic}
.farr{align-self:center;color:var(--muted);font-family:var(--mono)}

/* ── КАБИНЕТ ── */
.cab{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;align-items:start}
.cab-main{padding:26px}
.cab-bal{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.cbi{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.cbi.hi{border-color:var(--ok)}
.cbi span{display:block;font-size:.74rem;color:var(--muted);margin-bottom:4px}
.cbi b{font-family:var(--mono);font-size:1.1rem;font-variant-numeric:tabular-nums}
.cbi.hi b{color:var(--ok)}
.cab-actions{display:flex;gap:10px;flex-wrap:wrap}
.cab-actions .btn{font-size:.9rem;padding:.7em 1.05em}
.cab-msg{font-size:.85rem;color:var(--muted);margin:14px 0 0;min-height:2.4em}
.cab-hist{margin-top:14px;display:grid;gap:8px;max-height:290px;overflow-y:auto}
.hrow{display:grid;grid-template-columns:150px 1fr auto;gap:12px;align-items:center;padding:10px 12px;
  background:var(--surface2);border-radius:10px;font-size:.85rem}
.hrow b{font-family:var(--mono);font-variant-numeric:tabular-nums}
.hnote{color:var(--muted)}
.hst{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;
  padding:.25em .6em;border-radius:6px;border:1px solid var(--line);text-align:center}
.hst.pending{color:var(--muted)} .hst.hold{color:var(--hot);border-color:var(--hot)}
.hst.available{color:var(--ok);border-color:var(--ok)} .hst.withdrawn{color:var(--cool);border-color:var(--cool)}
.hst.cancelled{color:var(--muted);opacity:.6}
.reflink{padding:12px 14px;border:1.5px dashed var(--cool);border-radius:10px;color:var(--cool);
  font-size:.92rem;word-break:break-all}
.promise-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;
  font-size:.87rem;color:var(--muted)}
.promise-list li{display:flex;gap:9px}
.promise-list li::before{content:"→";color:var(--cool)}

/* ── РЕЙТИНГ ── */
.rparts{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.rpart{padding:24px;display:flex;flex-direction:column;gap:8px;position:relative}
.rw{position:absolute;top:18px;right:20px;font-family:var(--mono);font-size:1.6rem;font-weight:700;
  color:var(--hot);opacity:.35}
.rpart h3{font-size:1.04rem;padding-right:42px}
.rpart p{margin:0;color:var(--muted);font-size:.9rem}
.rhint{margin-top:auto;padding-top:10px;border-top:1px dashed var(--line);font-size:.75rem;color:var(--muted)}
.formula{margin-top:18px;padding:18px 22px;text-align:center;font-size:.92rem;overflow-x:auto}
.formula .mono{color:var(--cool);white-space:nowrap}
.sim{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.simcard{padding:22px;display:flex;flex-direction:column;gap:12px}
.simcard h3{font-size:1rem}
.simcard label{font-size:.8rem;color:var(--muted);display:block;margin:0}
.simcard label b{color:var(--text);float:right}
.simcard input[type=range]{width:100%;accent-color:var(--hot);margin-top:6px;padding:0}
.simcard select{margin-top:6px;font-size:.88rem;padding:.5em .6em}
.sim-out{margin-top:16px;padding:24px}
.simrow{display:grid;grid-template-columns:34px 1fr auto auto auto;gap:14px;align-items:center;
  padding:12px;border-bottom:1px solid var(--line);font-size:.9rem}
.simrow:last-of-type{border-bottom:0}
.simpos{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--surface2);
  border:1px solid var(--line);font-weight:700;font-size:.82rem}
.simrow:first-of-type .simpos{background:linear-gradient(135deg,var(--hot),var(--hot2));color:#fff;border:0}
.simname{font-weight:700}
.vbadge{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cool);
  border:1px solid var(--cool);border-radius:5px;padding:.15em .45em;margin-left:.4em;vertical-align:middle}
.simr{color:var(--muted);font-size:.82rem}
.simsc{color:var(--cool);font-size:.85rem;font-variant-numeric:tabular-nums}
.simwave{font-size:.78rem;color:var(--hot)}
.waves{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.wave{padding:24px;display:flex;flex-direction:column;gap:8px}
.wt{font-size:1.4rem;font-weight:700;color:var(--cool)}
.wave h3{font-size:1.05rem}
.wave p{margin:0;color:var(--muted);font-size:.9rem}

/* минимал-подвал (сетка: бренд+меню сверху, разделитель, примечание+копирайт снизу) */
footer{border-top:1px solid var(--line);padding:48px 0 38px;color:var(--muted);font-size:.86rem;margin-top:60px;
  background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--surface2) 45%,transparent))}
.foot-in{display:grid;grid-template-columns:auto 1fr;gap:22px 40px;align-items:center}
.foot-in>div:first-child{grid-column:1;grid-row:1;font-size:1rem;color:var(--text);white-space:nowrap}
.foot-nav{grid-column:2;grid-row:1;display:flex;gap:14px 22px;flex-wrap:wrap;justify-content:flex-end;font-size:.86rem}
.foot-nav a{color:var(--muted);transition:color .15s}
.foot-nav a:hover{color:var(--hot)}
.foot-note{grid-column:1/-1;grid-row:2;font-size:.75rem;opacity:.78;max-width:76ch;
  border-top:1px solid var(--line);padding-top:20px}
footer .mono{grid-column:1/-1;grid-row:3;font-size:.78rem;opacity:.9}
@media(max-width:720px){.foot-in{grid-template-columns:1fr;gap:16px}
  .foot-in>div:first-child,.foot-nav{grid-column:1;grid-row:auto;justify-self:start;white-space:normal}
  .foot-nav{justify-content:flex-start}}

/* ── bento: первый «магнит» — широкий фичер, остальные три в ряд (уходим от 4 одинаковых) ── */
.mag{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mag>.card:first-child{grid-column:1/-1;padding:28px 30px;
  background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--hot) 9%,transparent),transparent 55%),var(--surface)}
.mag>.card:first-child h3{font-size:1.35rem}
.mag>.card:first-child p{max-width:60ch;font-size:1rem}
@media(max-width:760px){.mag{grid-template-columns:1fr}.mag>.card:first-child{grid-column:auto}}

/* ── карточка входа: бегущая рамка (border-beam) ── */
@property --beam{syntax:'<angle>';inherits:false;initial-value:0deg}
.auth-card{position:relative;isolation:isolate}
.auth-card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;z-index:0;pointer-events:none;
  background:conic-gradient(from var(--beam),transparent 0 62%,var(--hot) 80%,var(--cool) 92%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:beam 5s linear infinite}
@keyframes beam{to{--beam:360deg}}
.auth-card>*{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.auth-card::before{animation:none}}

/* ── переключатель темы: солнце/луна с плавным переходом ── */
.tgl{position:relative;overflow:hidden}
.tgl .tgl-ic{position:absolute;inset:0;display:grid;place-items:center;transition:transform .4s cubic-bezier(.2,.7,.2,1),opacity .3s}
.tgl .tgl-ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tgl .sun{opacity:0;transform:rotate(-90deg) scale(.6)}
.tgl .moon{opacity:1;transform:none}
:root[data-theme="light"] .tgl .sun{opacity:1;transform:none}
:root[data-theme="light"] .tgl .moon{opacity:0;transform:rotate(90deg) scale(.6)}
@media(prefers-color-scheme:light){:root:not([data-theme]) .tgl .sun{opacity:1;transform:none}
  :root:not([data-theme]) .tgl .moon{opacity:0;transform:rotate(90deg) scale(.6)}}

/* ── анимация «размытие числа» при смене значения (калькулятор/статы) ── */
.blurpop{animation:blurpop .45s ease}
@keyframes blurpop{0%{filter:blur(7px);opacity:.55;transform:translateY(-3px)}100%{filter:blur(0);opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.blurpop{animation:none}}

@media (max-width:1100px){
  .flow{grid-template-columns:1fr 1fr;gap:14px}
  .flow .farr{display:none}
  .rparts{grid-template-columns:1fr 1fr}
  .value-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:960px){
  .mag{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:repeat(3,1fr)}
  .price-grid{grid-template-columns:1fr 1fr}
  .cab-bal{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .hero-grid,.two,.form-wrap,.offer,.eco,.fora,.faq,.calc,.bot-demo,.rstats,.cab{grid-template-columns:1fr}
  .feed{height:340px;order:0}
  .tar,.price-grid,.value-grid,.rparts,.sim,.waves,.flow{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .hbar{grid-template-columns:110px 1fr 48px}
  .doc{padding:26px 20px}
  .hrow{grid-template-columns:1fr auto;gap:8px}
  .hrow .hst{grid-column:1/-1;justify-self:start}
  .simrow{grid-template-columns:28px 1fr;gap:8px}
  .simrow .simr,.simrow .simsc,.simrow .simwave{grid-column:2}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .stream,.brand i,.live-dot{animation:none}
  .btn,.chip{transition:none}
  .ptag,.radar-full .lc{animation:none}
}

/* ── КАБИНЕТ И ВХОД ── */
.auth-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}
.auth-card{padding:26px}
/* вход через Telegram — основной путь */
.btn-tg{width:100%;background:linear-gradient(135deg,#2AABEE,#229ED9);color:#fff;
  box-shadow:0 12px 30px -12px rgba(34,158,217,.55);padding:1em 1.4em;font-size:1.05rem}
.btn-tg:hover{transform:translateY(-2px)}
.btn-tg:disabled{opacity:.7;cursor:default;transform:none}
.btn-tg svg{flex:0 0 auto}
.auth-card .auth-hint{margin:10px 0 0}
.auth-or{display:flex;align-items:center;gap:12px;margin:20px 0 16px;
  color:var(--muted);font-size:.78rem;font-family:var(--mono);letter-spacing:.03em}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.auth-tabs{display:flex;gap:8px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.atab{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;
  font-family:var(--dsp);font-size:.95rem;font-weight:600;padding:.6em .2em;margin-bottom:-1px}
.atab.on{color:var(--hot);border-bottom-color:var(--hot)}
.atab:focus-visible{outline:3px solid var(--ring);outline-offset:2px}
.auth-form{display:grid;gap:14px}
.auth-row{display:flex;gap:10px;flex-wrap:wrap}
.auth-hint{font-size:.8rem;margin:0}
.auth-msg{font-size:.88rem;margin:14px 0 0;min-height:1.4em;color:var(--muted)}
.auth-msg.err{color:var(--hot)}
.auth-msg.warn{color:var(--cool)}
/* ── карточка входа: чистая иерархия ── */
.auth-lead{margin-bottom:20px}
.auth-title{font-family:var(--display);font-size:1.4rem;font-weight:700;margin:0 0 5px;line-height:1.15}
.auth-sub{margin:0;font-size:.86rem;color:var(--muted);line-height:1.45}
.btn-tg{position:relative}
.tg-badge{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;
  font-size:.64rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  background:rgba(255,255,255,.22);padding:.28em .6em;border-radius:999px}
.auth-card .field{display:grid;gap:6px}
.auth-card .field label{font-size:.8rem;font-weight:600;color:var(--muted)}
.auth-toggle{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;
  background:none;border:0;cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;
  color:var(--muted);padding:14px 0 2px;transition:color .15s}
.auth-toggle:hover{color:var(--text)}
.auth-toggle svg{transition:transform .2s}
.auth-toggle.on svg{transform:rotate(180deg)}
.auth-toggle:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:8px}
#passForm{margin-top:12px}
#passForm[hidden]{display:none}
@media(max-width:560px){.tg-badge{display:none}}
.wd-form{display:grid;grid-template-columns:1fr 1.4fr auto;gap:12px;align-items:end;margin-top:18px;
  padding-top:18px;border-top:1px dashed var(--line)}
.hst.review{color:var(--cool);border-color:var(--cool)}
@media (max-width:860px){
  .auth-wrap{grid-template-columns:1fr}
  .wd-form{grid-template-columns:1fr}
}

/* ===== ЧАНК #7 — компоненты по 21st.dev ===== */

/* ── Алерты форм: единый компонент (success / warn / error) ── */
.alert{display:flex;gap:.62em;align-items:flex-start;margin:14px 0 0;padding:.72em .9em;
  border:1px solid var(--line);border-radius:11px;font-size:.9rem;line-height:1.45;
  font-family:var(--dsp);color:var(--text);background:var(--surface2)}
.alert:empty{display:none}
.alert::before{content:"";flex:0 0 auto;width:18px;height:18px;margin-top:.06em;background:var(--ac,var(--muted));
  -webkit-mask:center/contain no-repeat var(--ic,var(--ic-info));mask:center/contain no-repeat var(--ic,var(--ic-info))}
.alert b,.alert a{color:inherit}
:root{
  --ic-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");
  --ic-ok:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
  --ic-warn:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E");
  --ic-err:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");
}
.alert-success{--ac:var(--ok);--ic:var(--ic-ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line));background:color-mix(in srgb,var(--ok) 10%,var(--surface))}
.alert-warn{--ac:#E9A23B;--ic:var(--ic-warn);border-color:color-mix(in srgb,#E9A23B 42%,var(--line));background:color-mix(in srgb,#E9A23B 10%,var(--surface))}
.alert-error{--ac:var(--hot);--ic:var(--ic-err);border-color:color-mix(in srgb,var(--hot) 40%,var(--line));background:color-mix(in srgb,var(--hot) 10%,var(--surface))}
/* Легаси-сообщения (вход/вывод/трата/поддержка) рендерятся тем же компонентом.
   JS переписывает className в "auth-msg err|warn|''" — маппим модификаторы, логику не трогаем. */
.auth-msg,.cab-msg,.sp-msg{min-height:0}
.auth-msg:empty,.cab-msg:empty,.sp-msg:empty{display:none}
.auth-msg:not(:empty),.cab-msg:not(:empty),.sp-msg:not(:empty){
  display:flex;gap:.62em;align-items:flex-start;margin:14px 0 0;padding:.72em .9em;
  border:1px solid var(--line);border-radius:11px;font-size:.88rem;line-height:1.45;
  color:var(--text);background:var(--surface2)}
.auth-msg:not(:empty)::before,.cab-msg:not(:empty)::before,.sp-msg:not(:empty)::before{
  content:"";flex:0 0 auto;width:18px;height:18px;margin-top:.06em;background:var(--ac,var(--muted));
  -webkit-mask:center/contain no-repeat var(--ic,var(--ic-info));mask:center/contain no-repeat var(--ic,var(--ic-info))}
.auth-msg.err,.cab-msg.err,.sp-msg.err{--ac:var(--hot);--ic:var(--ic-err);border-color:color-mix(in srgb,var(--hot) 40%,var(--line));background:color-mix(in srgb,var(--hot) 10%,var(--surface))}
.auth-msg.warn,.cab-msg.warn,.sp-msg.warn{--ac:#E9A23B;--ic:var(--ic-warn);border-color:color-mix(in srgb,#E9A23B 42%,var(--line));background:color-mix(in srgb,#E9A23B 10%,var(--surface))}

/* ── Fluid dropdown: единый стилизованный select без JS ── */
select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:2.4em;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A93A3' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .85em center;background-size:16px}
select::-ms-expand{display:none}
select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23FF5B34' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}
.simcard select,.calc-form select{padding-right:2.2em}

/* ── Лого-облако источников (статичный, монохром) ── */
.logo-cloud{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:6px}
.lc-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;
  padding:22px 12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);
  color:var(--text);transition:border-color .2s,transform .2s,box-shadow .2s}
.lc-item:hover{border-color:color-mix(in srgb,var(--c,var(--cool)) 45%,var(--line));transform:translateY(-3px);
  box-shadow:0 16px 34px -22px var(--c,#000)}
.lc-logo{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--c);
  box-shadow:0 8px 18px -8px color-mix(in srgb,var(--c) 55%,transparent),inset 0 0 0 1px rgba(255,255,255,.10)}
.lc-logo svg{width:25px;height:25px;fill:#fff}
.lc-logo.stroke svg{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lc-item span{font-family:var(--display);font-weight:600;font-size:.82rem;letter-spacing:-.01em;text-align:center;color:var(--text)}
@media(max-width:720px){.logo-cloud{grid-template-columns:repeat(3,1fr);gap:10px}
  .lc-item{padding:16px 8px}.lc-item span{font-size:.74rem}}
@media(max-width:380px){.logo-cloud{grid-template-columns:repeat(2,1fr)}}

/* ── Прогресс-виджеты: круговой уровень + streak ── */
.prog-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media(max-width:720px){.prog-row{grid-template-columns:1fr}}
.prog-card{display:flex;align-items:center;gap:18px;padding:22px 24px}
.lvl-ring{--p:0;position:relative;flex:0 0 auto;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--hot) calc(var(--p)*1%),var(--surface2) 0)}
.lvl-ring::before{content:"";position:absolute;inset:11px;border-radius:50%;background:var(--surface)}
.lvl-pct{position:relative;font-family:var(--mono);font-weight:700;font-size:1.15rem;color:var(--text)}
.prog-meta .eyebrow{display:block;margin-bottom:6px}
.prog-meta b{font-family:var(--display);font-size:1.05rem}
.prog-meta p{color:var(--muted);font-size:.84rem;margin:5px 0 0;line-height:1.4}
.streak-card{padding:22px 24px}
.streak-top{display:flex;align-items:baseline;gap:10px}
.streak-num{font-family:var(--mono);font-weight:800;font-size:2rem;color:var(--hot);line-height:1}
.streak-top span{font-family:var(--display);font-weight:600}
.streak-dots{display:flex;gap:7px;margin:16px 0 0;flex-wrap:wrap}
.streak-dots i{width:26px;height:26px;border-radius:8px;background:var(--surface2);border:1px solid var(--line)}
.streak-dots i.on{background:linear-gradient(135deg,var(--hot),var(--hot2));border-color:transparent}
.streak-card p{color:var(--muted);font-size:.82rem;margin:14px 0 0}

/* ── 404 ── */
.err-hero{min-height:calc(100vh - 140px);display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:60px 22px}
.err-code{font-family:var(--display);font-weight:700;font-size:clamp(6rem,26vw,15rem);line-height:.9;
  letter-spacing:-.05em;background:linear-gradient(135deg,var(--hot),var(--hot2));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.err-hero h1{font-size:clamp(1.4rem,4vw,2.05rem);margin:12px 0 0}
.err-hero p.lead{color:var(--muted);font-size:1.05rem;max-width:46ch;margin:14px 0 4px}
.err-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:24px}
.err-hint{font-family:var(--mono);font-size:.76rem;color:var(--muted);opacity:.8;margin-top:28px}
.err-hint a{color:var(--cool)}

/* ===== ЧАНК #8 ===== */

/* ── Чат-помощник заявки (форма → диалог) ── */
.zayavka-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;max-width:980px;margin:0 auto}
@media(max-width:720px){.zayavka-grid{grid-template-columns:1fr;gap:16px;max-width:600px}}
.lf-head{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.lf-head b{font-family:var(--display);font-size:1.06rem}
.lf-head span{font-size:.8rem;color:var(--muted)}
.lf-consent{font-size:.74rem;color:var(--muted);margin:2px 0 0;line-height:1.4}
.lf-consent a{color:var(--cool)}
.lead-form.filled{border-color:var(--hot);box-shadow:0 0 0 4px var(--glow)}
.chat{display:flex;flex-direction:column;min-height:380px;padding:0;overflow:hidden}
.chat-head{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line);background:var(--surface2)}
.chat-av{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--hot),var(--hot2));box-shadow:0 8px 20px -8px var(--glow)}
.chat-av svg{width:21px;height:21px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.chat-ttl{display:flex;flex-direction:column;line-height:1.25;margin-right:auto}
.chat-ttl b{font-family:var(--display);font-size:1.06rem}
.chat-ttl span{font-size:.78rem;color:var(--muted)}
.chat-badge{flex:0 0 auto;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cool);border:1px solid color-mix(in srgb,var(--cool) 35%,var(--line));border-radius:999px;padding:.32em .7em}
.chat-prog{display:flex;gap:5px;padding:14px 20px 0}
.chat-prog i{height:4px;flex:1;border-radius:2px;background:var(--surface2);transition:background .3s}
.chat-prog i.on{background:linear-gradient(90deg,var(--hot),var(--hot2))}
.chat-log{display:flex;flex-direction:column;gap:10px;padding:16px 20px 4px}
.chat-q,.chat-a{max-width:88%;padding:.62em .92em;font-size:.94rem;line-height:1.4;animation:chatin .28s ease}
.chat-q{align-self:flex-start;background:var(--surface2);border:1px solid var(--line);border-radius:14px 14px 14px 4px}
.chat-a{align-self:flex-end;background:linear-gradient(135deg,var(--hot),var(--hot2));color:#fff;font-weight:600;
  border-radius:14px 14px 4px 14px}
@keyframes chatin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.chat-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:10px 20px 18px}
@media(max-width:480px){.chat-opts{grid-template-columns:repeat(2,1fr)}}
.chat-opts button{font-family:var(--display);font-weight:600;font-size:.94rem;background:var(--surface2);
  border:1.5px solid var(--line);color:var(--text);border-radius:12px;padding:.7em .6em;cursor:pointer;
  text-align:center;white-space:normal;min-width:0;line-height:1.2;
  transition:border-color .16s,color .16s,background .16s,transform .16s}
.chat-opts button:hover{border-color:var(--hot);color:var(--hot);
  background:color-mix(in srgb,var(--hot) 8%,var(--surface2));transform:translateY(-1px)}
.chat-opts button.hot{border-color:color-mix(in srgb,var(--hot) 45%,var(--line));color:var(--hot);
  background:color-mix(in srgb,var(--hot) 9%,var(--surface2))}
/* крючок 5 BYN в hero */
.hero-bonus{display:inline-flex;align-items:center;gap:.5em;margin:18px 0 26px;padding:.55em 1em;
  border:1.5px solid color-mix(in srgb,var(--cool) 42%,var(--line));border-radius:999px;
  background:color-mix(in srgb,var(--cool) 11%,transparent);font-size:1rem;color:var(--text);font-weight:500}
.hero-bonus b{color:var(--cool);font-family:var(--display);font-weight:700}
.chat-inrow{display:flex;gap:8px;padding:6px 20px 16px}
.chat-inrow input{flex:1}
.chat-inrow button{flex:0 0 auto;padding:.6em 1.1em}
.chat-skip{text-align:center;font-size:.8rem;color:var(--muted);padding:8px 20px 16px;margin:auto 0 0;
  border-top:1px solid var(--line)}
.chat-skip a{color:var(--cool);cursor:pointer;text-decoration:underline}
.chat-note{padding:2px 20px 16px;margin:0;font-size:.76rem;color:var(--muted);line-height:1.42}
/* ряд доверия под чатом (заменил боковую колонку) */
.trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:840px;margin:22px auto 0}
.trust{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.trust b{font-family:var(--display);font-weight:600;display:block;margin-bottom:5px}
.trust span{color:var(--muted);font-size:.85rem;line-height:1.4}
@media(max-width:720px){.trust-row{grid-template-columns:1fr;gap:10px}}
/* бонус за первую заявку (подача безопасная: баллы на буст, не вывод) */
.first-bonus{display:flex;gap:.6em;align-items:flex-start;margin:2px 0 0;padding:.75em .95em;border-radius:12px;
  border:1px solid color-mix(in srgb,var(--cool) 38%,var(--line));
  background:color-mix(in srgb,var(--cool) 10%,var(--surface));font-size:.85rem;line-height:1.42}
.first-bonus b{color:var(--cool)}
.first-bonus svg{flex:0 0 auto;width:20px;height:20px;stroke:var(--cool);fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;margin-top:.05em}

/* ── Счётчик пассивного дохода партнёра (моки через data-*) ── */
.drip-card{padding:22px 24px}
.drip-head{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.drip-total{margin:12px 0 2px;font-family:var(--display)}
.drip-sum{font-family:var(--mono);font-weight:800;font-size:2rem;color:var(--cool);font-variant-numeric:tabular-nums}
.drip-total span{color:var(--muted);font-size:.85rem;margin-left:6px}
.drip-feed{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.drip-feed li{display:flex;justify-content:space-between;align-items:center;font-size:.88rem;
  padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface2);
  opacity:0;transform:translateY(5px);animation:dripin .45s ease forwards}
.drip-feed li:nth-child(2){animation-delay:.5s}
.drip-feed li:nth-child(3){animation-delay:1s}
.drip-feed li:nth-child(4){animation-delay:1.5s}
.drip-feed li b{font-family:var(--mono);color:var(--cool);font-variant-numeric:tabular-nums}
.drip-feed li .who{color:var(--text)}
@keyframes dripin{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.drip-feed li{animation:none;opacity:1;transform:none}}
.drip-foot{color:var(--muted);font-size:.8rem;margin:14px 0 0;line-height:1.45}
.drip-foot b{color:var(--text)}

/* ── Как это работает: живой поток + телефон-бот ── */
.how-live{display:grid;grid-template-columns:1fr 1.12fr;gap:40px;align-items:center}
@media(max-width:820px){
  .how-live{grid-template-columns:minmax(0,1fr);gap:28px}
  .how-left,.phone-wrap{min-width:0}
  .phone{max-width:min(340px,86vw)}
  .phone-scr{min-height:600px}
}
.how-steps{list-style:none;margin:0;padding:0;display:grid;gap:20px}
.how-steps li{display:flex;gap:16px;align-items:flex-start}
.hs-n{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--mono);font-weight:700;font-size:.95rem;color:#fff;
  background:linear-gradient(135deg,var(--hot),var(--hot2));box-shadow:0 8px 18px -8px var(--glow)}
.how-steps b{font-family:var(--display);font-size:1.12rem;display:block;margin-bottom:3px}
.how-steps p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.45}
.how-proof{display:flex;align-items:center;gap:14px;margin-top:24px;padding:14px 18px;
  border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.hp-ava{display:flex;flex:0 0 auto}
.hp-ava i{width:36px;height:36px;border-radius:50%;overflow:hidden;border:2px solid var(--surface);
  margin-left:-12px;background:#e7ebf2;box-shadow:0 2px 6px -2px rgba(0,0,0,.4)}
.hp-ava i:first-child{margin-left:0}
.how-proof p{margin:0;font-size:.9rem;color:var(--text);line-height:1.4}
.how-biz{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px;padding:18px 20px;
  border:1px dashed var(--line);border-radius:14px}
.how-biz p{margin:0;color:var(--muted);font-size:.92rem;flex:1;min-width:220px;line-height:1.45}
.how-biz b{color:var(--text);font-family:var(--display)}
/* аватары-люди в соц-доказательстве */
.hp-ava i svg{width:100%;height:100%;display:block}
/* телефон-бот — реалистичный iPhone (экран всегда тёмный, это UI устройства) */
.phone-wrap{position:relative;justify-self:end;display:flex;justify-content:flex-end;padding:16px 0 16px 8px;width:100%}
@media(max-width:820px){.phone-wrap{justify-self:center;justify-content:center;padding:16px 8px}}
.phone-wrap::before{content:"";position:absolute;inset:-4% 0 -8% 0;z-index:0;
  background:radial-gradient(55% 50% at 46% 32%,color-mix(in srgb,#7360F2 62%,transparent),transparent 70%),
             radial-gradient(50% 44% at 74% 84%,color-mix(in srgb,var(--cool) 48%,transparent),transparent 72%);
  filter:blur(48px);opacity:.5}
.phone{position:relative;z-index:1;width:472px;max-width:100%;border-radius:62px;padding:7px;
  background:linear-gradient(145deg,#3a3f47 0%,#191b21 45%,#0a0b0f 100%);
  box-shadow:0 78px 135px -34px rgba(0,0,0,.85),inset 0 0 0 1.5px rgba(255,255,255,.09)}
.phone-scr{position:relative;background:#0c0e13;border-radius:55px;overflow:hidden;min-height:840px;
  display:flex;flex-direction:column;color:#fff;
  font-family:-apple-system,"SF Pro Text","Segoe UI Variable Text",system-ui,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
/* тёмная тема сайта → серебристая рамка (в светлой остаётся чёрной) */
:root[data-theme="dark"] .phone,
:root:not([data-theme="light"]) .phone{background:linear-gradient(140deg,#f4f5f7 0%,#c2c6cd 30%,#e2e5ea 52%,#aab0b8 74%,#cfd3d9 100%);
  box-shadow:0 78px 135px -34px rgba(0,0,0,.6),inset 0 0 0 1.5px rgba(255,255,255,.85),inset 0 0 0 3px #b7bcc4}
:root[data-theme="dark"] .ph-power,:root:not([data-theme="light"]) .ph-power{background:linear-gradient(270deg,#c9cdd4,#8f939b)}
:root[data-theme="dark"] .ph-btn:not(.ph-power),:root:not([data-theme="light"]) .ph-btn:not(.ph-power){background:linear-gradient(90deg,#c9cdd4,#8f939b)}
@media(prefers-color-scheme:light){:root:not([data-theme="dark"]) .phone{background:linear-gradient(145deg,#3a3f47 0%,#191b21 45%,#0a0b0f 100%);
  box-shadow:0 78px 135px -34px rgba(0,0,0,.85),inset 0 0 0 1.5px rgba(255,255,255,.09)}
  :root:not([data-theme="dark"]) .ph-power{background:linear-gradient(270deg,#31353e,#12141a)}
  :root:not([data-theme="dark"]) .ph-btn:not(.ph-power){background:linear-gradient(90deg,#31353e,#12141a)}}
/* боковые кнопки */
.ph-btn{position:absolute;z-index:0;border-radius:2px 0 0 2px;background:linear-gradient(90deg,#31353e,#12141a)}
.ph-mute{left:-3px;top:120px;width:3px;height:28px}
.ph-volup{left:-3px;top:166px;width:3px;height:54px}
.ph-voldn{left:-3px;top:232px;width:3px;height:54px}
.ph-power{right:-3px;top:188px;width:3px;height:84px;border-radius:0 2px 2px 0;background:linear-gradient(270deg,#31353e,#12141a)}
/* динамический остров */
.ph-island{position:absolute;top:13px;left:50%;transform:translateX(-50%);width:104px;height:31px;background:#000;border-radius:16px;z-index:6}
.ph-island::after{content:"";position:absolute;right:12px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:#0a2030;box-shadow:inset 0 0 0 2px #16181d}
/* статус-бар */
.ph-status{display:flex;justify-content:space-between;align-items:center;padding:17px 30px 8px;position:relative;z-index:5;font-family:var(--dsp)}
.ph-time{font-size:.92rem;font-weight:700}
.ph-ind{display:flex;align-items:center;gap:6px}
.ph-sig{display:flex;align-items:flex-end;gap:2px}
.ph-sig b{width:3px;height:5px;border-radius:1px;background:#fff}
.ph-sig b:nth-child(2){height:7px}.ph-sig b:nth-child(3){height:9px}.ph-sig b:nth-child(4){height:11px}
.ph-wifi{width:17px;height:12px;color:#fff}
.ph-bat{display:flex;align-items:center;width:25px;height:12px;border-radius:3px;border:1.4px solid rgba(255,255,255,.55);position:relative;padding:1.5px}
.ph-bat::after{content:"";position:absolute;right:-3px;top:3.5px;width:2px;height:4px;border-radius:0 1px 1px 0;background:rgba(255,255,255,.55)}
.ph-bat i{display:block;width:72%;height:100%;background:#fff;border-radius:1px}
/* шапка чата */
.ph-top{display:flex;align-items:center;gap:8px;padding:6px 18px 12px}
.ph-back{font-size:1.75rem;color:#3b9bff;line-height:.9;font-weight:400;width:18px}
.ph-id{flex:1;text-align:center;display:flex;flex-direction:column;line-height:1.15}
.ph-id b{font-family:var(--display);font-size:1.02rem}
.ph-id span{font-size:.72rem;color:rgba(255,255,255,.5)}
.ph-menu{width:18px;color:rgba(255,255,255,.55);display:grid;place-items:center}
.ph-menu svg{width:20px;height:20px;fill:currentColor}
/* чат */
.ph-chat{padding:14px 15px 18px;display:flex;flex-direction:column;gap:9px;flex:1;background:#0c0e13;justify-content:flex-start}
.msg{position:relative;max-width:86%;padding:.66em .95em 1.3em;border-radius:17px;font-size:.92rem;line-height:1.44;letter-spacing:-.006em}
.msg time{position:absolute;right:.75em;bottom:.4em;font-size:.64rem;opacity:.5;font-weight:500;white-space:nowrap;letter-spacing:.01em}
.msg.in{align-self:flex-start;background:#22262e;border-bottom-left-radius:5px}
.msg.out{align-self:flex-end;background:linear-gradient(135deg,#7a5cff,#5b7cff);border-bottom-right-radius:5px}
.msg .price{color:#5fd9c9;font-weight:700;font-family:var(--mono)}
.msg.out .price{color:#fff}
/* футер */
.ph-foot{display:flex;align-items:center;justify-content:center;gap:9px;padding:15px;
  border-top:1px solid rgba(255,255,255,.08);background:#101318;font-size:.82rem;color:rgba(255,255,255,.55)}
.ph-tg{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,#37aee2,#1e96c8);box-shadow:0 6px 14px -6px #1e96c8}
.ph-tg svg{width:18px;height:18px;margin-right:1px}

/* ── Свечение рамки карточки входа (border-beam) ── */
@property --beam{syntax:"<angle>";initial-value:0deg;inherits:false}
.auth-card{position:relative;z-index:0}
.auth-card::before{content:"";position:absolute;inset:-2px;border-radius:18px;z-index:-1;pointer-events:none;
  background:conic-gradient(from var(--beam),transparent 0 58%,var(--cool) 72%,color-mix(in srgb,var(--hot) 92%,#fff) 84%,transparent 96%);
  animation:beamspin 4.5s linear infinite}
.auth-card::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;background:var(--surface)}
@keyframes beamspin{to{--beam:360deg}}
@media(prefers-reduced-motion:reduce){.auth-card::before{animation:none;
  background:linear-gradient(135deg,var(--cool),var(--hot))}}

/* ── Премиум-штрихи (общий вайб) ── */
::selection{background:color-mix(in srgb,var(--hot) 30%,transparent);color:var(--text)}
/* мягкий ambient-свет по всей странице (фиксированный, очень слабый) */
body{background-image:
  radial-gradient(110% 48% at 50% -6%,color-mix(in srgb,var(--hot) 6%,transparent),transparent 55%),
  radial-gradient(80% 40% at 100% 108%,color-mix(in srgb,var(--cool) 5%,transparent),transparent 60%);
  background-attachment:fixed;background-repeat:no-repeat}
/* тонкий брендовый скроллбар */
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text) 20%,transparent) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text) 18%,transparent);border-radius:8px;
  border:3px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text) 32%,transparent);background-clip:content-box}

/* ── Дашборд спроса подписчика (реальные агрегаты движка) ── */
.dash{padding:0;overflow:hidden}
.dash-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 22px;
  border-bottom:1px solid var(--line);background:var(--surface2);font-family:var(--mono);font-size:.72rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dash-live{display:flex;align-items:center;gap:8px;color:var(--cool)}
.dash-upd{margin-left:auto}.dash-upd b{color:var(--text)}
.dash-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1px;background:var(--line)}
@media(max-width:820px){.dash-grid{grid-template-columns:1fr}}
.dash-cell{background:var(--surface);padding:20px 22px}
.dash-t{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
/* столбики по часам */
.dash-bars{display:flex;align-items:flex-end;gap:2px;height:96px}
.dash-bars i{flex:1;min-width:0;border-radius:2px 2px 0 0;
  background:linear-gradient(180deg,var(--hot),color-mix(in srgb,var(--hot) 35%,transparent));opacity:.85;
  transition:opacity .15s}
.dash-bars i:hover{opacity:1}
.dash-cap{margin-top:12px;font-size:.82rem;color:var(--muted)}.dash-cap b{color:var(--hot);font-family:var(--mono)}
/* списки районов / бюджетов */
.dash-cell ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.dash-distr li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:.9rem}
.dash-distr li .bar{height:7px;border-radius:4px;background:var(--surface2);overflow:hidden}
.dash-distr li .bar i{display:block;height:100%;border-radius:4px;
  background:linear-gradient(90deg,var(--cool),var(--hot))}
.dash-distr li b{font-family:var(--mono);font-size:.82rem;color:var(--text);font-variant-numeric:tabular-nums}
.dash-budget li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:.9rem;
  padding-bottom:10px;border-bottom:1px solid var(--line)}
.dash-budget li:last-child{border-bottom:0;padding-bottom:0}
.dash-budget li b{font-family:var(--mono);color:var(--cool);font-variant-numeric:tabular-nums}
.dash-foot{margin:0;padding:14px 22px;border-top:1px solid var(--line);background:var(--surface2);
  font-size:.76rem;color:var(--muted)}

/* ── Кабинет бизнеса (dashboard.html) ── */
.dash-page{padding:clamp(20px,3vw,36px) 0 clamp(48px,7vw,90px)}
.chip.sm{padding:.34em .7em;font-size:.78rem;gap:.4em}
.chip.sm i{width:5px;height:5px}
.chip.sm.on{border-color:color-mix(in srgb,var(--hot) 45%,var(--line));color:var(--hot);background:color-mix(in srgb,var(--hot) 8%,var(--surface))}
.chip.sm.on i{opacity:1}
.chip.sm.ghost{color:var(--muted)}.chip.sm.ghost i{display:none}
/* шапка */
.biz-head{display:flex;align-items:center;gap:20px;padding:22px 26px;flex-wrap:wrap}
.biz-ava{flex:0 0 auto;width:58px;height:58px;border-radius:16px;display:grid;place-items:center;
  font-family:var(--display);font-weight:800;font-size:1.2rem;color:#fff;
  background:linear-gradient(135deg,var(--hot),var(--hot2));box-shadow:0 10px 24px -10px var(--glow)}
.biz-id{flex:1;min-width:240px}
.biz-id h1{font-size:clamp(1.3rem,2.6vw,1.7rem);margin:6px 0 10px;letter-spacing:-.02em}
.biz-chips{display:flex;gap:7px;flex-wrap:wrap}
.biz-sub{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:170px}
.sub-badge{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cool);
  border:1px solid color-mix(in srgb,var(--cool) 35%,var(--line));border-radius:999px;padding:.34em .8em}
.sub-days{font-size:.86rem;color:var(--muted)}.sub-days b{color:var(--text);font-family:var(--mono);font-size:1.1rem}
.sub-bar{width:170px;height:6px;border-radius:4px;background:var(--surface2);overflow:hidden}
.sub-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--cool),var(--hot))}
@media(max-width:640px){.biz-sub{align-items:flex-start;width:100%}}
/* KPI */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px}
@media(max-width:820px){.kpi-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.kpi-row{grid-template-columns:1fr}}
.kpi{padding:20px 22px;position:relative;transition:border-color .2s,transform .2s,box-shadow .2s;border:1px solid var(--line)}
.kpi:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 40%,var(--line));box-shadow:0 20px 44px -28px var(--c)}
.kpi-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;margin-bottom:14px;
  background:color-mix(in srgb,var(--c) 16%,var(--surface2))}
.kpi-ic svg{width:21px;height:21px;fill:none;stroke:var(--c);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kpi>b{display:block;font-family:var(--mono);font-weight:800;font-size:1.9rem;letter-spacing:-.02em;line-height:1;
  font-variant-numeric:tabular-nums}
.kpi-l{display:block;color:var(--muted);font-size:.84rem;margin-top:6px}
.kpi-t{position:absolute;top:20px;right:22px;font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.kpi-t.up{color:var(--cool)}
/* колонки */
.biz-cols{display:grid;grid-template-columns:1.65fr 1fr;gap:18px;margin-top:18px;align-items:start}
@media(max-width:920px){.biz-cols{grid-template-columns:1fr}}
.biz-main{display:grid;gap:20px}.biz-side{display:grid;gap:18px}
.dash-h{font-size:1.12rem;margin:0 0 12px;display:flex;align-items:center;gap:10px}
.dash-h .live-dot{width:8px;height:8px}
/* лента лидов */
.biz-feed{padding:8px 6px;display:grid;gap:2px}
.bf-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;
  transition:background .15s}
.bf-item:hover{background:var(--surface2)}
.bf-item+.bf-item{border-top:1px solid var(--line)}
.bf-dot{width:9px;height:9px;border-radius:50%;background:var(--hot)}
.bf-mid b{font-family:var(--display);font-weight:600;font-size:.94rem;display:block;line-height:1.2}
.bf-mid span{font-size:.78rem;color:var(--muted)}
.bf-r{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.bf-time{font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.bf-st{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.2em .55em;border-radius:999px}
.bf-st.new{color:var(--hot);background:color-mix(in srgb,var(--hot) 12%,transparent)}
.bf-st.work{color:var(--cool);background:color-mix(in srgb,var(--cool) 12%,transparent)}
.bf-st.sold{color:var(--muted);background:var(--surface2)}
/* тариф / фильтры */
.subcard h3,.filt h3{font-size:1.05rem;margin:0 0 14px}
.subcard{padding:22px 24px}
.sub-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;
  border-bottom:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.sub-line b{color:var(--text);font-family:var(--display)}
.filt{padding:22px 24px}
.filt-t{font-size:.78rem;color:var(--muted);margin:14px 0 8px;font-weight:600}
.filt-t:first-of-type{margin-top:0}
.filt-chips{display:flex;gap:7px;flex-wrap:wrap}
.dash-note{text-align:center;color:var(--muted);font-size:.8rem;margin:26px auto 0;max-width:70ch;opacity:.85}

/* ── ГЛОБУС «живой поток» (cobe) ── */
.globe-wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,48px);align-items:center}
.globe-copy h2{margin:6px 0 12px}
.globe-copy p{color:var(--muted);line-height:1.6;max-width:46ch}
.globe-copy .mono{display:inline-block;margin-top:16px;color:var(--cool)}
.globe-holder{position:relative;display:flex;justify-content:center;align-items:center;min-height:min(90vw,570px)}
.globe-holder::before{content:"";position:absolute;inset:6%;border-radius:50%;z-index:0;pointer-events:none;
  background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--cool) 30%,transparent),transparent 62%);
  filter:blur(20px)}
.globe-canvas{position:relative;z-index:1;width:min(90vw,570px);height:min(90vw,570px);aspect-ratio:1;
  max-width:100%;contain:layout paint size;opacity:0;transition:opacity .9s ease;cursor:grab}
.globe-canvas.ready{opacity:1}
@media(max-width:820px){
  .globe-wrap{grid-template-columns:1fr;text-align:center}
  .globe-copy p{margin-inline:auto}
  .globe-copy .mono{margin-inline:auto}
  .globe-holder{order:-1}
}

/* ── КАРТА ЖИВОГО СПРОСА (business) ── */
.dmap{padding:0;overflow:hidden}
.dmap-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.dmap-title{display:flex;align-items:center;gap:.5em;font-family:var(--display);font-weight:600;font-size:.92rem;color:var(--text)}
.dmap-badge{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--cool);
  border:1px solid color-mix(in srgb,var(--cool) 40%,var(--line));border-radius:999px;padding:.25em .7em}
.dmap-canvas{position:relative;aspect-ratio:8/5;width:100%;overflow:hidden;
  background:radial-gradient(120% 120% at 50% 38%,#0e1626,#070c14 72%)}
.dmap-bg{position:absolute;inset:0;width:100%;height:100%}
.dmap-bg .road{stroke:rgba(120,140,175,.15);fill:none;stroke-width:1.3}
.dmap-bg .road.big{stroke:rgba(120,140,175,.22);stroke-width:2.4}
.dmap-bg .river{stroke:rgba(60,130,170,.30);stroke-width:7;fill:none;stroke-linecap:round}
.dmap-labels{position:absolute;inset:0;pointer-events:none}
.dlbl{position:absolute;transform:translate(-50%,-50%);font-size:.62rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:rgba(200,212,232,.42);white-space:nowrap}
.dlbl.city{font-family:var(--display);font-size:1.15rem;font-weight:700;letter-spacing:.02em;
  text-transform:none;color:rgba(224,232,245,.85)}
.dmap-dots{position:absolute;inset:0;pointer-events:none}
.ddot{position:absolute;width:11px;height:11px;transform:translate(-50%,-50%)}
.ddot i{position:absolute;inset:0;border-radius:50%;background:#25e0c8;box-shadow:0 0 10px 2px rgba(37,224,200,.65)}
.ddot::before{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(37,224,200,.5);
  animation:ddotpulse 2.6s ease-out infinite}
.ddot:nth-child(3n)::before{animation-delay:.9s}
.ddot:nth-child(3n+1)::before{animation-delay:1.7s}
.ddot:nth-child(4n)::before{animation-delay:.4s}
.ddot.big{width:16px;height:16px}
.ddot.big i{box-shadow:0 0 18px 5px rgba(37,224,200,.85)}
@keyframes ddotpulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(3.6);opacity:0}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.ddot::before{animation:none;opacity:.25;transform:scale(2)}}
.dmap-card{position:absolute;right:16px;bottom:16px;width:min(262px,62%);z-index:2;
  background:rgba(14,22,36,.93);border:1px solid rgba(120,140,175,.25);border-radius:14px;padding:14px;
  box-shadow:0 18px 40px -18px rgba(0,0,0,.7);transition:opacity .4s,transform .4s}
.dmap-card[hidden]{display:none}
.dmap-card.out{opacity:0;transform:translateY(8px)}
.dc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}
.dc-tag{display:flex;align-items:center;gap:.4em;font-size:.72rem;font-weight:700;color:#25e0c8;white-space:nowrap}
.dc-time{font-size:.7rem;color:rgba(200,212,232,.5);white-space:nowrap}
.dc-niche{font-family:var(--display);font-weight:700;font-size:1rem;color:#eef2f8;margin-bottom:3px}
.dc-text{font-size:.82rem;color:rgba(200,212,232,.72);line-height:1.4}
.dmap-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.dmap-stats>div{background:var(--surface);padding:16px 18px;text-align:center}
.dmap-stats b{display:block;font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--text)}
.dmap-stats>div>span{font-size:.76rem;color:var(--muted)}
/* ВАЖНО: только прямой потомок. Было `.dmap-stats span` — правило доставало
   и <span> внутри <b>, и «98» рисовалось мельче, чем «%» рядом с ним. */
.dmap-stats b span{font-size:inherit;color:inherit}
@media(max-width:560px){.dmap-card{width:auto;left:12px;right:12px;bottom:12px}
  .dmap-stats{grid-template-columns:1fr}.dlbl{font-size:.52rem}.dlbl.city{font-size:.95rem}}

/* ── Leaflet-карта спроса ── */
.dmap-leaflet{position:absolute;inset:0;z-index:0;background:#0b0f17}
.leaflet-container{background:#0b0f17;font-family:inherit;outline:none}
.leaflet-container a{color:inherit}
.leaflet-control-attribution{background:rgba(10,15,23,.62)!important;color:rgba(200,212,232,.42)!important;
  font-size:.56rem!important;padding:1px 6px!important;border-radius:6px 0 0 0}
.leaflet-control-attribution a{color:rgba(200,212,232,.6)!important}
.dmap-pin{position:relative;width:100%;height:100%}
.dmap-pin .core{position:absolute;inset:0;border-radius:50%;background:#25e0c8;box-shadow:0 0 10px 2px rgba(37,224,200,.65)}
.dmap-pin.big .core{box-shadow:0 0 18px 5px rgba(37,224,200,.9)}
.dmap-pin .ping{position:absolute;inset:0;border-radius:50%;background:rgba(37,224,200,.5);animation:ddotpulse 2.6s ease-out infinite}

/* зум-кнопки карты под тёмную тему */
.leaflet-bar{border:none!important;box-shadow:0 8px 20px -10px rgba(0,0,0,.6)!important}
.leaflet-control-zoom a{background:rgba(14,22,36,.92)!important;color:#cdd6e6!important;
  border:1px solid rgba(120,140,175,.22)!important;width:32px!important;height:32px!important;line-height:30px!important}
.leaflet-control-zoom a:hover{background:rgba(26,38,58,.96)!important;color:#fff!important}
.leaflet-control-zoom a.leaflet-disabled{opacity:.45!important}

/* подписи районов + светлая тема карты */
.leaflet-tooltip.dmap-lbl-tt{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;
  font-family:var(--display);font-size:.6rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:rgba(210,220,238,.5);text-shadow:0 1px 3px rgba(0,0,0,.65);white-space:nowrap}
.leaflet-tooltip.dmap-lbl-tt::before{display:none!important}
.dmap-canvas.light,.dmap-canvas.light .dmap-leaflet{background:#e6eaf1}
.dmap-canvas.light .leaflet-tooltip.dmap-lbl-tt{color:rgba(40,55,85,.6);text-shadow:0 1px 2px rgba(255,255,255,.7)}
.dmap-canvas.light .dmap-card{background:rgba(255,255,255,.95);border-color:rgba(13,18,32,.12);box-shadow:0 18px 40px -18px rgba(20,30,60,.22)}
.dmap-canvas.light .dc-niche{color:#0d1220}.dmap-canvas.light .dc-text{color:#57627a}.dmap-canvas.light .dc-time{color:#8a93a6}
.dmap-canvas.light .leaflet-control-zoom a{background:rgba(255,255,255,.92)!important;color:#334!important;border-color:rgba(13,18,32,.12)!important}
.dmap-canvas.light .leaflet-control-attribution{background:rgba(255,255,255,.72)!important;color:rgba(40,50,70,.5)!important}
.dmap-canvas.light .leaflet-control-attribution a{color:rgba(40,50,70,.7)!important}


/* маркер «Минск» на глобусе — чёткая точка + тонкие волны радара */
.globe-pin{position:absolute;left:50%;top:50%;z-index:2;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;will-change:transform;transform:translate(-50%,-50%);
  opacity:0;transition:opacity .9s ease .35s}
.globe-canvas.ready ~ .globe-pin{opacity:1}
.globe-pin i{position:relative;width:8px;height:8px;border-radius:50%;
  background:var(--hot);box-shadow:0 0 0 2px color-mix(in srgb,var(--bg) 55%,transparent),
  0 0 14px 4px color-mix(in srgb,var(--hot) 55%,transparent)}
.globe-pin i::before,.globe-pin i::after{content:"";position:absolute;top:50%;left:50%;
  width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--hot) 80%,transparent);
  animation:globeping 3.4s cubic-bezier(.15,.6,.25,1) infinite}
.globe-pin i::after{animation-delay:1.7s}
@keyframes globeping{0%{transform:scale(1);opacity:.7}100%{transform:scale(7);opacity:0}}
.globe-pin b{margin-top:13px;font-family:var(--display);font-size:.68rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--text);white-space:nowrap;
  text-shadow:0 1px 8px var(--bg),0 0 16px var(--bg)}
@media(prefers-reduced-motion:reduce){.globe-pin i::before,.globe-pin i::after{animation:none;opacity:.25;transform:scale(3.5)}}

/* ── ТЕЛЕФОН: карточки предложений мастеров + появление + выбор ── */
.ph-chat{font-family:-apple-system,"SF Pro Text","Segoe UI",Roboto,system-ui,sans-serif}
.ph-day{align-self:center;font-size:.66rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(235,240,250,.38);background:rgba(255,255,255,.055);padding:.28em .8em;border-radius:999px;margin-bottom:2px}
.ph-chat .msg.in b{color:#eef2f8;font-weight:600}
/* поэтапное появление */
.ph-chat .st{opacity:0;transform:translateY(10px) scale(.985);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.3,1)}
.ph-chat .st.show{opacity:1;transform:none}
/* карточка предложения В ТЕЛЕФОНЕ-МОКАПЕ.
   ОБЯЗАТЕЛЬНО через .ph-chat: без этого правило перебивало маркетинговый блок
   «.offer card» (grid 1.25fr/1fr) на partner/radar/business/checklist — левая колонка
   схлопывалась, а правая .req сжималась в полоску с переносом по одному слову. */
.ph-chat .offer{display:flex;align-items:center;gap:10px;max-width:96%;align-self:flex-start;
  background:#22262e;border:1px solid rgba(255,255,255,.07);border-radius:17px;border-bottom-left-radius:6px;
  padding:9px 10px;transition:opacity .35s,border-color .25s,background .25s,transform .25s}
.of-ava{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--a),color-mix(in srgb,var(--a) 55%,#0c0e13));
  color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em}
.of-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.of-name{font-size:.86rem;font-weight:600;color:#eef2f8;display:flex;align-items:center;gap:6px;white-space:nowrap}
.of-name i{font-style:normal;font-size:.7rem;font-weight:600;color:#ffc65c}
.of-note{font-size:.74rem;color:rgba(235,240,250,.55);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.of-r{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.of-price{font-family:var(--mono);font-size:.9rem;font-weight:700;color:#5fd9c9;letter-spacing:-.01em}
.of-pick{border:0;cursor:pointer;font:inherit;font-size:.72rem;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#7a5cff,#5b7cff);border-radius:999px;padding:.36em .85em;
  transition:transform .15s,filter .2s}
.of-pick:hover{transform:translateY(-1px);filter:brightness(1.12)}
.of-pick:active{transform:scale(.96)}
.ph-chat .offer.picked{border-color:#5fd9c9;background:#1d2a2c;transform:translateX(2px)}
.ph-chat .offer.picked .of-pick{background:#0f766e;pointer-events:none}
.ph-chat .offer.dim{opacity:.42}
/* индикатор набора */
.ph-typing{align-self:flex-start;display:flex;gap:4px;align-items:center;background:#22262e;
  padding:.75em .95em;border-radius:17px;border-bottom-left-radius:6px}
.ph-typing i{width:6px;height:6px;border-radius:50%;background:rgba(235,240,250,.55);animation:phtype 1.1s infinite}
.ph-typing i:nth-child(2){animation-delay:.16s}.ph-typing i:nth-child(3){animation-delay:.32s}
@keyframes phtype{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.ph-typing[hidden]{display:none}
/* системная плашка */
.ph-sys{align-self:center;max-width:92%;text-align:center;font-size:.72rem;line-height:1.4;
  color:rgba(235,240,250,.5);background:rgba(95,217,201,.09);border:1px solid rgba(95,217,201,.18);
  border-radius:12px;padding:.5em .8em;margin-top:2px}
.ph-sys[hidden],.msg[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.ph-chat .st{opacity:1;transform:none;transition:none}.ph-typing i{animation:none}}

/* карта: кликабельные точки + активное состояние */
.dmap-pin-wrap{cursor:pointer}
.dmap-pin{transition:transform .2s}
.dmap-pin-wrap:hover .dmap-pin{transform:scale(1.35)}
.dmap-pin-wrap.on{z-index:600!important}
.dmap-pin-wrap.on .dmap-pin{transform:scale(1.5)}
.dmap-pin-wrap.on .core{background:#fff;box-shadow:0 0 0 3px #25e0c8,0 0 22px 7px rgba(37,224,200,.85)}
.dc-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;
  padding-top:8px;border-top:1px solid rgba(120,140,175,.18)}
.dc-dist{font-size:.72rem;font-weight:700;color:#25e0c8;letter-spacing:.02em;white-space:nowrap}
.dc-hint{font-size:.66rem;color:rgba(200,212,232,.4);white-space:nowrap}
.dmap-canvas.light .dc-dist{color:#0d9c8a}
.dmap-canvas.light .dc-hint{color:rgba(40,50,70,.45)}
.dmap-canvas.light .dc-foot{border-top-color:rgba(13,18,32,.12)}

/* ── карта: аккуратная активная точка, плотная карточка, подсказка зума ── */
.dmap-pin-wrap.on .dmap-pin{transform:scale(1.22)}
.dmap-pin-wrap.on .core{background:#25e0c8;
  box-shadow:0 0 0 1.5px rgba(255,255,255,.9),0 0 0 5px rgba(37,224,200,.16),0 0 16px 3px rgba(37,224,200,.5)}
.dmap-pin-wrap.on .ping{animation-duration:1.9s}
.dmap-canvas.light .dmap-pin-wrap.on .core{box-shadow:0 0 0 1.5px #0b3b36,0 0 0 5px rgba(13,156,138,.16),0 0 14px 3px rgba(13,156,138,.4)}

.dmap-card{width:min(292px,66%);padding:0;overflow:hidden;border-radius:16px;
  background:rgba(12,19,32,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-color:rgba(120,140,175,.2);box-shadow:0 22px 48px -22px rgba(0,0,0,.8);
  transition:opacity .32s ease,transform .32s cubic-bezier(.2,.8,.3,1)}
.dmap-card.out{opacity:0;transform:translateY(6px) scale(.99)}
.dmap-card>*{padding-inline:15px}
.dc-top{padding-top:12px;margin-bottom:7px}
.dc-tag{font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}
.dc-niche{font-size:.98rem;letter-spacing:-.01em;margin-bottom:4px}
.dc-text{font-size:.81rem;line-height:1.45}
.dc-foot{margin-top:10px;padding-block:9px 11px;border-top:1px solid rgba(120,140,175,.14);
  background:rgba(255,255,255,.028)}
.dmap-canvas.light .dmap-card{background:rgba(255,255,255,.9)}
.dmap-canvas.light .dc-foot{background:rgba(13,18,32,.03)}

.dmap-hint{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none;
  background:rgba(8,12,20,.55);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
  color:#eef2f8;font-family:var(--display);font-weight:600;font-size:.92rem;letter-spacing:.01em;
  opacity:0;transition:opacity .25s}
.dmap-hint.show{opacity:1}
.dmap-canvas.light .dmap-hint{background:rgba(240,244,250,.6);color:#0d1220}
@media(hover:none){.dmap-hint{display:none}}

/* ── карта: лаконичная компоновка (без шапки), мобильная раскладка ── */
.dmap-body{position:relative}
.dmap-canvas{aspect-ratio:16/10}
.dmap-card{right:14px;bottom:14px}
@media(max-width:700px){
  /* карточка НЕ перекрывает карту — уходит под неё на всю ширину */
  .dmap-canvas{aspect-ratio:1/1;border-radius:0}
  .dmap-card{position:static;width:auto;max-width:none;border:0;border-radius:0;box-shadow:none;
    background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;
    border-top:1px solid var(--line);transform:none!important;opacity:1!important}
  .dmap-card>*{padding-inline:16px}
  .dc-top{padding-top:14px}
  .dc-niche{font-size:1.05rem}
  .dc-text{font-size:.86rem}
  .dc-hint{display:none}
  .dc-foot{background:transparent;padding-bottom:14px}
  /* цифры — в ряд, а не столбиком: не растягивают экран */
  .dmap-stats{grid-template-columns:repeat(3,1fr)}
  .dmap-stats>div{padding:13px 6px}
  .dmap-stats b{font-size:1.2rem}
  .dmap-stats span{font-size:.66rem;line-height:1.3;display:block}
}

/* ── КАБИНЕТ: шапка «кто вы» и панели по роли ── */
.cab-head{display:flex;align-items:center;gap:16px;padding:20px 22px;margin-bottom:16px;flex-wrap:wrap}
.cab-ava{flex:0 0 auto;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;
  font-family:var(--display);font-weight:700;font-size:1.15rem;color:#fff;
  background:linear-gradient(140deg,var(--hot),var(--hot2))}
.cab-who{flex:1;min-width:180px}
.cab-who h2{font-size:1.25rem;margin:2px 0 0;line-height:1.2}
.cab-role{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--cool)}
.cab-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.cab-tags span{font-size:.72rem;color:var(--muted);background:var(--surface2);
  border:1px solid var(--line);border-radius:999px;padding:.25em .7em}
.cab-tags span.ok{color:var(--cool);border-color:color-mix(in srgb,var(--cool) 35%,var(--line))}
.cab-cta{flex:0 0 auto;display:flex;gap:8px;flex-wrap:wrap}
.cab-panel{padding:18px 22px;margin-bottom:16px}
.cp-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border-radius:12px;overflow:hidden}
.cp-nums>div{background:var(--surface);padding:14px 10px;text-align:center}
.cp-nums b{display:block;font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--text);line-height:1.1}
.cp-nums span{font-size:.72rem;color:var(--muted);line-height:1.3;display:block;margin-top:3px}
.cp-note{margin:12px 0 0;font-size:.85rem;color:var(--muted);line-height:1.5}
.cp-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.cp-acts .btn{flex:1;min-width:180px;font-size:.9rem}
@media(max-width:620px){
  .cab-head{padding:16px}
  .cab-cta{width:100%}.cab-cta .btn{width:100%}
  .cp-nums{grid-template-columns:1fr}
  .cp-nums b{font-size:1.3rem}
}

/* переключатель роли в кабинете */
.role-pick{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0}
.rp{cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;color:var(--muted);
  background:var(--surface2);border:1.5px solid var(--line);border-radius:999px;
  padding:.5em 1em;transition:color .15s,border-color .15s,background .15s}
.rp:hover{color:var(--text)}
.rp.on{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--hot),var(--hot2))}
.rp-master{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.rp-master p{margin:0;font-size:.86rem;color:var(--muted);line-height:1.5}
.rp-master[hidden]{display:none}

/* ── СПОСОБЫ ВХОДА: что уже привязано ─────────────────────────────────────────
   Аккаунт один на сайт и бот. Строка показывает текущее состояние привязки, а
   кнопка появляется только там, где ещё есть что привязать. */
.link-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:11px 0;border-top:1px solid var(--line)}
.link-row:first-of-type{border-top:0;padding-top:0}
.link-what{display:flex;flex-direction:column;gap:2px;min-width:0}
.link-what b{font-size:.92rem}
.link-what span{font-size:.78rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:22ch}
.link-what span.ok{color:var(--cool)}
.link-what span.ok::before{content:"✓ "}
.btn-tg.btn-sm{width:auto;flex:0 0 auto;font-size:.86rem;padding:.55em 1em}
.btn-tg[hidden]{display:none}

/* ── КАБИНЕТ БИЗНЕСА: экран до загрузки / без доступа ─────────────────────────
   Показываем правду («войдите», «доступ не подключён») вместо демо-витрины. */
.biz-gate{padding:56px 32px;text-align:center;max-width:640px;margin:40px auto}
.biz-gate h1{font-size:1.5rem;margin-bottom:10px}
.biz-gate p{margin:0 auto;max-width:46ch;font-size:.95rem}
.biz-gate .cp-acts{justify-content:center;margin-top:22px}
.sub-badge.off{opacity:.75;filter:grayscale(.5)}
.kpi-t.down{color:var(--hot)}

/* ── ВЫБОР РОЛИ (первый вход) ─────────────────────────────────────────────────
   Две пилюли в углу никто не замечал и не понимал. Теперь это отдельный экран с
   двумя равнозначными карточками: видно, что выбираешь и что за этим будет. */
.role-gate{padding:32px;margin-bottom:18px}
.role-gate h2{font-size:1.3rem;margin-bottom:6px}
.role-gate>.muted{font-size:.9rem;margin:0 0 20px}
.role-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:720px){.role-cards{grid-template-columns:1fr}}
.role-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;
  padding:22px;border:1px solid var(--line);border-radius:16px;background:transparent;cursor:pointer;
  color:inherit;font:inherit;transition:border-color .18s,transform .18s,background .18s}
.role-card:hover:not(:disabled){border-color:var(--cool);transform:translateY(-2px)}
.role-card:disabled{opacity:.55;cursor:default}
.role-card b{font-size:1.02rem}
.role-card .rc-txt{font-size:.85rem;color:var(--muted);line-height:1.5}
.rc-ic{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;
  background:color-mix(in srgb,var(--cool) 14%,transparent);color:var(--cool)}
.role-switch{margin-top:16px;background:none;border:0;padding:0;font:inherit;font-size:.82rem;
  color:var(--muted);text-decoration:underline;cursor:pointer}
.role-switch:hover{color:var(--cool)}

/* ── БОНУСЫ ЗА ЗАЯВКИ — намеренно НЕ похожи на партнёрский баланс ─────────── */
.bonus-card{padding:24px;margin-bottom:18px;border-left:3px solid var(--cool)}
.bc-head{display:flex;gap:14px;align-items:flex-start}
.bc-ic{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:40px;height:40px;
  border-radius:11px;background:color-mix(in srgb,var(--cool) 14%,transparent);color:var(--cool)}
.bc-head h3{font-size:1.05rem;margin-bottom:4px}
.bc-head p{font-size:.85rem;color:var(--muted);margin:0;line-height:1.55}
.bc-sum{display:flex;align-items:baseline;gap:8px;margin:16px 0 0}
.bc-sum b{font-size:2rem;font-weight:700;color:var(--cool);font-variant-numeric:tabular-nums}
.bc-sum span{font-size:.85rem;color:var(--muted)}
.bc-note{font-size:.82rem;color:var(--muted);margin:8px 0 0}

/* ── МОИ ЗАЯВКИ ──────────────────────────────────────────────────────────── */
.my-leads{padding:24px;margin-bottom:18px}
.ml-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.ml-head h3{font-size:1.05rem}
.ml-count{font-size:.8rem;color:var(--muted)}
.ml-list{display:flex;flex-direction:column}
.ml-item{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 0;border-top:1px solid var(--line)}
.ml-item:first-child{border-top:0;padding-top:0}
.ml-mid{min-width:0;display:flex;flex-direction:column;gap:3px}
.ml-mid b{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46ch}
.ml-sub{font-size:.78rem;color:var(--muted)}
.ml-right{display:flex;align-items:center;gap:10px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}
.ml-when{font-size:.76rem;color:var(--muted);font-variant-numeric:tabular-nums}
.ml-off{font-size:.76rem;color:var(--cool);white-space:nowrap}
.ml-st{font-size:.72rem;padding:.25em .7em;border-radius:99px;border:1px solid var(--line);white-space:nowrap}
.ml-st.st-work{color:var(--cool);border-color:color-mix(in srgb,var(--cool) 45%,transparent)}
.ml-st.st-done{color:var(--muted)}
.ml-st.st-off{opacity:.6}
@media(max-width:640px){
  .ml-item{flex-direction:column;align-items:flex-start;gap:6px}
  .ml-right{justify-content:flex-start}
  .ml-mid b{max-width:100%;white-space:normal}
}

/* ── заголовок партнёрского раздела: отделяет заработок от бонусов ───────── */
.cab-sec{font-size:1.15rem;margin:26px 0 14px}
.cab-sec span{font-size:.85rem;font-weight:400;color:var(--muted)}

/* ── СТАТИСТИКА БИЗНЕСА В КАБИНЕТЕ ────────────────────────────────────────────
   Цифры должны встречать подписчика сразу: до отдельной страницы доходили не все. */
.bz-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:820px){.bz-kpi{grid-template-columns:repeat(2,1fr)}}
.bz-kpi>div{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:14px}
.bz-kpi b{font-size:1.7rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.bz-kpi span{font-size:.78rem;color:var(--muted)}
.bz-kpi i{font-style:normal;font-size:.74rem;color:var(--muted);font-variant-numeric:tabular-nums}
.bz-kpi i.up{color:var(--cool)}
.bz-kpi i.down{color:var(--hot)}
.bz-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;margin-top:18px}
@media(max-width:820px){.bz-grid{grid-template-columns:1fr}}
.bz-cell{padding:16px;border:1px solid var(--line);border-radius:14px;min-width:0}
.bz-t{font-size:.82rem;color:var(--muted);margin-bottom:10px}
.bz-bars{display:flex;align-items:flex-end;gap:2px;height:64px}
.bz-bars i{flex:1;background:linear-gradient(180deg,var(--cool),color-mix(in srgb,var(--cool) 30%,transparent));
  border-radius:2px 2px 0 0;min-height:3px}
.bz-cap{font-size:.78rem;color:var(--muted);margin-top:8px}
.bz-cap b{color:var(--text)}
.bz-list{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0;padding:0}
.bz-list li{display:flex;align-items:center;gap:8px;font-size:.83rem}
/* Приоритет — НАЗВАНИЮ: раньше подпись жёстко резалась на 12 символах, и на широких
   страницах выходило «укладка пли…» при половине пустой строки. Теперь текст занимает
   всё свободное место, а полоска берёт фиксированную долю. */
.bz-list li>span:first-child{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bz-list .bar{flex:0 0 64px;height:5px;border-radius:99px;background:var(--line);overflow:hidden}
.bz-list .bar i{display:block;height:100%;background:var(--cool);border-radius:99px}
.bz-list b{margin-left:auto;font-variant-numeric:tabular-nums}
.bz-last{margin-top:18px}
.bz-last .ml-item:first-child{padding-top:0;border-top:0}

/* ── БЫСТРЫЙ ВХОД ЧЕРЕЗ СЕРВИСЫ ───────────────────────────────────────────────
   Узнаваемость важнее единого стиля: люди ищут глазами знакомый значок, поэтому
   у кнопок фирменные цвета, а не наша палитра. Размер и радиус — общие с btn-tg,
   чтобы блок входа читался одной группой. */
.oauth-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
@media(max-width:420px){.oauth-row{grid-template-columns:1fr}}
.oauth-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:.72em 1em;border-radius:12px;font-size:.92rem;font-weight:600;text-decoration:none;
  border:1px solid var(--line);transition:transform .16s,box-shadow .16s,border-color .16s}
.oauth-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.18)}
.oauth-btn svg{flex:0 0 auto}

/* ── ТЁМНАЯ ТЕМА: приглушаем ЗАЛИВКУ кнопок ──────────────────────────────────
   Оранжевый, который на светлом фоне читается как акцент, на почти чёрном светит
   как лампа и тянет на себя всё внимание. Правим только фон и тень кнопки:
   переменная --hot остаётся яркой, ею покрашен текст, и там контраст нужен. */
:root:not([data-theme="light"]) .btn-hot{
  background:linear-gradient(135deg,#E9502A,#F76F46);
  box-shadow:0 8px 22px -14px var(--glow)}
:root:not([data-theme="light"]) .btn-hot:hover{
  background:linear-gradient(135deg,#F35730,#FF7A52);
  box-shadow:0 10px 26px -12px var(--glow)}
@media(prefers-color-scheme:dark){
  :root:not([data-theme="light"]):not([data-theme="dark"]) .btn-hot{
    background:linear-gradient(135deg,#E9502A,#F76F46)}
}

/* ── КНОПКИ СЕРВИСОВ: они не должны быть близнецами ──────────────────────────
   Две одинаковые белые кнопки читались как одна широкая. Google по гайдлайну
   остаётся белым, Яндекс берёт свой фирменный красный — разница видна сразу. */
.oauth-or{margin-top:16px}

/* ══ ЭКРАН ВХОДА: одна иерархия вместо четырёх равных блоков ═════════════════ */

/* Главная кнопка. Метка «рекомендуем» снимает выбор: человек не сравнивает
   четыре способа, а видит один основной и остальные под ним. */
/* Под метку резервируем место отступами С ОБЕИХ сторон: тогда значок с подписью
   остаются ровно по центру, а метка стоит в своей зоне справа и текст под неё
   никогда не заезжает — что и происходило при простом абсолютном позиционировании. */
.btn-tg{position:relative;overflow:hidden;padding:.85em 118px;gap:10px}
.tg-rec{position:absolute;top:50%;right:14px;transform:translateY(-50%);
  padding:.2em .62em;border-radius:99px;font-size:.64rem;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;
  background:rgba(255,255,255,.18);color:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.22)}
/* на узком экране метка не помещается рядом с подписью — убираем её, а не текст */
@media(max-width:520px){.btn-tg{padding:.85em 1.1em}.tg-rec{display:none}}
.auth-card .auth-hint{margin:9px 0 0;line-height:1.5}

/* Кнопки сервисов: нейтральный фон под тему сайта, цвет несёт только значок.
   Белая кнопка Google на тёмной теме выбивалась как фонарь, а две одинаковые
   белые кнопки читались одной широкой полосой. */
.oauth-row{margin-top:14px}
.oauth-btn{background:var(--surface);color:var(--text);border:1.5px solid var(--line);
  padding:.78em 1em}
.oauth-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px -12px rgba(0,0,0,.45)}
.oauth-btn.google:hover{border-color:#4285F4;background:color-mix(in srgb,#4285F4 8%,var(--surface))}
.oauth-btn.yandex:hover{border-color:#FC3F1D;background:color-mix(in srgb,#FC3F1D 8%,var(--surface))}
/* значок Яндекса на нейтральном фоне — фирменный красный кружок */
.oauth-btn.yandex .ya-bg{fill:#FC3F1D}
.oauth-btn.yandex .ya-fg{fill:#fff}

.auth-or{margin:18px 0 14px}
.oauth-or{margin-top:18px}

/* Пароль — не равноправный способ, а запасной выход для тех, кто завёл его раньше */
.auth-foot{margin:16px 0 0;font-size:.82rem;color:var(--muted);text-align:center}
.auth-link{background:none;border:0;padding:0;font:inherit;color:var(--cool);
  text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.auth-link:hover{color:var(--text)}
.auth-link:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:6px}
#passForm{margin-top:14px;padding-top:16px;border-top:1px solid var(--line)}

/* Правая колонка: не список возможностей, а короткие пары «что» + «зачем» */
.auth-aside{padding:26px}
.auth-aside h3{font-size:1.05rem;margin-bottom:16px}
.aside-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.aside-list li{display:flex;flex-direction:column;gap:3px;padding-left:16px;position:relative}
.aside-list li::before{content:"";position:absolute;left:0;top:.45em;width:6px;height:6px;
  border-radius:50%;background:var(--cool)}
.aside-list b{font-size:.9rem}
.aside-list span{font-size:.8rem;color:var(--muted);line-height:1.45}
.aside-note{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line);
  font-size:.79rem;color:var(--muted);line-height:1.5}
/* Вход — первым экраном и на телефоне: сначала действие, потом пояснения.
   Раньше здесь стоял order:-1, и карточка «Что внутри» выталкивала форму вниз. */
@media(max-width:860px){.auth-wrap{grid-template-columns:1fr}
  .auth-card{order:0}.auth-aside{order:1}}

/* ── АТРИБУТ hidden ДОЛЖЕН ПОБЕЖДАТЬ ──────────────────────────────────────────
   Браузерное правило [hidden]{display:none} слабее любого правила с классом,
   поэтому элемент с display:flex/grid оставался виден, даже когда JS ставил
   hidden. Так на экране входа дважды показалось «или по почте». */
.auth-or[hidden],.oauth-row[hidden],.cp-acts[hidden],.link-row[hidden],
.bz-kpi[hidden],[hidden]{display:none!important}

/* ── КАРТОЧКИ УСЛУГ: вход на посадочные страницы ─────────────────────────── */
.usl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.usl-card{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px solid var(--line);
  border-radius:14px;text-decoration:none;color:inherit;background:var(--surface);
  transition:border-color .18s,transform .18s}
.usl-card:hover{border-color:var(--cool);transform:translateY(-2px)}
.usl-card b{font-size:.95rem}
.usl-card span{font-size:.8rem;color:var(--muted);line-height:1.45}

/* ── ПОСАДОЧНЫЕ СТРАНИЦЫ УСЛУГ ────────────────────────────────────────────────
   Строка цифр под заголовком: масштаб спроса и «для вас бесплатно» должны
   считываться за секунду, до того как человек начнёт читать текст. */
.lp-stats{padding:0 0 8px}
.lps-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;
  padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.lps{display:flex;flex-direction:column;gap:2px;text-align:center}
.lps b{font-size:1.9rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;
  background:linear-gradient(135deg,var(--hot),var(--hot2));-webkit-background-clip:text;
  background-clip:text;color:transparent}
.lps span{font-size:.78rem;color:var(--muted)}

/* Три шага. Нумерация крупная: это первое, что человек ищет глазами на странице услуги. */
.lp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.lp-step{position:relative;padding:22px 20px 20px;border:1px solid var(--line);border-radius:16px}
.lp-step i{display:flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:50%;background:color-mix(in srgb,var(--cool) 16%,transparent);color:var(--cool);
  font-style:normal;font-weight:700;font-size:.9rem;margin-bottom:10px}
.lp-step b{display:block;font-size:1rem;margin-bottom:5px}
.lp-step span{font-size:.85rem;color:var(--muted);line-height:1.5}

.lp-text{font-size:1rem;line-height:1.7;margin:0 0 14px;color:var(--text)}
.lp-hours{padding:18px 20px;margin-top:16px}
.lp-hours .bz-bars{height:78px}
.lp-hx{display:flex;justify-content:space-between;margin-top:6px;font-size:.72rem;
  color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:640px){.lps b{font-size:1.5rem}}

/* ── БЛОК ДЛЯ ИСПОЛНИТЕЛЯ на страницах услуг ──────────────────────────────────
   Заметный, но не крикливый: заказчик его пролистывает, мастер — останавливается.
   Цифры внутри те же, что выше на странице, поэтому подаём их как факты, а не
   как рекламные обещания. */
/* Блок «соберите свой тариф». Раньше он стоял третьим подряд на одинаковом фоне,
   и мастер его просто не отличал от соседних карточек. Даём ему собственный вес:
   тёплая рамка сверху, заметный фон и отступ, который разрывает монотонность. */
.master-cta{padding:clamp(24px,3vw,34px);position:relative;overflow:hidden;
  border:1px solid color-mix(in srgb,var(--cool) 38%,var(--line));
  border-radius:var(--rd);
  background:
    radial-gradient(120% 140% at 100% 0,color-mix(in srgb,var(--hot) 12%,transparent),transparent 58%),
    linear-gradient(160deg,color-mix(in srgb,var(--cool) 10%,var(--surface)),var(--surface));
  box-shadow:0 18px 44px -28px color-mix(in srgb,var(--cool) 55%,transparent)}
.master-cta::before{content:"";position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--cool),var(--hot))}
.master-cta .cp-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.master-cta .cp-acts .btn{flex:1 1 240px;justify-content:center;text-align:center}
@media(max-width:560px){.master-cta .cp-acts .btn{flex:1 1 100%}}
.mc-badge{display:inline-block;padding:.22em .7em;border-radius:99px;font-size:.68rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;background:color-mix(in srgb,var(--cool) 18%,transparent);
  color:var(--cool);margin-bottom:10px}
.mc-top h2{font-size:1.3rem;margin:0 0 8px}
.mc-top p{font-size:.9rem;color:var(--muted);line-height:1.6;margin:0;max-width:62ch}
.mc-facts{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:12px;margin:20px 0;padding:0}
.mc-facts li{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:12px;
  background:color-mix(in srgb,var(--text) 4%,transparent)}
.mc-facts b{font-size:1.5rem;font-weight:700;line-height:1.1;color:var(--cool);font-variant-numeric:tabular-nums}
.mc-facts span{font-size:.76rem;color:var(--muted)}
.mc-note{font-size:.86rem;color:var(--text);margin:0 0 16px;line-height:1.6}

/* ── КОНСТРУКТОР ПОДКЛЮЧЕНИЯ ──────────────────────────────────────────────────
   Слева выбор, справа цена, которая пересчитывается на глазах. Смысл в том, чтобы
   человек увидел связь «отметил меньше — платишь меньше» сам, без объяснений. */
.cn-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;align-items:start}
@media(max-width:960px){.cn-grid{grid-template-columns:1fr}}
.cn-pick{display:flex;flex-direction:column;gap:16px}
.cn-step{position:relative;padding:26px 26px 24px}
.cn-num{position:absolute;top:22px;right:22px;width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;
  background:color-mix(in srgb,var(--cool) 16%,transparent);color:var(--cool)}
.cn-step h2{font-size:1.1rem;margin:0 0 5px;padding-right:34px}
.cn-hint{font-size:.85rem;color:var(--muted);margin:0 0 14px;line-height:1.5}
.cn-note{font-size:.8rem;color:var(--muted);margin:12px 0 0;line-height:1.5}

/* Кнопки-переключатели: состояние должно читаться мгновенно, поэтому выбранное
   заливается акцентом, а не помечается галочкой где-то сбоку. */
.picks{display:flex;flex-wrap:wrap;gap:8px}
.pick{padding:.55em .9em;border-radius:11px;border:1.5px solid var(--line);background:transparent;
  color:var(--text);font:inherit;font-size:.88rem;cursor:pointer;
  transition:border-color .16s,background .16s,transform .12s}
.pick:hover{border-color:var(--cool);transform:translateY(-1px)}
.pick.on{background:color-mix(in srgb,var(--cool) 16%,transparent);border-color:var(--cool);color:var(--cool);font-weight:600}
.pick.on::before{content:"✓ "}
.pick.sm{font-size:.82rem;padding:.45em .75em}
.pick:focus-visible{outline:3px solid var(--ring);outline-offset:2px}

/* Правая колонка липкая: цена не должна уезжать, пока человек отмечает категории */
.cn-side{position:sticky;top:88px}
@media(max-width:960px){.cn-side{position:static}}
.cn-price{padding:26px}
.cn-sum{font-size:.8rem;color:var(--muted);margin-bottom:10px;line-height:1.5}
.cn-main{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.cn-main b{font-size:2.4rem;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums;
  background:linear-gradient(135deg,var(--hot),var(--hot2));-webkit-background-clip:text;
  background-clip:text;color:transparent}
.cn-main span{font-size:.84rem;color:var(--muted)}
.cn-disc{display:inline-block;margin:6px 0 0;padding:.24em .7em;border-radius:99px;font-size:.76rem;
  font-weight:700;background:color-mix(in srgb,var(--cool) 18%,transparent);color:var(--cool)}
.cn-t{font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);
  margin:20px 0 8px}
.cn-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
.cn-opt{display:flex;flex-direction:column;gap:1px;padding:10px 12px;border-radius:11px;
  border:1px solid var(--line)}
.cn-opt b{font-size:1rem;font-variant-numeric:tabular-nums}
.cn-opt span{font-size:.74rem;color:var(--muted)}
.cn-opt i{font-style:normal;font-size:.7rem;color:var(--muted);opacity:.8}
.cn-plan{display:flex;flex-direction:column;gap:3px;margin-top:16px;padding:14px;border-radius:12px;
  background:color-mix(in srgb,var(--hot) 8%,transparent);border:1px solid color-mix(in srgb,var(--hot) 30%,transparent)}
.cn-plan b{font-size:.92rem}
.cn-plan span{font-size:.78rem;color:var(--muted);line-height:1.5}
.cn-form{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:12px}
.cn-form .field{display:grid;gap:6px}
.cn-form label{font-size:.8rem;font-weight:600;color:var(--muted)}
.cn-done{display:flex;flex-direction:column;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.cn-done b{font-size:1.05rem;color:var(--cool)}
.cn-done span{font-size:.86rem;color:var(--muted);line-height:1.55}
.cn-done .btn{margin-top:6px}

/* ── КОНСТРУКТОР: выбираемые варианты ───────────────────────────────────────
   Сроки и пакеты были справкой, которую нельзя нажать. Теперь это кнопки:
   выбранный вариант уходит вместе с заявкой, и владелец сразу видит, что человек
   хочет купить, а не гадает. */
.cn-opt{text-align:left;font:inherit;color:inherit;background:transparent;cursor:pointer;
  transition:border-color .16s,background .16s,transform .12s}
.cn-opt:hover{border-color:var(--cool);transform:translateY(-1px)}
.cn-opt.on{border-color:var(--cool);background:color-mix(in srgb,var(--cool) 14%,transparent)}
.cn-opt.on b{color:var(--cool)}
.cn-opt:focus-visible{outline:3px solid var(--ring);outline-offset:2px}
.cn-flow{font-size:.82rem;color:var(--muted);line-height:1.5;margin:14px 0 0;padding:12px;
  border-radius:11px;background:color-mix(in srgb,var(--text) 4%,transparent)}
.cn-flow b{color:var(--text)}
.cn-est{display:block;margin-top:5px;font-size:.76rem;opacity:.85}
/* Самый дешёвый вариант за заявку. Показываем честно: человек всё равно посчитает. */
.cn-opt.best{position:relative;border-color:color-mix(in srgb,var(--cool) 50%,transparent)}
.cn-opt.best::after{content:"выгоднее";position:absolute;top:-8px;right:8px;padding:.1em .5em;
  border-radius:99px;font-size:.62rem;font-weight:700;letter-spacing:.04em;
  background:var(--cool);color:#04201c}
