:root{--ground:#f4f3ef;--surface:#fff;--ink:#171a1f;--muted:#646b76;--faint:#9aa0a9;--line:#e2e0da;--line2:#cfccc4;--accent:#1e4d57;--accent-soft:#e6eeef;--accent-ink:#0f3138;--rail:#1a1d21;--rail-text:#b9bec6;--rail-active:#fff;--rail-line:#2a2f36;--good:#2f7a4e;--good-soft:#e4f1e8;--warn:#b3791d;--warn-soft:#f6edda;--crit:#b23f3a;--crit-soft:#f5e3e1;--r-ctl:6px;--r-card:10px;--top-h:57px;--callbar-h:126px;--font-text:"Golos Text",system-ui,"Segoe UI",sans-serif;--font-head:"Onest","Golos Text",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,Consolas,monospace}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-text);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent)}a,a:hover{text-decoration:none}a:hover{color:var(--accent-ink)}h1,h2,h3{font-family:var(--font-head);margin:0;letter-spacing:-.01em;text-wrap:balance}h1{font-size:24px;line-height:1.2}h1,h2{font-weight:600}h2{font-size:15px}h3{font-size:13px;font-weight:600}p{margin:0}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}button{font:inherit;color:inherit}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.rail{background:var(--rail);color:var(--rail-text);display:flex;flex-direction:column;padding:20px 14px;gap:22px;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain}.rail>*{flex-shrink:0}.brand{display:flex;align-items:center;gap:10px;padding:0 8px;color:inherit}.brand:hover{text-decoration:none}.brand-mark{width:26px;height:26px;border-radius:6px;background:var(--accent);display:grid;place-items:center;flex:none}.brand-name{display:block;font-family:var(--font-head);font-weight:600;font-size:14px;color:#fff;letter-spacing:.02em}.brand-sub{display:block;font-size:11px;color:var(--faint)}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:#6e747d;padding:0 8px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:6px;font-size:13.5px;color:var(--rail-text)}.nav-item:hover{color:var(--rail-active);text-decoration:none;background:#22262c}.nav-item.on{background:var(--rail-line);color:var(--rail-active);font-weight:500}.nav-item svg{width:16px;height:16px;flex:none}.rail-foot{margin-top:auto;padding:12px 8px 0;border-top:1px solid var(--rail-line);display:flex;flex-direction:column;gap:4px}.rail-user{color:#fff;font-size:13px;font-weight:500}.rail-role{font-size:11.5px;color:#7c838c}.rail-logout{margin-top:6px}.linkish{background:none;border:0;padding:0;cursor:pointer;color:var(--rail-text);font-size:12.5px}.linkish:hover{color:#fff;text-decoration:none}.main{display:flex;flex-direction:column;min-width:0}.top{min-height:56px;justify-content:space-between;gap:16px;padding:6px 32px;border-bottom:1px solid var(--line);background:var(--surface)}.top,.top-nav{display:flex;align-items:center}.top-nav{gap:14px}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--r-ctl);font-size:12.5px;font-weight:500;color:var(--muted);background:var(--ground);border:1px solid var(--line2);text-decoration:none;transition:all .15s}.btn-back:hover{color:var(--ink);border-color:var(--line2);background:#eceae4;text-decoration:none}.btn-back svg{width:14px;height:14px;flex:none;transition:transform .15s}.btn-back:hover svg{transform:translateX(-2px)}.crumbs{display:flex;gap:8px;color:var(--muted);font-size:13px;align-items:center}.crumbs b{color:var(--ink);font-weight:500}.top-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.content{padding:28px 32px 40px;display:flex;flex-direction:column;gap:24px;max-width:1520px;width:100%;margin:0 auto}@media (min-width:1700px){.g21{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.lead{color:var(--muted);font-size:13.5px;max-width:64ch;margin:6px 0 0}.seg{display:flex;border:1px solid var(--line2);border-radius:var(--r-ctl);overflow:hidden;background:var(--surface)}.seg a,.seg span{padding:6px 12px;font-size:13px;color:var(--muted);border-right:1px solid var(--line)}.seg :last-child{border-right:0}.seg .on{background:var(--ink);color:#fff}.seg a:hover{text-decoration:none;color:var(--ink)}.seg a.on:hover{color:#fff}.pager .btn{padding:6px 9px;font-size:15px;line-height:1}.pager-label{font-size:13px;color:var(--ink);min-width:15.5em;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}.dates{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.dates label{display:inline-flex;align-items:center;gap:6px}.dates input{font:inherit;color:var(--ink);padding:5px 8px;border:1px solid var(--line2);border-radius:var(--r-ctl);background:var(--surface)}.dates .btn{padding:6px 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:var(--r-ctl);font-size:13px;font-weight:500;border:1px solid var(--line2);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap}td .btn{font-size:12.5px;line-height:1.2}td .btn,td .btn.small{padding:5px 10px}.btn:hover{text-decoration:none;border-color:var(--ink);background:var(--ground)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn.quiet{border-color:transparent;background:transparent;color:var(--muted)}.btn.wide{width:100%;padding:11px}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn[disabled]:hover{border-color:var(--line2)}.btn.primary[disabled]:hover{background:var(--accent);border-color:var(--accent)}.head-tools{display:flex;gap:10px;flex:none}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:5px 10px;border:1px solid var(--line2);border-radius:var(--r-ctl);font-size:12.5px;background:var(--surface);color:var(--muted)}.chip.on,.chip:hover{border-color:var(--ink);color:var(--ink)}.chip:hover{text-decoration:none;background:var(--ground)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;color:var(--muted)}.input{border:1px solid var(--line2);border-radius:var(--r-ctl);padding:9px 12px;font-size:14px;background:var(--surface);color:var(--ink);font-family:inherit;width:100%}.input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.form-error{color:var(--crit);font-size:13px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;display:flex;flex-direction:column;gap:6px}.kpi-l{font-size:12px;color:var(--muted);letter-spacing:.02em}.kpi-v{font-family:var(--font-head);font-size:26px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.kpi-n{font-size:12px;color:var(--muted)}.kpi-n.good{color:var(--good)}.kpi-n.crit{color:var(--crit)}.kpi-n.warn{color:var(--warn)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:20px 22px;display:flex;flex-direction:column;gap:14px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.card-head .hint{font-size:12.5px;color:var(--muted)}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.g21,.grid2{display:grid;gap:20px}.g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:left;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:0 10px 10px}td,th{border-bottom:1px solid var(--line)}td{padding:10px;vertical-align:middle}tr:last-child td{border-bottom:0}td.r,th.r{text-align:right}td.num{font-size:13px}.tbl{overflow-x:auto}.stack{gap:20px}.list,.stack{display:flex;flex-direction:column}.row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.who{display:flex;align-items:center;gap:10px}.ava{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-size:11px;font-weight:600;flex:none}.who small{display:block;color:var(--muted);font-size:12px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.good{background:var(--good)}.dot.warn{background:var(--warn)}.dot.crit{background:var(--crit)}.dot.neutral{background:var(--line2)}.bar{height:6px;background:#eceae4;border-radius:3px;overflow:hidden;width:120px;display:inline-block;vertical-align:middle}.bar i{display:block;height:100%;background:var(--accent)}.bar.good i{background:var(--good)}.bar.warn i{background:var(--warn)}.bar.crit i{background:var(--crit)}.bar.short{width:56px}.muted{color:var(--muted)}.small{font-size:12.5px}.faint{color:var(--faint)}.quote{border-left:2px solid var(--line2);padding:2px 0 2px 12px;color:var(--muted);font-size:13px}.kv{display:flex;flex-direction:column;gap:3px;padding:9px 0;border-bottom:1px solid var(--line)}.kv:last-child{border-bottom:0}.kv .quote a{margin-left:6px}.kv .quote a,.sec{color:var(--muted)}.sec{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:500}.note{background:var(--accent-soft);border-radius:var(--r-ctl);padding:10px 14px;font-size:13px;color:var(--accent-ink)}audio.player{width:100%;display:block}.line{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}.line:last-child{border-bottom:0}.line .t{width:44px;flex:none;padding-top:2px}.seekable{cursor:pointer}.line.seekable:hover{background:var(--ground)}.line.on,.line.seekable:hover{margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:var(--r-ctl)}.facts{display:flex;flex-wrap:wrap;gap:4px 0;margin-top:6px;font-size:13.5px;color:var(--muted)}.facts>*+:before{content:"·";margin:0 8px;color:var(--faint)}.facts a:hover{text-decoration:none}.marks{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}.mark{font-size:12.5px;font-weight:500;color:var(--ink)}.mark.crit{color:var(--crit)}.mark.warn{color:var(--warn)}.mark.good{color:var(--good)}.plain{white-space:pre-wrap;font-size:13.5px}.portal-search{margin-bottom:24px;max-width:680px}.portal-search label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:6px}.portal-search-controls{display:flex;gap:8px}.portal-search-controls .input{flex:1;min-width:0;width:100%}.search-result{display:flex;flex-direction:column;gap:5px;padding:17px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.search-result:last-child{border-bottom:0;padding-bottom:0}.search-result strong{font-weight:500;font-size:15px}.journey-analysis{margin-top:20px;font-size:14px;line-height:1.7;overflow-wrap:anywhere}.journey-section{padding:22px 0;border-top:1px solid var(--line)}.journey-section:last-child{padding-bottom:0}.journey-section h3{font-size:16px;line-height:1.4;margin-bottom:12px}.journey-section p,.journey-section ul{max-width:100ch}.journey-section ul{margin:0;padding-left:21px}.journey-section li+li{margin-top:12px}.journey-conclusion{border-top:0;padding-top:0}.journey-conclusion h3{color:var(--accent)}.journey-analysis strong{font-weight:600}.grp{display:flex;flex-direction:column}.grp-head{padding-bottom:6px;border-bottom:1px solid var(--line2)}.grp .crit-row{padding:8px 0 8px 12px}.pts{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.pts a{color:var(--muted)}.num.good,.state.good{color:var(--good)}.num.warn,.state.warn{color:var(--warn)}.num.crit,.state.crit{color:var(--crit)}.num.neutral,.state.neutral{color:var(--faint)}.state{font-size:12.5px;font-weight:500}.card-head .kpi-v{font-size:22px;white-space:nowrap}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 520px;background:var(--ground)}.side{background:var(--rail);color:#fff;padding:56px 64px;justify-content:space-between;gap:32px}.side,.side-text{display:flex;flex-direction:column}.side-text{gap:18px}.side h1{font-size:40px;color:#fff;max-width:14ch;line-height:1.15}.side p{color:#9aa0a9;max-width:44ch;font-size:15px}.form{display:flex;flex-direction:column;justify-content:center;padding:64px 72px;gap:18px;background:var(--surface);border-left:1px solid var(--line)}.form h1{font-size:22px}@media (max-width:900px){.app{grid-template-columns:1fr}.rail{position:static;height:auto}.login{grid-template-columns:1fr}.form,.side{padding:32px 24px}.form{border-left:0}.g21,.grid2,.kpis{grid-template-columns:1fr}.content,.top{padding-left:20px;padding-right:20px}}.line{padding-left:10px}.log{font-family:var(--font-mono);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin:0}.filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0 0 4px}.field-inline{display:flex;flex-direction:column;gap:4px}.field-inline .input{min-width:200px}.check{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--line2);border-radius:var(--r-ctl);background:var(--surface);font-size:13px;color:var(--ink);cursor:pointer;user-select:none}.check:hover{border-color:var(--ink)}.check input{margin:0;width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.field-inline .input,.filters .btn{height:38px}.pager{display:flex;align-items:center;gap:12px;margin-top:14px}.log{max-height:70vh;overflow:auto}.listen-diag-lead{font-size:12px;display:flex;align-items:center;gap:6px;font-weight:500}.listen-diag-lead.crit{color:var(--crit)}.listen-diag-lead.good{color:var(--good)}.listen-reason{display:flex;align-items:center;gap:6px;font-size:12.5px;line-height:1.35;color:var(--muted);flex-wrap:wrap}.listen-reason-lbl{font-size:12px;color:var(--muted)}.listen-reason-val{font-size:12.5px;font-weight:500}.listen-reason-val.crit{color:var(--crit)}.listen-reason-val.good{color:var(--good)}.listen-link{font-size:12px;font-weight:500;color:var(--accent);display:inline-flex;align-items:center;gap:5px;text-decoration:none}.listen-link:hover{color:var(--accent-ink);text-decoration:none}.listen-arrow{transition:transform .15s}.op-link{color:var(--ink);font-weight:500;text-decoration:none;transition:color .15s}.op-link:hover{color:var(--accent);text-decoration:none}.op-row td{padding:12px 10px;border-bottom:1px solid var(--line)}.op-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:960px){.op-pair{grid-template-columns:1fr}}.op-call-card.crit{border-left:4px solid var(--crit);background:#fcfbfb}.op-call-card.good{border-left:4px solid var(--good);background:#fafdfb}.call-crm-cell{display:flex;flex-direction:column;gap:3px;font-size:12px;line-height:1.3}.call-crm-phone{font-weight:600;color:var(--ink)}.call-crm-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.flaw-badge{display:inline-block;font-size:12px;font-weight:500;line-height:1.3}.flaw-badge.crit{color:var(--crit)}.flaw-badge.good{color:var(--good)}.amo-link{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:#2563eb;background:#eff6ff;padding:1px 6px;border-radius:3px;text-decoration:none;transition:all .15s}.amo-link:hover{background:#dbeafe;text-decoration:none}.amo-link.tiny{font-size:10px;padding:0 5px}.trend-tbl{width:100%;border-collapse:collapse;font-size:12.5px}.trend-tbl th{padding:6px 8px;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.trend-tbl td,.trend-tbl th{border-bottom:1px solid var(--line)}.trend-tbl td{padding:8px}.call-lead-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12.5px}.small.good{color:var(--good)}.small.warn{color:var(--warn)}.small.crit{color:var(--crit)}.svc{margin-bottom:16px}.svc .card-head{flex-wrap:wrap;gap:10px}.svc-all{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.svc-stop{margin:0 0 10px}.svc-rows{display:flex;flex-direction:column}.svc-item{border-top:1px solid var(--line)}.svc-log{padding:0 0 12px}.svc-log summary{cursor:pointer;font-size:12.5px;color:var(--muted);padding:2px 0}.svc-log .svc-tail{max-height:220px;overflow:auto;margin:8px 0;padding:10px 12px;background:var(--ground);border:1px solid var(--line);border-radius:var(--r-card);font-size:11.5px}.svc-row{display:grid;grid-template-columns:minmax(200px,1.4fr) minmax(180px,1fr) auto;gap:14px;align-items:center;padding:12px 0}.svc-name{display:flex;flex-direction:column;gap:2px}.svc-name b{font-size:14.5px}.svc-name span{font-size:12.5px;color:var(--muted)}.svc-state{display:flex;flex-direction:column;gap:2px}@media (max-width:760px){.svc-row{grid-template-columns:1fr}}.pipe-since{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.pipe-since input{padding:6px 10px;border:1px solid var(--line2);border-radius:var(--r-ctl);font:inherit;font-size:13px;color:var(--ink);background:#fff}.pipe-switch{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 6px}.pipe-switch .small{flex:1;min-width:220px}.loss-list{gap:16px;margin:12px 0}.loss,.loss-list{display:flex;flex-direction:column}.loss{gap:4px;padding-bottom:14px;border-bottom:1px solid var(--line)}.loss:last-child{border-bottom:0;padding-bottom:0}.loss-head{display:flex;align-items:baseline;gap:8px}.loss-head b{font-size:13.5px}.loss-head .num{white-space:nowrap}.gap-no{flex:none;width:18px;font-size:12px;color:var(--faint)}.gap-count{margin-left:auto;white-space:nowrap;font-size:13px}.gap-count b{font-size:15px;font-weight:600}.gap-sub{margin-left:26px}.loss-ex{margin-top:6px;padding-left:10px;border-left:2px solid var(--line2)}.quote.good{border-left-color:var(--good)}.loss-list.compact{gap:10px}.loss-list.compact .loss{padding-bottom:10px}.win{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--good)}.win svg{width:13px;height:13px;flex:none}.list-pager{justify-content:flex-start;gap:10px;margin:0 0 10px;flex-wrap:wrap}.list-pager+.tbl{margin-top:0}.crit-filter{align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;color:var(--muted)}.crit-filter,.crit-lines{display:flex;font-size:12.5px}@media (max-width:1200px){.side-sticky{position:static;max-height:none;overflow:visible}}.client-table td{vertical-align:top}.client-table th:first-child{width:34%}.client-table tr.mismatch td{background:var(--warn-soft)}.client-table .quote{margin-top:4px}th.sortable{padding:0 10px 10px}th.sortable a{color:var(--muted);display:inline-flex;align-items:center;gap:5px}th.sortable a:hover{color:var(--ink);text-decoration:none}th.sortable.on a{color:var(--ink)}th.sortable span{font-size:10px}.table-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}.btn.sm{padding:5px 10px;font-size:12.5px}.table-tools{margin:0 0 10px}.table-tools .list-pager{margin:0}.score-cell .bar{width:72px}.top{top:0;z-index:30}.call-bar,.top{position:sticky}.call-id{flex:1;min-width:240px;overflow:hidden}.call-bar .facts,.call-bar h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-bar .facts{display:block;margin-top:2px;font-size:12.5px}.call-score{flex:none;display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.call-score .num{font-family:var(--font-head);font-size:24px;font-weight:600}.call-bar audio.player{height:40px}.call-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:20px;align-items:start}.call-top.one{grid-template-columns:minmax(0,1fr)}.call-grid{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:20px;align-items:start}.call-grid .side-sticky{top:calc(16px + var(--top-h) + var(--callbar-h));max-height:calc(100vh - 32px - var(--top-h) - var(--callbar-h))}@media (max-width:1400px){.call-grid{grid-template-columns:minmax(0,1fr) 400px}}@media (max-width:1200px){.call-grid,.call-top,.call-top.one{grid-template-columns:1fr}.call-bar{position:static}}.coach-list{gap:14px}.coach,.coach-list{display:flex;flex-direction:column}.coach{gap:6px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:var(--r-ctl);background:#fcfcfb}.coach.crit{border-left-color:var(--crit)}.coach.warn{border-left-color:var(--warn)}.coach.good{border-left-color:var(--good)}.coach-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.coach .sec{margin-top:2px}.coach p{line-height:1.5}.line{scroll-margin-top:calc(16px + var(--top-h) + var(--callbar-h))}.line:has(.marks){background:#fffcf4;border-left:2px solid var(--warn)}.line.on{background:var(--accent-soft)}@media (max-width:1100px){.g-kc{grid-template-columns:1fr}}.op-row .who{min-width:0}.fold{flex-direction:column}.fold,.fold>summary{display:flex;gap:14px}.fold>summary{cursor:pointer;list-style:none;align-items:center;justify-content:space-between}.fold>summary::-webkit-details-marker{display:none}.fold>summary:after{content:"";width:8px;height:8px;flex:none;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);margin-bottom:3px;transition:transform .15s}.fold[open]>summary:after{transform:rotate(-135deg);margin-bottom:-3px}.fold-title{display:flex;align-items:baseline;gap:10px;min-width:0}.fold-title b{font-family:var(--font-head);font-size:15px;font-weight:600}.fold-title .hint{font-size:12.5px;color:var(--muted)}.fold>summary:hover .fold-title b{color:var(--accent-ink)}.row-link td{padding:0;height:1px}.row-link:hover td{background:#faf9f6}.cell{display:flex;flex-direction:column;justify-content:center;height:100%;padding:12px 10px;color:inherit}a.cell,a.cell:hover{text-decoration:none}a.cell:hover{color:inherit}a.cell-person .op-link{color:var(--ink);font-weight:500}a.cell-person:hover .op-link{color:var(--accent);text-decoration:none}.quiet-link{color:var(--muted)}.quiet-link:hover{color:var(--ink)}.loss-list.wide .loss{max-width:96ch}.tbl.busy{opacity:.5;cursor:progress}.row-go{width:30px;padding-left:0}.row-go .cell{padding-left:0;align-items:flex-end;color:var(--line2)}.row-go svg{width:14px;height:14px}.row-link:hover .row-go .cell{color:var(--accent)}a.cell-person .op-link{border-bottom:1px dashed var(--line2)}a.cell-person:hover .op-link{border-bottom-color:var(--accent)}.ext{display:inline-flex;align-items:center;gap:4px}.ext svg{width:11px;height:11px;flex:none;opacity:.75}.ext:hover svg{opacity:1}.legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:12px}.legend b{font-weight:500;color:var(--ink)}.legend .sep{color:var(--faint)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.legend svg{width:11px;height:11px;opacity:.75;vertical-align:-1px}.kpi-main{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.kpi-main .kpi-v{color:var(--accent-ink)}.client-state{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr) minmax(180px,auto);gap:20px;align-items:center}.cs-now .sec{margin-bottom:4px}.cs-label{font-family:var(--font-head);font-size:19px;font-weight:600;display:flex;align-items:center;gap:8px}.cs-label.good{color:var(--good)}.cs-label.warn{color:var(--warn)}.cs-label.crit{color:var(--crit)}.cs-steps{display:flex;gap:10px}.cs-step{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--ground)}.cs-step.on{background:var(--surface);border-color:var(--line2)}.cs-step.on.good{border-color:var(--good);background:var(--good-soft)}.cs-step.on.warn{border-color:var(--warn);background:var(--warn-soft)}.cs-step-l{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cs-step-v{font-size:14px;font-weight:500}.cs-step:not(.on) .cs-step-v{color:var(--faint)}.cs-counts{display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--line);padding-left:16px}.cs-counts b{font-size:15px}.path{display:flex;flex-direction:column}.path-day{font-size:11.5px;color:var(--muted);padding:10px 0 4px;border-top:1px solid var(--line);margin-top:6px}.path>.path-day:first-child{border:0;margin:0;padding-top:0}.path-item{display:grid;grid-template-columns:46px 10px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:6px 0}.path-time{font-size:12px;color:var(--faint)}.path-dot{width:8px;height:8px;border-radius:50%;background:var(--line2);align-self:center}.path-dot.good{background:var(--good)}.path-dot.warn{background:var(--warn)}.path-dot.crit{background:var(--crit)}.path-title{font-weight:500}.path-title.plain{color:var(--muted);font-weight:400}.path-sum{margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.path-score{text-align:right;white-space:nowrap}.fact-vals{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.funnel{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:8px}.fstep.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}.funnel-loss{margin-bottom:16px}.loss-line{display:flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loss-line b,.loss-line:hover{color:var(--ink)}.loss-line b{margin-left:auto}@media (max-width:1100px){.funnel{grid-template-columns:repeat(4,minmax(0,1fr))}}.fstep.kpi-main{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft)}@media (max-width:1100px){.funnel-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.issued{padding:12px 14px;border:1px solid var(--good);border-radius:var(--r-ctl);background:#f3faf4;margin-bottom:12px}.issued code{font-family:var(--font-mono);font-size:15px;padding:1px 6px;background:#fff;border:1px solid var(--line);border-radius:4px;user-select:all}.user-acts{display:inline-flex;gap:6px}.user-acts form{display:inline}.issue-forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:8px}.issue{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:var(--r-ctl);background:#fcfcfb}.issue h3{font-size:15px;margin:0}.issue .field{display:flex;flex-direction:column;gap:4px}.issue .btn{align-self:flex-start;margin-top:4px}@media (max-width:1100px){.issue-forms{grid-template-columns:1fr}}.setting{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) 140px;gap:12px;align-items:center}.setting-l{display:flex;flex-direction:column;gap:2px}.setting-c{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.setting-c .input{max-width:260px}.setting-c .input.num{max-width:110px}.setting-c code{font-family:var(--font-mono);font-size:12px;padding:1px 6px;background:#fff;border:1px solid var(--line);border-radius:4px}.setting-s{text-align:right;font-size:12px}@media (max-width:1100px){.setting{grid-template-columns:1fr}.setting-s{text-align:left}}.prime-label{color:#66528d;font-weight:600;display:block}.guide{--g:#246775;--gs:#eaf4f5;min-width:0;display:grid;gap:24px;font-size:15px;line-height:1.6}.guide-rkc{--g:#915719;--gs:#fbf2e6}.guide-op{--g:#305caf;--gs:#ecf1fb}.guide-kc{--g:#72549a;--gs:#f3eef9}.guide-draft{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 20px;border-left:4px solid #b77a24;background:#fff4dd;color:#684813;font-size:13px}.guide-draft div{display:grid;gap:2px}.guide-draft b{font-size:15px}.guide-roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.guide-roles a{display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);min-width:0}.guide-roles a span{color:var(--muted);font-size:12px;line-height:1.45}.guide-roles a[aria-current]{border-color:var(--g);background:var(--gs);box-shadow:inset 0 3px var(--g)}.guide-hero{background:#17333e;color:#fff;border-radius:12px;padding:32px 36px;border-left:6px solid var(--g);display:grid;gap:14px}.guide-kicker{color:#b8d6de;font-size:13px;letter-spacing:.05em}.guide-hero h1{font-size:32px;max-width:28ch;line-height:1.2}.guide-hero p{color:#d2e0e4;max-width:72ch}.guide-hero a{color:#fff;text-decoration:none;text-underline-offset:5px;justify-self:start;font-weight:600}.guide-index{display:flex;flex-wrap:wrap;gap:10px 24px;padding:0 0 18px;border-bottom:1px solid var(--line2)}.guide-index a{color:var(--g);font-weight:600;font-size:14px}.guide-prime,.guide-section{min-width:0;padding:28px;background:#fff;border:1px solid var(--line);border-radius:10px;scroll-margin-top:20px}.guide-heading{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}.guide-heading>span{color:var(--g);background:var(--gs);padding:5px 10px;border-radius:6px;font:500 16px/1.6 var(--font-mono)}.guide-heading h2{font-size:21px;line-height:1.3}.guide-heading p{font-size:14px;color:var(--muted);margin-top:6px;max-width:76ch}.guide-steps article{display:flex;gap:18px;padding:20px 0;border-top:1px solid var(--line)}.guide-steps article:first-child{padding-top:0;border:0}.guide-steps article:last-child{padding-bottom:0}.guide-step-no{flex:none;color:var(--g);font:500 22px/1.4 var(--font-mono)}.guide-steps h3{font-size:17px}.guide-steps p{margin:8px 0;max-width:82ch}.guide-steps a{font-size:14px;font-weight:600;color:var(--g)}.guide-metrics{margin:0}.guide-metrics>div{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,3fr);gap:24px;padding:18px 0;border-top:1px solid var(--line)}.guide-metrics dt{font-weight:600}.guide-metrics dd{margin:0;max-width:82ch}.guide-caution,.guide-example{margin:22px 0 0;padding:20px 24px;border-left:4px solid var(--g);background:var(--gs);border-radius:0 8px 8px 0}.guide-caution p,.guide-example p{margin-top:6px;max-width:86ch}.guide-caution{border-color:#b77a24;background:#fff5e3;color:#674718}.guide-checks{padding-left:24px;margin:0}.guide-checks li{padding-left:8px;max-width:85ch}.guide-checks li+li{margin-top:14px}.guide-checks li::marker{color:var(--g);font-weight:600}.guide-detail{border-top:1px solid var(--line);padding:16px 0}.guide-detail summary{cursor:pointer;font-weight:600;color:var(--g)}.guide-detail p{margin-top:12px;max-width:86ch}.guide-caution+.guide-detail{margin-top:22px}.guide-prime{background:#f1eef8;border-color:#d8cde8;--g:#67488e;--gs:#e6def1}.guide-prime>p{max-width:86ch}.guide-prime .guide-detail{margin-top:18px;border-color:#d8cde8}.guide-footer{display:flex;justify-content:space-between;gap:20px;font-size:13px;color:var(--muted)}.guide-footer a{white-space:nowrap}@media(max-width:1100px){.guide-roles{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-draft{align-items:flex-start;flex-direction:column}.guide-metrics>div{grid-template-columns:1fr;gap:6px}}@media(max-width:600px){.guide-hero{padding:24px}.guide-hero h1{font-size:27px}.guide-prime,.guide-section{padding:20px}.guide-heading{gap:12px}.guide-roles a{padding:12px}.guide-footer{flex-direction:column}}.sales-stage-link{display:flex;flex-direction:column;gap:8px;min-height:126px;text-decoration:none;color:inherit}.sales-stage-link:hover{color:var(--accent-ink)}.sales-stage-status{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.sales-stage-status .loss-line{margin-top:7px}.sales-overview .kpi{text-decoration:none;color:inherit}.sales-overview th{font-size:12px;text-transform:none;letter-spacing:0}.sales-outcomes{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.sales-outcomes summary{cursor:pointer;font-weight:500}.sales-records{border-top:1px solid var(--line);margin-top:18px;padding-top:24px;display:flex;flex-direction:column;gap:16px;scroll-margin-top:80px}.sales-records-table td:first-child,.sales-records-table th:first-child{padding-left:0}.sales-records-table td:last-child,.sales-records-table th:last-child{padding-right:0}.sales-records-table .record-date{width:160px}.sales-records-table .record-score{width:100px}.sales-records-table .record-action{width:160px;white-space:nowrap}.sales-records-table td{padding-top:12px;padding-bottom:12px}.fstep:has(>.sales-stage-link:is(:hover,:focus-visible)),:is(a.kpi,a.fstep,a.card):is(:hover,:focus-visible){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);text-decoration:none}.conversation-sections{display:flex;flex-wrap:wrap;gap:20px;margin:20px 0 16px}.integrated-review{display:flex;flex-direction:column;align-items:stretch}.integrated-review>.side-sticky{position:static;max-height:none;overflow:visible;align-self:stretch;padding-right:0}.integrated-coaching .coach{padding:18px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;max-width:none}.integrated-coaching .coach:last-child{border-bottom:0}.integrated-coaching .coach>p,.integrated-coaching .quote{max-width:90ch}.integrated-coaching .coach-list{gap:0}.integrated-coaching .coach-head,.integrated-coaching .coach>p,.integrated-coaching .quote{margin-top:0;margin-bottom:0}.coaching-findings{border-top:1px solid var(--line);padding-top:16px}.coaching-findings section{margin-top:18px;max-width:90ch}.coaching-findings p{margin-top:6px}#conversation-coach,#conversation-rubric,#conversation-transcript,[id^=criterion-]{scroll-margin-top:calc(20px + var(--top-h) + var(--callbar-h))}html{scrollbar-gutter:stable;scrollbar-color:var(--muted) var(--ground)}*{scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--muted)}::-webkit-scrollbar-thumb:is(:hover,:active){background:var(--ink)}@media(forced-colors:active){html{scrollbar-color:auto}}
/* ==========================================================================
   SCANDINAVIAN ARCHITECTURAL DESIGN SYSTEM — CLIENTS LEDGER (PREMIUM SUITE)
   Refined radii: 6px controls/buttons/inputs, 8px panels/cards, 12px pills/drawers, 9999px bars.
   Palette: Scandinavian warm ground (#f8f7f4), soft slate text (#1e293b), Nordic navy accent (#1e3d59).
   ========================================================================== */
.cp {
  --bg: #fbfaf8;
  --surface: #ffffff;
  --surface-subtle: #f7f6f2;
  --surface-alt: #f2efe9;
  --border: #e4e0d8;
  --border-light: #efece6;
  --border-strong: #d8d3c9;
  --border-dark: #b9b2a5;
  --text: #1f2730;
  --text-muted: #5d6875;
  --text-faint: #8d97a2;
  --accent: #0d7a8a;
  --accent-hover: #0a5f6b;
  --accent-soft: #eaf4f5;
  --prime: #8c611e;
  --prime-bg: #fdfbf7;
  --prime-border: #e6d8be;
  --prime-gold: #b38230;
  --prime-soft: #f8f2e6;
  --good: #2f7a4e;
  --good-bg: #edf5f0;
  --good-border: #c3ddcd;
  --warn: #9a6a12;
  --warn-bg: #fdf8f0;
  --warn-border: #ead9b6;
  --danger: #a8365c;
  --danger-bg: #fbeef2;
  --danger-border: #eec6d3;
  --r-btn: 3px;
  --r-input: 3px;
  --r-card: 4px;
  --r-badge: 2px;
  --r-bar: 9999px;
  --font-head: "Source Serif 4", Georgia, "Times New Roman", serif;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body, var(--font-text, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif));
  font-size: 13.5px;
  line-height: 1.45;
}

