/* ---------- «Технический» → «Коннектор ИИ» — полноэкранный раздел (14.09.2026) ----------
   Экран поверх всего (z 16: над главным экраном, под .modal и тостами). На ПК — один лист:
   шапка и сводка сверху, ниже две колонки; прокручивается только список людей, управление
   остаётся на месте (правило интерфейса). Панель человека — окно поверх справа, не вставка в поток.
   На телефоне — обычная страница с прокруткой. Логика — static/connector.js. */
#view-connector{position:fixed;inset:0;z-index:16;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}
html.cn-open,html.cn-open body{overflow:hidden}
.cn-top{display:flex;align-items:center;gap:var(--sp-3);padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}
.cn-top h1{margin:0;font-size:18px;display:flex;align-items:center;gap:var(--sp-2)}
.cn-top .grow{flex:1}
.cn-addr{display:flex;align-items:center;gap:var(--sp-2);font-size:13px;color:var(--muted)}
.cn-addr b{color:var(--text);font-weight:600}
#cn-main{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding:12px 20px 16px;box-sizing:border-box}

.cn-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;box-sizing:border-box;min-height:0}
.cn-card h3{margin:0;font-size:14px}
.cn-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:10px}
.cn-head .grow{flex:1}
.cn-head input[type=search]{width:200px;padding:4px 8px;font-size:13px}
.cn-head b.ok,.cn-p-state b.ok{color:var(--ok)}.cn-head b.bad,.cn-p-state b.bad{color:var(--bad)}

