/* crm.hii.uz — рабочее место оператора. Токены и базовые компоненты — /assets/ui.css */
html,body{height:100%}
body{font-size:14px}
textarea{width:100%}
.phone{color:var(--info);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ── каркас */
.app{display:grid;grid-template-rows:auto 1fr;height:100vh}
header{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--surface);border-bottom:1px solid var(--line);min-height:56px}
header .logo{display:flex;align-items:center;gap:8px;font:800 16px var(--font-head);color:var(--ink);margin-right:6px}
header .logo .logo-mark{width:28px;height:28px;border-radius:8px}
header .sp{flex:1}
header select,header input{min-height:34px;font-size:13px}
header button{min-height:34px;font-size:13px;padding:7px 11px}
.search{position:relative}.search input{width:240px;padding-right:46px}.search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);pointer-events:none}
#sipState{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);background:var(--surface-2);padding:6px 10px;border-radius:99px;white-space:nowrap}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--muted)}.dot.on{background:#22c55e;box-shadow:0 0 0 3px rgb(34 197 94/.2)}.dot.warn{background:#f59e0b}.dot.off{background:#ef4444}
#meName{font-weight:600;color:var(--ink-2);font-size:13px}
@media(max-width:1200px){.search input{width:160px}#meName{display:none}}

.body{display:grid;grid-template-columns:210px 380px 1fr;min-height:0}
@media(max-width:1000px){.body{grid-template-columns:1fr}.list,.detail{min-height:50vh}header{flex-wrap:wrap}}
nav{background:var(--surface);border-right:1px solid var(--line);padding:10px 8px;overflow:auto}
nav a{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;color:var(--ink-2);text-decoration:none;font-weight:500;margin-bottom:1px}
nav a.on{background:var(--primary-50);color:var(--primary-700)}nav a:hover{background:var(--surface-2);color:var(--ink)}
nav .cnt{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}nav a.on .cnt{color:var(--primary-700)}
nav hr{border:0;border-top:1px solid var(--line);margin:8px 4px}
.list{border-right:1px solid var(--line);overflow:auto;background:var(--bg)}
.list .tools{position:sticky;top:0;z-index:2;background:var(--bg);padding:10px;border-bottom:1px solid var(--line);display:flex;gap:6px}
.item{padding:11px 14px;border-bottom:1px solid var(--line);cursor:pointer;background:var(--surface);transition:background var(--t);border-left:3px solid transparent}
.item:hover{background:var(--surface-2)}.item.sel{background:var(--primary-50);border-left-color:var(--primary)}
.item .t{display:flex;justify-content:space-between;align-items:center;gap:6px}.item .t b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .s{font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* таймер ожидания лида (SLA): до 10 мин — спокойно, 10–15 — жёлтый, больше 15 — красный */
.sla{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;padding:2px 7px;border-radius:99px;background:var(--surface-2);color:var(--ink-2);font-variant-numeric:tabular-nums;margin-left:auto;margin-right:6px}
.sla.warn{background:var(--warn-50);color:var(--warn)}.sla.late{background:var(--danger-50);color:var(--danger);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.6}}

.detail{overflow:auto;padding:18px 22px;background:var(--surface)}
.detail h2{margin:0 0 4px;font-size:20px}
.detail h3{font:600 12px var(--font);margin:18px 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.detail .card{box-shadow:none}
.tl{border-left:2px solid var(--line);margin-left:6px;padding-left:14px}.tl div{margin-bottom:10px;font-size:13px;position:relative}
.tl div::before{content:"";position:absolute;left:-19px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--line-2)}
.tl .w{font-size:11px;color:var(--muted)}
td,th{padding:6px 8px;font-size:13px}
.offers{margin-top:10px;background:var(--accent-50);border-radius:var(--r-sm);padding:8px 12px}
.note-warn{background:var(--warn-50)}.note-info{background:var(--info-50)}
.empty-state{display:grid;place-items:center;height:100%;color:var(--muted);text-align:center;gap:10px}
.empty-state .keys{font-size:13px;line-height:2}

/* ── входящий звонок: панель справа поверх рабочей области */
.overlay{position:fixed;inset:0;background:rgb(10 20 18/.28);z-index:50;display:flex;justify-content:flex-end}
.callbox{width:min(560px,100vw);height:100%;overflow:auto;background:var(--surface);box-shadow:var(--sh-3);animation:slide .25s cubic-bezier(.2,.7,.3,1)}
@keyframes slide{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.callhead{position:sticky;top:0;z-index:1;background:var(--primary);color:var(--on-primary);padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.callhead .num{font:800 26px var(--font-head);letter-spacing:.01em}
#cName{font-size:16px;opacity:.95}
.callhead .row button.sec{background:rgb(255 255 255/.18);color:#fff}.callhead .row button.sec:hover{background:rgb(255 255 255/.3)}
.callhead #cAnswer{background:#22c55e;color:#04230f}.callhead #cAnswer:hover{background:#16a34a;color:#fff}
.callhead .danger{background:#ef4444;color:#fff}
#cTime{font:700 20px var(--font-head);font-variant-numeric:tabular-nums}
.callbody{padding:16px 20px}
.ring{animation:ring 1s infinite}@keyframes ring{50%{opacity:.55}}

/* ── подсказка по клавишам */
.dlg{border:0;border-radius:var(--r-lg);padding:22px;width:min(440px,92vw);background:var(--surface);color:var(--ink);box-shadow:var(--sh-3)}
.dlg::backdrop{background:rgb(10 20 18/.4)}
.keys-t td{border:0;padding:5px 6px}.keys-t td:first-child{white-space:nowrap;width:1%}
#opFilter{max-width:160px}