/* SVG ICON CONSTRAINTS — PREVENT UNWANTED BLOWUPS */
.cp .num {
  font-family: inherit;
  font-variant-numeric: tabular-nums;
}


.cp svg {
  flex-shrink: 0;
}
.cp .btn svg, .cp .btn-action svg, .cp .btn-crm svg, .cp .vlink svg, .cp a svg, .cp button svg {
  width: 14px;
  height: 14px;
  max-width: 14px;
  max-height: 14px;
}

.cp .app {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  min-height: 100vh;
  background: var(--bg);
}

/* Левая панель у экрана «Клиенты» — та же, что на всех остальных экранах.
   Свой набор цветов меню здесь был ошибкой: тёмная панель портала белела,
   а белые подписи на ней пропадали (владелец 17.09.2026). */

.cp .top {
  display: none;
}

.cp .content {
  display: block;
  padding: 24px 32px 60px;
  max-width: 1680px;
  width: 100%;
  margin: 0 auto;
  background: var(--bg);
}

/* TOP HEADER */
.top-bar {
  display: flex;
  align-items: flex-end;
  gap: 20px;
  margin-bottom: 18px;
}

/* Одна полоса управления: отчёт, период, выгрузка. Всё одной высоты —
   лесенка из трёх рядов разной высоты забракована 17.09.2026. */
