/* Клиенты и сделки: воронка, карточка сделки, список клиентов, документы. Только токены из tokens.css. */
.amt{font-family:var(--mono);font-size:var(--fs-xs);font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.st.lost{--dot:var(--p0);color:var(--danger);background:color-mix(in srgb,var(--p0) 10%,var(--surface))}

/* воронка: 6 колонок; уже 1280 — прокрутка внутри доски, не страницы */
.funnel{grid-template-columns:repeat(6,minmax(0,1fr))}
.funnel .colh{flex-wrap:wrap;row-gap:2px}
.funnel .colh .sum{margin-left:auto;font-family:var(--mono);font-size:var(--fs-xs);font-weight:500;color:var(--ink2);font-variant-numeric:tabular-nums;white-space:nowrap}
.dc .hd .amt{margin-left:auto}
.dc .hd .smenu{margin-left:0}
.dc .open{margin:6px 0 4px}
.dc-client{font-size:var(--fs-xs);color:var(--ink2);overflow-wrap:anywhere;margin-bottom:6px}
.dc-reason{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere;margin-bottom:6px}
.nstep{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:var(--fs-xs);color:var(--ink2);min-width:0}
.nstep .what{overflow-wrap:anywhere;min-width:0}
.nstep .what.hint{color:var(--muted);font-style:italic}
.nstep .when{color:var(--muted);font-variant-numeric:tabular-nums}
.nstep.late,.nstep.late .when{color:var(--danger);font-weight:600}
.nstep.none{color:var(--muted)}
.dc .nstep{margin-bottom:var(--sp-2)}
.row .t small .nstep{display:inline-flex}

@media (min-width:1024px) and (max-width:1439px){
  .funnel{grid-template-columns:repeat(6,minmax(188px,1fr));overflow-x:auto;padding-bottom:var(--sp-2)}
}

/* список клиентов */
.clist .crow{gap:var(--sp-4)}
.cprojs{display:flex;flex-wrap:wrap;gap:4px 10px;flex:0 1 auto;min-width:0;max-width:40%}
.crow .badge{flex:none}
.contacts{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.contact{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border-radius:var(--r-sm);background:var(--sunk);color:var(--ink);text-decoration:none;font-size:var(--fs-sm);overflow-wrap:anywhere;max-width:100%}
.contact:hover{color:var(--primary)}

/* карточки сделки и клиента */
.deal-panel .fields .inp{min-height:36px;font-size:13.5px}
.nsrow{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:6px}
.nsrow .inp{min-height:36px;font-size:13.5px}
.nsview{margin-top:var(--sp-2)}
.box-late{border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}
.box-late .warn{margin-top:var(--sp-2)}
.box h4 label{cursor:pointer}
.ev-form{display:grid;gap:6px;margin-bottom:var(--sp-2)}
.ev-form .area-inp{min-height:60px;font-size:13.5px}
.ev-form .addrow{margin-top:0}
.ev-form .addrow .sel-wrap{width:140px}
.events .evi{align-items:flex-start}
.client-box .cname{font-weight:600;font-size:var(--fs-base);margin-bottom:2px}
.client-box .contacts{margin-top:var(--sp-2)}
.cl-title{font-size:var(--fs-lg);overflow-wrap:anywhere}
.client-edit{display:grid;gap:var(--sp-3)}
.client-edit .acts{display:flex;gap:var(--sp-2)}
.client-fields{display:grid;gap:var(--sp-3)}
.pchks{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.pchk{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px;cursor:pointer}
.pchk input{accent-color:var(--primary)}
.pchk:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.sub-form{display:grid;gap:var(--sp-3)}

/* документы */
.docs{display:grid;gap:6px;margin-bottom:var(--sp-2)}
.doc{display:flex;gap:var(--sp-2);align-items:center;font-size:13px;padding:var(--sp-2) 10px;border-radius:var(--r-sm);background:var(--sunk);min-width:0}
.doc .v{flex:1;min-width:0;overflow-wrap:anywhere}
.doc small{color:var(--muted);font-size:11.5px;display:block}
.doc .acts{display:flex;gap:4px;flex:none}
.drop{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3);border:1.5px dashed var(--line-strong);border-radius:var(--r-md);transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}
.drop.over{border-color:var(--primary);background:var(--primary-soft)}
.drop label.btn{cursor:pointer}
.drop:has(input:focus-visible) label.btn{outline:2px solid var(--primary);outline-offset:2px}
.doc-link{display:grid;gap:6px;margin-top:var(--sp-2)}
.doc-link .addrow{margin-top:0}
.doc-link>.inp{min-height:36px;font-size:13.5px}
.up-status{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--muted)}
.up-status:empty{display:none}
.up-status progress{flex:1;max-width:220px;height:6px;accent-color:var(--primary)}
.docs-box .err:not([hidden]){display:block;margin:6px 0}
.docs-card{padding:var(--sp-4)}
.docs-card .box{border:0;padding:0}

/* портфель и поиск */
.pc .crm-line{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);font-size:13px}
.pc .crm-line a{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;color:var(--ink2);text-decoration:none;min-height:28px;border-radius:var(--r-sm)}
.pc .crm-line a:hover{color:var(--primary)}
.pc .crm-money{margin-left:auto;font-family:var(--mono);font-weight:500}
.pc .crm-money.neg{color:var(--danger)}
.pal-opt[data-group="clients"] .pic{color:var(--muted)}
.pal-opt .amt{font-size:11px}

/* открыта карточка сделки или клиента: страница сужается, воронка прокручивается внутри */
@media (min-width:1024px){
  body:has(.deal-panel) .main,body:has(.client-panel) .main{padding-right:calc(var(--drawer-w) + var(--sp-8))}
  body:has(.deal-panel) .funnel,body:has(.client-panel) .funnel{grid-template-columns:repeat(6,minmax(188px,1fr));overflow-x:auto;padding-bottom:var(--sp-2)}
}
@media (max-width:1023px){
  .funnel{display:flex}
  .contact,.pchk{min-height:var(--touch)}
  .pc .crm-line a{min-height:var(--touch)}
  .deal-panel .fields .inp,.nsrow .inp{min-height:var(--touch)}
}
@media (max-width:767px){
  .cprojs{display:none}
  .nsrow{grid-template-columns:minmax(0,1fr)}
  .ev-form .addrow{flex-wrap:wrap}
  .ev-form .addrow .sel-wrap{width:100%}
}
