/* Портал развития СК Компакт.
   Оформление то же, что в Реестр.html и Источники.html: лист чертежа, основная надпись,
   моноширинные подписи полей. Ничего лишнего на экране. */

:root{
  --paper:#EFF1F4; --panel:#fff; --ink:#141821; --ink2:#5A6474; --ink3:#8A94A3;
  --rule:#CBD2DB; --rule2:#E3E8EE;
  --blue:#12407F; --blue-soft:#E4EBF6; --blue-mid:#7C97C4;
  --mark:#F0B429; --mark-soft:#FDF3DC; --mark-ink:#8A6A12;
  --gone:#9AA3AF; --alert:#9E2B1E; --alert-soft:#FBECEA; --ok:#1B6B4C; --ok-soft:#EAF3EE;
  --disp:"Avenir Next","Helvetica Neue",-apple-system,sans-serif;
  --body:"Helvetica Neue",-apple-system,"Segoe UI",sans-serif;
  --mono:"Menlo","SF Mono",ui-monospace,monospace;
  --sp:clamp(16px,2.4vw,30px);
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);font:15px/1.5 var(--body);-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
.mono{font-family:var(--mono)}
.eyebrow{font:600 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink3)}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:2px}
.muted{color:var(--ink3)}
.dim{color:var(--ink2)}
.sm{font-size:12.5px;color:var(--ink2)}
.cnt{font:600 11px/1 var(--mono);color:var(--ink3);letter-spacing:.06em}
.nowrap{white-space:nowrap}
.right{text-align:right}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
/* «21,8 млрд ₽» — одно число, а не две строки: сумму и единицу не разрывать */
td.num{white-space:nowrap}

/* ─── основная надпись ─── */
/* Портал работает во весь экран: ширину держат поля var(--sp), а не жёсткий предел.
   Тексты для чтения ограничены своей шириной сами (.lead, .doc). */
.stamp{background:var(--panel);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:30}
.stamp-in{margin:0 auto;padding:0 var(--sp);display:flex;align-items:stretch;flex-wrap:wrap}
.sf{padding:11px 20px 10px 0;margin-right:20px;border-right:1px solid var(--rule2);
  display:flex;flex-direction:column;justify-content:center;gap:3px}
.sf:last-child{border-right:0;margin-right:0;padding-right:0}
.sf b{font:600 13px/1.2 var(--disp);letter-spacing:-.01em}
.sf .v{font:500 13px/1.2 var(--mono);color:var(--ink);white-space:nowrap}
.sf .l{font:600 9px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}
.sf--grow{flex:1;border-right:0}
.stamp form{display:inline}
.linkbtn{border:0;background:none;padding:0;font:600 9px/1 var(--mono);letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink3);cursor:pointer}
.linkbtn:hover{color:var(--alert)}

/* ─── вкладки ───
   Три зоны, разделённые воздухом, без линий и подписей:
   слева ежедневная работа (сводка, заказчики, объекты, источники, учебник),
   справа наблюдение (календарь, конкуренты — мониторим, не разрабатываем),
   за ним служебные вкладки руководства — приглушены, чтобы не спорили с работой. */
.tabs{margin:0 auto;padding:0 var(--sp);display:flex;gap:2px;flex-wrap:wrap}
.tg{display:flex;gap:2px;flex-wrap:wrap}
.tg-watch{margin-left:auto}
.tg-svc{margin-left:16px}
.tg-svc .tab{background:transparent;border-color:var(--rule2);color:var(--ink3)}
.tg-svc .tab:hover{color:var(--ink)}
.tg-svc .tab.on{background:var(--panel);border-color:var(--rule);color:var(--ink)}
.tab{border:1px solid var(--rule);border-bottom:0;background:#E6E9ED;color:var(--ink2);
  padding:9px 15px 8px;font:600 12px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;
  cursor:pointer;border-radius:3px 3px 0 0;margin-top:14px;text-decoration:none;display:inline-block}