.head-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  padding: 12px 0;
  margin-bottom: 20px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.head-bar .segmented-control, .head-bar .period-nav, .head-bar .btn-action { height: 34px; box-sizing: border-box; border-radius: 6px; box-shadow: none; }
.head-bar .seg-btn { padding: 0 13px; font-size: 13px; }
.head-bar .seg-btn.active, .head-bar .seg-btn[aria-current="page"] { box-shadow: none; }
.head-bar .period-control { gap: 12px; }
.head-bar .period-label { min-width: 190px; justify-content: center; font-weight: 500; font-variant-numeric: tabular-nums; }
.head-bar .btn-action { font-size: 13px; }


.page-title-row {
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
}

.page-title {
  font-family: var(--font-head);
  font-size: 29px;
  font-family: var(--font-head);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -.02em;
  color: var(--text);
  line-height: 1.2;
}



.page-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin-top: 4px;
}



.segmented-control {
  display: inline-flex;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(0,0,0,0.02);
}

.seg-btn {
  padding: 7px 14px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--text-muted);
  background: transparent;
  border: none;
  border-right: 1px solid var(--border);
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all .15s;
}

.seg-btn:last-child {
  border-right: none;
}

.seg-btn:hover {
  background: var(--surface-subtle);
  color: var(--text);
}

