/* ============================================================================
   Senator Media - калькуляторы (/tools/, 14.10.2026). Подключается только на страницах
   калькуляторов, в хабе, в блоке «Посчитать» на услугах и в статьях со встроенным
   калькулятором. Токены (цвета, шрифты, отступы) - из site.css :root, своих нет.

   ОГЛАВЛЕНИЕ
     1. База: корень .tl, сетка «поля | результат», поля, примеры, результат, вердикт, кнопка
     2. Страница калькулятора: шапка, формулы, «честно о расчёте», связанные услуги
     3. Хаб: карточки инструментов, принципы
     4. Блок «Посчитать» на странице услуги и встраивание в статью
     5. Разделы инструментов (fees, subs, marketplace/downtime, staffing)
     6. Адаптив и prefers-reduced-motion
     ... ниже - разделы других инструментов (дописываются в конец файла своим агентом)
   ============================================================================ */

/* ============================================================================
   1. БАЗА
   ============================================================================ */
.tl-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tl{position:relative;--tl-ok:#5fd38d;--tl-warn:#e6b84f;--tl-bad:#ff7a6b}
.tl-local{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:0 0 20px}
.tl-lock{width:16px;height:16px;flex:none;color:var(--gold2)}
.tl-noscript{border:1px solid var(--line2);padding:14px 18px;margin:0 0 20px;color:var(--cream)}
.tl-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,3vw,40px);align-items:start}
.tl-form{display:flex;flex-direction:column;gap:clamp(18px,2vw,26px);min-width:0}

/* примеры по нишам */
.tl-presets{display:flex;flex-direction:column;gap:10px}
.tl-presets-k{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:0}
.tl-presets-k span{text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:13px;color:var(--mid);margin-left:6px}
.tl-chips{display:flex;flex-wrap:wrap;gap:8px}
.tl-chip{min-height:44px;padding:9px 16px;border:1px solid var(--line);background:transparent;color:var(--cream);font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;transition:border-color .25s,color .25s,background .25s}
.tl-chip:hover{border-color:var(--line2);color:var(--bright)}
.tl-chip[aria-pressed="true"]{border-color:var(--gold2);color:var(--bright);background:rgba(212,180,74,.1)}
.tl-chip:focus-visible,.tl-reset:focus-visible,.tl-row-add:focus-visible,.tl-row-del:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}