.tab:hover{color:var(--ink)}
.tab.on{background:var(--panel);color:var(--ink);margin-top:10px;padding-bottom:9px}
.tab .n{color:var(--ink3);margin-left:6px;font-weight:500}
.tab.on .n{color:var(--blue)}

main{margin:0 auto;padding:0 var(--sp) 70px}
/* Широкая таблица (календарь) прокручивается внутри панели — страница вбок не ездит. */
.panel{background:var(--panel);border:1px solid var(--rule);border-radius:0 3px 3px 3px;
  padding:var(--sp);overflow-x:auto}
.panel + .panel{margin-top:14px;border-radius:3px}
h1{margin:0 0 4px;font:600 20px/1.25 var(--disp);letter-spacing:-.02em}
h2{font:600 15px/1.3 var(--disp);letter-spacing:-.015em;margin:26px 0 10px;
  padding-top:16px;border-top:1px solid var(--rule2)}
h2:first-child{margin-top:0;padding-top:0;border-top:0}
h3{font:600 13px/1.3 var(--disp);margin:18px 0 8px}
.lead{font:13px/1.55 var(--body);color:var(--ink2);max-width:78ch;margin:0 0 16px}

/* ─── сообщения ─── */
.flash{margin:14px 0 0;padding:10px 13px;font-size:13.5px;border-left:2px solid var(--ok);
  background:var(--ok-soft)}
.flash.bad{border-left-color:var(--alert);background:var(--alert-soft)}

/* ─── сводные числа ─── */
.sum{display:flex;gap:22px;flex-wrap:wrap;align-items:baseline;padding-bottom:15px;
  margin-bottom:16px;border-bottom:1px solid var(--rule2)}
.sum div{display:flex;align-items:baseline;gap:7px}
/* плитка-ссылка выглядит как обычная плитка: фильтр, а не «синяя ссылка» */
.sum a{display:flex;align-items:baseline;gap:7px;text-decoration:none;color:var(--ink)}
.sum a:hover span{color:var(--blue)}
.sum b{font:600 22px/1 var(--disp);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sum b.mk{color:var(--mark-ink)} .sum b.al{color:var(--alert)} .sum b.ok{color:var(--ok)}
.sum span{font:600 9.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink3);max-width:14ch}

/* ─── воронка ─── */
.funnel{display:flex;gap:1px;margin:6px 0 18px;flex-wrap:wrap}
.fstep{flex:1;min-width:96px;background:var(--blue-soft);padding:9px 10px;border-radius:2px}
.fstep .n{font:600 19px/1 var(--disp);color:var(--blue);font-variant-numeric:tabular-nums}
.fstep .l{font:600 9px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink3);margin-top:5px}
.fstep.hot{background:var(--mark-soft)} .fstep.hot .n{color:var(--mark-ink)}
.fstep.off{background:#EDEFF2} .fstep.off .n{color:var(--ink3)}

/* ─── панель фильтров ─── */
.bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.bar .grow{flex:1;min-width:190px}
/* в строке фильтров поля идут в ряд, а не каждое на всю ширину */
.bar select,.bar input[type=text]{width:auto}
.bar .grow input{width:100%}
input[type=text],input[type=date],input[type=number],input[type=password],select,textarea{
  padding:8px 10px;border:1px solid var(--rule);border-radius:2px;background:#fff;
  font:14px var(--body);color:var(--ink);width:100%}
textarea{min-height:64px;resize:vertical;line-height:1.5}
select{padding:8px 8px}
label.f{display:block}
label.f .l{font:600 9px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink3);display:block;margin-bottom:3px}
label.chk{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink2);
  white-space:nowrap;cursor:pointer}