.seg-btn.active, .seg-btn[aria-current="page"] {
  background: var(--accent-soft);
  color: var(--accent);
  font-weight: 600;
  box-shadow: inset 0 -2px 0 var(--accent);
}

.btn-action {
  height: 34px;
  padding: 0 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
  box-shadow: 0 1px 2px rgba(0,0,0,0.02);
  white-space: nowrap;
}
.top-bar > .cc-tools { flex-shrink: 0; }

.btn-action:hover {
  background: var(--surface-subtle);
  border-color: var(--border-strong);
  color: var(--text);
}

/* FUNNEL GRID & COLUMNS */
.funnel-rows {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--border-light);
}
.funnel-row {
  display: grid;
  grid-template-columns: 62px 186px 56px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 11px 0;
  border-bottom: 1px solid var(--border-light);
}
.funnel-row.active {
  background: var(--accent-soft);
}
.f-main {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.f-line {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) 190px;
  gap: 16px;
  align-items: center;
}
.f-step-num {
  color: var(--text-faint);
  font-size: 11.5px;
  padding-top: 4px;
}
.f-title {
  color: var(--text);
  padding-top: 3px;
}
.f-title:hover {
  color: var(--accent);
}
.f-count {
  font-family: var(--font-head);
  font-size: 23px;
  font-weight: 600;
  line-height: 1;
  text-align: right;
}
.f-count.good {
  color: var(--good);
}
.f-count.crit {
  color: var(--danger);
}
.f-bar-track {
  display: block;
  height: 9px;
  background: var(--border-light);
}
.f-bar-fill {
  display: block;
  height: 9px;
  background: var(--accent);
}
.f-bar-fill.good {
  background: var(--good);
}
.f-bar-fill.crit {
  background: var(--danger);
}
.f-conv {
  font-size: 12.5px;
  color: var(--text-muted);
}
.f-conv.good {
  color: var(--good);
}
.f-conv.crit {
  color: var(--danger);
}
.f-losses {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  font-size: 12.5px;
}
.loss-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 2px 9px;
  border-left: 3px solid var(--border-strong);
  background: var(--surface-subtle);
  color: var(--text-muted);
  white-space: nowrap;
}
.loss-item:hover {
  color: var(--text);
}
.loss-item.warn {
  border-left-color: var(--warn);
  background: var(--warn-bg);
}
.loss-item.crit {
  border-left-color: var(--danger);
  background: var(--danger-bg);
}
.loss-item.info {
  border-left-color: var(--accent);
  background: var(--accent-soft);
}
.loss-item.good {
  border-left-color: var(--good);
  background: var(--good-bg);
}



/* PERIOD CONTROL — вид периода, стрелки и ручные даты одной группой */
.period-control { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.period-nav {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--border);
  border-radius: var(--r-btn);
  background: var(--surface);
  overflow: hidden;
}

.period-arrow {
  display: flex;
  align-items: center;
  padding: 0 11px;
  color: var(--text-muted);
  font-size: 17px;
  line-height: 1;
  text-decoration: none;
}

.period-arrow:hover { background: var(--accent-soft); color: var(--accent); }

.period-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border: 0;
  border-left: 1px solid var(--border-light);
  border-right: 1px solid var(--border-light);
  background: none;
  font: inherit;
  color: var(--text);
  cursor: pointer;
  white-space: nowrap;
}

.period-label:hover { background: var(--surface-subtle); }
.period-label svg { width: 14px; height: 14px; color: var(--text-faint); }

/* WHERE CLIENTS ARE NOW — лента этапов вместо отчётной воронки сверху.
   Показывает не конверсию, а где люди стоят сейчас, поэтому сумма клеток
   совпадает с числом в списке под ней. */
.here-panel { margin-bottom: 16px; }

.here-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 9px;
}

.here-title {
  margin: 0;
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
}

.here-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--text-faint);
}

.hstrip {
  display: flex;
  align-items: stretch;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-card);
  overflow: hidden;
}

.hcell {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 11px 12px 0;
  border-left: 1px solid var(--border-light);
  text-decoration: none;
  color: inherit;
}

.hcell:first-child { border-left: 0; }
.hcell:hover { background: var(--surface-subtle); }

.hn {
  font-family: var(--font-head);
  font-size: 23px;
  font-weight: 600;
  line-height: 1;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

.hl {
  font-size: 12px;
  line-height: 1.3;
  color: var(--text-muted);
  min-height: 31px;
}

.hu { margin-top: auto; height: 3px; background: var(--border-light); }
.hu i { display: block; height: 3px; background: var(--accent); opacity: .45; }

.hcell.on { background: var(--accent-soft); box-shadow: inset 0 2px 0 var(--accent); }
.hcell.on .hl { color: var(--text); }
.hcell.on .hu i { opacity: 1; }

.hgap { flex: 0 0 12px; background: var(--bg); border-left: 1px solid var(--border); border-right: 1px solid var(--border); }

.hcell.out .hn { color: var(--danger); }
.hcell.out .hu i { background: var(--danger); }
.hcell.away .hn { color: var(--prime); }
.hcell.away .hu i { background: var(--prime); }
.hcell.away .hn .crown svg { width: 14px; height: 14px; vertical-align: 2px; color: var(--prime); }
/* Длинные названия этапов не вылезают в соседнюю клетку: у Nordic Prime
   их одиннадцать, и на ноутбуке «Квалификация» наезжала на «Встречу»
   (владелец 17.09.2026). Переносим по слогам, в тесной ленте — мельче. */
.hl { overflow-wrap: anywhere; hyphens: auto; }
.hstrip.many .hcell { padding: 10px 8px 0; }
.hstrip.many .hn { font-size: 20px; }
.hstrip.many .hl { font-size: 11.5px; }

.here-note { margin: 8px 0 0; font-size: 12px; color: var(--text-faint); }

/* Корона Nordic Prime — единственный цветной знак в строке списка:
   премиальное направление должно отличаться с одного взгляда. */
.crown { display: inline-flex; align-items: center; color: var(--prime-gold); }
.crown svg { width: 14px; height: 14px; }

/* Отборы — одна сетка: поиск, четыре списка равной ширины, сброс. На узком
   экране ряд переносится ровными колонками, а не лесенкой с дырой посередине,
   как было на ноутбуке (владелец 17.09.2026). Форма отборов растворяется в
   сетке через display: contents, скрытые поля в раскладке не участвуют. */
.filter-bar {
  display: grid;
  grid-template-columns: minmax(240px, 1.6fr) repeat(4, minmax(0, 1fr)) auto;
  align-items: center;
}

.filter-bar > form.row { display: contents; }
.filter-bar .filter-select { width: 100%; min-width: 0; }
.filter-bar .search-wrap { min-width: 0; }

@media (max-width: 1280px) {
  .filter-bar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .filter-bar .search-wrap { grid-column: 1 / 4; }
}

@media (max-width: 760px) {
  .filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-bar .search-wrap { grid-column: 1 / -1; }
}

.search-wrap {
  flex: 1 1 240px;
  min-width: 200px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface-subtle);
  padding: 0 12px;
  height: 34px;
}

.search-wrap svg {
  width: 14px;
  height: 14px;
  color: var(--text-faint);
  flex-shrink: 0;
}







.filter-select {
  height: 34px;
  padding: 0 26px 0 10px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--text);
  background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235a6677' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;
  border: 1px solid var(--border);
  border-radius: 6px;
  outline: none;
  cursor: pointer;
  appearance: none;
}

.filter-select:hover {
  border-color: var(--border-strong);
}

.filter-select:focus {
  border-color: var(--accent);
}





/* TABLE PANEL & MAIN CLIENTS TABLE */










.filter-active-pill {
  padding: 8px 18px;
  background: #fafaf7;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.list {
  display: flex;
  flex-direction: column;
}
.lrow {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 210px 186px 186px 92px;
  gap: 18px;
  align-items: center;
  padding: 14px 8px;
  border-bottom: 1px solid var(--border-light);
}
.lrow:last-child {
  border-bottom: none;
}
.lrow:hover {
  background: var(--surface-subtle);
  cursor: pointer;
}
.lhead {
  padding: 0 8px 8px;
  border-bottom: 1px solid var(--border);
  color: var(--text-faint);
  font-size: 12px;
}
.lhead a {
  color: inherit;
}





.lname {
  font-weight: 600;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 7px;
}
.lname a {
  color: inherit;
}
.lsub {
  display: block;
  color: var(--text-faint);
  font-size: 12.5px;
  margin-top: 2px;
}
.lstage {
  color: var(--text);
}
.who {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
}