/* группы и поля */
.tl-group{border:1px solid var(--line);background:rgba(14,14,21,.72);padding:clamp(16px,2.2vw,26px);margin:0;min-width:0}
.tl-legend{font-family:var(--sans);font-weight:700;font-size:clamp(1.02rem,1.3vw,1.15rem);letter-spacing:-.01em;color:var(--bright);padding:0 8px;margin-left:-8px}
.tl-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));grid-auto-flow:row dense;gap:16px 18px;margin-top:8px}
.tl-field{display:flex;flex-direction:column;gap:6px;min-width:0;border:0;padding:0;margin:0}
.tl-field-wide{grid-column:1/-1}
.tl-lbl{font-family:var(--sans);font-size:14px;font-weight:600;line-height:1.35;color:var(--cream)}
.tl-hint{font-size:12.5px;line-height:1.5;color:var(--soft);margin:0}
.tl-hint-top{margin:4px 0 12px}
.tl-input{display:flex;align-items:stretch;border:1px solid var(--line2);background:var(--card);transition:border-color .2s}
.tl-input:focus-within{border-color:var(--gold2);outline:2px solid rgba(212,180,74,.35);outline-offset:1px}
.tl-input input,.tl-input select{flex:1;min-width:0;width:100%;background:transparent;border:0;color:var(--bright);font-family:var(--mono);font-size:16px;padding:11px 12px;min-height:46px;outline:0;-moz-appearance:textfield}
.tl-input input::-webkit-outer-spin-button,.tl-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tl-input select{font-family:var(--sans);font-size:15px;appearance:none;-webkit-appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--gold2) 50%),linear-gradient(135deg,var(--gold2) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
.tl-input select option,.tl-input select optgroup{background:var(--ink);color:var(--bright)}
.tl-pre,.tl-suf{display:flex;align-items:center;padding:0 0 0 12px;font-family:var(--mono);font-size:15px;color:var(--gold2)}
.tl-suf{padding:0 12px 0 0}
.tl-u-usd input{padding-left:6px}

/* сегменты (радио) */
.tl-seg-row{display:flex;flex-wrap:wrap;gap:8px}
.tl-seg-opt{position:relative;display:inline-flex}
.tl-seg-opt input{position:absolute;opacity:0;width:1px;height:1px}
.tl-seg-opt span{display:inline-flex;align-items:center;min-height:44px;padding:9px 16px;border:1px solid var(--line);color:var(--cream);font-size:14px;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.tl-seg-opt input:checked+span{border-color:var(--gold2);background:rgba(212,180,74,.1);color:var(--bright)}
.tl-seg-opt input:focus-visible+span{outline:2px solid var(--gold2);outline-offset:2px}

/* результат */
.tl-side{min-width:0}
.tl-res{border:1px solid var(--line2);background:radial-gradient(ellipse at 100% 0,rgba(212,180,74,.09),rgba(212,180,74,0) 60%),var(--card);padding:clamp(18px,2.4vw,30px);display:flex;flex-direction:column;gap:18px;position:relative}
.tl-res::before{content:'';position:absolute;top:-1px;left:-1px;width:28px;height:28px;border-top:1px solid var(--gold2);border-left:1px solid var(--gold2);pointer-events:none}
.tl-res-k{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold2);margin:0}
.tl-ms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.tl-ms>.tl-m:last-child:nth-child(odd){grid-column:1/-1}
.tl-m{background:var(--ink);padding:12px 14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.tl-m-l{font-size:12.5px;line-height:1.35;color:var(--soft)}
.tl-m-v{font-family:var(--serif);font-weight:800;font-size:clamp(1.12rem,1.5vw,1.35rem);letter-spacing:-.01em;color:var(--bright);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tl-m-big .tl-m-v{font-size:clamp(1.35rem,2vw,1.75rem);background:var(--gd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.tl-m-v[data-sign="neg"]{background:none;-webkit-text-fill-color:var(--tl-bad);color:var(--tl-bad)}
.tl-m-n{font-size:12.5px;line-height:1.4;color:var(--soft)}
.tl-m-n:empty{display:none}

/* вердикт */
.tl-verdict{border-left:3px solid var(--line2);background:rgba(255,255,255,.025);padding:14px 16px;display:flex;flex-direction:column;gap:6px;transition:border-color .3s,background .3s}
.tl-verdict[data-state="ok"]{border-left-color:var(--tl-ok);background:rgba(95,211,141,.06)}
.tl-verdict[data-state="warn"]{border-left-color:var(--tl-warn);background:rgba(230,184,79,.07)}
.tl-verdict[data-state="bad"]{border-left-color:var(--tl-bad);background:rgba(255,122,107,.07)}
.tl-v-k{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);margin:0}
.tl-v-title{font-family:var(--sans);font-weight:700;font-size:clamp(1.05rem,1.4vw,1.22rem);line-height:1.3;color:var(--bright);margin:0}
.tl-v-text{font-size:14.5px;line-height:1.55;color:var(--cream);margin:0}
.tl-v-text:empty{display:none}
.tl-v-fix{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.tl-v-fix li{font-size:14px;line-height:1.5;color:var(--cream);padding-left:18px;position:relative}
.tl-v-fix li::before{content:'';position:absolute;left:2px;top:.62em;width:7px;height:7px;border-right:1.5px solid var(--gold2);border-top:1.5px solid var(--gold2);transform:rotate(45deg)}

/* кнопка заявки */
.tl-cta{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:4px}
.tl-cta .btn-g{width:100%}
.tl-cta-note{font-size:12.5px;line-height:1.5;color:var(--soft);margin:0}
.tl-reset{background:none;border:0;padding:6px 0;min-height:32px;color:var(--soft);font-family:var(--sans);font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.tl-reset:hover{color:var(--gold2)}
.tl-ref{font-size:13.5px;line-height:1.55;color:var(--soft);margin:0;border-top:1px solid var(--line);padding-top:12px}
.tl-ref:empty{display:none}
.tl-bar{display:block;height:4px;background:rgba(255,255,255,.06);position:relative;overflow:hidden}
.tl-bar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--gd);transition:width .45s var(--ease)}

/* липкая полоска вывода (телефон/планшет, раскладка split): едет вместе с формой */
.tl-peek{position:sticky;top:calc(var(--nav) + 6px);z-index:5;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 16px;padding:10px 14px;min-height:48px;border:1px solid var(--line2);border-left:3px solid var(--line2);background:rgba(10,10,15,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-decoration:none;color:var(--bright)}
.tl-peek[data-state="ok"]{border-left-color:var(--tl-ok)}
.tl-peek[data-state="warn"]{border-left-color:var(--tl-warn)}
.tl-peek[data-state="bad"]{border-left-color:var(--tl-bad)}
.tl-peek-k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.tl-peek-t{font-weight:700;font-size:14px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.tl-peek-go{color:var(--gold2);font-size:18px}
.tl-peek:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.tl-l-stack .tl-peek,.tl:not(.is-live) .tl-peek{display:none}
.tl-verdict{scroll-margin-top:calc(var(--nav) + 24px)}

/* ============================================================================
   2. СТРАНИЦА КАЛЬКУЛЯТОРА
   ============================================================================ */
.tl-kicker{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold2);margin:0}
.tl-kicker-ic .tl-ic,.tl-card-ic .tl-ic{width:22px;height:22px;display:block}
.tl-facts{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 18px}
.tl-facts li{font-size:14px;line-height:1.5;color:var(--soft);padding-left:16px;position:relative}
.tl-facts li::before{content:'';position:absolute;left:0;top:.55em;width:6px;height:6px;background:var(--gold2);transform:rotate(45deg)}
.tl-sec{padding-top:clamp(8px,2vw,24px)}

/* формулы - колонками (как газетная вёрстка): карточки разной высоты встают плотно, без
   растянутых пустых карточек и сирот последнего ряда; призыв - последней карточкой */
.tl-formulas{columns:300px;column-gap:20px}
.tl-formula,.tl-formulas>.grid-fill{break-inside:avoid;margin:0 0 20px;width:100%}
.tl-formula{border:1px solid var(--line);background:rgba(14,14,21,.6);padding:20px 22px;display:flex;flex-direction:column;gap:8px;min-width:0}
.tl-f-n{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--gold2)}
.tl-f-t{font-family:var(--sans);font-weight:700;font-size:1.05rem;line-height:1.3;color:var(--bright);margin:0}
.tl-f-f{margin:0}
.tl-f-f code{display:block;font-family:var(--mono);font-size:13.5px;line-height:1.55;color:var(--cream);background:rgba(212,180,74,.06);border-left:2px solid var(--gold3);padding:8px 10px;white-space:normal;overflow-wrap:anywhere}
.tl-f-d{font-size:14px;line-height:1.55;color:var(--soft);margin:0}
.tl-formulas>.grid-fill{padding:22px 24px}
.tl-formulas>.grid-fill .gf-title{font-size:clamp(1.2rem,1.7vw,1.5rem)}

.tl-honest{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,3vw,48px);align-items:stretch}
.tl-honest-main{display:flex;flex-direction:column;gap:14px;max-width:72ch}
.tl-honest-main .sec-title-sm{margin:0}
.tl-honest-main p{color:var(--cream);font-size:16px;line-height:1.7;margin:0}
.tl-honest-main .tl-honest-common{color:var(--soft);font-size:14.5px}
.tl-related{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.tl-related-k{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);margin:0;padding:16px 0 8px}
.tl-rel{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;min-height:56px;transition:color .25s}
.tl-rel:hover .tl-rel-t,.tl-rel:focus-visible .tl-rel-t{color:var(--gold2)}
.tl-rel:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.tl-rel-n{font-family:var(--mono);font-size:12px;color:var(--gold2)}
.tl-rel-t{font-weight:600;font-size:15.5px;line-height:1.35;color:var(--bright);transition:color .25s}
.tl-rel-p{font-family:var(--mono);font-size:12.5px;color:var(--soft);white-space:nowrap}

/* ============================================================================
   3. ХАБ
   ============================================================================ */
.tl-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px}
.tl-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:24px 24px 22px;border:1px solid var(--line);background:rgba(14,14,21,.72);text-decoration:none;color:inherit;min-height:220px;transition:border-color .3s,background .3s,transform .5s var(--ease)}
.tl-card::before{content:'';position:absolute;top:-1px;left:-1px;width:36px;height:1px;background:var(--gold2);transition:width .6s var(--ease)}
.tl-card:hover,.tl-card:focus-visible{border-color:var(--line2);background:rgba(212,180,74,.05)}
.tl-card:hover::before,.tl-card:focus-visible::before{width:calc(100% + 2px)}
.tl-card:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.tl-card-ic{color:var(--gold2);display:inline-flex}
.tl-card-n{position:absolute;top:22px;right:24px;font-family:var(--mono);font-size:12px;color:var(--mid)}
.tl-card-t{font-family:var(--sans);font-weight:700;font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.25;letter-spacing:-.01em;color:var(--bright);margin:4px 0 0}
.tl-card-d{font-size:14.5px;line-height:1.6;color:var(--cream);margin:0;flex:1}
.tl-card-go{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold2)}
.tl-cards-sm .tl-card{min-height:0}
.tl-cards>.grid-fill{min-height:220px}
.tl-principles{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media (min-width:700px){.tl-principles{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tl-principle{border-top:1px solid var(--line);padding-top:18px;display:flex;flex-direction:column;gap:8px}
.tl-principle h3{font-family:var(--sans);font-weight:700;font-size:1.08rem;color:var(--bright);margin:0}
.tl-principle p{font-size:14.5px;line-height:1.6;color:var(--cream);margin:0}

/* ============================================================================
   4. БЛОК «ПОСЧИТАТЬ» НА УСЛУГЕ И ВСТРАИВАНИЕ В СТАТЬЮ
   ============================================================================ */
.tl-svc-box{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;border:1px solid var(--line2);background:radial-gradient(ellipse at 0 0,rgba(212,180,74,.08),rgba(212,180,74,0) 55%),var(--card);padding:clamp(20px,3vw,36px);position:relative}
.tl-svc-box::before{content:'';position:absolute;top:-1px;left:-1px;width:28px;height:28px;border-top:1px solid var(--gold2);border-left:1px solid var(--gold2)}
.tl-svc-main{display:flex;flex-direction:column;gap:10px}
.tl-svc-title{font-family:var(--sans);font-weight:700;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.2;letter-spacing:-.01em;color:var(--bright);margin:0}
.tl-svc-text{font-size:15px;line-height:1.6;color:var(--cream);margin:0;max-width:56ch}
.tl-svc-links{display:flex;flex-direction:column;gap:10px}
.tl-svc-link{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);background:var(--ink);text-decoration:none;color:inherit;min-height:56px;transition:border-color .25s,background .25s}
.tl-svc-link:hover,.tl-svc-link:focus-visible{border-color:var(--gold2);background:rgba(212,180,74,.06)}
.tl-svc-link:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.tl-svc-link-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.tl-svc-link-t b{font-weight:700;font-size:15.5px;color:var(--bright)}
.tl-svc-link-t small{font-size:13px;line-height:1.45;color:var(--soft)}
.tl-svc-go{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold2);white-space:nowrap}

.tl-embed{margin:clamp(32px,4vw,48px) 0;padding:clamp(18px,2.6vw,30px);border:1px solid var(--line2);background:rgba(10,10,15,.82)}
.tl-embed-k{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold2);margin:0 0 6px}
.prose .tl-embed .tl-embed-t,.tl-embed-t{font-family:var(--sans);font-weight:700;font-size:clamp(1.3rem,2vw,1.7rem);margin:0 0 8px;color:var(--bright)}
.tl-embed-d{font-size:15px;color:var(--cream);margin:0 0 18px}
.tl-embed-d a{color:var(--gold2)}
/* внутри .prose (post.html) у таблиц/списков/абзацев свои отступы - здесь их гасим */
.prose .tl p,.prose .tl ul,.prose .tl figure{margin:0}
.prose .tl ul{padding:0}
.prose .tl li{margin:0}
.prose .tl li::marker{content:none}
.prose .tl legend{font-size:inherit}

/* ============================================================================
   5. РАЗДЕЛЫ ИНСТРУМЕНТОВ
   ============================================================================ */
/* 5.1 fees - пять моделей в ряд */
.tl-form-row{display:grid;grid-template-columns:minmax(0,1fr);gap:16px 20px;align-items:start;border:1px solid var(--line);background:rgba(14,14,21,.72);padding:clamp(16px,2.2vw,24px)}
.tl-form-note{grid-column:1/-1;font-size:13px;line-height:1.5;color:var(--soft);margin:0}
.tl-res-flat::before{display:none}
.tl-models{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:700px){
  .tl-form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tl-models{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tl-models>.tl-model:last-child:nth-child(odd){grid-column:1/-1}
}
/* модели - как карточки /how-we-work/ (.hw-model-card): только верхняя линия, без коробки -
   разная длина текста в ряду не даёт «пустых коробок» */
.tl-model{border-top:1px solid var(--line);padding:16px 2px 4px;display:flex;flex-direction:column;gap:7px;position:relative;min-width:0;transition:border-color .3s,opacity .3s}
.tl-model::before{content:'';position:absolute;top:-1px;left:0;width:36px;height:1px;background:var(--gold2);transition:width .6s var(--ease)}
.tl-model[data-state="best"]::before{width:100%;height:2px;top:-2px}
.tl-model[data-state="off"]{opacity:.62}
.tl-model-n{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold2);margin:0}
.tl-model-cond{font-size:13px;line-height:1.45;color:var(--soft);margin:0}
.tl-model-fee{font-family:var(--serif);font-weight:800;font-size:clamp(1.1rem,1.4vw,1.3rem);line-height:1.2;color:var(--bright);font-variant-numeric:tabular-nums}
.tl-model-share,.tl-model-note{font-size:13px;line-height:1.5;color:var(--cream);margin:0}
.tl-model-note{color:var(--soft)}
.tl-model-share:empty,.tl-model-note:empty{display:none}
.tl-model-best{align-self:flex-start;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--void);background:var(--gd);padding:4px 8px}