label.chk input{width:16px;height:16px;accent-color:var(--blue)}
.btn{border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:2px;
  padding:9px 15px;font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover{background:#0E3468}
.btn.ghost{background:#fff;color:var(--ink2);border-color:var(--rule)}
.btn.ghost:hover{color:var(--blue);border-color:var(--blue-mid)}
.btn.small{padding:6px 10px;font-size:10px}
.btn.warn{background:#fff;color:var(--alert);border-color:var(--alert)}

/* ─── сетка формы ─── */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 16px}
.grid.wide{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid .span2{grid-column:span 2}
.formactions{display:flex;gap:10px;align-items:center;margin-top:16px;padding-top:14px;
  border-top:1px solid var(--rule2);flex-wrap:wrap}

/* ─── таблицы ─── */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{font:600 9.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink3);text-align:left;padding:0 12px 9px;border-bottom:1px solid var(--rule);
  white-space:nowrap}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--rule2);vertical-align:top}
.tbl tr:hover td{background:#FAFBFC}
.tbl .nm{font-weight:600;min-width:180px}
.tbl .sm{font-size:12.5px;color:var(--ink2)}
.tbl .narrow{max-width:27ch}
.tbl tr.cold td{background:#FEFAF1}
.tbl tr.cold:hover td{background:#FDF6E7}
.tbl tr.off td{opacity:.6}
/* Широкая таблица прокручивается сама, а не режется по краю экрана */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tscroll .tbl{min-width:960px}

/* ── настройка таблицы: ширина потягиванием, порядок перетаскиванием ── */
.tbl[data-tune] th{position:relative;user-select:none}
.tune-grip{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:2}
.tune-grip:hover{background:linear-gradient(90deg,transparent 2px,var(--mark) 2px,var(--mark) 4px,transparent 4px)}
body.tune-resizing{cursor:col-resize;user-select:none}
.tbl th.tune-dragging{opacity:.45}
.tbl th.tune-over{box-shadow:inset 2px 0 0 var(--mark)}
.tune-panel{margin:0 0 10px}
.tune-list{display:flex;flex-wrap:wrap;gap:10px 20px;margin:10px 0 14px}

/* наша строка в списке конкурентов: она же репер, поэтому выделена и не сливается */
.tbl tr.us td{background:#F4F7FB;font-weight:600;border-bottom:1px solid var(--rule)}
.tbl tr.us:hover td{background:#EFF4FA}

.chip{font:600 10px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;padding:5px 7px;
  border-radius:2px;background:var(--blue-soft);color:var(--blue);white-space:nowrap;
  display:inline-block}
a.chip{text-decoration:none}
a.chip:hover{filter:brightness(.93)}
.chip.hot{background:var(--mark-soft);color:var(--mark-ink)}
.chip.bad{background:var(--alert-soft);color:var(--alert)}
.chip.good{background:var(--ok-soft);color:var(--ok)}
.chip.off{background:#EDEFF2;color:var(--ink3)}
.cat{display:inline-block;width:18px;height:18px;border-radius:2px;text-align:center;
  font:600 10px/18px var(--mono);color:#fff;background:var(--gone)}
.cat.A{background:var(--blue)} .cat.B{background:var(--blue-mid)}
.cat.C{background:var(--gone)} .cat.D{background:#C3C9D1;color:var(--ink2)}

/* ─── карточка ─── */
.kv{display:grid;grid-template-columns:190px 1fr;gap:7px 16px;font-size:13.5px;line-height:1.55;
  align-content:start}
.kv dt{font:600 10px/1.5 var(--mono);letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink3);padding-top:2px}
.kv dd{margin:0}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp)}
@media (max-width:1000px){.two{grid-template-columns:1fr}}
.note{background:var(--blue-soft);border-left:2px solid var(--blue-mid);padding:11px 13px;
  font-size:13px;line-height:1.55;margin:14px 0 0}
.note.warn{background:var(--mark-soft);border-left-color:var(--mark)}
.note.bad{background:var(--alert-soft);border-left-color:var(--alert)}

/* ─── журнал взаимодействий ─── */
.log{display:flex;flex-direction:column;gap:9px;margin-top:6px}
.entry{border:1px solid var(--rule2);border-left:3px solid var(--blue-mid);border-radius:2px;
  padding:11px 13px;background:#fff}
.entry.moved{border-left-color:var(--ok)}
.entry.back{border-left-color:var(--alert)}
.entry.mark{border-left-color:var(--rule);background:#FBFCFD}
.entry .top{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;
  font:600 11px/1 var(--mono);color:var(--ink2)}
.entry .top .d{color:var(--ink)}
.entry .txt{margin-top:7px;font-size:13.5px;line-height:1.55}
.entry .txt b{font-weight:600}
.entry .prom{margin-top:8px;padding-top:8px;border-top:1px solid var(--rule2);font-size:13px}
.entry .prom.due{color:var(--alert)}

details.box{border:1px solid var(--rule2);border-radius:2px;margin-top:12px;background:#FBFCFD}
details.box>summary{cursor:pointer;padding:10px 13px;font:600 11px/1 var(--mono);
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);list-style:none}
details.box>summary::-webkit-details-marker{display:none}
details.box>summary:hover{color:var(--blue)}
details.box[open]>summary{border-bottom:1px solid var(--rule2);color:var(--ink)}
details.box .in{padding:14px}

/* ─── документ (учебник) ─── */
.doc{max-width:90ch;font-size:14.5px;line-height:1.68}
.doc h1{font:600 22px/1.25 var(--disp);margin:0 0 14px}
.doc h2{font:600 17px/1.3 var(--disp);margin:32px 0 10px;padding-top:20px;border-top:1px solid var(--rule2)}
.doc h3{font:600 14.5px/1.35 var(--disp);margin:22px 0 7px}
.doc p{margin:0 0 12px}
.doc ul,.doc ol{margin:0 0 12px;padding-left:22px}
.doc li{margin-bottom:5px}
.doc table{border-collapse:collapse;font-size:13.5px;margin:14px 0;width:100%}
.doc th{text-align:left;font:600 9.5px/1.3 var(--mono);letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink3);border-bottom:1px solid var(--rule);padding:0 10px 7px}
.doc td{padding:8px 10px;border-bottom:1px solid var(--rule2);vertical-align:top}
.doc blockquote{margin:14px 0;padding:11px 14px;background:var(--mark-soft);
  border-left:2px solid var(--mark);font-size:13.5px}
.doc code{font:13px var(--mono);background:#F2F4F7;padding:1px 4px;border-radius:2px}
.doc pre{background:#F2F4F7;padding:12px;overflow-x:auto;border-radius:2px}
.doclist{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}

/* ─── шапка раздела с подстраницами (источники: реестр / каналы) ─── */
.split{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap}
.subtabs{display:flex;gap:6px;flex-shrink:0;padding-top:3px}
.stab{border:1px solid var(--rule);border-radius:2px;background:#fff;color:var(--ink2);
  padding:8px 13px;font:600 11px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;
  text-decoration:none;display:inline-block}
.stab:hover{color:var(--blue);border-color:var(--blue-mid)}
.stab.on{background:var(--blue);border-color:var(--blue);color:#fff}

/* ─── реестровые карточки: источники и конкуренты ─── */
.cards{display:flex;flex-direction:column;gap:7px}
.card{border:1px solid var(--rule2);border-left:3px solid var(--blue-mid);border-radius:2px;background:#fff}
.card.hi{border-left-color:var(--mark)}
.card.dead{border-left-color:var(--rule);opacity:.62}
.card>summary{list-style:none;cursor:pointer;padding:12px 16px;display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;gap:4px 18px;align-items:start}
.card>summary::-webkit-details-marker{display:none}
.card>summary:hover{background:#FAFBFC}
.card[open]>summary{border-bottom:1px solid var(--rule2);background:#FBFCFD}
.cmain .nm{font:600 14.5px/1.35 var(--disp);letter-spacing:-.01em;margin:0}
.cmain .sub{font:12px/1.5 var(--body);color:var(--ink2);margin:3px 0 0}
.rr{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;align-items:center;padding-top:2px}
.cbody{padding:2px 16px 16px}

/* процент и полоса рейтинга источника */
.pcw{width:64px}
.pc{font:600 17px/1 var(--disp);letter-spacing:-.02em;text-align:right;padding-top:2px;
  font-variant-numeric:tabular-nums}
.pc small{font:500 10px var(--mono);color:var(--ink3);margin-left:1px}
.pbar{height:3px;background:var(--rule2);border-radius:2px;margin-top:6px;overflow:hidden}
.pbar i{display:block;height:100%;background:var(--blue)}
.pbar i.hi{background:var(--mark)}

/* ─── единый реестр конкурентов ───
   Одна таблица вместо «карточек» и «финансов»: свёрнутая строка — два текстовых
   этажа, всё остальное живёт в раскрытии. Таблица прокручивается в своём окне,
   поэтому шапка и строка «мы» всегда на глазах. */
.fresh{font:500 11px/1 var(--mono);color:var(--ink3);text-align:right;margin:0 0 7px}
.treg{max-height:calc(100vh - 240px);min-height:340px;overflow:auto;-webkit-overflow-scrolling:touch}
.treg .tbl{min-width:1120px}
/* специфичность не ниже, чем у .tbl[data-tune] th{position:relative} — иначе шапка не липнет */
.treg .tbl[data-tune] thead th,.treg .tbl thead th{position:sticky;top:0;z-index:6;
  background:var(--panel);padding:6px 10px 8px}
.tbl.reg td{padding:8px 10px}
.tbl.reg .nm2{min-width:230px;max-width:400px}
/* наша строка — липкий репер сразу под шапкой */
.tbl tr.us.pin td{position:sticky;top:27px;z-index:5;background:#F4F7FB}
.usnm{font:600 14px/1.35 var(--disp);letter-spacing:-.01em}
/* заголовки секций: фавориты и остальные */
.tbl tr.grp td{padding:16px 10px 6px;background:var(--panel);border-bottom:1px solid var(--rule);
  font:600 9.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}
.tbl tr.grp:hover td{background:var(--panel)}
/* звезда фаворита: единственный орган управления в свёрнутой строке */
.favcell{width:34px;text-align:center}
.thstar{font-size:12px;color:var(--ink3);text-align:center}
.star{border:0;background:none;padding:3px 6px;font-size:16px;line-height:1;
  color:#C9CFD8;cursor:pointer}
.star:hover{color:var(--mark)}
.star.on{color:var(--mark)}
/* имя-кнопка раскрытия с чевроном */
tr.xrow{cursor:pointer}
.xbtn{border:0;background:none;padding:0;max-width:100%;display:flex;gap:7px;align-items:baseline;
  font:600 14px/1.35 var(--disp);letter-spacing:-.01em;color:var(--ink);cursor:pointer;text-align:left}
.xbtn:hover{color:var(--blue)}
.xbtn .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xbtn .chev{font-size:9px;color:var(--ink3);flex:0 0 auto;transition:transform .15s ease}
.xbtn[aria-expanded="true"] .chev{transform:rotate(90deg)}
/* вторая строка записи: вид · город · ИНН + один чип двойной роли */
.reg .sub{display:flex;gap:8px;align-items:center;min-width:0;margin-top:2px;
  font:11.5px/1.5 var(--body);color:var(--ink2)}
.reg .sub .mt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reg .sub .chip{flex:0 0 auto;font-size:9px;padding:3px 5px}
/* баллы и рост: цвет — только у сигнала (60 и выше, падение/рост) */
.reg .sc{font-weight:600;font-variant-numeric:tabular-nums}
.reg .sc.ok{color:var(--ok)} .reg .sc.al{color:var(--alert)}
.reg .xs{font:10.5px/1.4 var(--mono);color:var(--ink3);margin-top:2px;white-space:nowrap}
/* раскрытое досье */
tr.xbody>td{background:#FBFCFD;padding:2px 18px 18px;border-bottom:1px solid var(--rule)}
tr.xbody:hover>td{background:#FBFCFD}
.tbl.mini{width:auto;min-width:0}
.tbl.mini th,.tbl.mini td{padding:6px 12px}

/* разворот карточки */
.kv2{display:grid;grid-template-columns:150px 1fr;gap:6px 16px;margin-top:13px;
  font-size:13.5px;line-height:1.55}
.kv2 dt{font:600 9.5px/1.7 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--ink3)}
.kv2 dd{margin:0}
.kv2 a{color:var(--blue)}
.flds{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.fl h4{margin:0 0 6px;font:600 9.5px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase}
.fl.y h4{color:var(--ok)} .fl.n h4{color:var(--alert)}
.fl ul{margin:0;padding-left:16px;font-size:12.5px;line-height:1.55;color:var(--ink2)}
.corr{background:var(--mark-soft);border-left:2px solid var(--mark);padding:9px 12px;
  margin-top:13px;font-size:12.5px;line-height:1.5}
.corr b{display:block;font:600 9.5px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase;
  color:var(--mark-ink);margin-bottom:5px}
.calc{margin-top:12px;font:11.5px/1.6 var(--mono);color:var(--ink3);
  border-top:1px dashed var(--rule2);padding-top:9px}

/* строка рабочих полей источника: статус, ответственный, заметки */
.workline{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:14px;
  padding-top:13px;border-top:1px solid var(--rule2)}
.workline .f{min-width:170px}
.workline .grow{flex:1;min-width:230px}

/* плитки типов источников и паспорт типа */
.kchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding-bottom:16px;
  border-bottom:1px solid var(--rule2)}
.kchip{display:flex;align-items:baseline;gap:7px;border:1px solid var(--rule);background:#fff;
  border-radius:3px;padding:8px 11px;font:600 12px/1.2 var(--disp);letter-spacing:-.01em;
  color:var(--ink2);text-decoration:none}
.kchip:hover{border-color:var(--blue-mid);color:var(--ink)}
.kchip.on{background:var(--blue);border-color:var(--blue);color:#fff}
.kchip .kci{font:600 9px/1 var(--mono);color:var(--ink3)}
.kchip .kcn{font:500 11px/1 var(--mono);color:var(--ink3)}
.kchip .kcp{font:600 11px/1 var(--mono);color:var(--mark-ink)}
.kchip.on .kci{color:#9FB7DA} .kchip.on .kcn{color:#C9D8EC} .kchip.on .kcp{color:var(--mark)}
.kh{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.kpass{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.kpass .kp{padding:11px 13px;font-size:13px;line-height:1.55}
.kpass .kp h4{margin:0 0 5px;font:600 9.5px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase}
.kpass .kp p{margin:0}
.kpass .kp.y{background:var(--ok-soft)} .kpass .kp.y h4{color:var(--ok)}
.kpass .kp.n{background:var(--alert-soft)} .kpass .kp.n h4{color:var(--alert)}
@media (max-width:900px){.kpass{grid-template-columns:1fr}}

/* индекс отдачи в таблице каналов */
.ibar{height:4px;background:var(--rule2);border-radius:2px;width:84px;display:inline-block;
  vertical-align:middle;margin-right:8px;overflow:hidden}
.ibar i{display:block;height:100%;background:var(--mark)}

/* формула рейтинга */
.formula{font:600 14px/1.5 var(--mono);background:var(--paper);padding:12px 14px;
  border-left:2px solid var(--blue-mid);max-width:640px}

/* ─── вход ───
   Единственный экран портала, сделанный не «листом чертежа», а в фирменном виде
   «Компакт-Портала»: человек приходит сюда с витрины компании, и дверь должна
   выглядеть так же, как соседние двери. Внутри портала стиль снова чертёжный. */
@font-face{font-family:'Manrope Portal';src:url('/static/fonts/manrope-cyrillic-wght-normal.woff2') format('woff2');
  font-weight:200 800;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope Portal';src:url('/static/fonts/manrope-latin-wght-normal.woff2') format('woff2');
  font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+2122,U+2191,U+2193,U+2212,U+2215}
@font-face{font-family:'Lora Portal';src:url('/static/fonts/lora-cyrillic-wght-italic.woff2') format('woff2');
  font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Lora Portal';src:url('/static/fonts/lora-latin-wght-italic.woff2') format('woff2');
  font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+2000-206F,U+2122,U+2191,U+2193,U+2212,U+2215}

body.gate{background:#eef1f4;
  background-image:radial-gradient(120% 110% at 50% -10%,#f3f5f7 0%,#e9edf2 52%,#dfe5ec 100%)}
.gate-wrap{min-height:100vh;display:flex;flex-direction:column;padding:clamp(20px,4vw,44px)}
.gate-mark{display:flex;align-items:center;gap:9px;font:600 17px/1 'Manrope Portal',var(--disp);
  color:#0f1b2d;letter-spacing:-.01em}
.gate-mark i{width:11px;height:11px;border-radius:50%;background:#3d6492;display:block}
.gate-body{flex:1;display:flex;align-items:center;width:100%;max-width:1180px;margin:0 auto;
  padding-left:clamp(0px,7vw,120px)}
.gate-eyebrow{display:flex;align-items:center;gap:12px;font:600 11px/1 'Manrope Portal',var(--disp);
  letter-spacing:.16em;text-transform:uppercase;color:#5d6f86;margin-bottom:22px}
.gate-eyebrow::before{content:"";width:26px;height:1px;background:#93a6bd;display:block}
.gate h1{font:200 clamp(40px,6.4vw,62px)/1.06 'Manrope Portal',var(--disp);letter-spacing:-.03em;
  color:#101d2f;margin:0 0 6px}
.gate h1 em{font-style:normal;color:#3d6492;position:relative;white-space:nowrap}
.gate h1 em::after{content:"";position:absolute;left:0;right:0;bottom:-.06em;height:4px;
  background:#c47b9e;border-radius:2px}
.gate .lead{font:italic 400 clamp(16px,1.7vw,19px)/1.5 'Lora Portal',Georgia,serif;
  color:#4b5b70;max-width:30ch;margin:16px 0 30px}
.gate .btn{display:inline-flex;align-items:center;gap:10px;background:#3d6492;color:#fff;
  border:0;border-radius:999px;padding:13px 26px;font:600 15px/1 'Manrope Portal',var(--disp);
  letter-spacing:0;text-transform:none;box-shadow:0 14px 30px -16px rgba(16,29,47,.6);
  transition:background .15s,transform .15s}
.gate .btn:hover{background:#2a4a70;transform:translateY(-1px)}
/* Подсказки и сообщения на этом экране — обычный текст, без чертёжных плашек:
   на двери не должно быть внутренней «мебели» портала. */
.gate .note{background:none;border:0;padding:0;font:400 13px/1.55 'Manrope Portal',var(--disp);
  color:#71839a;max-width:46ch;margin:24px 0 0}
.gate .flash{background:none;border:0;border-left:2px solid #93a6bd;border-radius:0;padding:2px 0 2px 12px;
  margin:0 0 24px;max-width:46ch;font:400 14px/1.5 'Manrope Portal',var(--disp);color:#4b5b70}
.gate .flash.bad{border-left-color:#b4566f;color:#8c2f45}
.gate-foot{font:400 12px/1 'Manrope Portal',var(--disp);color:#8494a8}

@media (max-width:760px){
  .kv{grid-template-columns:1fr}
  .kv dt{padding-top:8px}
  .sf{padding-right:12px;margin-right:12px}
  .bar select{max-width:100%}
  .card>summary{grid-template-columns:1fr;gap:8px}
  .pcw{width:100%;display:flex;align-items:baseline;gap:8px}
  .pcw .pbar{flex:1;margin-top:0}
  .duo{width:100%}
  .rr{justify-content:flex-start}
  .kv2{grid-template-columns:1fr}
  .flds{grid-template-columns:1fr}
}