.who > span { min-width: 0; }
.who .score-box { flex: none; margin-top: 1px; }
.who .score-name, .who .lsub { white-space: normal; overflow-wrap: anywhere; }











.score-box {
  min-width: 32px;
  height: 24px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 600;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface-subtle);
  color: var(--text);
  text-decoration: none;
  flex-shrink: 0;
}

.score-box.good, .score-box.high {
  border-color: var(--good-border);
  background: var(--good-bg);
  color: var(--good);
}

.score-box.warn, .score-box.mid {
  border-color: var(--warn-border);
  background: var(--warn-bg);
  color: var(--warn);
}

.score-box.crit, .score-box.danger, .score-box.low {
  border-color: var(--danger-border);
  background: var(--danger-bg);
  color: var(--danger);
}

/* Разбор без балла — самый тихий вид: прочерк на сером, не тревога. */
.score-box.neutral, .score-box.muted {
  border-color: var(--border);
  background: var(--surface-subtle);
  color: var(--text-faint);
}

.score-box.prime-box {
  border-color: var(--prime-border);
  background: var(--prime-bg);
  color: var(--prime);
}



.score-name {
  font-size: 11.5px;
  color: var(--text);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.score-name a {
  color: inherit;
  text-decoration: none;
}

.score-name a:hover {
  color: var(--accent);
  text-decoration: underline;
}





/* SLIDE-OUT CLIENT DOSSIER (DRAWER) */




.drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 680px;
  max-width: 95vw;
  background: var(--surface);
  border-left: 1px solid var(--border);
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
  z-index: 201;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .28s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: -8px 0 32px rgba(0,0,0,0.08);
  overflow: hidden;
}

.drawer.open {
  transform: translateX(0);
}











.btn-close {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 13px;
  transition: all .15s;
}

.btn-close:hover {
  background: var(--surface-alt);
  color: var(--text);
  border-color: var(--border-strong);
}







/* HISTORY METRICS STRIP */






































.act.primary {
  background: var(--accent);
  border-color: var(--accent);
  color: #ffffff;
}
.act.primary:hover {
  background: var(--accent-hover);
}





.hfoot .hlink {
  margin-left: 0;
}

/* Разбор разговора внутри досье */



.rscore.good, .rscore.high { color: var(--good); }
.rscore.warn, .rscore.mid { color: var(--warn); }
.rscore.crit, .rscore.danger, .rscore.low { color: var(--danger); }


























.vcriterion.good, .vcriterion.high { border-left-color: var(--good); }
.vcriterion.warn, .vcriterion.mid { border-left-color: var(--warn); }
.vcriterion.crit, .vcriterion.danger, .vcriterion.low { border-left-color: var(--danger); }













.vcrit-status.crit, .vcrit-status.danger {
  background: var(--danger-bg);
  color: var(--danger);
  border: 1px solid var(--danger-border);
}
















/* TRANSCRIPT ROWS */










/* BACKWARD-COMPATIBILITY SHIMS FOR TESTS */


.vstate .dot { width: 7px; height: 7px; border-radius: 50%; }
/* Оценка разговора: тонированная плашка с числом. Моноширинная коробка
   с надписью «без балла» стояла в половине строк и читалась как ошибка —
   разбора без балла достаточно обозначить прочерком (владелец 17.09.2026). */
.vgrade {
  min-width: 30px;
  padding: 2px 7px;
  border: 0;
  border-radius: 3px;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-decoration: none;
}









.vlink { border: none; background: none; color: var(--accent); cursor: pointer; font-size: 12px; text-decoration: none; }
.vlink:hover { text-decoration: underline; }

















@media (max-width: 1200px) {
  .funnel-grid { grid-template-columns: repeat(4, 1fr); }
  .losses-grid { grid-template-columns: repeat(4, 1fr); }
  .f-col:nth-child(4) { border-right: none; }
}
@media (max-width: 800px) {
  .cp .app { grid-template-columns: 1fr; }
  .cp .rail { position: static; height: auto; }
  .funnel-grid { grid-template-columns: repeat(2, 1fr); }
  .losses-grid { grid-template-columns: repeat(2, 1fr); }
  .drawer { width: 100vw; }
}

/* ROW SUMMARY — сводка раскрывается прямо в таблице, под своей строкой.

   Одна вертикаль: подписи слева, содержимое справа, всё выровнено по общей
   сетке. Ни рамок, ни заливок — иерархию держат размер, вес и отступ.
   Цвет несёт одно слово состояния наверху; заливки во весь блок делали из
   любой сводки аварию (владелец 17.09.2026). */
.lrow.open {
  background: var(--accent-soft);
  box-shadow: inset 2px 0 0 var(--accent);
  border-bottom-color: transparent;
}

.rsum {
  background: var(--surface);
  border-top: 1px solid #d8e7e9;
  border-bottom: 1px solid var(--border);
  box-shadow: inset 2px 0 0 var(--accent);
  padding: 0 24px 24px 68px;
}



/* Итог: одно состояние, причина, счёт разговоров и два выхода. */
.rsum-verdict {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 15px 0;
  border-bottom: 1px solid var(--border-light);
}

.rsum-state { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; font-size: 16px; }
.rsum-state b { font-weight: 600; color: var(--text); }
.rsum-state b.crit { color: var(--danger); }
.rsum-state b.warn { color: var(--warn); }
.rsum-state b.info { color: var(--accent); }
.rsum-state b.muted { color: var(--text-muted); }
.rsum-state small { font-size: 13px; color: var(--text-faint); }

.rsum-acts { margin-left: auto; flex: none; display: flex; align-items: center; gap: 18px; }






/* Две колонки: путь слева, справка справа за волосяной линией. */
.rsum-cols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; padding-top: 16px; }
.rsum-path { padding-right: 32px; min-width: 0; }
.rsum-side { padding-left: 32px; border-left: 1px solid var(--border); display: flex; flex-direction: column; gap: 22px; }





.rsum-step {
  display: grid;
  grid-template-columns: 96px 18px minmax(0, 1fr) 44px;
  column-gap: 10px;
}

.rsum-step > * { padding: 7px 0; }

.rsum-dot { position: relative; display: flex; justify-content: center; }
.rsum-dot::before { content: ""; position: absolute; top: 0; bottom: 0; width: 1px; background: var(--border); }
.rsum-step:first-child .rsum-dot::before { top: 14px; }
.rsum-step:last-child .rsum-dot::before { bottom: auto; height: 14px; }
.rsum-step:only-child .rsum-dot::before { display: none; }
.rsum-dot::after { content: ""; position: relative; margin-top: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); }
.rsum-step.stage .rsum-dot::after { box-sizing: border-box; width: 7px; height: 7px; margin-top: 7px; background: var(--surface); border: 1.5px solid var(--border-dark); }
.rsum-step.end .rsum-dot::after { box-sizing: border-box; width: 11px; height: 11px; margin-top: 5px; background: var(--surface); border: 2px solid var(--danger); }


.rsum-title { font-weight: 500; color: var(--text); }
.rsum-step.end .rsum-title { color: var(--danger); }
.rsum-step.end.warn .rsum-title { color: var(--warn); }
.rsum-step.end.warn .rsum-dot::after { border-color: var(--warn); }

.rsum-step.back .rsum-dot::after { box-sizing: border-box; width: 9px; height: 9px; background: var(--surface); border: 2px solid var(--warn); }
.lsub .warn { color: var(--warn); }
















/* О клиенте — справка из amoCRM, собранная на одной подложке. */





@media (max-width: 900px) {
  .rsum { padding-left: 18px; }
  .rsum-verdict { flex-wrap: wrap; }
  .rsum-acts { margin-left: 0; }
  .rsum-cols { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .rsum-path { padding-right: 0; }
  .rsum-side { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--border); }
  .rsum-step { grid-template-columns: 84px 14px minmax(0, 1fr) 40px; }
  .hstrip { flex-wrap: wrap; }
  .hcell { flex: 1 1 130px; }
}

/* CLIENT CARD — карточка клиента по образцу 17.09.2026: итог и этапы,
   разбор пути, путь по дням слева и справка на подложках справа. */
/* Ширину держит общая рамка содержимого (.cp .content, 1680px): у карточки
   своего предела нет, иначе она уже списка клиентов (владелец 18.09.2026). */