/* 5.2 subs - таблица подписок и график */
.tl-rows{display:flex;flex-direction:column;gap:8px}
.tl-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr) minmax(0,.9fr) 44px;gap:8px;align-items:stretch}
.tl-row>input{background:var(--card);border:1px solid var(--line2);color:var(--bright);font-family:var(--sans);font-size:15px;padding:10px 12px;min-height:46px;min-width:0;width:100%}
.tl-row>input[type=number]{font-family:var(--mono);-moz-appearance:textfield}
.tl-row>input:focus{outline:2px solid rgba(212,180,74,.5);outline-offset:1px;border-color:var(--gold2)}
.tl-row-head{font-size:12px;color:var(--soft);font-weight:600}
.tl-row-head span{padding:0 2px}
.tl-row-del{border:1px solid var(--line);background:transparent;color:var(--soft);font-size:20px;line-height:1;cursor:pointer;min-height:44px;min-width:44px}
.tl-row-del:hover{color:var(--tl-bad,#ff7a6b);border-color:currentColor}
.tl-row-add{align-self:flex-start;margin-top:12px;min-height:44px;padding:9px 16px;border:1px dashed var(--line2);background:transparent;color:var(--gold2);font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer}
.tl-row-add:hover{border-style:solid}
.tl-chart{margin:0;display:flex;flex-direction:column;gap:10px}
.tl-chart-svg{aspect-ratio:560/220;width:100%;border:1px solid var(--line);background:var(--ink)}
.tl-chart-svg svg{width:100%;height:100%;display:block}
.tl-ch-grid{stroke:rgba(255,255,255,.06);stroke-width:1}
.tl-ch-rule{stroke:var(--tl-warn,#e6b84f);stroke-width:1.2;stroke-dasharray:5 5}
.tl-ch-a{fill:none;stroke:#ecd06a;stroke-width:2.4;vector-effect:non-scaling-stroke}
.tl-ch-b{fill:none;stroke:#8fb7ff;stroke-width:2.4;stroke-dasharray:1 0;vector-effect:non-scaling-stroke}
.tl-ch-dot{fill:var(--void);stroke:#ecd06a;stroke-width:2}
.tl-ch-t{fill:var(--mid);font-family:var(--mono);font-size:11px}
.tl-legend-row{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--soft)}
.tl-key{display:inline-flex;align-items:center;gap:8px}
.tl-key::before{content:'';width:18px;height:2px;background:currentColor}
.tl-key-a::before{background:#ecd06a}
.tl-key-b::before{background:#8fb7ff}
.tl-key-c::before{background:repeating-linear-gradient(90deg,#e6b84f 0 4px,transparent 4px 8px)}

/* 5.3 marketplace / downtime - из чего складывается цена (полоса из сегментов) */
.tl-stack{margin:0;display:flex;flex-direction:column;gap:10px}
.tl-stack-k{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.tl-stack-bar{display:flex;height:14px;background:rgba(255,255,255,.05);overflow:hidden}
.tl-stack-bar i{display:block;height:100%;width:0;transition:width .45s var(--ease)}
.tl-stack-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}
.tl-stack-legend li{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--cream);padding-left:16px;position:relative}
.tl-stack-legend li::before{content:'';position:absolute;left:0;top:.45em;width:9px;height:9px;background:var(--seg)}
.tl-stack-legend b{font-family:var(--mono);font-weight:500;color:var(--bright);font-variant-numeric:tabular-nums}
.tl-seg-cost{--seg:#6f6f86}
.tl-seg-commission{--seg:#8fb7ff}
.tl-seg-logistics{--seg:#6fc9c0}
.tl-seg-returns{--seg:#c58bd6}
.tl-seg-tax{--seg:#a8a8ba}
.tl-seg-ads{--seg:#e6b84f}
.tl-seg-profit{--seg:#5fd38d}
.tl-seg-idle{--seg:#6fc9c0}
.tl-seg-leads{--seg:#8fb7ff}
.tl-seg-reputation{--seg:#c58bd6}
.tl-stack-bar .tl-seg-profit,.tl-stack-legend .tl-seg-profit{--seg:#5fd38d}
.tool-downtime .tl-seg-profit{--seg:#ff7a6b}
.tl-stack-bar i{background:var(--seg)}

/* 5.4 staffing - три варианта строками */
.tl-opts{display:flex;flex-direction:column;gap:10px}
.tl-opt{border:1px solid var(--line);background:var(--ink);padding:14px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:baseline;transition:border-color .3s}
.tl-opt[data-state="best"]{border-color:var(--gold2);box-shadow:0 0 0 1px rgba(212,180,74,.25) inset}
.tl-opt-n{font-weight:700;font-size:15px;color:var(--bright);margin:0}
.tl-opt-v{font-family:var(--serif);font-weight:800;font-size:clamp(1.1rem,1.5vw,1.3rem);color:var(--bright);font-variant-numeric:tabular-nums;text-align:right}
.tl-opt .tl-bar{grid-column:1/-1}
.tl-opt-s{grid-column:1/-1;font-size:13px;line-height:1.45;color:var(--soft);margin:0}
.tl-opt-s:empty{display:none}

/* ============================================================================
   6. АДАПТИВ И ДВИЖЕНИЕ
   ============================================================================ */
@media (min-width:1101px){
  .tl-peek{display:none}
  /* split: поля слева, результат справа и липкий - едет вместе с длинной формой */
  .tl-lay-split{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}
  .tl-lay-split>.tl-side,.tl-lay-split.tl-stick-form>.tl-form{position:sticky;top:calc(var(--nav) + 16px);align-self:start}
  .tl-lay-split.tl-stick-form>.tl-side{position:static}
  .tl-honest{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
  .tl-svc-box{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center}
  .tl-models{grid-template-columns:repeat(5,minmax(0,1fr))}
  .tl-models>.tl-model:last-child:nth-child(odd){grid-column:auto}
  /* lostleads: 4 цифры в ряд - результат не длиннее формы */
  .tool-lostleads .tl-ms:not(.tl-ms-wide){grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:640px){
  /* примеры - лентой с прокруткой пальцем, а не пятью строками кнопок */
  .tl-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(-1 * var(--pad));padding:0 var(--pad) 2px}
  .tl-chips::-webkit-scrollbar{display:none}
  .tl-chip{flex:none;white-space:nowrap}

  .tl-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}
  .tl-row>input[type=text]{grid-column:1/-1}
  .tl-row-head>span:first-child{display:none}   /* «Сервис» - поле названия идёт во всю ширину строкой выше */
  .tl-stack-legend{grid-template-columns:minmax(0,1fr)}
  .tl-svc-link{grid-template-columns:auto minmax(0,1fr)}
  .tl-svc-go{grid-column:2}
  .tl-rel{grid-template-columns:36px minmax(0,1fr)}
  .tl-rel-p{grid-column:2}
}
@media (prefers-reduced-motion:reduce){
  .tl-bar i,.tl-stack-bar i,.tl-card,.tl-card::before,.tl-verdict,.tl-model{transition:none}
}

/* ============================================================================
   7. ИНСТРУМЕНТЫ-ДИАГНОСТИКИ (агент «tools-server», 14.10.2026): префикс .tx-
   T4 independence (тест зависимости от разработчика), T7 estimate (смета за 2 минуты),
   T5 speed (скорость, Google PageSpeed), T6 tracking (проверка трекинга, наш api),
   T10 demo (живое демо ИИ-агента), brief (конструктор ТЗ). Базовые кирпичи .tl-* -
   раздел 1 выше; здесь только своё. Печать - раздел 7.9 (печатается только отчёт).
   ============================================================================ */

/* 7.1 Общее: прогресс, кольцо индекса, уровни, план, переключатели-сегменты, карточки типов */
.tx-bar{display:block;height:4px;background:rgba(255,255,255,.07);position:relative;overflow:hidden;flex:1}
.tx-bar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--gd);transition:width .45s var(--ease)}
.tx-progress{display:flex;align-items:center;gap:14px;margin:0;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.tx-progress>span:first-child{white-space:nowrap}
.tx-score{position:relative;width:132px;height:132px;flex:none;display:grid;place-items:center;--tx-c:var(--gold2)}
.tx-score[data-state="low"],.tx-score[data-state="good"]{--tx-c:var(--tl-ok,#5fd38d)}
.tx-score[data-state="medium"],.tx-score[data-state="ni"]{--tx-c:var(--tl-warn,#e6b84f)}
.tx-score[data-state="high"],.tx-score[data-state="critical"],.tx-score[data-state="poor"]{--tx-c:var(--tl-bad,#ff7a6b)}
.tx-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.tx-ring-bg{fill:none;stroke:rgba(255,255,255,.07);stroke-width:8}
.tx-ring-fg{fill:none;stroke:var(--tx-c);stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .8s var(--ease),stroke .3s}
.tx-score-v{position:relative;margin:0;display:flex;align-items:baseline;gap:2px;line-height:1}
.tx-score-v b{font-family:var(--serif);font-weight:800;font-size:2.6rem;color:var(--bright);font-variant-numeric:tabular-nums}
.tx-score-v span{font-family:var(--mono);font-size:12px;color:var(--soft)}
.tx-score-l{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);white-space:nowrap;margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.tx-level{display:flex;flex-direction:column;gap:6px;min-width:0}
.tx-level-t{font-family:var(--sans);font-weight:700;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.3;color:var(--bright);margin:0}
.tx-level-x{font-size:14.5px;line-height:1.6;color:var(--cream);margin:0}
.tx-level-x:empty{display:none}
.tx-counts,.tx-meta{font-family:var(--mono);font-size:12px;color:var(--soft);margin:0;overflow-wrap:anywhere}
.tx-plan-t{font-family:var(--sans);font-weight:700;font-size:1.05rem;color:var(--bright);margin:6px 0 0}
.tx-plan{list-style:none;counter-reset:tx;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tx-plan li{counter-increment:tx;position:relative;padding:12px 14px 12px 50px;border:1px solid var(--line);background:var(--ink);font-size:14.5px;line-height:1.55;color:var(--cream)}
.tx-plan li::before{content:counter(tx,decimal-leading-zero);position:absolute;left:14px;top:12px;font-family:var(--mono);font-size:12px;color:var(--gold2)}
.tx-plan li[data-kind="keep"]{border-style:dashed}
ul.tx-plan li{padding-left:40px}
ul.tx-plan li::before{content:'';left:16px;top:1.15em;width:8px;height:8px;border-radius:50%;background:var(--line2)}
ul.tx-plan li[data-level="bad"]::before{background:var(--tl-bad,#ff7a6b)}
ul.tx-plan li[data-level="warn"]::before{background:var(--tl-warn,#e6b84f)}
ul.tx-plan li[data-level="info"]::before{background:#8fb7ff}
.tx-tag{display:inline-block;margin-right:8px;padding:1px 7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border:1px solid currentColor;color:var(--tl-bad,#ff7a6b);vertical-align:1px}
.tx-tag-unsure{color:var(--tl-warn,#e6b84f)}
.tx-seg{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.tx-seg-row{display:flex;flex-wrap:wrap;gap:8px}
.tx-seg-opt{position:relative;display:inline-flex}
.tx-seg-opt input,.tx-type input,.tx-chk input,.tx-check input,.tx-ans-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.tx-seg-opt span{display:inline-flex;align-items:center;min-height:44px;padding:9px 15px;border:1px solid var(--line);color:var(--cream);font-size:14px;font-weight:600;line-height:1.3;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.tx-seg-opt span:hover{border-color:var(--line2)}
.tx-seg-opt input:checked+span{border-color:var(--gold2);background:rgba(212,180,74,.1);color:var(--bright)}
.tx-seg-opt input:focus-visible+span,.tx-type input:focus-visible+span,.tx-chk input:focus-visible+span,.tx-check input:focus-visible+span,.tx-ans-opt input:focus-visible+span{outline:2px solid var(--gold2);outline-offset:2px}
.tx-type-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:10px}
.tx-type{position:relative;display:flex}
.tx-type span{display:flex;flex-direction:column;gap:4px;width:100%;min-height:84px;padding:14px 14px 12px;border:1px solid var(--line);background:rgba(14,14,21,.72);cursor:pointer;transition:border-color .2s,background .2s}
.tx-type b{font-weight:700;font-size:15px;color:var(--bright);line-height:1.25}
.tx-type small{font-size:12.5px;line-height:1.4;color:var(--soft)}
.tx-type span:hover{border-color:var(--line2)}
.tx-type input:checked+span{border-color:var(--gold2);background:rgba(212,180,74,.09);box-shadow:inset 0 0 0 1px rgba(212,180,74,.25)}
.tx-types,.tx-checks{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.tx-check,.tx-chk{position:relative;display:flex}
.tx-check>span,.tx-chk>span{display:flex;flex-direction:column;gap:3px;width:100%;padding:12px 14px 12px 46px;border:1px solid var(--line);background:rgba(14,14,21,.72);cursor:pointer;min-height:48px;justify-content:center;font-size:14.5px;line-height:1.4;color:var(--cream);transition:border-color .2s,background .2s}
.tx-check b{font-weight:700;color:var(--bright)}
.tx-check small{font-size:12.5px;color:var(--soft)}
.tx-check>span::before,.tx-chk>span::before{content:'';position:absolute;left:15px;top:50%;width:18px;height:18px;margin-top:-9px;border:1px solid var(--line2);background:var(--ink)}
.tx-check input:checked+span,.tx-chk input:checked+span{border-color:var(--gold2);background:rgba(212,180,74,.07)}
.tx-check input:checked+span::before,.tx-chk input:checked+span::before{background:var(--gd);border-color:var(--gold2)}
.tx-check input:checked+span::after,.tx-chk input:checked+span::after{content:'';position:absolute;left:21px;top:50%;width:5px;height:10px;margin-top:-7px;border-right:2px solid var(--void);border-bottom:2px solid var(--void);transform:rotate(45deg)}
.tx-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:8px}
.tx-check-grid-2{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.tx-print-head{display:none}
.tx-cta{flex-direction:row;flex-wrap:wrap;align-items:center}
.tx-cta .btn-g{flex:1 1 260px;width:auto}
.tx-cta .btn-o{flex:0 1 auto}
.tx-cta .tl-cta-note{flex-basis:100%}
.tx-cta .tl-cta-note:empty{display:none}

/* 7.2 T4 independence: список вопросов и отчёт */
.tx-qs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
/* Рамка - у карточки-li, а не у fieldset: иначе legend садится на линию рамки */
.tx-q{border:1px solid var(--line);border-left:3px solid var(--line);background:rgba(14,14,21,.72);padding:16px 18px;transition:border-color .25s}
.tx-q fieldset{border:0;margin:0;padding:0;min-width:0}
.tx-q fieldset>*:not(legend){clear:both}
.tx-q[data-ans="yes"]{border-left-color:var(--tl-ok,#5fd38d)}
.tx-q[data-ans="unsure"]{border-left-color:var(--tl-warn,#e6b84f)}
.tx-q[data-ans="no"]{border-left-color:var(--tl-bad,#ff7a6b)}
.tx-q-t{float:left;width:100%;display:flex;gap:12px;font-weight:700;font-size:15.5px;line-height:1.4;color:var(--bright);padding:0;margin:0 0 6px}
.tx-q-n{font-family:var(--mono);font-weight:500;font-size:12px;color:var(--gold2);padding-top:3px;flex:none}
.tx-q-h{font-size:13px;line-height:1.5;color:var(--soft);margin:0 0 10px 32px}
.tx-ans{display:flex;flex-wrap:wrap;gap:8px;margin-left:32px}
.tx-ans-opt{position:relative;display:inline-flex}
.tx-ans-opt span{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--cream);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.tx-ans-opt span:hover{border-color:var(--line2)}
.tx-ans-yes input:checked+span{border-color:var(--tl-ok,#5fd38d);background:rgba(95,211,141,.1);color:var(--bright)}
.tx-ans-unsure input:checked+span{border-color:var(--tl-warn,#e6b84f);background:rgba(230,184,79,.1);color:var(--bright)}
.tx-ans-no input:checked+span{border-color:var(--tl-bad,#ff7a6b);background:rgba(255,122,107,.1);color:var(--bright)}
.tx-empty{display:flex;flex-direction:column;gap:10px}
.tx-empty-t{font-size:15px;line-height:1.6;color:var(--cream);margin:0}
.tx-result{display:flex;flex-direction:column;gap:18px}
.tx-result>.tx-score{margin:0 auto 26px}
.tx-offer{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:6px}
.tx-offer p{margin:0;font-size:14px;line-height:1.55;color:var(--cream)}
.tx-offer-l a{color:var(--gold2);font-weight:600}

/* 7.3 T7 estimate */
.tx-est-form{gap:20px}
.tx-est-form .tx-type-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,118px),1fr))}
.tx-est-pkg{font-family:var(--sans);font-weight:800;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.2;color:var(--bright);margin:0}
.tx-est-svc{margin:-8px 0 0;font-size:13.5px}
.tx-est-svc a{color:var(--gold2)}
.tx-est-nums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.tx-est-n{background:var(--ink);padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.tx-est-n span{font-size:12.5px;color:var(--soft)}
.tx-est-n b{font-family:var(--serif);font-weight:800;font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.25;color:var(--bright);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tx-est-n:first-child b{background:var(--gd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.tx-est-why,.tx-est-final{font-size:13.5px;line-height:1.55;color:var(--soft);margin:0}
.tx-est-final{color:var(--cream);font-weight:600}
.tx-est-sub{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);margin:0}
.tx-est-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.tx-est-lines:empty{display:none}
.tx-est-lines li{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--cream);border-bottom:1px dashed var(--line);padding-bottom:6px}
.tx-est-lines b{font-family:var(--mono);font-weight:500;color:var(--gold2);white-space:nowrap}
.tx-est-inc,.tx-est-factors ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.tx-est-inc li,.tx-est-factors li{font-size:14px;line-height:1.5;color:var(--cream);padding-left:18px;position:relative}
.tx-est-inc li::before{content:'';position:absolute;left:2px;top:.5em;width:7px;height:7px;border-right:1.5px solid var(--gold2);border-bottom:1.5px solid var(--gold2);transform:rotate(45deg)}
.tx-est-factors{display:flex;flex-direction:column;gap:8px}
.tx-est-factors li::before{content:'+';position:absolute;left:2px;top:0;font-family:var(--mono);color:var(--tl-warn,#e6b84f)}
.tx-est-launch{margin:0}
.tx-est-launch:empty{display:none}

/* 7.4 Сетевые инструменты (speed, tracking): форма адреса и состояния */
.tx-net{display:flex;flex-direction:column;gap:22px}
.tx-url-form{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line2);background:radial-gradient(ellipse at 100% 0,rgba(212,180,74,.08),rgba(212,180,74,0) 60%),var(--card);padding:clamp(16px,2.4vw,28px);position:relative}
.tx-url-form::before{content:'';position:absolute;top:-1px;left:-1px;width:28px;height:28px;border-top:1px solid var(--gold2);border-left:1px solid var(--gold2);pointer-events:none}
.tx-url-row{display:flex;gap:10px;flex-wrap:wrap}
.tx-url{flex:1 1 260px;min-width:0;min-height:52px;padding:12px 14px;background:var(--ink);border:1px solid var(--line2);color:var(--bright);font-family:var(--mono);font-size:16px}
.tx-url:focus{outline:2px solid rgba(212,180,74,.5);outline-offset:1px;border-color:var(--gold2)}
.tx-url[aria-invalid="true"]{border-color:var(--tl-bad,#ff7a6b)}
.tx-run{flex:0 0 auto;min-height:52px}
.tx-run:disabled{opacity:.6;cursor:progress}
.tx-url-note{font-size:12.5px;line-height:1.5;color:var(--soft);margin:0}
.tx-state{border:1px solid var(--line);background:rgba(14,14,21,.72);padding:clamp(16px,2.4vw,28px);display:flex;flex-direction:column;gap:16px}
.tx-intro-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px}
.tx-intro-list li{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);padding-top:12px}
.tx-intro-list b{font-weight:700;font-size:15px;color:var(--bright)}
.tx-intro-list span,.tx-intro-x{font-size:14px;line-height:1.55;color:var(--cream);margin:0}
.tx-chips-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tx-chips-list li{padding:7px 12px;border:1px solid var(--line);font-size:13.5px;color:var(--cream)}
.tx-loading{flex-direction:row;align-items:center;flex-wrap:wrap}
.tx-loading-t{margin:0;font-weight:600;color:var(--bright)}
.tx-loading-x{margin:0;flex-basis:100%;font-size:13.5px;color:var(--soft)}
.tx-spin{width:22px;height:22px;border:2px solid var(--line2);border-top-color:var(--gold2);border-radius:50%;animation:tx-spin .9s linear infinite;flex:none}
@keyframes tx-spin{to{transform:rotate(360deg)}}
.tx-error{border-color:rgba(255,122,107,.4);border-left:3px solid var(--tl-bad,#ff7a6b)}
.tx-error p{margin:0;font-size:15px;line-height:1.6;color:var(--cream)}
.tx-error a{color:var(--gold2)}
.tx-speed-top{display:flex;align-items:center;gap:clamp(18px,3vw,36px);flex-wrap:wrap;padding-bottom:20px}
.tx-speed-top .tx-level{flex:1 1 260px}
.tx-speed-top .tx-score{margin-bottom:26px}
.tx-metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:12px}
.tx-metric{border:1px solid var(--line);border-top:3px solid var(--line2);background:var(--ink);padding:14px 16px;display:flex;flex-direction:column;gap:5px;min-width:0}
.tx-metric[data-state="good"]{border-top-color:var(--tl-ok,#5fd38d)}
.tx-metric[data-state="ni"]{border-top-color:var(--tl-warn,#e6b84f)}
.tx-metric[data-state="poor"]{border-top-color:var(--tl-bad,#ff7a6b)}
.tx-metric-n{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:0}
.tx-metric-n small{text-transform:none;letter-spacing:0;color:var(--gold2)}
.tx-metric-v{font-family:var(--serif);font-weight:800;font-size:1.6rem;line-height:1.1;color:var(--bright);font-variant-numeric:tabular-nums}
.tx-metric-r{font-size:12.5px;font-weight:700;margin:0;color:var(--soft)}
.tx-metric[data-state="good"] .tx-metric-r{color:var(--tl-ok,#5fd38d)}
.tx-metric[data-state="ni"] .tx-metric-r{color:var(--tl-warn,#e6b84f)}
.tx-metric[data-state="poor"] .tx-metric-r{color:var(--tl-bad,#ff7a6b)}
.tx-metric-x,.tx-metric-s{font-size:13.5px;line-height:1.5;color:var(--cream);margin:0}
.tx-metric-s{color:var(--soft)}
.tx-opps{display:flex;flex-direction:column;gap:10px}
.tx-opp-v{font-family:var(--mono);font-size:12px;color:var(--gold2);margin-left:6px}
.tx-proof{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px}
.tx-proof ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}
.tx-proof li{font-size:14px;color:var(--cream)}
.tx-proof b{font-family:var(--serif);font-weight:800;color:var(--gold2);margin-right:4px}

/* 7.5 T6 tracking: таблица систем */
.tx-sys{display:flex;flex-direction:column;border:1px solid var(--line)}
.tx-sys-row{display:grid;grid-template-columns:minmax(0,1fr) 128px minmax(0,1.2fr);gap:6px 16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--ink)}
.tx-sys-row:last-child{border-bottom:0}
.tx-sys-n{font-weight:700;font-size:14.5px;color:var(--bright)}
.tx-sys-s{justify-self:start;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--line2);color:var(--soft);white-space:nowrap}
.tx-sys-row[data-state="found"] .tx-sys-s{color:var(--tl-ok,#5fd38d);border-color:rgba(95,211,141,.45)}
.tx-sys-id{font-family:var(--mono);font-size:12.5px;color:var(--cream);overflow-wrap:anywhere}
.tx-limits{margin:0}

/* 7.6 T10 demo: вкладки ниш, чат, боковая колонка */
.tx-demo-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tx-demo-tab{display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px 16px;border:1px solid var(--line);background:rgba(14,14,21,.72);color:var(--cream);cursor:pointer;min-height:64px;transition:border-color .2s,background .2s}
.tx-demo-tab b{font-size:15px;color:var(--bright)}
.tx-demo-tab small{font-size:12.5px;line-height:1.4;color:var(--soft)}
.tx-demo-tab[aria-selected="true"]{border-color:var(--gold2);background:rgba(212,180,74,.09)}
.tx-demo-tab:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.tx-demo-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(18px,2.6vw,32px);align-items:start}
.tx-demo-chat{border:1px solid var(--line2);background:var(--card);display:flex;flex-direction:column;min-width:0}
.tx-demo-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 16px;border-bottom:1px solid var(--line)}
.tx-badge{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--void);background:var(--gd);padding:4px 8px;white-space:nowrap}
.tx-demo-biz{margin:0;font-weight:600;font-size:14px;color:var(--bright);flex:1 1 200px}
.tx-demo-left{margin:0;font-family:var(--mono);font-size:11.5px;color:var(--soft)}
.tx-demo-log{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:280px;max-height:min(56vh,520px);overflow-y:auto;overscroll-behavior:contain}
.tx-msg{max-width:85%;padding:10px 14px;font-size:14.5px;line-height:1.55;overflow-wrap:anywhere}
.tx-msg-assistant{align-self:flex-start;background:var(--ink);border:1px solid var(--line);color:var(--cream)}
.tx-msg-user{align-self:flex-end;background:rgba(212,180,74,.12);border:1px solid var(--line2);color:var(--bright)}
.tx-msg-note{align-self:stretch;max-width:none;background:transparent;border:1px dashed var(--line2);color:var(--soft);font-size:13px}
.tx-msg-sample{opacity:.85}
.tx-msg-typing{color:var(--soft);font-style:italic}
.tx-demo-sugs{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 12px}
.tx-demo-sugs:empty{display:none}
.tx-sug{min-height:40px;padding:8px 12px;border:1px solid var(--line2);background:transparent;color:var(--cream);font-family:var(--sans);font-size:13.5px;cursor:pointer;text-align:left}
.tx-sug:hover{border-color:var(--gold2);color:var(--bright)}
.tx-sug:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.tx-demo-form{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}
.tx-demo-input{flex:1;min-width:0;min-height:48px;max-height:120px;resize:none;padding:12px;background:var(--ink);border:1px solid var(--line2);color:var(--bright);font-family:var(--sans);font-size:16px;line-height:1.4}
.tx-demo-input:focus{outline:2px solid rgba(212,180,74,.5);outline-offset:1px}
.tx-demo-input:disabled{opacity:.5}
.tx-demo-send{flex:none}
.tx-demo-send:disabled{opacity:.55;cursor:not-allowed}
.tx-demo-note{margin:0;padding:0 16px 14px;font-size:12px;line-height:1.5;color:var(--soft)}
.tx-demo-side{border:1px solid var(--line);background:rgba(14,14,21,.72);padding:clamp(16px,2.4vw,26px);display:flex;flex-direction:column;gap:14px}
.tx-demo-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.tx-demo-points li{position:relative;padding-left:20px;font-size:14px;line-height:1.55;color:var(--cream)}
.tx-demo-points li::before{content:'';position:absolute;left:2px;top:.55em;width:7px;height:7px;background:var(--gold2);transform:rotate(45deg)}
.tx-demo-price{margin:0;font-size:14px;color:var(--soft)}
.tx-demo-price a{color:var(--gold2);font-weight:600}
.tx-demo-side .tx-cta .btn-g{flex-basis:100%}

/* 7.7 Конструктор ТЗ (brief): шаги мастера, поля, готовый бриф */
.tx-brief{gap:20px}
.tx-steps{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:12px;color:var(--soft)}
.tx-step{display:flex;flex-direction:column;gap:16px;border:1px solid var(--line);background:rgba(14,14,21,.72);padding:clamp(18px,2.6vw,32px)}
.tx-step[data-step-i="12"]{border:0;background:none;padding:0}
.tx-step-t{font-family:var(--sans);font-weight:800;font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.2;letter-spacing:-.01em;color:var(--bright);margin:0}
.tx-step-t:focus{outline:none}
.tx-step-x{font-size:14.5px;line-height:1.6;color:var(--soft);margin:0;max-width:70ch}
.tx-step-err{margin:0;color:var(--tl-bad,#ff7a6b);font-size:14px;font-weight:600}
.tx-tf{display:flex;flex-direction:column;gap:6px}
.tx-text{width:100%;min-height:48px;padding:12px 14px;background:var(--ink);border:1px solid var(--line2);color:var(--bright);font-family:var(--sans);font-size:16px;line-height:1.5}
textarea.tx-text{resize:vertical;min-height:84px}
.tx-text:focus{outline:2px solid rgba(212,180,74,.5);outline-offset:1px;border-color:var(--gold2)}
.tx-text::placeholder,.tx-url::placeholder,.tx-demo-input::placeholder{color:var(--mid)}
/* 8 типов: ровная сетка 4 × 2 (на телефоне 2 × 4) - без «сирот» в последнем ряду */
.tx-type-row-8{grid-template-columns:repeat(4,minmax(0,1fr))}
.tx-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.tx-nav .tx-next{flex:0 1 240px}
.tx-nav .tx-skip{margin-left:auto}
.tx-brief[data-step="12"] .tx-nav .tx-prev{order:-1}
.tx-brief-doc{display:flex;flex-direction:column;gap:2px}
.tx-doc-sec{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:4px 20px;padding:12px 0;border-bottom:1px solid var(--line)}
.tx-doc-sec h3{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold2);margin:2px 0 0}
.tx-doc-lines{display:flex;flex-direction:column;gap:4px;min-width:0}
.tx-doc-sec p{margin:0;font-size:14.5px;line-height:1.55;color:var(--cream);overflow-wrap:anywhere}
.tx-doc-url{font-family:var(--mono);font-size:13px;color:var(--soft)}
.tx-brief-send-note{font-size:13px}

/* 7.8 Адаптив и движение */
@media (min-width:1101px){
  .tx-demo-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
  .tx-demo-side{position:sticky;top:calc(var(--nav) + 16px)}
}
@media (max-width:640px){
  .tx-ans,.tx-q-h{margin-left:0}
  .tx-demo-tabs{gap:6px}
  .tx-demo-tab{min-height:48px;padding:10px;justify-content:center;text-align:center}
  .tx-demo-tab b{font-size:13.5px;line-height:1.25}
  .tx-demo-tab small{display:none}
  .tx-demo-input::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tx-msg{max-width:92%}
  .tx-demo-log{min-height:240px}
  .tx-sys-row{grid-template-columns:minmax(0,1fr) auto}
  .tx-est-form .tx-type-row,.tx-type-row-8{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tx-est-form .tx-type:last-child{grid-column:1/-1}
  .tx-est-form .tx-type span{min-height:0}
  .tx-sys-id{grid-column:1/-1}
  .tx-doc-sec{grid-template-columns:minmax(0,1fr)}
  .tx-run{width:100%}
  .tx-nav .tx-next,.tx-nav .tx-prev{flex:1 1 40%}
  .tx-nav .tx-skip{margin-left:0;flex-basis:100%}
  .tx-cta .btn-o{flex:1 1 100%}
  .tx-est-nums{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
  .tx-bar i,.tx-ring-fg,.tx-q{transition:none}
  .tx-spin{animation-duration:2.4s}
}

/* 7.9 Печать / сохранение в PDF: кнопка «Скачать PDF» ставит html.tx-printing и
   .tx-print-target на отчёт - на бумагу идёт только он, светлым, без шапки, чата и баннеров:
   всё, что не отчёт и не его предок, скрывается (:has), предки теряют свою раскладку
   (sticky, сетки, отступы), чтобы отчёт начинался с первой страницы.
   Без кнопки (Ctrl+P) страница печатается как обычно. */
@media print{
  html.tx-printing body *:not(:has(.tx-print-target)):not(.tx-print-target):not(.tx-print-target *){display:none!important}
  html.tx-printing body,html.tx-printing body *:has(.tx-print-target){display:block!important;position:static!important;margin:0!important;padding:0!important;border:0!important;background:#fff!important;box-shadow:none!important;transform:none!important;min-height:0!important;max-width:none!important;width:auto!important}
  html.tx-printing .tx-print-target{position:static!important;border:0!important;background:#fff!important;padding:0!important;box-shadow:none!important;gap:12px!important}
  html.tx-printing .tx-print-target::before{display:none!important}
  html.tx-printing .tx-print-target *{color:#111!important;background:transparent!important;-webkit-text-fill-color:#111!important;box-shadow:none!important;border-color:#bbb!important}
  html.tx-printing .tx-print-head{display:block!important;font:12px/1.4 var(--mono);margin:0 0 12px}
  html.tx-printing .tx-print-target .tx-cta,html.tx-printing .tx-print-target .tl-reset,html.tx-printing .tx-print-target [hidden]{display:none!important}
  html.tx-printing .tx-ring-fg{stroke:#111!important}
  html.tx-printing .tx-ring-bg{stroke:#ddd!important}
  html.tx-printing .tx-plan li,html.tx-printing .tx-doc-sec,html.tx-printing .tx-est-n{break-inside:avoid}
}

/* ============================================================================
   8. ПРОТОТИПЫ funnel / factory / cabinet (14.10.2026, ждут одобрения владельца)
   Партиалы templates/tools/_funnel.html, _factory.html, _cabinet.html.
   Префиксы: fn- (воронка), fc- (производство), cab- (демо-кабинет).
   ============================================================================ */

/* 8.0 общий ползунок (воронка и производство) */
.fn-range{-webkit-appearance:none;appearance:none;width:100%;min-width:0;height:44px;background:transparent;cursor:pointer;margin:0}
.fn-range::-webkit-slider-runnable-track{height:4px;background:linear-gradient(90deg,var(--gold3),rgba(255,255,255,.1));border-radius:2px}
.fn-range::-moz-range-track{height:4px;background:rgba(255,255,255,.1);border-radius:2px}
.fn-range::-moz-range-progress{height:4px;background:var(--gold3)}
.fn-range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;background:var(--gd);border:2px solid var(--void);box-shadow:0 0 0 1px var(--gold2)}
.fn-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--gold2);border:2px solid var(--void);box-shadow:0 0 0 1px var(--gold2)}
.fn-range:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.fn-num{width:96px;flex:none}
.fn-num input{padding-right:4px;text-align:right}
.fn-note{font-size:12.5px;line-height:1.5;color:var(--soft);margin:0}

/* 8.1 funnel - строки шагов */
.fn-steps{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;counter-reset:none}
.fn-step{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1.25fr) 44px;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);background:var(--ink);position:relative}
.fn-step::after{content:'';position:absolute;left:28px;bottom:-11px;width:1px;height:10px;background:var(--line2)}
.fn-step:last-child::after{display:none}
.fn-step-first{grid-template-columns:34px minmax(0,1fr) minmax(0,1.25fr) 44px;border-color:var(--line2)}
.fn-step-n{font-family:var(--mono);font-size:12px;color:var(--gold2);text-align:center}
.fn-name{background:var(--card);border:1px solid var(--line2);color:var(--bright);font-family:var(--sans);font-size:15px;font-weight:600;padding:10px 12px;min-height:46px;width:100%;min-width:0}
.fn-name:focus{outline:2px solid rgba(212,180,74,.5);outline-offset:1px;border-color:var(--gold2)}
.fn-first{grid-column:3/5;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.fn-rate{display:flex;align-items:center;gap:10px;min-width:0}
.fn-step .tl-row-del:disabled,.tl-row-add:disabled{opacity:.35;cursor:not-allowed}

/* 8.1 funnel - живая воронка */
.fn-viz{margin:0;display:flex;flex-direction:column;gap:10px}
.fn-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fn-bar{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
.fn-bar-l{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px;color:var(--cream)}
.fn-bar-l b{font-weight:600;color:var(--bright)}
.fn-bar-track{position:relative;display:block;height:30px;background:rgba(255,255,255,.035)}
.fn-bar-track i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,rgba(212,180,74,.55),rgba(212,180,74,.18));border-left:2px solid var(--gold2);transition:width .45s var(--ease)}
.fn-bar.is-top .fn-bar-track i{background:linear-gradient(90deg,rgba(255,122,107,.6),rgba(255,122,107,.18));border-left-color:var(--tl-bad)}
.fn-bar-v{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:13px;color:var(--bright);font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.fn-bar-c{font-family:var(--mono);font-size:11.5px;color:var(--soft)}
.fn-flag{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--void);background:var(--tl-bad);padding:2px 6px}

/* 8.1 funnel - чувствительность */
.fn-sens{display:flex;flex-direction:column;gap:8px;border-color:var(--line2);background:radial-gradient(ellipse at 0 0,rgba(212,180,74,.07),rgba(212,180,74,0) 60%),rgba(14,14,21,.72)}
.fn-sens-t{font-family:var(--sans);font-weight:700;font-size:clamp(1.02rem,1.3vw,1.15rem);line-height:1.3;letter-spacing:-.01em;color:var(--bright);margin:0}
.fn-rank{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.fn-r{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:4px 10px;align-items:baseline;padding:10px 12px;border:1px solid var(--line);background:var(--ink)}
.fn-r.is-top{border-color:var(--gold2);box-shadow:0 0 0 1px rgba(212,180,74,.25) inset;background:rgba(212,180,74,.06)}
.fn-r-n{font-family:var(--mono);font-size:12px;color:var(--gold2)}
.fn-r-t{font-size:14px;line-height:1.4;color:var(--cream);min-width:0;overflow-wrap:anywhere}
.fn-r-t i{font-style:normal;color:var(--gold2)}
.fn-r-t small{font-family:var(--mono);font-size:11.5px;color:var(--soft);margin-left:4px}
.fn-r-v{font-family:var(--serif);font-weight:800;font-size:1.05rem;color:var(--bright);font-variant-numeric:tabular-nums;white-space:nowrap}
.fn-r-v small{font-family:var(--sans);font-weight:500;font-size:12px;color:var(--soft);margin-left:2px}
.fn-r.is-top .fn-r-v{background:var(--gd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.fn-r-bar{grid-column:2/-1}
.fn-cmp{font-size:13px;line-height:1.5;color:var(--soft);margin:0}
.fn-cmp:empty{display:none}

/* 8.2 factory */
.fc-red-row{display:flex;align-items:center;gap:14px}
.fc-loss{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid rgba(255,122,107,.35);background:linear-gradient(135deg,rgba(255,122,107,.09),rgba(255,122,107,0) 70%),var(--ink)}
.fc-loss-v{font-family:var(--serif);font-weight:800;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.1;letter-spacing:-.02em;color:var(--bright);font-variant-numeric:tabular-nums}
.fc-seg-manual{--seg:#8fb7ff}
.fc-seg-stock{--seg:#6fc9c0}
.fc-seg-errors{--seg:#e6b84f}
.fc-seg-downtime{--seg:#ff7a6b}
.fc-stack .tl-stack-bar i{background:var(--seg)}
.fc-m-wide{grid-column:1/-1}
.fc-m-first{order:-1}
.fc-links{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;border-top:1px solid var(--line);padding-top:16px}
.fc-proof,.fc-svc{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--line);background:var(--ink);text-decoration:none;color:inherit;min-height:56px;transition:border-color .25s,background .25s}
.fc-proof:hover,.fc-svc:hover,.fc-proof:focus-visible,.fc-svc:focus-visible{border-color:var(--gold2);background:rgba(212,180,74,.06)}
.fc-proof:focus-visible,.fc-svc:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.fc-proof-k{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold2)}
.fc-proof-n{font-family:var(--serif);font-weight:800;font-size:1.5rem;color:var(--bright);font-variant-numeric:tabular-nums}
.fc-proof-l{font-size:13.5px;line-height:1.45;color:var(--cream)}
.fc-svc{flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}
.fc-svc span:first-child{font-weight:600;font-size:14.5px;color:var(--bright);flex:1 1 200px}
.fc-svc small{font-family:var(--mono);font-size:12px;color:var(--soft)}
.fc-go{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold2)}
.fc-svc .fc-go{margin-left:auto}

/* 8.3 cabinet - окно кабинета */
.cab{display:flex;flex-direction:column;gap:clamp(18px,2.4vw,28px)}
.cab-win{border:1px solid var(--line2);background:radial-gradient(ellipse at 100% 0,rgba(212,180,74,.07),rgba(212,180,74,0) 55%),var(--card);position:relative;min-width:0}
.cab-win::before{content:'';position:absolute;top:-1px;left:-1px;width:28px;height:28px;border-top:1px solid var(--gold2);border-left:1px solid var(--gold2);pointer-events:none}
.cab-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px clamp(14px,2vw,22px);border-bottom:1px solid var(--line);background:rgba(6,6,8,.55)}
.cab-dots{display:inline-flex;gap:6px}
.cab-dots i{width:9px;height:9px;border-radius:50%;background:var(--dim);display:block}
.cab-dots i:first-child{background:var(--gold3)}
.cab-bar-t{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.cab-badge{margin-left:auto;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--void);background:var(--gd);padding:5px 10px}
.cab-head{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding:clamp(16px,2.2vw,26px);border-bottom:1px solid var(--line)}
.cab-proj{display:flex;flex-direction:column;gap:4px}
.cab-proj-k,.cab-stage-k,.cab-sub{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold2);margin:0}
.cab-proj-t{font-family:var(--sans);font-weight:700;font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.3;color:var(--bright);margin:0}
.cab-proj-s{font-size:14px;color:var(--soft);margin:0}
.cab-stage{display:flex;flex-direction:column;gap:10px;min-width:0}
.cab-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cab-st{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:3px solid var(--dim);min-width:0}
.cab-st.is-done{border-top-color:var(--gold3)}
.cab-st.is-now{border-top-color:var(--gold2)}
.cab-st-n{font-family:var(--mono);font-size:11.5px;color:var(--mid)}
.cab-st.is-done .cab-st-n,.cab-st.is-now .cab-st-n{color:var(--gold2)}
.cab-st-t{font-size:12.5px;line-height:1.35;color:var(--soft);overflow-wrap:anywhere}
.cab-st.is-now .cab-st-t{color:var(--bright);font-weight:600}

/* вкладки + панели */
.cab-body{display:grid;grid-template-columns:minmax(0,1fr);min-width:0}
.cab-tabs{display:flex;gap:4px;overflow-x:auto;padding:10px clamp(10px,2vw,16px);border-bottom:1px solid var(--line);scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.cab-tab{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid transparent;background:transparent;color:var(--soft);font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;text-align:left;white-space:nowrap;transition:color .2s,background .2s,border-color .2s}
.cab-tab:hover{color:var(--bright)}
.cab-tab[aria-selected="true"]{color:var(--bright);border-color:var(--line2);background:rgba(212,180,74,.09)}
.cab-tab:focus-visible{outline:2px solid var(--gold2);outline-offset:-2px}
.cab-tab-n{font-family:var(--mono);font-size:11px;color:var(--gold2)}
.cab-nav{min-width:0}
.cab-panels{min-width:0}
.cab-side{display:none;margin:auto 0 0;padding:16px 4px 4px;border-top:1px solid var(--line);flex-direction:column;gap:12px}
.cab-side div{display:flex;flex-direction:column;gap:2px}
.cab-side dt{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.cab-side dd{margin:0;font-size:14px;font-weight:600;color:var(--bright)}
.cab-p{padding:clamp(16px,2.4vw,28px);display:flex;flex-direction:column;gap:18px;min-width:0}
.cab-p:focus-visible{outline:2px solid var(--gold2);outline-offset:-2px}
.cab:not(.is-live) .cab-p+.cab-p{border-top:1px solid var(--line)}
.cab-p-h{display:flex;flex-direction:column;gap:6px}
.cab-p-t{font-family:var(--sans);font-weight:700;font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.25;color:var(--bright);margin:0}
.cab-p-n{font-size:14.5px;line-height:1.55;color:var(--cream);margin:0;max-width:72ch}
.cab-row{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}

/* отчёт */
.cab-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cab-kpi{background:var(--ink);padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cab-kpi-l{font-size:12.5px;color:var(--soft)}
.cab-kpi-v{font-family:var(--serif);font-weight:800;font-size:clamp(1.3rem,2vw,1.7rem);letter-spacing:-.01em;color:var(--bright);font-variant-numeric:tabular-nums}
.cab-gold{background:var(--gd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.cab-kpi-d{font-size:12px;color:var(--soft)}
.cab-d{font-family:var(--mono);font-weight:600;color:var(--cream)}
.cab-d.is-good{color:var(--tl-ok)}
.cab-d.is-bad{color:var(--tl-bad)}
.cab-chart{margin:0;border:1px solid var(--line);background:var(--ink);padding:14px 14px 12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.cab-chart svg{width:100%;height:auto;display:block}
.cab-ch-grid{stroke:rgba(255,255,255,.06);stroke-width:1}
.cab-ch-t{fill:var(--mid);font-family:var(--mono);font-size:11px}
.cab-ch-bar{fill:rgba(143,183,255,.35)}
.cab-ch-bar.is-now{fill:rgba(143,183,255,.7)}
.cab-ch-line{fill:none;stroke:#ecd06a;stroke-width:2.4;stroke-linejoin:round}
.cab-ch-dot{fill:var(--void);stroke:#ecd06a;stroke-width:2}
.cab-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--soft)}
.cab-key{display:inline-flex;align-items:center;gap:8px}
.cab-key::before{content:'';width:16px;height:3px;background:#ecd06a}
.cab-key-sp::before{height:10px;width:10px;background:rgba(143,183,255,.7)}
.cab-note{border-left:3px solid var(--gold2);background:rgba(212,180,74,.05);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.cab-note-t{font-size:14.5px;line-height:1.6;color:var(--cream);margin:0}

/* задачи */
.cab-board{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.cab-col{border:1px solid var(--line);background:rgba(6,6,8,.4);padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.cab-col-t{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);margin:0}
.cab-col-t span{font-size:11.5px;color:var(--bright);background:var(--dim);padding:2px 8px}
.cab-col-doing .cab-col-t{color:var(--gold2)}
.cab-col-done .cab-col-t{color:var(--tl-ok)}
.cab-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cab-card{border:1px solid var(--line);background:var(--card);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.cab-card.is-you{border-color:var(--line2);box-shadow:inset 3px 0 0 var(--gold2)}
.cab-card-t{font-size:14.5px;line-height:1.4;font-weight:600;color:var(--bright);margin:0}
.cab-col-done .cab-card-t{color:var(--cream)}
.cab-card-m{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0;font-size:12.5px}
.cab-who{color:var(--gold2);font-weight:600}
.cab-due{font-family:var(--mono);color:var(--soft)}

/* демо */
.cab-video{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0}
.cab-poster{position:relative;aspect-ratio:16/9;border:1px solid var(--line2);overflow:hidden;background:radial-gradient(ellipse at 30% 20%,rgba(236,208,106,.18),rgba(236,208,106,0) 55%),linear-gradient(160deg,#1a1a24 0%,#0b0b10 60%,#14110a 100%)}
.cab-poster::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.025) 0 2px,transparent 2px 14px)}
.cab-poster-w{position:absolute;top:12px;left:12px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold2);border:1px solid var(--line2);padding:4px 8px;background:rgba(6,6,8,.6);z-index:1}
.cab-poster-g{position:absolute;inset:auto 16px 16px 16px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;z-index:1}
.cab-poster-g i{height:34px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035)}
.cab-poster-g i:nth-child(2){height:48px;background:rgba(212,180,74,.12)}
.cab-poster-g i:nth-child(4){height:24px}
.cab-play{position:absolute;left:50%;top:0;transform:translate(-50%,0);margin-top:calc(28.125% - 30px);display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:10px 20px 10px 14px;border:1px solid var(--gold2);background:rgba(6,6,8,.82);color:var(--bright);font-family:var(--sans);font-size:14.5px;font-weight:700;cursor:pointer;transition:background .25s;z-index:2;white-space:nowrap}
.cab-play svg{width:26px;height:26px;color:var(--gold2)}
.cab-play:hover{background:rgba(212,180,74,.16)}
.cab-play:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
.cab-video-m{font-family:var(--mono);font-size:12px;color:var(--soft);margin:0}
.cab-play-note{display:none;font-size:13.5px;line-height:1.5;color:var(--cream);margin:0;border-left:3px solid var(--tl-warn);padding:8px 12px;background:rgba(230,184,79,.07)}
.cab-play-note.is-on{display:block}
.cab-demo-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.cab-chapters,.cab-decisions{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:6px}
.cab-chapters li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;font-size:14px;line-height:1.45;color:var(--cream);padding:8px 0;border-bottom:1px solid var(--line)}
.cab-chapters li span{font-family:var(--mono);font-size:12.5px;color:var(--gold2)}
.cab-decisions li{font-size:14px;line-height:1.5;color:var(--cream);padding-left:20px;position:relative}
.cab-decisions li::before{content:'';position:absolute;left:2px;top:.4em;width:9px;height:5px;border-left:1.5px solid var(--tl-ok);border-bottom:1.5px solid var(--tl-ok);transform:rotate(-45deg)}

/* доступы */
.cab-acc{display:flex;flex-direction:column;border:1px solid var(--line)}
.cab-acc-r{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:12px 14px;border-top:1px solid var(--line);background:var(--ink)}
.cab-acc-r:first-child{border-top:0}
.cab-acc-head{display:none}
.cab-acc-n{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.cab-acc-n b{font-weight:700;font-size:15px;color:var(--bright)}
.cab-own{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--tl-ok);border:1px solid rgba(95,211,141,.35);padding:2px 6px}
.cab-acc-y{font-size:13.5px;line-height:1.45;color:var(--cream)}
.cab-acc-u{font-size:13px;line-height:1.45;color:var(--soft)}
.cab-hand{border:1px solid var(--line2);background:rgba(212,180,74,.05);padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.cab-hand p:last-child{font-size:14.5px;line-height:1.55;color:var(--cream);margin:0}

/* документы */
.cab-docs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.cab-doc{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);background:var(--ink)}
.cab-doc-ic{color:var(--gold2);display:inline-flex}
.cab-doc-ic svg{width:28px;height:28px}
.cab-doc-b{display:flex;flex-direction:column;gap:3px;min-width:0}
.cab-doc-b b{font-weight:700;font-size:15px;color:var(--bright)}
.cab-doc-b span{font-size:13.5px;line-height:1.45;color:var(--soft)}
.cab-pill{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;white-space:nowrap;border:1px solid}
.cab-pill-ok{color:var(--tl-ok);border-color:rgba(95,211,141,.35)}
.cab-pill-wip{color:var(--tl-warn);border-color:rgba(230,184,79,.4)}

/* призыв под кабинетом */
.cab-cta{display:flex;flex-direction:column;gap:16px;align-items:flex-start;border:1px solid var(--line2);background:radial-gradient(ellipse at 0 0,rgba(212,180,74,.08),rgba(212,180,74,0) 55%),var(--card);padding:clamp(18px,2.4vw,28px)}
.cab-cta-text{font-size:15.5px;line-height:1.6;color:var(--cream);margin:6px 0 0;max-width:60ch}
.cab-cta .btn-g{width:100%}

/* 8.4 адаптив */
@media (min-width:641px){
  .cab-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cab-acc-r{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:center}
  .cab-acc-head{display:grid;background:transparent;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);padding:10px 14px}
  .cab-docs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cab-cta{flex-direction:row;align-items:center;justify-content:space-between}
  .cab-cta .btn-g{width:auto;flex:none}
}
@media (min-width:900px){
  .cab-head{grid-template-columns:minmax(0,.8fr) minmax(0,2fr);align-items:end}
  .cab-board{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cab-row{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}
}
@media (min-width:1101px){
  .cab-body{grid-template-columns:220px minmax(0,1fr)}
  .cab-nav{display:flex;flex-direction:column;border-right:1px solid var(--line);padding:16px 12px}
  .cab-tabs{flex-direction:column;overflow:visible;border-bottom:0;padding:0}
  .cab-tab{white-space:normal;width:100%}
  .cab-side{display:flex}
}
@media (max-width:640px){
  .fn-step,.fn-step-first{grid-template-columns:28px minmax(0,1fr) 44px;padding:10px}
  .fn-step .fn-rate{grid-column:1/-1;order:3}
  .fn-step .tl-row-del{grid-column:3;grid-row:1}
  .fn-first{grid-column:3}
  .fn-step::after{left:23px}
  .cab-steps{grid-template-columns:repeat(7,minmax(0,1fr))}
  .cab-st-t{display:none}
  .cab-st.is-now .cab-st-t{display:block;position:static;white-space:nowrap}
  .cab-steps{position:relative;padding-bottom:22px}
  .cab-st.is-now{position:static}
  .cab-st.is-now .cab-st-t{position:absolute;left:0;bottom:0}
  .cab-doc{grid-template-columns:32px minmax(0,1fr)}
  .cab-ch-t{font-size:19px}
  .cab-pill{grid-column:2;justify-self:start}
  .cab-play{font-size:13.5px;padding:8px 14px 8px 10px;min-height:44px;margin-top:calc(28.125% - 26px)}
}
@media (prefers-reduced-motion:reduce){
  .fn-bar-track i,.cab-tab,.cab-play,.fc-proof,.fc-svc{transition:none}
}

/* --------------------------------------------------------------------------
   polish3 14.10.2026 (визуальный контроль, make tools-gaps): «Скорость сайта» -
   четыре пояснения (Score, LCP, INP, CLS) при auto-fill на 1440px вставали в 5 колонок
   с пустой пятой ячейкой. Теперь 1 / 2 / 4 колонки по ширине самого блока - без хвоста.
   -------------------------------------------------------------------------- */
.tx-intro{container-type:inline-size}
.tx-intro-list{grid-template-columns:minmax(0,1fr)}
@container (min-width:480px){.tx-intro-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:960px){.tx-intro-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