/* сводка — одна строка показателей */
.cn-sum{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:10px 4px}
.cn-k{display:flex;flex-direction:column;gap:2px;padding:0 12px;border-left:1px solid var(--line);min-width:0}
.cn-k:first-child{border-left:0}
.cn-k span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn-k b{font-size:20px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn-k b small{font-size:12px;font-weight:500;color:var(--muted)}

.cn-cols{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px}
.cn-side{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}
.cn-people{display:flex;flex-direction:column}
.cn-scroll{flex:1;min-height:0;overflow:auto;margin:0 -14px -12px;border-top:1px solid var(--line)}
.cn-scroll thead th{position:sticky;top:0;background:var(--panel2);z-index:1}

.cn-tbl{width:100%;border-collapse:collapse;font-size:13px}
.cn-tbl th{font-size:11px;font-weight:600;color:var(--muted);text-align:left;padding:6px 10px;white-space:nowrap}
.cn-tbl td{padding:6px 10px;border-top:1px solid var(--line);vertical-align:middle;text-align:left}
.cn-tbl .num{text-align:right}
.cn-tbl .nw{white-space:nowrap}
.cn-tbl .bad{color:var(--bad)}
.cn-tbl .sub{display:block;color:var(--muted);font-size:11px}
.cn-tbl .sub em{font-style:normal;color:var(--warn)}
#cn-prows tr{cursor:pointer}
#cn-prows tr.cn-grp{cursor:default}
#cn-prows tr.cn-grp td{background:var(--panel2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:5px 10px}
#cn-prows tr.cn-grp td span{font-weight:500;margin-left:4px}
#cn-prows tr.cn-grp:hover td{background:var(--panel2)}
.cn-da{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;white-space:nowrap}
.cn-da.full{background:var(--ok-soft);color:var(--ok)}
.cn-da.limited{background:var(--warn-soft);color:var(--warn)}
.cn-da.none,.cn-da.unknown{background:var(--panel2);color:var(--muted)}
#cn-prows tr:hover td{background:var(--panel2)}
#cn-prows tr.on td{background:var(--brand-soft)}
.cn-tbl.mini{font-size:12px;margin-bottom:6px}
.cn-tbl.mini td,.cn-tbl.mini th{padding:4px 6px}
.cn-reason{font-size:12px;color:var(--muted)}
.cn-acc{display:flex;align-items:center;gap:8px}

/* переключатель */
.cn-sw{position:relative;display:inline-block;width:34px;height:20px;flex:none;cursor:pointer}
.cn-sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.cn-sw i{position:absolute;inset:0;border-radius:20px;background:#cfd4dc;transition:background .15s}
.cn-sw i::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.cn-sw input:checked+i{background:var(--ok)}
.cn-sw input:checked+i::after{transform:translateX(14px)}
.cn-sw input:disabled+i{opacity:.5}

/* сегменты фильтра */
.cn-seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.cn-seg button{border:0;background:var(--panel);padding:4px 10px;font:inherit;font-size:12px;color:var(--muted);cursor:pointer;border-left:1px solid var(--line)}
.cn-seg button:first-child{border-left:0}
.cn-seg button.on{background:var(--accent);color:#fff}

/* работа коннектора, сроки и лимиты */
.cn-line{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:8px;flex-wrap:wrap}
#view-connector .cn-days input[type=time]{width:74px !important;min-width:0 !important;flex:none;padding:1px 2px;font-size:12px}
.cn-days b{font-weight:400;color:var(--muted);align-self:center}
.cn-days input[type=time]:last-of-type{margin-right:6px}
#cn-person .cn-tbl{table-layout:auto}
#cn-person .cn-tbl .sub.bad{color:var(--bad);word-break:break-word}
.cn-limits .cn-field input{padding:3px 6px}
.cn-days{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap;align-items:center}
.cn-days label{cursor:pointer}
.cn-days label input{display:none}
.cn-days span{display:inline-block;padding:2px 7px;border:1px solid var(--line);border-radius:6px;font-size:12px;color:var(--muted)}
.cn-days input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}
.cn-field{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);margin-bottom:10px}
.cn-field input{font-size:13px;padding:4px 6px}
.cn-limits{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.cn-limits .cn-field{margin-bottom:8px}
.cn-note{font-size:11px}
.btn-danger{border-color:var(--bad);color:var(--bad)}
.btn.btn-danger:hover{background:var(--bad-soft)}

/* панель человека */
#cn-person{position:absolute;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--panel);border-left:1px solid var(--line);
  box-shadow:-16px 0 40px rgba(20,25,40,.14);z-index:2;overflow:auto;box-sizing:border-box;padding:14px 18px 24px}
.cn-p-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.cn-p-head h2{margin:0;font-size:18px}
.cn-p-state{display:flex;align-items:center;gap:10px;margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md)}
.cn-p-state>div{flex:1}
.cn-p-rule{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px;margin-bottom:12px}
.cn-p-rule summary{cursor:pointer;font-size:13px;font-weight:600}
.cn-p-rule summary em{font-style:normal;color:var(--warn);font-weight:500}
.cn-p-rule[open] summary{margin-bottom:10px}
.cn-p-rule .cn-seg{margin-bottom:10px}
.cn-chk{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:8px;cursor:pointer}
.cn-r-tools{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:6px 8px;margin-bottom:10px;display:grid;grid-template-columns:1fr 1fr;gap:3px 10px;font-size:12px}
#cn-p-load h3{font-size:13px;margin:14px 0 6px}
.cn-p-kpi{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-bottom:6px}
.cn-p-kpi b{color:var(--text);font-size:15px}
.cn-bars{width:100%;height:70px;display:block}
.cn-bars .b{fill:var(--accent2)}
.cn-bars .e{fill:var(--bad)}
.cn-bars-ax{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:10px}

.cn-mine{max-width:900px;overflow:auto;display:flex;flex-direction:column;gap:12px}
.cn-mine .cn-sum{grid-template-columns:repeat(5,minmax(0,1fr))}
.cn-mine p{margin:6px 0;font-size:13px}

@media (max-width:980px){
  #view-connector{overflow:auto}
  #cn-main{flex:none}
  .cn-sum,.cn-mine .cn-sum{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}
  .cn-k:nth-child(odd){border-left:0}
  .cn-cols{grid-template-columns:1fr}
  .cn-scroll{max-height:none}
  .cn-top{padding:10px 12px}#cn-main{padding:10px 12px}
  .cn-addr b{word-break:break-all}
  #cn-person{position:fixed}
}

/* журнал с источником (DIG-0015): заголовок и фильтр в одну строку, фильтр на месте */
.cn-calls-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 6px}
.cn-src{font-size:12px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:inherit;max-width:260px}
.cn-jlink{font-size:11px;color:var(--accent,#2563eb);margin-left:6px;text-decoration:none}