.cc { display: flex; flex-direction: column; gap: 18px; }
.cc-head { display: flex; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.cc-title { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.cc-title h1 { margin: 0; font-family: var(--font-head); font-size: 30px; line-height: 1.15; }
.cc-title .crown svg { width: 20px; height: 20px; vertical-align: 2px; }
.cc-meta { margin: 0; color: var(--text-muted); }
.cc-tools { margin-left: auto; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cc-tools .btn-action svg { width: 13px; height: 13px; }
.cc-box { background: var(--surface); border: 1px solid var(--border); border-radius: 4px; }
.cc-h { margin: 0 0 10px; font-family: var(--font-head); font-size: 16px; line-height: 1.25; font-weight: 600; color: var(--text); letter-spacing: 0; }
.cc-h small { display: block; margin-top: 2px; font-family: var(--font-body, var(--font-text)); font-size: 12px; font-weight: 400; color: var(--text-faint); }
.cc-quiet { margin: 0; color: var(--text-muted); }

.cc-verdict { margin: 0; padding: 16px 22px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; font-size: 18px; border-bottom: 1px solid var(--border-light); }
.cc-verdict b { font-weight: 600; }
.cc-verdict b.crit { color: var(--danger); } .cc-verdict b.warn { color: var(--warn); } .cc-verdict b.info, .cc-verdict b.neutral { color: var(--accent); } .cc-verdict b.good { color: var(--good); } .cc-verdict b.muted { color: var(--text-muted); }
.cc-verdict small { font-size: 13px; color: var(--text-faint); }
.cc-verdict small.warn { color: var(--warn); }
.cc-steps { list-style: none; margin: 0; padding: 16px 22px 18px; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 12px 8px; }
.cc-step { display: flex; flex-direction: column; gap: 6px; min-width: 0; font-size: 12.5px; }

.cc-step-name { color: var(--text-faint); overflow-wrap: anywhere; hyphens: auto; }
.cc-step-when { color: #b9b2a5; font-variant-numeric: tabular-nums; }
.cc-step.on .cc-bar { background: var(--accent); }
.cc-step.on .cc-step-name { color: var(--text); }
.cc-step.on .cc-step-when { color: var(--text-faint); }
.cc-step.crit .cc-bar { background: var(--danger); } .cc-step.crit .cc-step-when { color: var(--danger); }
.cc-step.warn .cc-bar { background: var(--warn); } .cc-step.warn .cc-step-when { color: var(--warn); }
.cc-step.good .cc-bar { background: var(--good); }
.cc-step.muted .cc-bar { background: var(--border-dark); }
.cc-step.crit .cc-step-name, .cc-step.warn .cc-step-name, .cc-step.accent .cc-step-name { font-weight: 600; }
.cc-step.accent .cc-step-when { color: var(--accent); }

.cc-review { padding: 16px 22px 18px; display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 10px 24px; }
.cc-review .cc-h { margin: 0; }
.cc-review.empty { border-style: dashed; border-color: var(--border-strong); align-items: baseline; }
.cc-review .journey-analysis { max-width: 80ch; }

.cc-cols { display: grid; grid-template-columns: minmax(0, 1fr) 400px; padding: 18px 22px 22px; }
.cc-path { padding-right: 32px; min-width: 0; }
.cc-path-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 4px; }
.cc-path-head .cc-h { margin: 0; }
.cc-filter { display: flex; gap: 14px; font-size: 12.5px; }
.cc-filter label { cursor: pointer; color: var(--accent); }
.cc-filter input { position: absolute; opacity: 0; pointer-events: none; }
.cc-filter label:has(input:checked) { color: var(--text); font-weight: 500; }
.cc-filter label:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.cc-path:has(input[value="talk"]:checked) .cc-ev:not(.call):not(.meeting):not(.chat) { display: none; }
.cc-path:has(input[value="stage"]:checked) .cc-ev.call, .cc-path:has(input[value="stage"]:checked) .cc-ev.meeting, .cc-path:has(input[value="stage"]:checked) .cc-ev.chat { display: none; }

.cc-events { list-style: none; margin: 0; padding: 0; }
.cc-ev { display: grid; grid-template-columns: 52px 18px minmax(0, 1fr) 44px; column-gap: 10px; }
.cc-ev > * { padding: 6px 0; }
.cc-time { color: var(--text-muted); font-variant-numeric: tabular-nums; }
.cc-ev .rsum-dot::before { top: 0; bottom: 0; height: auto; display: block; }
.cc-ev.stage .rsum-dot::after, .cc-ev.back .rsum-dot::after { box-sizing: border-box; width: 7px; height: 7px; margin-top: 7px; background: var(--surface); border: 1.5px solid var(--border-dark); }
.cc-ev.back .rsum-dot::after { border-color: var(--warn); }
.cc-ev.end .rsum-dot::after { box-sizing: border-box; width: 11px; height: 11px; margin-top: 5px; background: var(--surface); border: 2px solid var(--danger); }
.cc-ev.end.warn .rsum-dot::after { border-color: var(--warn); }

.cc-t { font-weight: 500; color: var(--text); }
.cc-ev.end .cc-t { color: var(--danger); } .cc-ev.end.warn .cc-t { color: var(--warn); }
.cc-m { color: var(--text-muted); }




.cc-side { padding-left: 32px; border-left: 1px solid var(--border); display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cc-panel { margin: 0 -14px; padding: 12px 14px 14px; background: var(--surface-subtle); border-radius: 4px; }
.cc-act { margin: 0; font-weight: 500; color: var(--text); }


 



.cc-kv { margin: 0; display: grid; grid-template-columns: 124px minmax(0, 1fr); gap: 0 14px; }
/* Значение с цитатой занимает несколько строк, и без линейки не видно, где
   кончается одно поле и начинается другое (владелец 18.09.2026). */
.cc-kv dt, .cc-kv dd { padding: 7px 0; border-top: 1px solid var(--border); }
.cc-kv dt:first-of-type, .cc-kv dd:first-of-type { border-top: 0; padding-top: 0; }
.cc-kv dt { color: var(--text-faint); }
.cc-kv dd { margin: 0; min-width: 0; display: flex; flex-direction: column; }
.cc-kv small, .cc-leads small { color: var(--text-faint); font-size: 12.5px; }
.cc-src { font-size: 12.5px; }
.cc-leads { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cc-leads a { display: flex; flex-direction: column; color: var(--text); }
.cc-leads a:hover span { color: var(--accent); }

@media (max-width: 1100px) {
  .cc-cols { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .cc-path { padding-right: 0; }
  .cc-side { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--border); }
  .cc-panel { margin: 0; }
  .cc-steps { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
  .cc-review { grid-template-columns: minmax(0, 1fr); }
}

/* «Войти как сотрудник»: полоса видна на каждом экране, пока админ смотрит
   чужими глазами, и возвращает в свою учётку одной кнопкой (18.09.2026). */
.imp-bar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 8px 18px;
  background: #3b2f14;
  color: #f6edda;
  font-size: 13px;
}
.imp-bar b { color: #ffffff; font-weight: 600; }
.imp-bar form { margin-left: auto; }
.imp-bar .btn { background: transparent; color: #f6edda; border-color: #7a6634; }
.imp-bar .btn:hover { background: #4d3f1c; color: #ffffff; }

/* Что клиент говорил сам: значение, его цитата и ссылка в то место записи,
   где это прозвучало (владелец 18.09.2026: «важнее, что говорил сам клиент»). */
.cc-said dd { gap: 5px; }
.cc-quote {
  display: block;
  quotes: "«" "»";
  font-style: italic;
  color: #3f6b70;
  border-left: 2px solid var(--accent-soft);
  padding-left: 10px;
  max-width: 48ch;
  line-height: 1.4;
}
.cc-kv dd .cc-old { color: var(--text-faint); }

/* Каталог компании в админке: текст правится прямо на странице, редакция
   показывается как есть — это исходник, а не вёрстка. */



/* Разбор сделки AI-аудитором. Заголовок звена — не плашка, а цветная точка со
   словом: чёрных заливок на этом экране нет (стиль принят 17.09.2026). */















/* Разборы: полоски воронки и экран одного разбора. */









/* Разбор AI открывается поверх списка клиентов: отдельного раздела нет,
   робот на иконке этапа ведёт сюда (владелец 18.09.2026). */

.rv{width:min(1080px,100%);margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 60px rgba(31,39,48,0.24);overflow:hidden}



























.rv-step.off i{background:var(--border-light)}
.rv-step.off b{color:var(--text-faint)}
.rv-step.stop i{background:var(--danger)}
.rv-step.stop b{color:var(--danger);font-weight:500}
.rv-step.stop span{color:var(--danger)}



















/* «Мои звонки» и строки Nordic Prime — макет владельца 19.09.2026. */
.mc-grid{display:grid;grid-template-columns:52px 92px 56px minmax(0,1fr) 200px 18px;gap:14px;align-items:center}
.mc-row{padding:12px 14px;border-bottom:1px solid var(--border);color:inherit;text-decoration:none}
.mc-row:hover{background:var(--surface-2,#f6f4f0)}
.mc-head{padding:8px 14px;font-size:12px;color:var(--text-faint);border-bottom:1px solid var(--border)}
.mc-prime{background:var(--prime-bg);box-shadow:inset 3px 0 0 var(--prime-gold)}
.mc-prime:hover{background:var(--prime-soft)}
.mc-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--prime-soft);color:var(--prime);border:1px solid var(--prime-border);white-space:nowrap}
.mc-chip svg{width:11px;height:11px}
.mc-name{font-weight:600;font-size:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mc-sub{font-size:12.5px;color:var(--text-muted);margin-top:3px}
.mc-script{font-size:11.5px;color:var(--prime);margin-top:3px}
.mc-when,.mc-dur{font-size:12.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.mc-score{width:44px;height:30px;display:grid;place-items:center;border-radius:6px;font-weight:600;font-variant-numeric:tabular-nums;font-size:14px}
.mc-score.good{background:#e8f3ec;color:#1f6b3b}.mc-score.warn{background:#fbf1de;color:#8a5a0b}.mc-score.crit{background:#f9e6ea;color:#9b2946}
.mc-score.none{color:var(--text-faint);font-weight:400;font-size:12px}
.mc-score.prime-none{color:var(--prime);font-weight:500;font-size:11px;text-align:center;line-height:1.15}
.mc-res{font-size:13px}.mc-res.good{color:#1f6b3b;font-weight:600}.mc-res.muted{color:var(--text-muted)}
.mc-go{color:var(--text-faint)}
.mc-bar{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:14px 0 12px}
.mc-tabs{display:flex;gap:4px;background:var(--surface-2,#f1eee8);padding:3px;border-radius:9px}
.mc-tab{padding:7px 12px;border-radius:7px;font-size:13px;color:var(--text-muted);text-decoration:none}
.mc-tab.on{background:#fff;color:var(--text);font-weight:600;box-shadow:0 1px 2px rgba(20,20,19,.08)}
.mc-tab b{font-weight:500;color:var(--text-faint);margin-left:4px}
.mc-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;padding:7px 12px;border:1px solid var(--prime-border);border-radius:9px;background:var(--prime-bg);color:var(--prime);font-weight:600;text-decoration:none}
.mc-box{width:15px;height:15px;border:1.5px solid var(--prime-gold);border-radius:4px;display:grid;place-items:center;font-size:11px;line-height:1;background:#fff}
.mc-check.on .mc-box{background:var(--prime-gold);color:#fff}
.mc-noise{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;font-size:13px;color:var(--text-muted);background:var(--surface-2,#f6f4f0);border-top:1px solid var(--border)}
.mc-noise a{color:var(--accent);font-weight:500;text-decoration:none}
.mc-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0 0;font-size:12.5px;color:var(--text-muted)}
.mc-legend{font-size:12px;color:var(--text-muted);display:flex;gap:6px;align-items:center}
.mc-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mc-pcell{background:var(--prime-bg)}.mc-pcell .hn{color:var(--prime)}


.miss.quiet{background:var(--surface-subtle);border-color:var(--border)}





/* Робот на иконке этапа в списке клиентов и чекбокс «с разбором AI». */
.ai-mark{position:relative;display:grid;place-items:center;width:38px;height:38px}
.ai-bot{position:absolute;right:-1px;top:-1px;width:20px;height:20px;display:grid;place-items:center;border-radius:7px;border:2px solid var(--surface);background:var(--text-faint);color:var(--text-faint)}
.ai-bot svg{width:12px;height:12px}
.ai-bot svg circle,.ai-bot svg rect{fill:#fff}
.ai-bot svg path{fill:none;stroke:#fff}
.ai-bot svg .eye{fill:currentColor}
.ai-bot.crit{background:var(--danger);color:var(--danger)}
.ai-bot.good{background:var(--good);color:var(--good)}
.ai-bot.warn{background:var(--warn);color:var(--warn)}
.ai-check{height:34px;border-color:var(--border);border-radius:var(--r-input);color:var(--text-muted);font-size:12.5px}
.ai-check.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover);font-weight:500}
.ai-box{width:14px;height:14px;display:grid;place-items:center;border:1px solid var(--border-dark);border-radius:3px;background:var(--surface);font-size:10px;line-height:1}
.ai-check.on .ai-box{border-color:var(--accent);color:var(--accent)}
/* Полка разбора в карточке клиента: вывод одной строкой и вход в модалку. */
.cc-aud{display:flex;align-items:center;gap:24px;padding:16px 22px}

.cc-aud .btn-action{flex-shrink:0}












/* Прогоны конвейера в панели администратора. */
.job-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:12px;margin:12px 0}
.job-card{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--r-card)}
.job-card h3{margin:0}
.job-card .field-inline{margin-top:auto}
.job-now{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:10px 14px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r-card);margin-bottom:12px}
.job-log{max-height:280px;overflow:auto;margin:0;padding:12px 14px;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--r-card);font-family:var(--font-mono);font-size:11.5px;line-height:1.5;white-space:pre-wrap}
/* ЭКРАНЫ 18.09.2026 (разговор и кабинеты): в макетах боевые классы портала,
   здесь только то, чего в них не было. */
.hn.crit{color:var(--danger)}.hn.warn{color:var(--warn)}.hn.good{color:var(--good)}
.f-bar-fill.warn{background:var(--warn)}
.cc-filter a{color:var(--accent)}.cc-filter a.on{color:var(--text);font-weight:500}
.cc-src.crit{color:var(--danger)}
/* Пропущенный шаг: слева критерий и балл, справа разбор и готовая фраза.
   Один блок на пяти экранах — классом, а не инлайном. */
.miss{display:grid;grid-template-columns:172px minmax(0,1fr);gap:16px;padding:13px 15px;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--r-card)}
.miss.warn{background:var(--warn-bg);border-color:var(--warn-border)}
.miss-k,.miss-b,.miss-say,.miss-list{display:flex;flex-direction:column;min-width:0}
.miss-k{gap:3px}.miss-b{gap:7px}.miss-list{gap:10px;margin-bottom:18px}
.miss-n{font-family:var(--font-head);font-size:22px;font-weight:600;line-height:1.1;color:var(--danger)}
.miss.warn .miss-n{color:var(--warn)}
.miss-w{font-size:11.5px;color:var(--text-muted)}
.miss-b p{margin:0;color:var(--text-muted);max-width:76ch}
.miss-say{gap:4px;padding-top:9px;border-top:1px solid var(--border)}
.miss-say b{font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-hover)}
.miss-say span{font-family:var(--font-mono);font-size:12px;line-height:1.42}
/* Разговор: оценка и запись в одной коробке, отметки критериев на дорожке. */





.conv-num .hn{font-size:34px}


.conv-play .player{width:100%}








/* Реплик на листе бывает больше двухсот — сетка классом, не инлайном. */
.conv-line{display:grid;grid-template-columns:54px 92px minmax(0,1fr);gap:12px;padding:4px 0}
.conv-line.mark{padding:6px 8px;margin:2px -8px;background:var(--danger-bg);border-radius:3px}
.conv-line .cc-time{color:var(--accent)}
.conv-line.mark .cc-time{color:var(--danger)}

/* «Все критерии с баллами» — макет владельца 19.09.2026. */



.cr{display:flex;flex-direction:column;gap:14px;margin-top:12px}







.cr-ico.done{background:#e3f1e8;color:#1f6b3b}.cr-ico.partial{background:#fbf1de;color:#8a5a0b}.cr-ico.failed{background:#f9e3e8;color:#9b2946}.cr-ico.na,.cr-ico.unknown{background:#eef0f2;color:#8a929b}
.crit-row.done .cr-t,.crit-row.na .cr-t,.crit-row.unknown .cr-t{font-weight:400;color:var(--text-muted)}


.cr-pts.done{background:#e3f1e8;color:#1f6b3b}.cr-pts.partial{background:#fbf1de;color:#8a5a0b}.cr-pts.failed{background:#f9e3e8;color:#9b2946}.cr-pts.na,.cr-pts.unknown{color:#8a929b;font-weight:400}

.mk{display:inline-flex;align-items:center;padding:1px 7px;border-radius:5px;font-size:11px;font-weight:500;background:#eef0f2;color:#5b636c;white-space:nowrap}.mk.zoom{background:#e8eef7;color:#2f5a93}.mk.office{background:#eef3ea;color:#3f6a2e}
.mc-flag{font-size:12px;color:#9b2946;margin-top:3px}.mc-expert{font-size:11px;color:var(--text-faint);text-align:center;line-height:1.15}.mc-kind{display:flex;gap:4px;background:var(--surface-2,#f1eee8);padding:3px;border-radius:10px}.mc-kind a{padding:8px 16px;border-radius:8px;font-size:14px;color:var(--text-muted);text-decoration:none;font-weight:500}.mc-kind a.on{background:#fff;color:var(--text);font-weight:600;box-shadow:0 1px 2px rgba(20,20,19,.08)}.mc-kind a b{font-weight:500;color:var(--text-faint);margin-left:6px}
/* Страница встречи — макет владельца 19.09.2026. */

.mt-y.no{background:var(--danger-bg);border-color:var(--danger-border)}.mt-y.yes{background:#eef6f0;border-color:#cfe5d6}

/* «Разговоры отдела» — колонка менеджера и фильтр по людям. */
.mc-grid.with-who{grid-template-columns:52px 92px 170px minmax(0,1fr) 190px 18px}.mc-who{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--text-muted);min-width:0}.mc-ava{width:26px;height:26px;border-radius:50%;background:var(--surface-2,#efece6);display:grid;place-items:center;font-size:10.5px;font-weight:600;color:var(--text-muted);flex-shrink:0}.mc-chips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}.mc-chip2{padding:5px 11px;border-radius:999px;border:1px solid var(--border);font-size:12.5px;color:var(--text-muted);background:#fff;text-decoration:none}.mc-chip2.on{background:var(--text);color:#fff;border-color:var(--text)}
/* «Отдел продаж» глазами РОПа — макет владельца 19.09.2026. */
.ro{display:flex;flex-direction:column;gap:18px;margin-top:18px}
.ro-sec{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.ro-h{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border)}
.ro-h h2{margin:0;font-family:var(--font-head);font-size:16px;font-weight:600}
.ro-h small{font-size:12.5px;color:var(--text-muted);font-weight:400;margin-left:8px}
.ro-h a{font-size:12.5px;color:var(--accent);white-space:nowrap}
.cs-say{margin:0;padding:12px 18px;font-size:13.5px;line-height:1.55;max-width:90ch;border-bottom:1px solid var(--border)}
.cs-closed{border-bottom:1px solid var(--border)}.cs-closed>summary{cursor:pointer;padding:10px 18px;font-size:13px;color:var(--accent)}.cs-closed[open]>summary{border-bottom:1px solid var(--border)}
.ro-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.ro-al{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-right:1px solid var(--border);color:inherit}
.ro-al:last-child{border-right:0}.ro-al:hover{background:var(--surface-2,#f6f4f0)}
.ro-al .ro-n{font-family:var(--font-head);font-size:28px;font-weight:600;line-height:1}.ro-n.crit{color:#9b2946}.ro-n.warn{color:#8a5a0b}
.ro-al b{font-size:13.5px;font-weight:600}.ro-al span{font-size:12.5px;color:var(--text-muted);line-height:1.45}
.ro-al em{font-style:normal;font-size:12.5px;color:var(--accent);font-weight:500;margin-top:auto}










.ro-tw{overflow-x:auto}
.ro-tbl{width:100%;border-collapse:collapse;font-size:13px}
.ro-tbl th{text-align:left;font-weight:400;font-size:12px;color:var(--text-faint);padding:9px 12px;border-bottom:1px solid var(--border)}
.ro-tbl td{padding:11px 12px;border-bottom:1px solid rgba(31,39,48,.07);vertical-align:middle}
.ro-tbl tr:last-child td{border-bottom:0}.ro-tbl .r{text-align:right}.ro-tbl .num{font-variant-numeric:tabular-nums}
.ro-tbl .crit{color:#9b2946}.ro-tbl .faint{color:var(--text-faint)}
.ro-who{display:flex;gap:10px;align-items:center;color:inherit}.ro-who b{font-weight:600}
.ro-ava{width:28px;height:28px;border-radius:50%;background:var(--surface-2,#efece6);display:grid;place-items:center;font-size:11px;font-weight:600;color:var(--text-muted);flex-shrink:0}
.ro-sc{display:inline-grid;place-items:center;min-width:40px;height:26px;border-radius:6px;font-weight:600;font-variant-numeric:tabular-nums}
.ro-sc.good{background:#e8f3ec;color:#1f6b3b}.ro-sc.warn{background:#fbf1de;color:#8a5a0b}.ro-sc.crit{background:#f9e6ea;color:#9b2946}.ro-sc.none{color:var(--text-faint);font-weight:400}
.ro-tag{display:inline-flex;padding:1px 7px;border-radius:5px;font-size:11px;font-weight:500;background:#efe9f7;color:#5d3f8a;vertical-align:1px}
.ro-note{padding:12px 18px;font-size:12.5px;color:var(--text-muted);background:var(--surface-2,#f6f4f0);border-top:1px solid var(--border)}
/* Качество лидов — макет владельца 19.09.2026. Все классы с префиксом lq-:
   короткие .seg/.g/.r уже заняты в портале и ломали вёрстку. */
.lq-top .btn-action{white-space:nowrap}











@media (max-width:1180px){.lq-pair{grid-template-columns:minmax(0,1fr)}}

.lq{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}
.lq th,.lq td{padding:0 12px;height:34px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--border-light);background:none;text-transform:none;letter-spacing:0;font-weight:400;color:var(--text)}
.lq thead th{height:auto;padding:12px 12px 10px;vertical-align:bottom;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-muted)}
.lq th.lq-l{text-align:left;font-weight:500;font-size:13px}
.lq thead th.lq-l{font:600 16px/1.3 var(--font-head);color:var(--text)}

.lq .lq-lw{background:var(--accent-soft)}
.lq thead .lq-lw{color:var(--accent-hover)}
.lq .lq-fu{color:#c3c8ce}
.lq .lq-cur{color:var(--text-muted);font-style:italic}
.lq .lq-tot th,.lq .lq-tot td{font-weight:700;border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong)}
.lq .lq-r th,.lq .lq-r td{background:var(--warn-bg)}
.lq .lq-r td.lq-lw{background:#f1efe2}
.lq .lq-gap th{color:var(--text-faint);font-weight:400}
.lq tbody tr:last-child th,.lq tbody tr:last-child td{border-bottom:0}
.lq .lq-seg{width:128px;text-align:left;border-left:1px solid var(--border);white-space:normal}





/* Звонок менеджера ОП — макет владельца 19.09.2026 */
.oc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.oc-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--surface-subtle,#efece6);font-size:12.5px;font-weight:500}
.oc-chip.crit{background:#f7e7ea;color:#8e2440;font-weight:600}.oc-chip i{width:7px;height:7px;border-radius:50%;background:#a8365c}
.oc-play{display:flex;align-items:center;gap:16px;padding:10px 16px;margin:0 0 18px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.oc-play audio{flex-grow:1;height:40px}.oc-play a{font-size:13px;font-weight:500}
.oc-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
@media (max-width:1100px){.oc-grid{grid-template-columns:minmax(0,1fr)}}
.oc-main,.oc-side{display:flex;flex-direction:column;gap:18px;min-width:0}
.oc-box{display:flex;flex-direction:column;gap:12px;padding:20px 22px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.oc-box h2{margin:0;font:600 17px/1.3 var(--font-head)}
.oc-bad{border-color:#ebc9d2}.oc-bad h2{color:#8e2440}
.oc-soft{background:var(--surface-subtle,#f6f4f0);border-color:transparent}
.oc-h{display:flex;align-items:baseline;gap:12px}.oc-h span{font-size:13px;color:var(--text-muted)}.oc-h a{margin-left:auto;font-size:13px}
.oc-text{margin:0;max-width:78ch;font-size:14.5px;line-height:1.6}.oc-text.small{font-size:13.5px;line-height:1.5}
.oc-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.oc-main>.oc-two{gap:18px}
@media (max-width:900px){.oc-two{grid-template-columns:minmax(0,1fr)}}
.oc-fact{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:9px;background:var(--surface-subtle,#f6f4f0);font-size:13.5px;line-height:1.45}
.oc-fact span{font-size:12px;color:var(--text-muted)}
.oc-cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border-light);border-radius:9px;overflow:hidden}
.oc-cmp div{display:flex;flex-direction:column;gap:6px;padding:14px 16px;font-size:13.5px;line-height:1.5}
.oc-cmp div+div{border-left:1px solid var(--border-light)}.oc-cmp .talk{background:#fcf5f7}
.oc-cmp span{font-size:12px;font-weight:600;color:var(--text-muted)}.oc-cmp .talk span{color:#8e2440}
.oc-li{display:flex;gap:10px;margin:0;font-size:13.5px;line-height:1.5}
.oc-li svg{flex-shrink:0;margin-top:2px;color:var(--good)}
.oc-li i{flex-shrink:0;width:16px;height:16px;margin-top:2px;border-radius:50%;border:2px solid var(--warn,#b3791d);box-sizing:border-box}
.oc-li.risk i{width:7px;height:7px;margin:7px 4px 0;border:0;background:var(--warn,#b3791d)}
.oc-tip{display:flex;flex-direction:column;gap:8px;padding:18px 22px;border-radius:12px;background:var(--accent-soft)}
.oc-tip span{font-size:12.5px;font-weight:600;color:var(--accent-hover)}.oc-tip p{margin:0;max-width:78ch;font-size:14.5px;line-height:1.55}
.oc-warn{margin:0;padding:10px 12px;border-radius:8px;background:var(--warn-bg);font-size:12.5px;color:#6b5427}
.oc-kv{display:grid;grid-template-columns:120px minmax(0,1fr);margin:0;font-size:13.5px}
.oc-kv dt,.oc-kv dd{margin:0;padding:8px 0;border-top:1px solid var(--border-light)}
.oc-kv dt{color:var(--text-muted)}.oc-kv dd{font-weight:500}
.oc-more{font-size:13.5px;font-weight:500}
/* Кабинет РКЦ — макет владельца 19.09.2026 */
.hstrip .hn.crit,.hstrip .hn .crit{color:var(--danger)}.hstrip .hn .good{color:var(--good)}
.hstrip .hn small{font-size:14px;font-weight:600;margin-left:4px}
.ro-tag.crit{background:#fbeef2;color:#8e2440}.ro-tag.warn{background:var(--warn-bg);color:var(--warn)}




.kp-week a,.kp-week .off{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;color:var(--text-muted);font-size:16px}
.kp-week .off{color:var(--border)}



.kp-spark .bad{stroke:var(--danger)}.kp-spark circle.bad{fill:var(--danger)}


.ro-tbl small.crit,.kp-th .crit{color:var(--danger);font-weight:600}.ro-tbl small.warn{color:var(--warn);font-weight:600}.ro-tbl small.good{color:var(--good);font-weight:600}





.kp-heat tr.team th{color:var(--text-muted)}



.kp-c small.up{color:var(--danger)}


.kp-c.kp-h4 a,.kp-c.kp-h4 small,.kp-c.kp-h4 small.up,.kp-c.kp-h4 small.down{color:#fff}


@media (max-width:900px){.kp-talk,.kp-listen{grid-template-columns:minmax(0,1fr)}}







.kp-rec.bad{border-color:#eec6d3}



.kp-rec.bad .kp-sc{background:#fbeef2;color:var(--danger)}
.kp-rec.bad .kp-eyebrow{color:#8e2440}

/* Автоостановка конвейера: деньги или ключ (владелец 19.09.2026) */


/* Помощь — макет владельца 19.09.2026: читается как статья */








@media (max-width:980px){.hp-layout{grid-template-columns:minmax(0,1fr)}.hp-toc{display:none}}






















@media (max-width:640px){.hp-dl>div{grid-template-columns:minmax(0,1fr);gap:6px}}





.hp-bars .hp-bn.alt{color:var(--prime)}
.hp-bars i.alt{background:var(--prime-gold)}














@media (max-width:1100px){.kp-ticks{margin-left:0}.kp-row{height:auto;flex-wrap:wrap;padding:12px 0}.kp-step,.kp-team{width:auto}.kp-team{text-align:left;padding:0 0 8px}.kp-track{flex-basis:100%;margin-right:0}}
/* Экран разбора — макет владельца 20.09.2026 (audit_leader.html): дорожки «кто что
   делал по дням». Цвет несёт только статус точки; остальное — три уровня текста. */





.rl-btn{padding:8px 14px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);font-size:13px;font-weight:500;color:var(--text)}







.rl-lab.how,.rl-lab.ask{font-family:var(--font-head);font-size:18px;letter-spacing:0;text-transform:none}.rl-lab.ask{color:var(--accent-hover)}.rl-q{font-style:italic;color:#0a5f6b}
/* резюме */
.rl-hand-i.ok{border-left-color:var(--good)}.rl-hand-i.ok .rl-hand-w{color:var(--good)}.rl-hand-i.fail{border-left-color:var(--bad)}.rl-hand-i.fail .rl-hand-w{color:var(--bad)}.rl-hand-i.off .rl-hand-w{color:var(--text-faint)}.rl-steps li.fail{background:#fdf9fa}.rl-steps li.fail .rl-step-m{background:#f7e0e6;color:var(--bad)}.rl-steps li.fail .rl-step-n{color:#8a2a4b}.rl-steps li.fail .rl-step-a{background:#f7e0e6;color:#8a2a4b}.rl-steps li.fail .rl-step-q{background:#fdf5f6;border-left-color:#eccdd6}






.rl-sum .fail h3{color:#8a2a4b;border-top-color:#a8365c}.rl-sum .fail h3 em{color:#a8365c}
/* заходы */







/* дорожки и панель */

@media (max-width:1100px){.rl-stage{grid-template-columns:minmax(0,1fr)}}









.rl-pt.fail i,.rl-legend i.fail,.rl-dot.fail{background:var(--bad)}
.rl-pt.missed i,.rl-legend i.missed,.rl-dot.missed{background:var(--surface);border:3px dashed var(--bad)}
.rl-pt.client i,.rl-legend i.client{background:var(--surface);border:3px solid var(--cl)}
.rl-pt.fail span,.rl-pt.missed span{font-weight:600;color:#8a2a4b}


.rl-pt.fail[aria-pressed=true],.rl-pt.missed[aria-pressed=true]{border-color:var(--bad);background:var(--danger-bg)}
.rl-pt.client[aria-pressed=true]{border-color:var(--cl);background:var(--prime-bg)}




.rl-detail.fail,.rl-detail.missed{border-color:var(--bad)}.rl-detail.client{border-color:var(--cl)}





/* карточки ошибок */



@media (max-width:900px){.rl-find{grid-template-columns:minmax(0,1fr);gap:18px}}

.rl-find-who .rl-btn{margin-top:6px}






/* нижние ряды */

@media (max-width:1100px){.rl-row{grid-template-columns:minmax(0,1fr)}}




.rl-bar.have i{background:var(--accent)}











.ro-more{display:block;padding:12px 18px;border-top:1px solid var(--border-light);font-size:13.5px;font-weight:500}
.conv-num .hn{white-space:nowrap}
/* Разговор из нескольких звонков (макет владельца 08.10.2026) */


.cv-part audio.player{width:100%;height:30px}


.mc-chip.cv-cut{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn)}

.cc-events .cv-div{display:flex;gap:10px;align-items:baseline;margin:14px 0 6px;padding:7px 10px;background:var(--surface-subtle);border:1px solid var(--border-light);border-radius:var(--r-card);list-style:none}
.cc-events .cv-div:first-child{margin-top:0}
.mc-conv{box-shadow:inset 3px 0 0 var(--accent)}
.mc-parts{display:flex;flex-direction:column}
.mc-part{display:grid;grid-template-columns:64px 110px minmax(0,1fr) auto;gap:12px;padding:6px 16px 6px 22px;border-top:1px solid var(--border-light);background:var(--bg);color:var(--text-muted);font-size:12.5px;text-decoration:none}
.mc-part:hover{background:var(--surface-subtle)}
.mc-part .num{font-variant-numeric:tabular-nums}
@media (max-width:700px){.cv-strip{flex-direction:column}.cv-gap{flex-basis:auto;flex-direction:row;gap:6px;padding:4px 0}.mc-part{grid-template-columns:1fr auto}}
/* Подсказка под плеером: истёк вход или запись не загрузилась (js/audio.js). */
.audio-note{margin-top:6px;color:var(--crit)}

/* Нижние вкладки телефона: на компьютере их нет (app/mobile.css, до 760px). */
.tabbar{display:none}
/* Загрузка: полоса сверху, приглушённый экран, крутилка на нажатой вкладке.
   Включает table.js (`html.is-loading`) и подмены без перезагрузки
   (`aria-busy`, `.tbl.busy`). Владелец 14.10.2026: «как будто завис». */
html.is-loading,html.is-loading a{cursor:progress}
html.is-loading body::before,html:has([aria-busy=true]) body::before,html:has(.tbl.busy) body::before{content:"";position:fixed;left:0;right:0;top:0;height:3px;z-index:1000;background:linear-gradient(90deg,transparent,var(--accent) 35%,var(--accent) 65%,transparent) no-repeat;background-size:40% 100%;animation:portal-load 1s ease-in-out infinite}
html.is-loading .content{opacity:.55;transition:opacity .2s;pointer-events:none}
.is-pending::after{content:"";display:inline-block;width:10px;height:10px;margin-left:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-1px;animation:portal-spin .7s linear infinite}
@keyframes portal-load{from{background-position:-40% 0}to{background-position:140% 0}}
@keyframes portal-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){html.is-loading body::before,html:has([aria-busy=true]) body::before,html:has(.tbl.busy) body::before{animation:none;background:var(--accent);opacity:.6}.is-pending::after{animation:none;border-right-color:currentColor;opacity:.5}}
/* Полоса загрузки сверху: переход, отправка формы, подгрузка без перезагрузки (static/js/busy.js, 26.10.2026). */
.portal-busy{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;pointer-events:none;background:linear-gradient(90deg,transparent,var(--accent,#0d7a8a),transparent) no-repeat;background-size:40% 100%;animation:portal-busy 1s linear infinite}
.portal-busy[hidden]{display:none}
@keyframes portal-busy{from{background-position:-40% 0}to{background-position:140% 0}}
@media (prefers-reduced-motion:reduce){.portal-busy{animation:none;background:var(--accent,#0d7a8a);opacity:.6}}
button[aria-busy="true"]{cursor:progress;opacity:.7}
