/* ============================================================
   CRM «Воронка» — дизайн-система
   Все цвета только здесь, в переменных. Тёмная тема —
   переопределение того же набора. В компонентах литералов нет.
   ============================================================ */
@font-face{
  font-family:"IBM Plex Serif";
  src:url("../fonts/IBMPlexSerif-Regular.woff2") format("woff2");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

/* F3.1.2: состояние пробного периода всегда видно, в том числе на телефоне. */
.subscription-banner{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:0 0 14px;padding:11px 14px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--text)}
.subscription-banner strong{font-size:14px}.subscription-banner span{font-size:13px;color:var(--muted)}
.subscription-banner--read_only{border-color:color-mix(in srgb,var(--warn) 58%,var(--line));background:color-mix(in srgb,var(--warn) 14%,var(--surface))}
.subscription-banner--suspended{border-color:color-mix(in srgb,var(--bad) 58%,var(--line));background:color-mix(in srgb,var(--bad) 14%,var(--surface))}
@media(max-width:720px){.subscription-banner{align-items:flex-start;flex-direction:column;margin:0 0 10px;padding:10px 12px}.subscription-banner strong,.subscription-banner span{line-height:1.35}}

.contact-identity-flags{margin-top:18px;border:1px solid rgba(255,190,92,.46);border-radius:10px;background:rgba(255,190,92,.07);overflow:hidden}
.contact-identity-flags summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;color:var(--text);font-weight:600;list-style:none}
.contact-identity-flags summary::-webkit-details-marker{display:none}
.contact-identity-flags summary:after{content:'⌄';font-size:17px;color:var(--muted);transition:transform .18s ease}
.contact-identity-flags[open] summary:after{transform:rotate(180deg)}
.identity-count{margin-left:auto;padding:3px 8px;border-radius:var(--r-pill);background:rgba(255,190,92,.16);color:#ffd18a;font-size:12px;font-style:normal}
.identity-count.is-done{background:rgba(112,207,151,.13);color:#9ee0b8}
.identity-list{padding:0 14px 13px;display:grid;gap:8px}
.identity-item{display:grid;gap:3px;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:rgba(7,25,38,.2)}
.identity-item.is-pending{border-left:3px solid #f3b862}
.identity-item span{color:var(--muted);font-size:12px}
.identity-item .identity-candidate{color:var(--text);font-size:13px}
.identity-item .identity-candidate b{font-weight:600;color:#9fd2ee}
.identity-hint{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}
.identity-item em{color:#9fd2ee;font-size:12px;font-style:normal}
.identity-review-link{display:inline-flex;width:max-content;margin-top:3px;color:var(--accent);font-size:13px}
.import-decision:target{outline:2px solid rgba(126,203,238,.75);outline-offset:3px;animation:identity-target 1.2s ease-out}
@keyframes identity-target{0%{background:rgba(126,203,238,.24)}100%{background:transparent}}
.import-category-picker{display:grid;grid-template-columns:minmax(220px,360px) minmax(220px,360px);gap:12px;margin-bottom:14px}
.import-job-category{display:flex;align-items:center;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line)}
.import-job-category select,.import-job-category input{min-width:210px}
.contact-category-cell{display:flex;flex-wrap:wrap;gap:5px}
.contact-category-chip{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid color-mix(in srgb,var(--category-color) 55%,transparent);border-radius:var(--r-pill);background:color-mix(in srgb,var(--category-color) 13%,transparent);font-size:12px;white-space:nowrap}
.contact-property-categories{margin-top:14px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.contact-property-categories>summary{padding:11px 13px;cursor:pointer;font-weight:600;list-style:none}
.contact-property-categories>summary::-webkit-details-marker{display:none}
.property-category-list{display:grid;gap:9px;padding:0 12px 12px}
.property-category-group{display:grid;gap:6px;padding:10px;border-left:3px solid var(--category-color);border-radius:7px;background:rgba(126,203,238,.06)}
.property-category-object{display:flex;flex-wrap:wrap;gap:5px 10px;color:var(--text);font-size:12px}
.property-category-object small{width:100%;color:var(--muted)}
@media(max-width:760px){.import-category-picker{grid-template-columns:1fr}.import-job-category{align-items:stretch}.import-job-category>*{width:100%}}
:root{
  --ground:#F3F5F8;  --nav:#303946;      --nav-active:#465365;
  --surface:#FCFDFE; --surface-2:#F4F7FA; --feed:#F2F6F9;
  --line:#D5E0E8;    --line-soft:#E7EDF2;
  --ink:#263543;     --ink-soft:#536575;  --muted:#8A9CAA;
  --accent:#67ACD6;  --accent-hover:#519BC7; --accent-deep:#397EAA; --accent-soft:#DDEFFA; --blue:var(--accent);
  --ok:#9BCB76;      --warn:#EBC27E;      --bad:#E89A96;
  --nav-ink:#C0CBD5;
  --bg:var(--ground); --panel:var(--surface); --panel2:var(--surface-2);
  --text:var(--ink); --hover:var(--nav-active);
  --shadow-card:0 1px 2px rgba(46,46,46,.06);
  --shadow-drag:0 8px 20px rgba(46,46,46,.22);
  --r:6px;
  --r-control:var(--r);
  --r-panel:var(--r);
  --r-dialog:calc(var(--r) + 2px);
  --r-pill:999px;
  --f-ui:"Bahnschrift","Segoe UI Variable Text","Aptos",Inter,"Segoe UI",Roboto,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ground:#142634;  --nav:#0C1C28;      --nav-active:#233D50;
    --surface:#1C3748; --surface-2:#233F51; --feed:#132B3A;
    --line:#476277;    --line-soft:#314E61;
    --ink:#F0F5F8;     --ink-soft:#CDDBE5;  --muted:#93A9BA;
    --accent:#8BC9EE;  --accent-hover:#A7D7F3; --accent-deep:#B9E1F6; --accent-soft:#24495F;
    --ok:#A6D47B;      --warn:#F0C785;      --bad:#EE9B97;
    --nav-ink:#9DAEBC;
    --shadow-card:0 1px 2px rgba(0,0,0,.35);
    --shadow-drag:0 10px 26px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --ground:#142634;  --nav:#0C1C28;      --nav-active:#233D50;
  --surface:#1C3748; --surface-2:#233F51; --feed:#132B3A;
  --line:#476277;    --line-soft:#314E61;
  --ink:#F0F5F8;     --ink-soft:#CDDBE5;  --muted:#93A9BA;
  --accent:#8BC9EE;  --accent-hover:#A7D7F3; --accent-deep:#B9E1F6; --accent-soft:#24495F;
  --ok:#A6D47B;      --warn:#F0C785;      --bad:#EE9B97;
  --nav-ink:#9DAEBC;
  --shadow-card:0 1px 2px rgba(0,0,0,.35);
  --shadow-drag:0 10px 26px rgba(0,0,0,.6);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--ground); color:var(--ink);
    font-family:var(--f-ui); font-size:13px; line-height:1.4;font-weight:350;
    font-variant-numeric:tabular-nums;letter-spacing:.012em;font-stretch:semi-condensed;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  }
strong,b{font-weight:550}
a{color:var(--accent); text-decoration:none}
a:hover{color:var(--accent-hover)}
button{font-family:inherit; font-size:inherit; cursor:pointer}
:focus-visible{outline:2px solid var(--accent); outline-offset:1px}
*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
::-webkit-scrollbar-track{background:transparent}

/* ---------- каркас ---------- */
.app{display:flex; min-height:100vh}

/* ---------- левая панель ---------- */
.nav{
  width:68px; flex:none; background:var(--nav); color:var(--nav-ink);
  display:flex; flex-direction:column; align-items:stretch;
  position:sticky; top:0; height:100vh; overflow-y:auto; overflow-x:hidden;
}
.nav a,.nav .nav-logout button{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:11px 4px; color:var(--nav-ink); font-size:9.5px; text-align:center;
  border-left:2px solid transparent; line-height:1.15; position:relative;
}
.nav .nav-logout{margin:0}
.nav .nav-logout button{width:100%;border-top:0;border-right:0;border-bottom:0;background:transparent;font:inherit;cursor:pointer}
.nav a:hover,.nav .nav-logout button:hover,.nav .nav-logout button:focus-visible{background:var(--nav-active); color:#fff}
.nav a.on{background:var(--nav-active); color:#fff; border-left-color:var(--accent)}
.nav svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.nav .badge{
  position:absolute; top:6px; right:12px; min-width:16px; height:16px; padding:0 4px;
  border-radius:8px; background:var(--bad); color:#fff; font-size:10px; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.nav-sp{flex:1}

/* ---------- рабочая область ---------- */
.main{flex:1; min-width:0; display:flex; flex-direction:column}

.topbar{
  height:54px; flex:none; background:var(--surface); border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:14px; padding:0 16px; position:sticky; top:0; z-index:20;
}
.topbar h1{font-size:15px; font-weight:600; margin:0; letter-spacing:.01em; white-space:nowrap}

.seg{display:flex; background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r)}
.seg button{
  border:0; background:none; color:var(--muted); padding:5px 11px; font-size:11px;
  font-weight:600; letter-spacing:.04em; text-transform:uppercase;
}
.seg button + button{border-left:1px solid var(--line)}
.seg button.on{background:var(--accent); color:#fff}

.search{
  flex:1; min-width:80px; display:flex; align-items:center; gap:7px;
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r); padding:0 10px;
}
.search input{
  flex:1; border:0; background:none; color:var(--ink); font-family:inherit; font-size:13px;
  padding:7px 0; outline:none;
}
.search svg{width:15px;height:15px;stroke:var(--muted);fill:none;stroke-width:1.8}

.count{color:var(--muted); font-size:12px; white-space:nowrap}
.count b{color:var(--ink); font-weight:600}

.btn{
  border:1px solid color-mix(in srgb,var(--accent) 58%,var(--line));
  background:color-mix(in srgb,var(--accent) 18%,var(--surface)); color:var(--ink);
  padding:7px 13px; border-radius:var(--r-control); font-size:11px; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase; white-space:nowrap;
  box-shadow:0 2px 7px color-mix(in srgb,var(--accent) 12%,transparent);
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .12s ease,box-shadow .16s ease;
}
.btn:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 28%,var(--surface));color:var(--ink);box-shadow:0 4px 11px color-mix(in srgb,var(--accent) 20%,transparent)}
.btn:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 38%,transparent);outline-offset:2px}
.btn:active{transform:translateY(1px);box-shadow:0 1px 4px color-mix(in srgb,var(--accent) 16%,transparent)}
.btn:disabled,.btn.is-disabled{cursor:not-allowed;opacity:.48;filter:saturate(.45);box-shadow:none;transform:none}
.btn-primary{background:var(--accent); border-color:var(--accent); color:#fff}
.btn-primary:hover{background:var(--accent-hover); border-color:var(--accent-hover); color:#fff}
.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:hover{filter:brightness(1.08);color:#fff}
.btn-ghost{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent) 11%,var(--surface));color:var(--ink-soft)}
.btn-icon{padding:7px 9px}
.btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;vertical-align:-2px}

/* ---------- канбан ---------- */
.board{
  flex:1; display:flex; gap:0; padding:0 0 20px; overflow-x:auto; align-items:stretch;
  min-height:calc(100vh - 150px);
}
.col{flex:1 0 300px; min-width:300px; max-width:460px; padding:0 8px; display:flex; flex-direction:column}
.col-head{padding:12px 8px 0; text-align:center}
.col-title{font-size:11px; font-weight:600; letter-spacing:.065em; text-transform:uppercase; color:var(--ink)}
.col-sub{font-size:11px; color:var(--muted); margin-top:2px}
.col-bar{height:3px; border-radius:2px; margin:8px 0 10px}
.col-body{--drag-color:var(--accent);display:flex; flex:1; flex-direction:column; gap:8px; min-height:180px; padding:2px;outline:1px dashed transparent;outline-offset:3px;border-radius:var(--r);transition:outline-color .24s ease,background-color .24s ease,box-shadow .24s ease}
.col.over .col-body{outline-color:color-mix(in srgb,var(--drag-color) 42%,transparent);background:color-mix(in srgb,var(--drag-color) 2%,transparent);box-shadow:inset 0 0 20px color-mix(in srgb,var(--drag-color) 2.5%,transparent)}

.card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-dialog);
  padding:9px 11px; box-shadow:var(--shadow-card); cursor:grab; user-select:none;
}
.card:hover{border-color:var(--accent)}
.task-card{cursor:pointer;transition:transform .18s cubic-bezier(.2,.8,.2,1),border-color .15s,box-shadow .18s,opacity .15s}
.task-card:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(0,0,0,.16)}
.card-contact-link{position:relative;z-index:2;color:var(--ink);text-decoration:none}.card-contact-link:hover{color:var(--accent);text-decoration:underline}
.card.dragging{opacity:.42}
.card-drag{box-shadow:var(--shadow-drag); transform:rotate(1.5deg)}
.crm-drag-image{position:fixed;left:-10px;top:-10px;width:1px;height:1px;opacity:0;pointer-events:none}
.crm-drag-preview{position:fixed!important;left:0!important;top:0!important;z-index:9999!important;margin:0!important;pointer-events:none!important;cursor:grabbing!important;opacity:.7!important;filter:saturate(.9);box-shadow:0 14px 34px rgba(3,18,28,.28)!important;transition:none!important;animation:none!important;will-change:transform;contain:layout paint}
.crm-drag-preview *{pointer-events:none!important;transition:none!important;animation:none!important}
.task-drop-placeholder,.deal-drop-placeholder{--drag-color:var(--accent);border:1px dashed color-mix(in srgb,var(--drag-color) 58%,transparent);border-radius:calc(var(--r) + 2px);background:color-mix(in srgb,var(--drag-color) 6%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--drag-color) 2.5%,transparent);animation:taskDropHintIn .24s cubic-bezier(.22,.8,.25,1) both}
.task-drop-placeholder{min-height:76px}
@keyframes taskDropHintIn{from{opacity:0;transform:translateY(4px) scale(.985)}to{opacity:.62;transform:translateY(0) scale(1)}}
@media (prefers-reduced-motion:reduce){.col-body,.deal-column{transition:none}.task-drop-placeholder,.deal-drop-placeholder{animation:none;opacity:.62}.crm-drag-preview{filter:none}}
.card-top{display:flex; justify-content:space-between; gap:8px; align-items:baseline}
.card-contact{font-weight:600; font-size:12.5px; color:var(--ink)}
.card-time{font-size:11px; color:var(--muted); white-space:nowrap}
.card-deal{color:var(--accent); font-size:12.5px; margin-top:2px; display:block}
.card-text{margin-top:6px; color:var(--ink-soft); font-size:12.5px}
.card-text b{color:var(--ink)}
.card-meta{display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:7px;
  font-size:11px; color:var(--muted)}
.card-due{display:inline-flex; align-items:center; gap:5px; font-weight:600}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.dot-red{background:var(--bad)} .dot-yellow{background:var(--warn)}
.dot-green{background:var(--ok)} .dot-grey{background:var(--muted)}
.t-red{color:var(--bad)} .t-yellow{color:var(--warn)} .t-green{color:var(--ok)}
.card-actions{display:flex; gap:6px; margin-top:8px}
.mini{
  border:1px solid var(--line); background:var(--surface-2); color:var(--ink-soft);
  border-radius:var(--r); padding:4px 9px; font-size:11px;
}
.mini:hover{border-color:var(--accent); color:var(--accent)}
.mini-ok:hover{border-color:var(--ok); color:var(--ok)}

.quick-add{
  border:1px dashed var(--line); border-radius:var(--r); background:none; color:var(--muted);
  padding:11px; text-align:center; font-size:12px; width:100%;
}
.quick-add:hover{border-color:var(--accent); color:var(--accent)}

/* ---------- список ---------- */
.wrap{padding:16px}
.tbl-wrap{background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  overflow-x:auto; box-shadow:var(--shadow-card)}
table.tbl{border-collapse:collapse; width:100%; font-size:12.5px}
.tbl th{
  text-align:left; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); padding:10px 14px; background:var(--surface-2);
  border-bottom:1px solid var(--line); white-space:nowrap;
}
.tbl td{padding:10px 14px; border-bottom:1px solid var(--line-soft); color:var(--ink-soft);
  vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr:hover td{background:var(--surface-2)}
.grp td{background:var(--surface-2); font-weight:700; font-size:11px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink)}

/* ---------- календарь ---------- */
.cal{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
.cal-dow{background:var(--surface-2); padding:7px 9px; font-size:10px; font-weight:700;
  letter-spacing:.07em; text-transform:uppercase; color:var(--muted); text-align:center}
.cal-day{background:var(--surface); min-height:104px; padding:6px; display:flex;
  flex-direction:column; gap:4px}
.cal-day.dim{background:var(--surface-2)}
.cal-day.today .cal-num{background:var(--accent); color:#fff; border-radius:50%;
  width:20px;height:20px;display:flex;align-items:center;justify-content:center}
.cal-num{font-size:11px; color:var(--muted); font-weight:600}
.cal-task{font-size:11px; padding:3px 5px; border-radius:2px; background:var(--accent-soft);
  color:var(--accent-deep); cursor:grab; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.cal-task.over{background:var(--bad); color:#fff}
.cal-day.over{outline:2px dashed var(--accent); outline-offset:-2px}

/* ---------- модальное окно ---------- */
.overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.45); display:none;
  align-items:flex-start; justify-content:center; padding:60px 16px; z-index:60; overflow-y:auto;
}
.overlay.show{display:flex}
.modal{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  width:100%; max-width:520px; box-shadow:var(--shadow-drag);
}
.modal-head{padding:15px 18px; border-bottom:1px solid var(--line); display:flex;
  justify-content:space-between; align-items:center}
.modal-head h2{margin:0; font-size:14px; font-weight:600}
.modal-body{padding:16px 18px; display:flex; flex-direction:column; gap:13px}
.modal-foot{padding:13px 18px; border-top:1px solid var(--line); display:flex; gap:8px;
  justify-content:flex-end}
.field{display:flex; flex-direction:column; gap:5px}
.field label{font-size:10.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
  color:var(--muted)}
.field input,.field select,.field textarea{
  border:1px solid var(--line); background:var(--surface-2); color:var(--ink);
  border-radius:var(--r-control); padding:8px 10px; font-family:inherit; font-size:13px; outline:none;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.field textarea{resize:vertical; min-height:72px}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:13px}

/* ---------- мелочи ---------- */
.chip{display:inline-block; padding:2px 7px; border-radius:2px; font-size:11px;
  background:var(--accent-soft); color:var(--accent-deep)}
.empty{padding:44px 16px; text-align:center; color:var(--muted); font-size:13px}
.hidden{display:none !important}
.toast{
  position:fixed; left:50%; bottom:22px; transform:translateX(-50%);
  background:var(--nav); color:#fff; padding:10px 18px; border-radius:var(--r);
  font-size:12.5px; box-shadow:var(--shadow-drag); z-index:80; opacity:0;
  transition:opacity .2s; pointer-events:none;
}
.toast.show{opacity:1}

@media (max-width:860px){
  .nav{width:56px}
  .board{flex-direction:column; overflow-x:visible}
  .col{max-width:none; min-width:0; width:100%}
  .topbar{flex-wrap:wrap; height:auto; padding:9px 12px; gap:9px}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important; animation:none !important}}

/* ============================================================
   Этап 1: страницы каркаса — вход, профиль, пользователи,
   заглушки разделов. Цвета по-прежнему только переменными.
   ============================================================ */

/* ---------- вход ---------- */
.auth-page{display:flex; align-items:center; justify-content:center; padding:24px}
.auth{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-panel);
  box-shadow:var(--shadow-card); width:100%; max-width:340px; padding:26px 24px;
  display:flex; flex-direction:column; gap:13px;
}
.auth-logo{font-size:17px; font-weight:600; color:var(--ink); text-align:center}
.auth-sub{font-size:12px; color:var(--muted); text-align:center; margin-top:-8px}
.auth-error{
  background:var(--bad); color:#fff; border-radius:var(--r); padding:9px 11px; font-size:12.5px;
}
.auth-submit{width:100%; padding:9px}
.auth-note{font-size:11px; color:var(--muted); text-align:center; line-height:1.5}
.auth-register{max-width:480px}.auth-register-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.auth-register-form .field:first-child,.auth-register-form .auth-consents,.auth-register-form .auth-submit{grid-column:1/-1}.auth-consents{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-soft)}.auth-consents label{display:flex;align-items:flex-start;gap:8px;color:var(--ink-soft);font-size:12.5px;line-height:1.35;cursor:pointer}.auth-consents input{flex:0 0 auto;margin-top:2px;width:17px;height:17px;accent-color:var(--accent)}.auth-consents input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-secondary-link{display:block;text-align:center;color:var(--accent);font-size:12.5px;font-weight:700;text-decoration:none}.auth-secondary-link:hover{text-decoration:underline}.auth-secondary-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.auth-message{margin:0}
@media(max-width:560px){.auth-page{align-items:flex-start;padding:14px}.auth{padding:21px 17px}.auth-register-form{grid-template-columns:1fr}.auth-register-form .field:first-child,.auth-register-form .auth-consents,.auth-register-form .auth-submit{grid-column:auto}}

/* ---------- сообщение о результате действия ---------- */
.alert{
  border:1px solid var(--line); border-left:3px solid var(--accent); background:var(--surface);
  border-radius:var(--r); padding:10px 13px; font-size:12.5px; color:var(--ink-soft); margin-bottom:14px;
}
.alert-bad{border-left-color:var(--bad)}
.alert-ok{border-left-color:var(--ok)}

/* ---------- панель-карточка на обычной странице ---------- */
.panel{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow-card); margin-bottom:16px;
}
.panel-head{
  padding:12px 16px; border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.panel-head h2{margin:0; font-size:13px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--ink)}
.panel-body{padding:16px; display:flex; flex-direction:column; gap:13px}
.panel-note{font-size:11.5px; color:var(--muted); line-height:1.5}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:13px}
.page{padding:16px; max-width:1080px}
.page-wide{padding:16px}
@media(max-width:600px){.grid2{grid-template-columns:minmax(0,1fr)}.grid2>.field,.grid2 input,.grid2 select,.grid2 textarea{min-width:0;max-width:100%}}

/* ---------- чекбокс с подписью ---------- */
.check{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-soft)}
.check input{width:14px; height:14px; accent-color:var(--accent)}

/* ---------- строка с ключом (ссылка iCal, токен API) ---------- */
.keyline{
  display:flex; gap:8px; align-items:center;
  background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r); padding:8px 10px;
}
.keyline code{
  flex:1; min-width:0; overflow-x:auto; white-space:nowrap; font-size:12px; color:var(--ink);
}

/* ---------- фильтры раздела ---------- */
.filters{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  padding:10px 16px; background:var(--surface); border-bottom:1px solid var(--line);
}
.filters select,.filters input[type="number"],.filters input[type="date"]{
  border:1px solid var(--line); background:var(--surface-2); color:var(--ink);
  border-radius:var(--r); padding:5px 8px; font-family:inherit; font-size:12px; outline:none;
}
.filters select:focus,.filters input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent)}
.filters label{font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-weight:600}

/* ---------- заглушка раздела ---------- */
.stub{
  margin:40px auto; max-width:520px; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r); box-shadow:var(--shadow-card); padding:32px 28px; text-align:center;
}
.stub h2{margin:0 0 8px; font-size:18px; font-weight:600; color:var(--ink)}
.stub p{margin:0 0 6px; color:var(--ink-soft)}
.stub .muted{color:var(--muted); font-size:12px}

/* ---------- мелочи этапа 1 ---------- */
.chip-ok{background:var(--ok); color:#fff}
.chip-muted{background:var(--surface-2); color:var(--muted); border:1px solid var(--line)}
.chip-bad{background:var(--bad); color:#fff}
.row-off td{opacity:.55}
.nowrap{white-space:nowrap}
.tbl form{display:inline}
.spacer{flex:1}
.card-note{color:var(--muted)}
.card.done{opacity:.6}

/* ---------- поля ввода внутри таблиц ----------
   Такие поля не лежат в блоке .field, поэтому без этого правила
   браузер рисовал бы их своими светлыми, и в тёмной теме
   выпадающий список оставался белым пятном. */
.tbl select, .tbl input[type="text"], .tbl input[type="email"], .tbl input[type="password"]{
  border:1px solid var(--line); background:var(--surface-2); color:var(--ink);
  border-radius:var(--r); padding:5px 8px; font-family:inherit; font-size:12px; outline:none;
  max-width:100%;
}
.tbl select:focus, .tbl input:focus{border-color:var(--accent)}
.tbl input[type="checkbox"]{accent-color:var(--accent)}

/* ---------- родные элементы браузера ----------
   Календарик у поля даты, стрелки списков, полосы прокрутки
   рисует сам браузер. color-scheme говорит ему, какую тему брать. */
:root{color-scheme:light}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){color-scheme:dark}
}
:root[data-theme="dark"]{color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}

/* ============================================================
   Этап B1: контакты и карточка клиента.
   Классы с приставкой contact-, чтобы ничего не задеть в задачах.
   Цвета — только переменными, как и во всём файле.
   ============================================================ */

.contact-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.contact-filters input[type="number"]{width:72px}.contact-filters input[type="date"]{width:142px}.contact-filter-submit{margin-left:4px}.contact-ownership-meta,.campaign-ownership-meta{display:block;margin-top:3px;color:var(--muted);font-size:10px;white-space:nowrap}

.contact-row{cursor:pointer}
.contact-row:hover td{background:var(--surface-2)}
.contact-name{font-weight:600}

.contact-pages{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.contact-pages .btn{padding:6px 11px}

/* ================= сделки C1.2 ================= */
.deals-topbar .search{min-width:260px}
.deal-pipeline-form{display:flex;align-items:center}.deal-pipeline-select{position:relative;display:block;min-width:220px}.deal-pipeline-select select{appearance:none;display:block;width:100%;height:38px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface-2) 92%,var(--accent-soft));color:var(--ink);padding:0 42px 0 13px;font-family:var(--f-ui);font-size:13px;font-weight:650;letter-spacing:.01em;outline:0;cursor:pointer;box-shadow:0 2px 9px rgba(3,18,28,.07);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.deal-pipeline-select select:hover,.deal-pipeline-select select:focus{border-color:var(--accent);background:color-mix(in srgb,var(--surface-2) 86%,var(--accent-soft));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 17%,transparent),0 4px 13px rgba(3,18,28,.09)}.deal-pipeline-select>span{position:absolute;right:8px;top:50%;display:grid;place-items:center;width:25px;height:25px;transform:translateY(-50%);border-radius:7px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--ink-soft);pointer-events:none;transition:transform .2s ease,background .2s ease,color .2s ease}.deal-pipeline-select svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.deal-pipeline-select:hover>span{background:color-mix(in srgb,var(--accent) 17%,transparent);color:var(--accent)}.deal-pipeline-select:focus-within>span{transform:translateY(-50%) rotate(180deg);background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}
.deal-board{height:calc(100vh - 58px);display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:12px;background:var(--bg)}
.deal-column{--drag-color:var(--stage-color,#58a9df);flex:0 0 310px;min-width:280px;height:100%;display:flex;flex-direction:column;border-radius:var(--r);outline:1px dashed transparent;outline-offset:-3px;transition:outline-color .24s ease,background-color .24s ease,box-shadow .24s ease}
.deal-column.is-drag-over{outline-color:color-mix(in srgb,var(--drag-color) 42%,transparent);background:color-mix(in srgb,var(--drag-color) 2%,transparent);box-shadow:inset 0 0 20px color-mix(in srgb,var(--drag-color) 2.5%,transparent)}
.deal-column-head{padding:0 8px 8px;text-align:center;min-height:45px}
.deal-column-head h2{font-size:12px;text-transform:uppercase;letter-spacing:.035em;margin:0 0 5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deal-column-head div{font-size:12px;color:var(--muted)}
.deal-column-line{height:3px;background:var(--stage-color,#58a9df);border-radius:3px;margin-bottom:9px}
.deal-stage-title{max-width:100%;padding:3px 7px;color:inherit;background:transparent;border:1px solid transparent;border-radius:7px;font:inherit;text-transform:inherit;letter-spacing:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}
.pipeline-settings-toggle[aria-pressed="true"]{color:#fff;background:var(--accent);border-color:var(--accent)}
.pipeline-settings-bar{display:flex;align-items:center;justify-content:space-between;gap:12px 18px;flex-wrap:wrap;padding:10px 14px;background:color-mix(in srgb,var(--panel) 91%,var(--accent-soft));border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,var(--line))}
.pipeline-settings-bar.hidden{display:none}.pipeline-settings-bar__intro{display:grid;flex:1 1 320px;gap:2px}.pipeline-settings-bar strong{font-size:13px}.pipeline-settings-bar span{color:var(--muted);font-size:11px}.pipeline-settings-bar__actions{display:flex;gap:8px;flex:0 0 auto}.deal-board-sort{flex:0 1 220px}.deal-board-sort label{display:grid;gap:4px;color:var(--muted);font-size:10px;font-weight:700}.deal-board-sort select{width:100%;height:36px;padding:0 34px 0 11px;border:1px solid color-mix(in srgb,var(--accent) 56%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface-2) 88%,var(--accent-soft));color:var(--ink);font:650 12px var(--f-ui);cursor:pointer;outline:0}.deal-board-sort select:hover,.deal-board-sort select:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--surface-2) 78%,var(--accent-soft));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.pipeline-stage-add-form{display:flex;align-items:end;gap:8px;width:100%;flex-basis:100%;padding-top:9px;border-top:1px solid var(--line)}.pipeline-stage-add-form.hidden{display:none}.pipeline-stage-add-form label{display:grid;gap:4px;color:var(--muted);font-size:11px}.pipeline-stage-add-form input[type="text"]{width:min(320px,40vw);height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}.pipeline-stage-add-form input[type="color"]{width:48px;height:36px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.pipeline-stage-add-form .form-error{margin:0}
.pipeline-settings-mode .deal-board{height:calc(100vh - 116px);background:color-mix(in srgb,var(--bg) 95%,var(--accent-soft))}
.pipeline-settings-mode .deal-column{cursor:grab;outline:1px solid color-mix(in srgb,var(--stage-color) 30%,var(--line));background:color-mix(in srgb,var(--panel) 96%,var(--stage-color) 4%)}.pipeline-settings-mode .deal-column:active{cursor:grabbing}.pipeline-settings-mode .deal-column[data-stage-type="won"],.pipeline-settings-mode .deal-column[data-stage-type="lost"]{cursor:default}
.pipeline-settings-mode .deal-column-head{padding-top:7px}.pipeline-settings-mode .deal-stage-title{cursor:pointer;border-color:color-mix(in srgb,var(--stage-color) 45%,var(--line));background:color-mix(in srgb,var(--surface) 88%,var(--stage-color) 12%)}.pipeline-settings-mode .deal-stage-title:hover,.pipeline-settings-mode .deal-stage-title:focus-visible{outline:0;border-color:var(--stage-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--stage-color) 18%,transparent)}
.pipeline-settings-mode .deal-stack{opacity:.38;pointer-events:none;filter:saturate(.6)}
.deal-stage-editor{display:grid;gap:8px;margin:0 7px 8px;padding:9px;border:1px solid color-mix(in srgb,var(--stage-color) 38%,var(--line));border-radius:9px;background:var(--surface);box-shadow:0 8px 20px rgba(1,14,25,.12)}.deal-stage-editor.hidden{display:none}.deal-stage-editor label{display:grid;gap:4px;color:var(--muted);font-size:10px;text-align:left}.deal-stage-editor input{width:100%;height:34px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text);font:12px var(--f-ui)}.deal-stage-editor input[type="color"]{padding:3px;cursor:pointer}.deal-stage-editor__actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.deal-stage-delete{margin-left:auto;color:#d85f63}.deal-stage-final{margin-left:auto;color:var(--muted);font-size:10px}.deal-stage-editor .form-error{margin:0;text-align:left}.deal-column.is-stage-dragging{opacity:.45;transform:scale(.985)}.deal-column.is-stage-saving{pointer-events:none;opacity:.68}
.deal-stack{flex:1;overflow-y:auto;min-height:150px;padding:0 2px 18px}
.deal-card{display:block;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--stage-color,#58a9df);border-radius:4px;padding:11px 12px;margin-bottom:8px;color:var(--text);text-decoration:none;box-shadow:0 1px 2px rgba(0,0,0,.08);transition:transform .2s cubic-bezier(.2,.8,.2,1),border-color .12s,box-shadow .2s,opacity .15s;will-change:transform}
.deal-card:hover{border-color:var(--accent);border-left-color:var(--stage-color,#58a9df);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.deal-card.has-avito-unread{border-color:color-mix(in srgb,#16a5d9 68%,var(--line));border-left-color:var(--stage-color,#58a9df);box-shadow:0 0 0 2px color-mix(in srgb,#16a5d9 16%,transparent),0 4px 12px rgba(0,0,0,.1)}
.deal-card[draggable="true"]{cursor:grab}.deal-card[draggable="true"]:active{cursor:grabbing}
.deal-card.dragging{opacity:.42;transform:none;box-shadow:none}
.deal-card.saving{opacity:.62;pointer-events:none;position:relative}
.deal-card.saving:after{content:'Сохраняется…';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(17,31,43,.82);color:#fff;font-weight:600;border-radius:4px}
.deal-drop-placeholder{--drag-color:var(--stage-color,var(--accent));margin-bottom:8px;min-height:70px}
.deal-column.is-drag-over .deal-empty{display:none}
.deal-card-row{display:flex;gap:8px;align-items:center}
.deal-card-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.deal-card-row time{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap}
.deal-card-name{color:var(--accent);font-size:13px;margin-top:5px;line-height:1.3}
.deal-card-avito-context{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 7px;margin-top:7px;padding:6px 7px;border:1px solid color-mix(in srgb,#16a5d9 38%,var(--line));border-radius:7px;background:color-mix(in srgb,#16a5d9 8%,transparent);font-size:10px}.deal-card-avito-context strong{color:#2bb9ed}.deal-card-avito-context span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deal-card-avito-context time{grid-column:1/-1;color:var(--muted)}
.deal-card-budget{font-weight:600;margin-top:7px;font-size:12px}
.deal-card-task{border-top:1px solid var(--line);margin-top:9px;padding-top:8px;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.deal-card-task:before{content:'●';color:#84cc3d;margin-right:6px}.deal-card-task.no-task:before{color:#ef6b6b}
.channel-mark.is-avito{gap:4px}.channel-mark.is-avito svg{width:13px;height:13px;stroke:none}.channel-mark.is-avito.is-on{border-color:color-mix(in srgb,#16a5d9 64%,var(--line));background:color-mix(in srgb,#16a5d9 12%,transparent);color:#2bb9ed}.avito-four-dot__blue{fill:#00aaff}.avito-four-dot__purple{fill:#965eeb}.avito-four-dot__green{fill:#00e094}.avito-four-dot__red{fill:#ff4053}.deal-avito-unread{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border:1px solid color-mix(in srgb,#16a5d9 70%,#fff);border-radius:10px;background:#087fab;color:#fff;font-size:10px;font-weight:750;line-height:1}
.inbox-alert-stack{position:fixed;right:18px;bottom:18px;z-index:1605;display:flex;flex-direction:column-reverse;gap:9px;width:min(360px,calc(100vw - 36px));max-height:46dvh;overflow:auto;pointer-events:none}.inbox-alert-card{display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:start;gap:7px;padding:7px;border:1px solid color-mix(in srgb,#16a5d9 68%,var(--line));border-left:4px solid #16a5d9;border-radius:12px;background:color-mix(in srgb,#0d7da5 18%,var(--panel));color:var(--text);box-shadow:0 14px 36px rgba(2,20,31,.32);pointer-events:auto}.inbox-alert-card:hover{border-color:#2bb9ed;box-shadow:0 17px 42px rgba(2,20,31,.38)}.inbox-alert-card__link{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:9px;min-width:0;padding:3px;border-radius:8px;color:inherit;text-decoration:none}.inbox-alert-card__link:focus-visible{outline:3px solid color-mix(in srgb,#2bb9ed 55%,transparent);outline-offset:1px}.inbox-alert-card__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#087fab;color:#fff;font-size:17px;font-weight:800}.inbox-alert-card__link>div{display:grid;min-width:0;gap:2px}.inbox-alert-card small{color:#54c9f1;font-size:10px;font-weight:750;text-transform:uppercase}.inbox-alert-card strong,.inbox-alert-card__link>div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox-alert-card strong{font-size:13px}.inbox-alert-card__link>div>span{color:var(--muted);font-size:11px}.inbox-alert-card>button{align-self:start;width:32px;height:32px;padding:0;border:1px solid color-mix(in srgb,#16a5d9 35%,var(--line));border-radius:8px;background:color-mix(in srgb,#16a5d9 10%,var(--panel));color:var(--text);font-size:20px;line-height:1;cursor:pointer}.inbox-alert-card>button:hover,.inbox-alert-card>button:focus-visible{border-color:#2bb9ed;background:color-mix(in srgb,#16a5d9 23%,var(--panel));outline:3px solid color-mix(in srgb,#2bb9ed 45%,transparent);outline-offset:1px}
.inbox-alert-card[hidden]{display:none!important}
@media(max-width:600px),(max-height:650px){.inbox-alert-stack{right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:min(360px,calc(100vw - 16px));max-height:34dvh}.inbox-alert-card{padding:8px}}
.deal-empty,.deal-more{display:block;border:1px dashed var(--line);border-radius:4px;padding:16px;text-align:center;color:var(--muted);font-size:12px;text-decoration:none}
.deal-more:hover{color:var(--accent);border-color:var(--accent)}
.deal-modal{width:min(720px,calc(100vw - 24px));max-height:calc(100vh - 28px);overflow-y:auto}
.deal-contact-tabs{display:flex;gap:20px;padding:3px 0}.deal-contact-tabs label{font-size:13px;cursor:pointer}
.deal-contact-results{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:4px;max-height:170px;overflow-y:auto;margin-top:5px}
.deal-contact-results:empty{display:none}
.deal-contact-result{border:0;border-bottom:1px solid var(--line);background:var(--panel2);color:var(--text);text-align:left;padding:9px 11px;cursor:pointer}.deal-contact-result:last-child{border-bottom:0}.deal-contact-result:hover{background:var(--hover);color:var(--accent)}
.deal-contact-none{padding:11px;color:var(--muted);font-size:12px}
.deal-selected{padding:9px 11px;background:rgba(80,170,220,.1);border-left:3px solid var(--accent);margin-top:7px;font-size:12px}
.deal-extra{border-top:1px solid var(--line);padding-top:10px}.deal-extra summary{cursor:pointer;color:var(--accent);font-size:12px;margin-bottom:12px}.deal-extra[open]{display:flex;flex-direction:column;gap:13px}
.form-error{display:flex;align-items:center;gap:8px;min-height:36px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--bad) 42%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--bad) 9%,var(--panel));color:color-mix(in srgb,var(--bad) 68%,var(--ink));font-size:12px;line-height:1.35;font-weight:600;box-shadow:0 4px 14px color-mix(in srgb,var(--bad) 7%,transparent);animation:softErrorIn .2s cubic-bezier(.2,.8,.2,1) both}
.form-error:before{content:'!';display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:6px;background:color-mix(in srgb,var(--bad) 20%,var(--panel));color:color-mix(in srgb,var(--bad) 86%,var(--ink));font-size:12px;font-weight:800;line-height:1}
@keyframes softErrorIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.deal-detail{display:grid;grid-template-columns:minmax(280px,420px) minmax(280px,1fr);gap:16px;padding:18px;max-width:1200px}
.deal-detail .panel{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:0 18px 18px}.deal-detail .panel h2{font-size:13px;text-transform:uppercase;border-bottom:1px solid var(--line);margin:0 -18px 16px;padding:14px 18px}
.deal-detail .contact-info{display:grid;grid-template-columns:130px 1fr;gap:11px 15px}.deal-detail .contact-info dt{color:var(--muted);font-size:12px}.deal-detail .contact-info dd{margin:0;font-size:13px}.stage-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}
.deal-stage-hero{padding:13px 20px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,#003047)}
.deal-stage-pipeline{color:var(--muted);font-size:12px;margin-bottom:3px}
.deal-stage-picker{position:relative;display:block;width:100%;max-width:100%;border:1px solid color-mix(in srgb,var(--current-stage-color,#58a9df) 68%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface-2) 90%,var(--current-stage-color,#58a9df));padding:1px 4px 1px 8px;box-shadow:0 2px 10px rgba(3,18,28,.08);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.deal-stage-picker:hover,.deal-stage-picker:focus-within{border-color:var(--current-stage-color,#58a9df);box-shadow:0 0 0 2px color-mix(in srgb,var(--current-stage-color,#58a9df) 18%,transparent),0 5px 16px rgba(3,18,28,.1)}
.deal-stage-picker select{appearance:none;display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;color:var(--ink);font-family:var(--f-ui);font-size:14px;font-weight:600;letter-spacing:.015em;padding:6px 38px 6px 6px;outline:0;cursor:pointer}.deal-stage-picker select option{padding:8px 12px;text-indent:10px;font-family:var(--f-ui);font-weight:450}
.deal-stage-chevron{position:absolute;right:10px;top:50%;display:grid;place-items:center;width:24px;height:24px;transform:translateY(-50%);border-radius:7px;background:color-mix(in srgb,var(--surface-2) 82%,transparent);color:var(--ink-soft);pointer-events:none;transition:transform .2s ease,background .2s ease,color .2s ease}.deal-stage-chevron svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.deal-stage-picker:hover .deal-stage-chevron{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.deal-stage-picker:focus-within .deal-stage-chevron{transform:translateY(-50%) rotate(180deg);background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.deal-stage-saving{position:absolute;right:42px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:9px;pointer-events:none}.deal-stage-saving:empty{display:none}.deal-stage-status{margin-top:5px;color:var(--muted);font-size:11px}.deal-stage-readonly{border-bottom:4px solid color-mix(in srgb,var(--current-stage-color,#58a9df) 58%,#dceaf2);padding:5px 0 8px;font-size:14px;font-weight:700}
.deal-stage-progress{display:flex;gap:3px;height:5px;margin-top:8px;overflow:hidden;border-radius:4px;background:var(--line-soft)}.deal-stage-progress span{flex:1;min-width:5px;background:color-mix(in srgb,var(--line) 68%,transparent);transition:background .25s ease,transform .25s ease,filter .25s ease}.deal-stage-progress span.is-reached{background:var(--stage-segment-color,var(--accent))}.deal-stage-progress span.is-current{filter:saturate(1.18) brightness(1.05);transform:scaleY(1.35)}
.deal-stage-modal{width:min(520px,calc(100vw - 24px))}
.deal-title-editable{cursor:text;border-radius:7px;padding:4px 7px;margin-left:-7px;transition:background .18s ease,box-shadow .18s ease}
.deal-title-editable:hover,.deal-title-editable:focus-visible{background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent);outline:0}
.deal-title-input{width:min(460px,55vw);border:1px solid var(--accent);border-radius:7px;background:var(--surface-2);color:var(--ink);font:inherit;padding:4px 7px;outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.field-label{display:block;margin-bottom:7px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.deal-loss-reasons{overflow:hidden;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--panel) 88%,var(--surface-2));box-shadow:0 5px 18px rgba(2,18,28,.08)}
.deal-loss-reason{position:relative;display:flex;align-items:center;gap:10px;min-height:39px;padding:7px 12px;color:var(--text);font-size:13px;cursor:pointer;transition:background .16s ease,color .16s ease}.deal-loss-reason+.deal-loss-reason{border-top:1px solid var(--line-soft)}.deal-loss-reason:hover{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}.deal-loss-reason:focus-within{background:color-mix(in srgb,var(--accent) 14%,var(--panel));outline:1px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:-1px}.deal-loss-reason input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.deal-loss-reason-dot{display:grid;place-items:center;flex:0 0 17px;width:17px;height:17px;border:1px solid color-mix(in srgb,var(--muted) 75%,transparent);border-radius:50%;transition:border-color .16s ease,box-shadow .16s ease}.deal-loss-reason-dot::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform .16s ease}.deal-loss-reason input:checked+.deal-loss-reason-dot{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}.deal-loss-reason input:checked+.deal-loss-reason-dot::after{transform:scale(1)}.deal-loss-reason:has(input:checked){background:color-mix(in srgb,var(--accent) 9%,var(--panel));color:var(--ink)}
.deal-contact-title{font-size:18px;font-weight:500}.deal-next-task{grid-column:2}.deal-stage-note{margin:0 18px 18px;padding:11px 14px;color:var(--muted);border:1px dashed var(--line);max-width:1168px;font-size:12px}
.deal-workspace{display:grid;grid-template-columns:minmax(370px,440px) minmax(460px,1fr);height:calc(100vh - 58px);min-height:560px;overflow:hidden;background:var(--bg)}
.deal-profile{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0;border-right:1px solid var(--line);background:var(--panel)}
.deal-profile .panel{margin:10px 12px;padding:0 14px 14px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--panel2) 90%,#728da1);box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 4px 14px rgba(3,18,28,.08);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.deal-profile .panel:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 6px 18px rgba(3,18,28,.12)}
.deal-profile .panel h2{font-size:11px;letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--line-soft);margin:0 -14px 11px;padding:11px 14px;background:color-mix(in srgb,var(--panel) 72%,transparent)}
.deal-profile .contact-info{display:grid;grid-template-columns:140px minmax(0,1fr);gap:5px 11px}.deal-profile .contact-info dt{align-self:center;color:var(--muted);font-size:12px;line-height:1.25}.deal-profile .contact-info dd{margin:0;font-size:13px;min-width:0;word-break:break-word}
.deal-profile .deal-next-task{grid-column:auto}
.deal-mobile-collapse-toggle{display:none}
.deal-contact-info small{color:var(--muted)}
.deal-current-stage-dot{background:var(--current-stage-color,#58a9df);flex:0 0 9px}
.deal-card-tabs{position:sticky;top:0;z-index:4;display:flex;gap:2px;overflow-x:auto;padding:0 14px;border-bottom:1px solid var(--line);background:var(--panel)}
.deal-card-tabs button{flex:0 0 auto;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);padding:13px 10px 10px;font-weight:500;cursor:pointer;transition:color .15s ease,border-color .15s ease}
.deal-card-tabs button:hover{color:var(--text)}.deal-card-tabs button.active{color:var(--text);border-color:var(--accent)}
.deal-fields-panel{padding:10px 9px 11px!important}.deal-fields-panel .contact-info{align-items:center}
.deal-card-tab-panel{margin:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--panel2) 90%,#728da1);box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 4px 14px rgba(3,18,28,.08);overflow:hidden}
.deal-inline-value{display:block;width:100%;min-height:28px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text);padding:4px 6px;text-align:left;font:inherit;cursor:text;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color .14s ease,background .14s ease,color .14s ease}.deal-inline-value.is-empty,.deal-profile .contact-info dd.is-empty{color:var(--muted);font-weight:350}
.deal-inline-value:not([disabled]):hover,.deal-inline-value:not([disabled]):focus-visible{border-color:var(--line);background:var(--panel2);outline:0}.deal-inline-value.is-editing{display:none}
.deal-inline-editor{display:block;width:100%;min-width:0;height:30px;border:1px solid var(--accent);border-radius:3px;background:var(--panel2);color:var(--text);padding:4px 7px;outline:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent);animation:dealControlIn .18s cubic-bezier(.2,.8,.2,1) both}
.deal-card-tab-panel,[data-deal-tab-panel]{animation:dealPanelIn .24s cubic-bezier(.2,.8,.2,1) both}.deal-tab-placeholder{margin:16px;padding:16px;border:1px dashed var(--line);border-radius:4px;color:var(--muted);line-height:1.5}.deal-tab-placeholder strong{color:var(--text)}
.deal-settings-head{padding:22px 26px 14px}.deal-settings-head strong{font-size:17px}.deal-settings-head p{color:var(--muted);font-size:12px;line-height:1.45}
.deal-field-settings{padding:0 18px 24px}.deal-field-settings h3{margin:14px 0 10px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.deal-setting-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto 30px 30px;gap:5px;align-items:center;min-height:38px;margin-bottom:6px;padding:5px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);animation:dealSettingIn .24s cubic-bezier(.2,.8,.2,1) both;transition:transform .16s ease,border-color .16s ease,background .16s ease}.deal-setting-row:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));transform:translateX(2px)}
.deal-setting-row>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deal-setting-row>input:not([type=checkbox]){min-width:0;height:28px;padding:3px 6px}.deal-setting-row label{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:10px;white-space:nowrap}.deal-setting-row button{height:28px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--muted);cursor:pointer}.deal-setting-row button:hover{border-color:var(--accent);color:var(--accent)}
.deal-setting-drag{color:var(--muted);font-size:14px;letter-spacing:-3px}.deal-add-field-form{display:grid;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.deal-add-field-form textarea{min-height:76px;resize:vertical}
.deal-activity{min-width:0;min-height:0;display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--feed)}
.deal-workspace.is-field-settings .deal-activity{opacity:.38;pointer-events:none;filter:saturate(.6);transition:opacity .16s ease}
.deal-active-task{position:relative;z-index:30;display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;flex:0 0 auto;margin:12px 16px 0;padding:11px 40px 11px 13px;border:1px solid color-mix(in srgb,var(--accent) 54%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--panel) 88%,var(--accent-soft));box-shadow:0 5px 18px rgba(3,18,28,.08);animation:dealTaskPinIn .2s cubic-bezier(.2,.8,.2,1) both}
.deal-active-task.is-overdue{border-color:var(--bad);box-shadow:0 0 0 1px color-mix(in srgb,var(--bad) 15%,transparent),0 6px 20px rgba(87,24,32,.11)}
.deal-active-task-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--accent);border-radius:50%;color:var(--accent);font-size:20px}.deal-active-task.is-overdue .deal-active-task-icon{border-color:var(--bad);color:var(--bad)}
.deal-active-task-close{position:absolute;right:9px;top:8px;width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:19px;line-height:1}.deal-active-task-close:hover{background:var(--panel2);color:var(--ink)}
.deal-active-task-body{min-width:0}.deal-active-task-meta{margin-bottom:2px;color:var(--muted);font-size:11px}.deal-active-task.is-overdue .deal-active-task-meta{color:var(--bad)}.deal-active-task-body>strong{display:block;font-size:13px;line-height:1.35}
  .deal-active-task-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:9px}.deal-active-task-form>input{min-width:0;height:36px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--text);padding:7px 10px;font:inherit;outline:0;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.deal-active-task-form>input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.deal-active-task.is-overdue .deal-active-task-form>input:focus{border-color:var(--bad);box-shadow:0 0 0 2px color-mix(in srgb,var(--bad) 16%,transparent)}.deal-active-task-form>input.is-invalid{border-color:color-mix(in srgb,var(--bad) 72%,var(--line));background:color-mix(in srgb,var(--bad) 5%,var(--panel2));box-shadow:0 0 0 2px color-mix(in srgb,var(--bad) 12%,transparent)}.deal-active-task-form .form-error{grid-column:1/-1;margin:0}
.deal-followup-controls{position:relative;grid-column:1/-1}.deal-followup-controls>.check{margin:0}.deal-followup-presets{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.deal-followup-presets button{border:1px solid var(--line);border-radius:14px;background:transparent;color:var(--muted);padding:4px 9px;font-size:11px;cursor:pointer;transition:.16s ease}.deal-followup-presets button:hover,.deal-followup-presets button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.deal-followup-presets>span{color:var(--ink-soft);font-size:11px}
.deal-task-dock{flex:0 0 auto;max-height:116px;overflow-y:auto;margin:0 12px 8px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 94%,var(--accent-soft));box-shadow:0 -4px 16px rgba(3,18,28,.07)}
  .deal-task-dock-row{display:grid;grid-template-columns:24px minmax(0,1fr) 18px;gap:8px;align-items:center;width:100%;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:var(--text);padding:7px 10px;text-align:left;cursor:pointer;transition:background .16s ease,border-color .16s ease}.deal-task-dock-row:last-child{border-bottom:0}.deal-task-dock-row:hover,.deal-task-dock-row.is-selected{background:color-mix(in srgb,var(--accent) 11%,transparent)}.deal-task-dock-row.is-overdue{box-shadow:inset 3px 0 0 var(--bad)}.deal-task-dock-icon{display:grid;place-items:center;color:var(--accent)}.deal-task-dock-row.is-overdue .deal-task-dock-icon,.deal-task-dock-row.is-overdue small{color:var(--bad)}.deal-task-dock-row small,.deal-task-dock-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deal-task-dock-row small{color:var(--muted);font-size:10px}.deal-task-dock-row strong{font-size:11px}.deal-task-dock-arrow{color:var(--muted);transition:transform .16s ease}.deal-task-dock-row.is-selected .deal-task-dock-arrow{transform:rotate(180deg);color:var(--accent)}
.deal-scheduler{position:absolute;z-index:12;left:0;top:calc(100% + 8px);bottom:auto;display:grid;grid-template-columns:132px minmax(230px,1fr) 170px;width:min(650px,calc(100vw - 150px));max-height:min(390px,calc(100vh - 245px));border:1px solid var(--line);border-radius:9px;background:var(--panel);box-shadow:0 18px 45px rgba(0,0,0,.32);overflow:hidden;animation:dealControlIn .18s ease both}.deal-scheduler.hidden{display:none!important}
.deal-scheduler-quick{display:flex;flex-direction:column;padding:8px;border-right:1px solid var(--line);overflow-y:auto}.deal-scheduler-quick button{border:0;border-radius:5px;background:transparent;color:var(--ink-soft);padding:6px 8px;text-align:left;font-size:11px;cursor:pointer}.deal-scheduler-quick button:hover{background:var(--accent-soft);color:var(--accent-deep)}
.deal-scheduler-month{padding:9px}.deal-scheduler-head{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;margin-bottom:7px;text-align:center}.deal-scheduler-head button{height:27px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:20px}.deal-scheduler-head button:hover{background:var(--accent-soft);color:var(--accent)}.deal-scheduler-week,.deal-scheduler-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.deal-scheduler-week span{padding:3px;color:var(--muted);font-size:9px;text-align:center}.deal-scheduler-days button{height:27px;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:10px}.deal-scheduler-days button:hover,.deal-scheduler-days button.is-selected{background:var(--accent);color:#fff}.deal-scheduler-days button.is-other{color:var(--muted);opacity:.48}.deal-scheduler-days button.is-weekend:not(.is-selected){background:color-mix(in srgb,var(--bad) 12%,transparent);color:color-mix(in srgb,var(--bad) 76%,var(--text))}.deal-scheduler-days button.is-today{box-shadow:inset 0 0 0 1px var(--accent)}
.deal-scheduler-time{padding:10px 8px;border-left:1px solid var(--line);overflow:hidden}.deal-scheduler-time>strong{display:block;margin-bottom:7px;font-size:11px}.deal-scheduler-time>div{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;max-height:330px;overflow-y:auto;padding-right:3px}.deal-scheduler-time button{height:27px;border:1px solid var(--line-soft);border-radius:5px;background:transparent;color:var(--muted);font-size:10px}.deal-scheduler-time button:hover,.deal-scheduler-time button.is-selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}
#dealTaskScheduler.deal-scheduler-floating{position:fixed;z-index:1700;left:50%;right:auto;top:50%;bottom:auto;width:min(650px,calc(100vw - 120px));max-height:calc(100vh - 32px);margin:0;translate:-50% -50%;box-shadow:0 20px 55px rgba(0,0,0,.4)}
.crm-date-input{cursor:pointer;color-scheme:dark}.crm-date-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.82;filter:brightness(1.4) saturate(.7)}
.crm-date-popover{position:fixed;z-index:1700;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--panel) 96%,#071926);box-shadow:0 20px 52px rgba(0,0,0,.38);animation:dealControlIn .18s ease both;color:var(--text)}
.crm-date-head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;margin-bottom:7px}.crm-date-head strong{text-align:center;font-size:12px;font-weight:500;letter-spacing:.015em}.crm-date-head button{height:30px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;transition:.15s ease}.crm-date-head button:hover{background:var(--accent-soft);color:var(--accent)}
.crm-date-week,.crm-date-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.crm-date-week span{padding:4px 0;color:var(--muted);font-size:10px;text-align:center}.crm-date-week .is-weekend{color:color-mix(in srgb,var(--bad) 70%,var(--muted))}.crm-date-days button{height:31px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);font:400 11px/1 var(--f-ui);cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .14s ease}.crm-date-days button:hover{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft);color:var(--accent);transform:translateY(-1px)}.crm-date-days button.is-other{color:var(--muted);opacity:.42}.crm-date-days button.is-weekend:not(.is-selected){background:color-mix(in srgb,var(--bad) 8%,transparent);color:color-mix(in srgb,var(--bad) 70%,var(--text))}.crm-date-days button.is-today{border-color:color-mix(in srgb,var(--accent) 65%,transparent)}.crm-date-days button.is-selected{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 26%,transparent)}
.crm-date-foot{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-soft)}.crm-date-foot button{border:0;background:transparent;color:var(--accent);padding:5px 7px;border-radius:6px;font-size:11px;cursor:pointer}.crm-date-foot button:hover{background:var(--accent-soft)}
.deal-feed{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:12px 16px;display:flex;flex-direction:column;scroll-behavior:smooth}.deal-feed-stream{display:flex;flex-direction:column}
.deal-feed-item{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:4px 0;color:var(--text);font-size:13px;animation:dealFeedIn .26s cubic-bezier(.2,.8,.2,1) both}
.deal-feed-item:before{content:'';position:absolute;left:8px;top:0;bottom:0;width:1px;background:var(--line)}
.deal-feed-dot{position:relative;z-index:1;display:grid;place-items:center;width:18px;height:18px;margin-top:1px;background:var(--feed);color:var(--accent);line-height:1}.deal-feed-dot svg,.deal-task-dock-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.deal-feed-dot.is-created{color:#b69ae8}.deal-feed-dot.is-change{color:#8bc9ee}.deal-feed-dot.is-note-icon{color:#7eb9d8}.deal-feed-dot.is-file{color:#e5bb73}.deal-feed-dot.is-task-open{color:#a6d47b}.deal-feed-dot.is-task-done,.deal-feed-dot.is-won{color:#78c956}.deal-feed-dot.is-cancelled{color:var(--bad)}.deal-feed-dot.is-generic{color:var(--muted)}
.deal-feed-content{min-width:0;padding:1px 0 4px}.deal-feed-meta{color:var(--muted);font-size:11px;margin-bottom:2px}.deal-feed-text{line-height:1.38;white-space:normal;overflow-wrap:anywhere}.deal-feed-item.is-note .deal-feed-text,.contact-event-text{font-family:"IBM Plex Serif",Georgia,serif;font-weight:400;letter-spacing:.008em;line-height:1.48}
.deal-feed-item.is-note .deal-feed-dot,.deal-feed-item.is-task .deal-feed-dot{background:var(--feed)}
.deal-feed-item.is-note .deal-feed-content,.deal-feed-item.is-task .deal-feed-content{border:1px solid var(--line);border-left:3px solid #58a9df;border-radius:5px;background:var(--panel);padding:9px 12px;box-shadow:0 3px 12px rgba(0,0,0,.07)}
.deal-feed-item.is-task .deal-feed-content{border-left-color:#73c43e}
.deal-feed-item.is-task:not(.is-task-completed):not(:has(.deal-feed-task-card)){grid-template-columns:20px minmax(0,1fr);gap:9px;margin:5px 0;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--panel);box-shadow:0 2px 9px rgba(0,0,0,.05)}
.deal-feed-item.is-task:not(.is-task-completed):not(:has(.deal-feed-task-card)):before{display:none}
.deal-feed-item.is-task:not(.is-task-completed):not(:has(.deal-feed-task-card)) .deal-feed-dot{width:20px;height:20px;margin:0;background:transparent}
.deal-feed-item.is-task:not(.is-task-completed):not(:has(.deal-feed-task-card)) .deal-feed-content{align-self:center;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none}
.deal-feed-item.is-task-completed{grid-template-columns:40px minmax(0,1fr);gap:12px;min-height:76px;margin:9px 0;padding:12px;border:1px solid var(--line);border-radius:6px;background:color-mix(in srgb,var(--panel) 94%,var(--feed));box-shadow:0 2px 10px rgba(0,0,0,.055)}
.deal-feed-item.is-task-completed:before{display:none}
.deal-feed-item.is-task-completed .deal-feed-dot{width:40px;height:40px;margin:1px 0 0;border:1px solid #28d568;border-radius:50%;background:transparent;color:#28d568}
.deal-feed-item.is-task-completed .deal-feed-dot svg{width:24px;height:24px;stroke-width:1.25}
.deal-feed-item.is-task-completed .deal-feed-content{align-self:center;border:0;border-radius:0;background:transparent;padding:0;box-shadow:none}
.deal-feed-item.is-task-completed .deal-feed-meta{margin-bottom:4px;color:var(--muted);font-size:11.5px;line-height:1.25}
.deal-completed-task-title{color:var(--text);font-size:13px;line-height:1.35;text-decoration-line:line-through;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--text) 68%,transparent);overflow-wrap:anywhere}
.deal-completed-task-title strong{font-weight:500}
.deal-completed-task-result{margin-top:2px;color:var(--text);font-family:"IBM Plex Serif",Georgia,serif;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.deal-completed-task-operation{display:inline-block;margin-top:4px;color:var(--accent);font-size:11px;font-weight:600;text-decoration:underline;text-underline-offset:2px}.deal-completed-task-operation:hover,.deal-completed-task-operation:focus-visible{color:var(--text)}.deal-feed-item[id^="deal-close-"]{scroll-margin-top:16px}.deal-feed-item[id^="deal-close-"]:target .deal-feed-content{outline:2px solid var(--accent);outline-offset:3px}
.deal-feed-item:has(.deal-feed-task-card) .deal-feed-content{border:0;background:transparent;padding:0;box-shadow:none}.deal-feed-task-card{display:block;width:100%;border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:7px;background:var(--panel);color:var(--text);padding:9px 12px;text-align:left;box-shadow:0 3px 12px rgba(0,0,0,.07);transition:border-color .16s ease,background .16s ease,transform .16s ease}.deal-feed-task-card:hover,.deal-feed-task-card.is-selected{background:color-mix(in srgb,var(--panel) 88%,var(--accent-soft));transform:translateX(2px)}.deal-feed-task-card.is-overdue{border-color:var(--bad);border-left-color:var(--bad);box-shadow:0 0 0 1px color-mix(in srgb,var(--bad) 13%,transparent)}.deal-feed-task-card small,.deal-feed-task-card strong{display:block}.deal-feed-task-card small{margin-bottom:3px;color:var(--muted);font-size:10px}.deal-feed-task-card.is-overdue small{color:var(--bad)}.deal-feed-task-card strong{font-size:12px;line-height:1.35}
.deal-stage-history{flex:0 0 auto;margin:0 0 10px;padding:7px 10px;border:1px solid var(--line-soft);border-radius:7px;background:color-mix(in srgb,var(--panel) 82%,transparent)}.deal-stage-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:3px}.deal-stage-history-head strong{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.deal-stage-history-head button{border:0;background:transparent;color:var(--accent);padding:2px 4px;font-size:10px}.deal-stage-history-row{display:flex;align-items:center;gap:5px;min-height:22px;color:var(--muted);font-size:10px;line-height:1.2}.deal-stage-history-row>span:first-child{white-space:nowrap}.deal-stage-history-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.deal-stage-history.is-collapsed .deal-stage-history-row.is-extra{display:none}.deal-stage-history .deal-stage-chip{max-width:210px;padding:2px 6px;font-size:10px}
.deal-stage-event{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.deal-stage-chip{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 8px;border-radius:3px;background:color-mix(in srgb,var(--accent) 22%,var(--panel));color:var(--text)}
.deal-feed-item strong{font-weight:500;white-space:pre-wrap}.deal-feed-item .muted{font-size:11px;margin-top:4px}
.deal-active-task-body>strong,.deal-task-dock-row strong,.deal-feed-task-card strong,.deal-completed-task-title strong{font-weight:400}
.deal-active-task-meta,.deal-task-dock-row small,.deal-feed-task-card small{font-weight:300;letter-spacing:.012em}
.deal-feed-empty{margin:auto;color:var(--muted)}
.deal-composer{position:relative;flex:0 0 auto;margin:0 7px 9px;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:7px 8px;box-shadow:0 8px 28px rgba(0,0,0,.14);transition:padding .24s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,border-radius .2s ease}
.deal-composer.is-expanded{padding:0 8px 8px;border-radius:12px}
.deal-composer-collapsed{display:block;width:100%;height:40px;border:0;border-radius:7px;background:transparent;color:var(--muted);padding:0 52px 0 14px;text-align:left;cursor:text;font:inherit;transition:background .2s ease,box-shadow .2s ease,transform .2s ease}
.deal-composer-collapsed span{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.deal-composer-collapsed:hover,.deal-composer-collapsed:focus-visible{background:color-mix(in srgb,var(--panel2) 90%,var(--accent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 36%,transparent);outline:0}
.deal-composer-expanded{max-height:min(390px,48vh);overflow-y:auto;animation:dealComposerExpand .2s cubic-bezier(.2,.8,.2,1) both}
.deal-composer-tabs{display:flex;gap:4px;margin-bottom:10px}.deal-composer-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:12px 15px 9px;cursor:pointer;transition:color .16s ease,border-color .16s ease}.deal-composer-tabs button.active{color:var(--accent);border-color:var(--accent)}
.deal-compose-form{animation:dealComposerIn .18s ease both}.deal-compose-form textarea{width:100%;min-height:86px;resize:vertical;margin-bottom:6px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);padding:9px 12px;font-family:"IBM Plex Serif",Georgia,serif;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:.008em;transition:border-color .18s ease,box-shadow .18s ease}.deal-compose-form textarea::placeholder{color:var(--muted);opacity:.82}.deal-compose-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent);outline:0}#dealNoteForm textarea{border:0;background:transparent;box-shadow:none;padding:8px 10px}
.deal-feed-item.is-whatsapp{margin:5px 0}.deal-feed-dot.is-whatsapp{color:#58d68d;border-color:#36b96f;background:color-mix(in srgb,#25d366 12%,var(--panel))}.deal-whatsapp-quote{margin:0;padding:10px 13px;border:0;border-left:3px solid #25d366;border-radius:3px 8px 8px 3px;background:color-mix(in srgb,#25d366 8%,var(--panel2));font-family:"IBM Plex Serif",Georgia,serif}.deal-whatsapp-quote small{display:block;margin-bottom:3px;color:#79dca5;font:500 12px/1.3 var(--font)}.deal-whatsapp-quote div{font-size:14px;line-height:1.45}.task-type-control{position:relative}.task-type-control select{padding-left:39px}.task-type-symbol{position:absolute;left:12px;top:50%;z-index:1;width:17px;height:17px;transform:translateY(-50%);color:var(--accent);pointer-events:none}.task-type-symbol svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.channel-mark{display:inline-flex;align-items:center;min-width:28px;justify-content:center;margin:1px 3px 1px 0;padding:2px 6px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px}.channel-mark.is-on{border-color:color-mix(in srgb,#25d366 60%,var(--line));background:color-mix(in srgb,#25d366 12%,transparent);color:#78dca1}
.deal-feed{background:color-mix(in srgb,var(--bg) 92%,#03131d)}
.task-type-inline{display:inline-flex;width:16px;height:16px;margin-right:5px;vertical-align:-3px;color:var(--accent)}.task-type-inline svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.task-channel-row{margin-top:6px}.channel-account{display:block;margin-top:5px;color:var(--muted)}
.deal-compose-task-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px;align-items:end}.deal-compose-task-form>.field:first-child,.deal-compose-task-form>.deal-date-presets,.deal-compose-task-form>.deal-scheduler,.deal-compose-task-form>.check,.deal-compose-task-form>.deal-compose-actions{grid-column:1/-1}.deal-compose-task-form .field{margin-bottom:5px}.deal-compose-task-form .field label{margin-bottom:3px;font-size:10px;font-weight:400;letter-spacing:.055em}.deal-compose-task-form input,.deal-compose-task-form select{height:34px;padding-top:5px;padding-bottom:5px;font-family:"IBM Plex Serif",Georgia,serif;font-size:13px;font-weight:300;letter-spacing:.008em}.deal-compose-task-form .row2{gap:10px}.deal-compose-task-form .deal-date-presets{margin:1px 0 5px}.deal-compose-task-form .deal-date-presets button{padding:5px 11px;font-weight:300}.deal-compose-task-form .check{margin-bottom:4px}.deal-compose-task-form .crm-time-picker{min-height:34px}.deal-compose-task-form .crm-time-input{font-weight:300}.deal-composer.is-expanded:has(.deal-compose-task-form:not(.hidden)){padding-bottom:6px}.deal-composer.is-expanded:has(.deal-compose-task-form:not(.hidden)) .deal-composer-expanded{max-height:min(260px,42vh)}
.deal-compose-form .check{display:inline-flex;margin:2px 14px 8px 0}.deal-compose-actions{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:34px;animation:dealButtonsIn .22s cubic-bezier(.2,.8,.2,1) both}.deal-compose-actions>.muted{margin-left:auto;font-size:11px}.deal-compose-actions .form-error{flex:1;padding:7px 9px}
.deal-attach-button{position:absolute;z-index:3;right:30px;top:13px;width:30px;height:30px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;transition:color .18s ease,background .18s ease,transform .18s ease}.deal-attach-button:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,transparent);transform:translateY(-1px) rotate(-7deg)}.deal-attach-button:disabled{opacity:.45;cursor:wait}.deal-composer.is-expanded .deal-attach-button{top:8px}.deal-upload-status{position:absolute;right:66px;top:17px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent);font-size:11px;animation:dealControlIn .18s ease both}
.deal-files-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 10px;border-bottom:1px solid var(--line)}.deal-files-head span{min-width:24px;padding:2px 7px;border-radius:12px;background:var(--panel2);color:var(--muted);font-size:11px;text-align:center}.deal-files-list{padding:9px 12px}.deal-files-empty{padding:14px;color:var(--muted);font-size:12px}.deal-file-row{display:grid;grid-template-columns:30px minmax(0,1fr) 20px;gap:8px;align-items:center;padding:9px 8px;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;transition:background .16s ease,transform .16s ease}.deal-file-row:hover{background:var(--panel2);transform:translateX(2px)}.deal-file-row strong,.deal-file-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deal-file-row strong{font-size:12px}.deal-file-row small{margin-top:2px;color:var(--muted);font-size:10px}.deal-file-icon{font-size:19px}
.deal-date-presets{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 12px}.deal-date-presets button{border:1px solid var(--line);border-radius:14px;background:transparent;color:var(--muted);padding:5px 11px;cursor:pointer;transition:.15s ease}.deal-date-presets button:hover,.deal-date-presets button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
@keyframes dealFeedIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes dealComposerIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes dealComposerExpand{from{opacity:0;transform:translateY(12px);max-height:42px}to{opacity:1;transform:translateY(0);max-height:min(390px,48vh)}}
@keyframes dealPanelIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
@keyframes dealSettingIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes dealControlIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@keyframes dealButtonsIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes dealTaskPinIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:780px){.deal-board{height:auto;overflow:visible;flex-direction:column}.deal-column{flex:auto;width:100%;height:auto}.deal-stack{overflow:visible}.deal-detail{grid-template-columns:1fr}.deal-next-task{grid-column:auto}.deals-topbar .search{min-width:100%;order:8}}
@media(max-width:780px){.pipeline-settings-bar{align-items:stretch;flex-direction:column;gap:9px}.pipeline-settings-bar__intro,.deal-board-sort{width:100%;flex:auto}.pipeline-settings-bar__actions{width:100%}.pipeline-settings-bar__actions .btn{flex:1}.pipeline-stage-add-form{align-items:stretch;flex-wrap:wrap}.pipeline-stage-add-form label:first-child{flex:1 1 210px}.pipeline-stage-add-form input[type="text"]{width:100%}.pipeline-settings-mode .deal-board{height:auto}.pipeline-settings-mode .deal-column{touch-action:pan-y}.deal-stage-editor__actions .btn-primary{flex:1}.deal-stage-delete{margin-left:0}}
@media(max-width:900px){.deal-workspace{grid-template-columns:1fr;height:auto;min-height:0;overflow:visible}.deal-profile{height:auto;overflow:visible;border-right:0}.deal-activity{height:auto;min-height:620px;overflow:visible}.deal-active-task{margin:12px 12px 0}.deal-active-task-form{grid-template-columns:1fr}.deal-task-dock{margin:0 10px 8px}.deal-scheduler{position:absolute;left:0;top:auto;bottom:calc(100% + 8px);grid-template-columns:112px minmax(210px,1fr) 145px;width:min(610px,calc(100vw - 24px));max-height:min(360px,calc(100vh - 110px));margin:0}.deal-scheduler-time>div{max-height:300px}.deal-feed{min-height:420px;overflow:visible;padding:20px 16px}.deal-composer{margin:0 10px 14px}.deal-compose-actions{flex-wrap:wrap}}
@media(max-width:900px){.deal-compose-task-form{grid-template-columns:1fr}.deal-compose-task-form>*{grid-column:1!important}}

/* ---------- карточка: две колонки ---------- */
.contact-page{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;padding:16px;align-items:start}
.contact-side{min-width:0}
.contact-main{min-width:0}

.contact-fields{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:0}
.contact-fields dt{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);padding-top:2px}
.contact-fields dd{margin:0;color:var(--ink);min-width:0;word-break:break-word}
.contact-line{margin-bottom:4px}
.contact-line .panel-note{display:inline;margin-left:6px}

.contact-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.contact-deal-modal{max-width:440px}.contact-deal-person{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.contact-deal-person span{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.contact-deal-person strong{font-size:14px;overflow-wrap:anywhere}.contact-deal-modal small{color:var(--muted)}

/* ---------- задачи клиента ---------- */
.contact-task{border-bottom:1px solid var(--line-soft);padding:8px 0}
.contact-task:last-child{border-bottom:0}
.contact-task.done{opacity:.6}
.contact-task-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.contact-task-top a{color:var(--ink-soft)}
.contact-task-top a:hover{color:var(--accent)}
.contact-task-top b{color:var(--ink)}

/* ---------- лента ---------- */
.contact-event{border-left:2px solid var(--line);padding:0 0 10px 12px;margin-left:3px;position:relative}
.contact-event:last-child{padding-bottom:0}
.contact-event::before{content:'';position:absolute;left:-5px;top:5px;width:8px;height:8px;
  border-radius:50%;background:var(--accent)}
.contact-event-text{color:var(--ink);white-space:pre-wrap;word-break:break-word}
.contact-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px 14px;border-top:1px solid var(--line-soft)}.contact-pagination .btn{min-width:84px;text-align:center}.contact-pagination .is-disabled{opacity:.38;pointer-events:none}.contact-pagination-pages{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap}.contact-pagination-pages a{display:grid;place-items:center;min-width:30px;height:30px;padding:0 7px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink-soft);font-weight:600;transition:.16s ease}.contact-pagination-pages a:hover{border-color:var(--accent);color:var(--accent)}.contact-pagination-pages a.is-current{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 28%,transparent)}.contact-pagination-gap{color:var(--muted)}

/* ---------- предупреждение о дубле ---------- */
.contact-dup{border:1px solid var(--line);border-left:3px solid var(--warn);
  border-radius:var(--r);padding:10px 12px;background:var(--surface-2)}
.contact-dup-title{font-weight:600;color:var(--ink);margin-bottom:6px}
.contact-dup-row{margin-bottom:4px}

/* ---------- строки телефонов и почт в правке ---------- */
.contact-row-edit{display:flex;gap:8px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.contact-row-edit input[type="text"],
.contact-row-edit input:not([type]),
.contact-row-edit select{
  border:1px solid var(--line);background:var(--surface-2);color:var(--ink);
  border-radius:var(--r);padding:7px 9px;font-family:inherit;font-size:13px;outline:none;
}
.contact-row-edit input:not([type]){flex:1;min-width:150px}
.contact-row-edit input:focus,.contact-row-edit select:focus{border-color:var(--accent)}
.contact-row-edit .check{white-space:nowrap}

@media (max-width:1000px){
  .contact-page{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:520px){
  .contact-page{padding:10px;gap:10px}
  .contact-fields{grid-template-columns:minmax(0,1fr)}
  .contact-fields dt{padding-top:6px}
  .contact-task-top{gap:4px}
  .contact-deal-modal{max-height:calc(100vh - 20px);overflow:auto}.contact-deal-modal .modal-foot{position:sticky;bottom:0;background:var(--surface)}.contact-deal-modal .modal-foot .btn{flex:1;min-width:0}
  .contact-pagination{flex-wrap:wrap}.contact-pagination-pages{order:-1;width:100%}
}

@media (prefers-reduced-motion:reduce){
  .form-error{animation:none}
  .deal-mobile-collapse-body,.deal-mobile-collapse-toggle svg{transition:none}
}
@media(max-width:900px){.deal-composer{margin:0 6px 8px}}
@media(max-width:900px){
  .deal-mobile-collapse-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:40px;border:0;background:transparent;color:var(--ink-soft);padding:0 11px;text-align:left;font-weight:500;letter-spacing:.025em;cursor:pointer}
  .deal-mobile-collapse-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s cubic-bezier(.2,.8,.2,1),color .18s ease}
  .deal-mobile-collapse:not(.is-mobile-collapsed)>.deal-mobile-collapse-toggle svg{transform:rotate(180deg);color:var(--accent)}
  .deal-mobile-collapse-body{max-height:1800px;opacity:1;overflow:hidden;transition:max-height .28s cubic-bezier(.2,.8,.2,1),opacity .18s ease}
  .deal-mobile-collapse.is-mobile-collapsed{padding:0!important}
  .deal-mobile-collapse.is-mobile-collapsed>.deal-mobile-collapse-body{max-height:0;opacity:0;pointer-events:none}
  .deal-mobile-collapse.is-mobile-collapsed>.deal-mobile-collapse-toggle{color:var(--muted)}
  .deal-mobile-collapse:not(.is-mobile-collapsed)>.deal-mobile-collapse-toggle{margin-bottom:7px;border-bottom:1px solid var(--line-soft)}
  .deal-mobile-collapse-body>h2{display:none}
}
/* F2.1 · безопасный импорт Excel */
.import-page{display:grid;gap:16px;min-width:0;max-width:100%;overflow-x:hidden;padding-bottom:34px}
.import-page>.panel,.import-detail{min-width:0;max-width:100%}
.import-safety{margin:0}
.import-drop{display:grid;gap:7px;place-items:center;padding:28px 18px;border:1px dashed color-mix(in srgb,var(--accent,#6fc8f3) 65%,transparent);border-radius:12px;background:color-mix(in srgb,var(--accent,#6fc8f3) 6%,transparent);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.import-drop:hover{border-color:var(--accent,#6fc8f3);background:color-mix(in srgb,var(--accent,#6fc8f3) 10%,transparent);transform:translateY(-1px)}
.import-drop.is-dragover{border-color:#93d9f7;background:color-mix(in srgb,#74c9ef 18%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,#74c9ef 12%,transparent),0 12px 32px rgba(21,67,91,.2);transform:translateY(-2px) scale(1.003)}
.import-drop.is-dragover strong{color:#c9efff}
.import-drop strong{font-size:16px;font-weight:600}
.import-drop span{color:var(--muted,#8fa8b8);font-size:13px;text-align:center}
.import-drop input{max-width:100%;margin-top:5px}
.import-actions{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;margin-top:14px}.panel-body.import-actions{flex-direction:row}
.import-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.import-detail-head h2{overflow-wrap:anywhere}
.import-stats{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:1px;margin:0 18px 12px;border:1px solid var(--line,#365368);border-radius:10px;overflow:hidden;background:var(--line,#365368)}
.import-stats span{padding:12px;background:var(--panel,#173247);color:var(--muted,#8fa8b8)}
.import-stats b{display:block;margin-bottom:3px;color:var(--text,#e8f1f6);font-size:18px}
.import-stats .good b{color:#8bd79a}.import-stats .warn b{color:#eac785}.import-stats .bad b{color:#ef9696}
.import-apply-stats{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:1px;margin:0 18px 16px;border:1px solid var(--line,#365368);border-radius:10px;overflow:hidden;background:var(--line,#365368)}
.import-apply-stats span{padding:11px 12px;background:var(--panel,#173247);color:var(--muted,#8fa8b8)}
.import-apply-stats b{display:block;margin-bottom:3px;color:var(--text,#e8f1f6);font-size:17px}.import-apply-stats .good b{color:#8bd79a}.import-apply-stats .warn b{color:#eac785}.import-apply-stats .bad b{color:#ef9696}
.import-decisions{display:grid;gap:10px;padding:8px 18px 18px}.import-decision{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(160px,.8fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--line,#365368);border-radius:10px;background:color-mix(in srgb,var(--panel2,#203d52) 76%,transparent)}.import-decision.is-pending{border-color:color-mix(in srgb,#eac785 62%,var(--line,#365368))}.import-decision small,.import-decision strong{display:block}.import-decision small{margin-bottom:3px;color:var(--muted,#8fa8b8);font-size:10px}.import-decision strong{font-size:13px;font-weight:600}.import-decision-meta{color:var(--muted,#8fa8b8);font-size:11px;overflow-wrap:anywhere}.import-decision-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.import-decision-actions .btn{white-space:nowrap}
.import-progress{height:5px;margin:0 18px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--line,#365368) 70%,transparent)}
.import-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#72c6ef,#98deb6);transition:width .25s ease}
.panel-subhead{padding:13px 18px 9px;border-top:1px solid var(--line,#365368);font-weight:600}
.import-table-scroll{display:block;width:100%;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 58%,var(--line)) color-mix(in srgb,var(--surface-2) 88%,transparent)}
.import-table-scroll:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 72%,transparent);outline-offset:-2px}
.import-table-scroll::-webkit-scrollbar{width:10px;height:10px}
.import-table-scroll::-webkit-scrollbar-track{background:color-mix(in srgb,var(--surface-2) 88%,transparent);border-radius:999px}
.import-table-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 58%,var(--line));border:2px solid color-mix(in srgb,var(--surface-2) 88%,transparent);border-radius:999px}
.import-table-scroll::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 78%,var(--line))}
.import-table-scroll>.tbl{width:max-content;min-width:100%}
.import-preview{max-height:420px;overflow:auto}
.import-result-scroll{max-height:min(58vh,620px);overflow:auto}
.import-history-scroll{overflow-x:auto}
.import-result-table td:nth-child(3),.import-result-table td:nth-child(4){max-width:460px;white-space:normal}
@media(max-width:1100px){.import-apply-stats{grid-template-columns:repeat(3,1fr)}.import-decision{grid-template-columns:1fr 1fr}.import-decision-actions{justify-content:flex-start}}
@media(max-width:900px){.import-stats{grid-template-columns:repeat(2,1fr)}.import-stats span:last-child{grid-column:1/-1}.import-detail-head{align-items:center}.import-page{padding-inline:8px}.import-actions .btn{width:100%}.import-apply-stats{grid-template-columns:repeat(2,1fr);margin-inline:8px}.import-decisions{padding-inline:8px}.import-decision{grid-template-columns:1fr}.import-decision-actions .btn{width:100%}}

/* F2.3.1 · единый вид импорта и каталог категорий */
.import-file-native{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.import-file-control{display:inline-flex!important;align-items:center;gap:9px;max-width:min(100%,520px);margin-top:6px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink-soft)!important;text-align:left!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.import-file-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:30px;padding:5px 12px;border:1px solid color-mix(in srgb,var(--accent) 65%,var(--line));border-radius:6px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent)!important;font-size:12px!important;font-weight:600;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.import-drop:hover .import-file-button{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,var(--surface));transform:translateY(-1px)}
.import-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)!important;font-size:12px!important}
.import-drop.has-file .import-file-name{color:var(--ok)!important}
.import-job-category{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(420px,1.6fr);gap:14px 20px;align-items:end;margin:0 18px 16px;padding:15px!important;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.import-job-category-head{display:flex;align-items:center;gap:10px;align-self:start}.import-job-category-head>div{display:grid;gap:3px}.import-job-category-head strong{color:var(--ink);font-size:13px}.import-job-category-head small{color:var(--muted);font-size:11px;line-height:1.35}
.import-job-category-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:1px solid color-mix(in srgb,var(--accent) 58%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent);font-size:18px}
.import-job-category-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.import-job-category-fields label{display:grid;gap:5px}.import-job-category-fields label>span{color:var(--muted);font-size:10px;letter-spacing:.04em;text-transform:uppercase}.import-job-category-fields select,.import-job-category-fields input{width:100%;min-width:0;height:36px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink);padding:6px 10px;outline:none}.import-job-category-fields select:focus,.import-job-category-fields input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent)}
.import-job-category-actions{grid-column:2;display:flex;align-items:center;gap:11px;flex-wrap:wrap}.import-job-category-actions .panel-note{margin:0}
.import-decision-pages{display:flex;align-items:center;justify-content:center;gap:12px;padding:0 18px 18px}.import-decision-pages span{color:var(--muted);font-size:12px}.import-decision-pages .is-disabled{opacity:.38;pointer-events:none}
.category-catalog-page{padding-bottom:28px}.category-catalog-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.category-catalog-intro>div{display:grid;gap:4px}.category-catalog-intro strong{font-size:15px}.category-catalog-intro span{color:var(--muted);font-size:12px}
.category-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}.category-summary-card{overflow:hidden;border:1px solid color-mix(in srgb,var(--category-color) 35%,var(--line));border-radius:11px;background:var(--surface);box-shadow:var(--shadow-card);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.category-summary-card:hover{border-color:color-mix(in srgb,var(--category-color) 65%,var(--line));transform:translateY(-2px);box-shadow:0 8px 24px rgba(3,18,28,.12)}
.category-summary-card header{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--line-soft);background:linear-gradient(110deg,color-mix(in srgb,var(--category-color) 13%,var(--surface)),var(--surface))}.category-summary-mark{width:12px;height:38px;border-radius:999px;background:var(--category-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--category-color) 14%,transparent)}.category-summary-heading{display:grid;justify-items:start;gap:5px;min-width:0}.category-summary-card h2{margin:0;font-size:16px;font-weight:600}.category-summary-card header a{color:var(--accent);font-size:11px}.category-name-edit-trigger{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-height:34px;margin:0;padding:5px 9px;border:1px solid color-mix(in srgb,var(--category-color) 58%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--category-color) 22%,var(--surface-2));color:var(--ink);font:inherit;font-size:16px;font-weight:600;text-align:left;cursor:pointer;box-shadow:0 2px 8px rgba(3,18,28,.12);transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.category-name-edit-trigger>span:first-child{overflow:hidden;text-overflow:ellipsis}.category-name-edit-trigger:hover{border-color:var(--category-color);background:color-mix(in srgb,var(--category-color) 32%,var(--surface-2));transform:translateY(-1px);box-shadow:0 5px 14px rgba(3,18,28,.17)}.category-name-edit-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.category-name-edit-trigger:active{transform:translateY(0);box-shadow:0 1px 4px rgba(3,18,28,.12)}.category-name-edit-icon{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:6px;background:var(--accent);color:var(--accent-contrast,#082033);font-size:15px;line-height:1}.category-summary-card.is-renaming .category-name-edit-trigger{opacity:.58}.category-rename-form[hidden]{display:none!important}
.category-rename-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:12px 15px;border-bottom:1px solid var(--line-soft);background:var(--surface-2)}.category-rename-form label{display:grid;gap:5px;min-width:0}.category-rename-form label>span{color:var(--muted);font-size:10px;letter-spacing:.04em;text-transform:uppercase}.category-rename-form input{width:100%;min-width:0;height:38px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);padding:6px 10px;outline:none}.category-rename-form input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.category-rename-actions{display:flex;align-items:center;gap:8px}.category-rename-form .btn{height:38px;white-space:nowrap}.category-rename-cancel{background:color-mix(in srgb,var(--muted) 22%,var(--surface));border-color:color-mix(in srgb,var(--muted) 72%,var(--line));color:var(--ink)}
.category-summary-stats{display:grid;grid-template-columns:1fr 1fr;margin:0}.category-summary-stats>div{padding:13px 15px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.category-summary-stats>div:nth-child(2n){border-right:0}.category-summary-stats>div:nth-last-child(-n+2){border-bottom:0}.category-summary-stats dt{color:var(--muted);font-size:11px}.category-summary-stats dd{margin:4px 0 0;color:var(--ink);font-size:22px;font-weight:500}.category-summary-stats .is-work dd{color:var(--accent)}.category-summary-stats .is-closed dd{color:var(--bad)}.category-summary-stats .is-won dd{color:var(--ok)}.category-summary-card footer{padding:9px 15px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:11px}.category-summary-card footer b{color:var(--ink-soft)}
@media(max-width:900px){.import-job-category{grid-template-columns:1fr;margin-inline:8px}.import-job-category-actions{grid-column:auto}.category-catalog-grid{grid-template-columns:1fr}.category-catalog-intro{align-items:flex-start;flex-direction:column}.category-catalog-intro .btn{width:100%}}
@media(max-width:560px){.import-job-category-fields{grid-template-columns:1fr}.import-decision-pages{justify-content:space-between;flex-wrap:wrap}.import-decision-pages span{order:-1;width:100%;text-align:center}.category-name-edit-trigger{width:100%;justify-content:space-between}.category-rename-form{grid-template-columns:1fr}.category-rename-actions{display:grid;grid-template-columns:1fr 1fr}.category-rename-form .btn{width:100%}.category-summary-stats{grid-template-columns:1fr}.category-summary-stats>div{border-right:0!important;border-bottom:1px solid var(--line-soft)!important}.category-summary-stats>div:last-child{border-bottom:0!important}}
/* F2.3.2: единый рабочий интерфейс объектов недвижимости */
.properties-page,.property-page{padding:18px;max-width:1500px;margin:0 auto}.properties-search{display:flex;gap:10px;margin-bottom:18px}.properties-search input{min-width:320px;flex:1}.properties-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.property-card{display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.property-card:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 10px 28px rgba(4,20,32,.14)}.property-card-type,.property-card-categories{color:var(--muted);font-size:12px}.property-card dl{display:grid;grid-template-columns:120px 1fr;gap:6px;margin:4px 0}.property-card dt{color:var(--muted)}.property-card dd{margin:0}.property-page{display:grid;grid-template-columns:minmax(300px,440px) minmax(420px,1fr);gap:16px;align-items:start}.property-main-card{grid-row:span 2}.property-fields{grid-template-columns:135px 1fr}.property-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.property-tags span{padding:5px 9px;border:1px solid var(--category-color);border-radius:999px;color:var(--text)}.property-relations{display:flex;flex-direction:column;gap:9px}.property-relation-row{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--text);text-decoration:none}.property-relation-row:hover{border-color:var(--blue)}.property-relation-row span,.property-relation-row small{color:var(--muted)}.property-deal-row{display:flex;align-items:center;justify-content:space-between}.property-deal-row>a{display:flex;flex-direction:column;gap:3px;color:var(--text);text-decoration:none}.property-link-form{display:flex;gap:10px;margin-top:8px}.property-link-form select{flex:1}.deal-properties-panel{padding:16px}.deal-properties-panel h2{margin:0 0 10px}.deal-property-link{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-top:1px solid var(--line);color:var(--text);text-decoration:none}.deal-property-link span{color:var(--muted);font-size:12px}.pagination{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.pagination a{padding:7px 10px;border:1px solid var(--line);border-radius:7px;color:var(--text);text-decoration:none}.pagination a.active{background:var(--blue);color:#fff;border-color:var(--blue)}
@media(max-width:800px){.property-page{grid-template-columns:1fr;padding:10px}.property-main-card{grid-row:auto}.properties-page{padding:10px}.properties-search{flex-wrap:wrap}.properties-search input{min-width:100%}.property-link-form{flex-direction:column}}

/* F2.3.3: все новые элементы используют общие поверхности, линии и акцент CRM. */
.sound-choice{display:flex;align-items:flex-end;gap:10px;margin-top:14px}.sound-choice .field{flex:1;margin:0}.sound-toggle{display:flex;align-items:center;gap:9px;color:var(--text)}
.crm-select{position:relative;display:block;min-width:0;flex:1}.crm-select select{appearance:none;width:100%;height:40px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel2) 92%,var(--blue) 8%);color:var(--text);padding:0 42px 0 13px;font:500 13px var(--f-ui);outline:0;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.crm-select select:hover,.crm-select select:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 16%,transparent);background:var(--panel2)}.crm-select>span{position:absolute;right:8px;top:50%;display:grid;place-items:center;width:26px;height:26px;transform:translateY(-50%);border-radius:7px;background:color-mix(in srgb,var(--blue) 13%,transparent);color:var(--blue);pointer-events:none}.crm-select svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.property-category-nav{display:flex;gap:8px;overflow-x:auto;margin:0 0 14px;padding:2px 1px 8px;scrollbar-width:thin}.property-category-filter{display:flex;align-items:center;gap:10px;min-width:max-content;padding:9px 12px;border:1px solid var(--line);border-left:3px solid var(--category-color,var(--blue));border-radius:9px;background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .18s ease,background .18s ease,transform .18s ease}.property-category-filter:hover{transform:translateY(-1px);border-color:var(--category-color,var(--blue))}.property-category-filter.active{background:color-mix(in srgb,var(--panel2) 84%,var(--category-color,var(--blue)) 16%);border-color:var(--category-color,var(--blue))}.property-category-filter b{color:var(--muted);font-size:11px;font-weight:500}.property-category-counts{display:flex;align-items:center;gap:5px}.property-category-counts b{padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);white-space:nowrap}.property-category-counts b:first-child{border-color:color-mix(in srgb,var(--category-color,var(--blue)) 42%,var(--line));color:var(--text)}
.property-list{overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.property-list-head,.property-list-row{display:grid;grid-template-columns:minmax(240px,1.6fr) minmax(155px,.8fr) 100px 100px minmax(180px,1fr);align-items:center;gap:14px}.property-list-head{padding:9px 14px;border-bottom:1px solid var(--line);background:var(--panel2);color:var(--muted);font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.property-list-row{min-height:66px;padding:10px 14px;border-bottom:1px solid var(--line-soft);color:var(--text);text-decoration:none;transition:background .16s ease,border-color .16s ease}.property-list-row:last-child{border-bottom:0}.property-list-row:hover{background:color-mix(in srgb,var(--panel2) 88%,var(--blue) 12%)}.property-list-title{display:flex;min-width:0;flex-direction:column;gap:4px}.property-list-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-list-title small,.property-list-categories{color:var(--muted);font-size:12px}
.property-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.property-pagination-main,.property-pagination-pages,.property-pagination-jump{display:flex;align-items:center;gap:6px}.property-pagination-main{min-width:0}.property-pagination .btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px}.property-pagination-pages a{display:grid;place-items:center;min-width:36px;height:38px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);font-weight:650;text-decoration:none;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}.property-pagination-pages a:hover,.property-pagination-pages a:focus-visible{border-color:var(--blue);color:var(--blue);transform:translateY(-1px)}.property-pagination-pages a.is-current{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--blue) 28%,transparent)}.property-pagination-gap{display:grid;place-items:center;min-width:20px;color:var(--muted)}.property-pagination-step{min-width:92px;text-align:center}.property-pagination .is-disabled{opacity:.42;pointer-events:none}.property-pagination-jump{justify-content:flex-end;color:var(--muted);font-size:12px}.property-pagination-jump label{white-space:nowrap}.property-pagination-jump input{width:76px;height:38px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);text-align:center}.property-pagination-jump input:hover,.property-pagination-jump input:focus{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 14%,transparent);outline:0}
@media(max-width:1100px){.property-pagination{align-items:stretch;flex-direction:column}.property-pagination-main{justify-content:space-between}.property-pagination-jump{justify-content:center}}
@media(max-width:900px){.property-list{overflow-x:auto}.property-list-head,.property-list-row{min-width:920px}.sound-choice{align-items:stretch;flex-direction:column}.property-category-counts{align-items:flex-start;flex-direction:column}.property-pagination-pages{justify-content:center;flex-wrap:wrap}.property-pagination-main{flex-wrap:wrap}.property-pagination-step{flex:1}.property-pagination-pages{order:3;width:100%}}
@media(max-width:560px){.property-pagination-pages{gap:4px}.property-pagination-pages a{min-width:32px;padding-inline:4px;font-size:12px}.property-pagination-gap{min-width:12px}.property-pagination-jump{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%}.property-pagination-jump label{grid-column:1/-1;white-space:normal}.property-pagination-jump input{width:100%}.property-pagination-jump .btn{padding-inline:14px}}

/* F2.3.4: визуальное напоминание и единый выбор времени. */
.task-due-popover.is-toasty .task-due-popover-icon img{transform:scaleX(-1)}
.task-due-stack{position:fixed;left:88px;bottom:28px;z-index:1600;display:flex;flex-direction:column-reverse;gap:10px;width:min(344px,calc(100vw - 112px));max-height:calc(100vh - 56px);overflow-y:auto;padding:4px;pointer-events:none;scrollbar-width:thin}.task-due-popover{position:relative;flex:0 0 auto;display:grid;grid-template-columns:68px minmax(0,1fr) 24px;align-items:center;gap:9px;width:100%;padding:6px 9px;border:1px solid color-mix(in srgb,#ff9b72 76%,var(--line));border-left:4px solid #ff8b61;border-radius:14px;background:linear-gradient(125deg,color-mix(in srgb,#ff8b61 22%,var(--panel2)),color-mix(in srgb,#efb65b 10%,var(--panel2)));color:var(--text);box-shadow:0 18px 44px rgba(3,18,28,.34),0 0 0 3px color-mix(in srgb,#ff8b61 10%,transparent);cursor:pointer;opacity:0;transform:translate3d(calc(-100% - 110px),0,0);transition:opacity .38s ease,transform .46s cubic-bezier(.2,.8,.2,1),border-color .18s ease,box-shadow .18s ease;pointer-events:auto}.task-due-popover:hover{border-color:#ffb18d;box-shadow:0 20px 48px rgba(3,18,28,.38),0 0 0 4px color-mix(in srgb,#ff8b61 14%,transparent);transform:translate3d(0,-2px,0)}.task-due-popover:focus-visible{outline:2px solid #ffd0b8;outline-offset:3px}.task-due-popover.is-visible{opacity:1;transform:translate3d(0,0,0)}.task-due-popover.is-leaving{opacity:0;transform:translate3d(calc(-100% - 110px),0,0)}.task-due-popover-icon{display:grid;place-items:center;width:68px;height:68px;overflow:hidden;border:2px solid color-mix(in srgb,#ffd0b8 76%,transparent);border-radius:50%;background:var(--panel);box-shadow:0 5px 15px rgba(5,20,30,.28)}.task-due-popover-icon img{display:block;width:100%;height:100%;object-fit:cover}.task-due-popover>div{display:flex;min-width:0;flex-direction:column;gap:1px}.task-due-popover small{color:#ffc09d;font-size:10px;font-weight:350;letter-spacing:.05em;text-transform:uppercase}.task-due-popover strong{overflow:hidden;color:#fff7f1;font-size:14px;font-weight:350;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.task-due-popover>div>span{overflow:hidden;color:#d7c2b7;font-size:11px;font-weight:300;text-overflow:ellipsis;white-space:nowrap}.task-due-popover>button{align-self:start;width:24px;height:24px;padding:0;border:0;border-radius:7px;background:transparent;color:#e9c0ad;font-size:19px;font-weight:300;line-height:1;cursor:pointer;transition:color .15s ease,transform .15s ease,background .15s ease}.task-due-popover>button:hover{background:rgba(255,255,255,.08);color:#fff;transform:rotate(8deg)}

.contact-whatsapp-summary{margin-top:14px;padding:12px;border:1px solid color-mix(in srgb,#69d9c0 55%,var(--line));border-radius:12px;background:color-mix(in srgb,#69d9c0 7%,var(--panel2))}.contact-whatsapp-title{display:flex;align-items:center;gap:8px;margin-bottom:10px}.contact-whatsapp-title span{display:grid;place-items:center;width:30px;height:30px;border:1px solid #69d9c0;border-radius:50%;color:#8ee7d3;font-size:10px}.contact-whatsapp-summary dl{display:grid;grid-template-columns:minmax(110px,.9fr) minmax(0,1.1fr);gap:7px 10px;margin:0}.contact-whatsapp-summary dt{color:var(--muted)}.contact-whatsapp-summary dd{margin:0;color:var(--text)}.contact-whatsapp-summary small{display:block;margin-top:10px;color:var(--muted);line-height:1.4}
.manual-whatsapp-open{display:flex;margin-top:9px;width:100%;justify-content:center}.manual-whatsapp-state{display:grid;gap:4px;margin-top:12px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--ok) 55%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--ok) 8%,var(--panel2))}.manual-whatsapp-state strong{font-size:12px}.manual-whatsapp-state span{color:var(--muted);font-size:12px}.manual-whatsapp-panel{scroll-margin-top:14px}.manual-whatsapp-form{display:grid;gap:12px}.manual-whatsapp-form small{color:var(--muted);line-height:1.35}.manual-whatsapp-form>.btn{justify-self:start;min-width:180px}
.whatsapp-repeat-manager{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid color-mix(in srgb,var(--warn) 58%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--warn) 7%,var(--panel2))}.whatsapp-repeat-manager__state{display:grid;gap:4px}.whatsapp-repeat-manager__state strong{font-size:12px}.whatsapp-repeat-manager__state span,.whatsapp-repeat-manager small{color:var(--muted);font-size:11px;line-height:1.4}.whatsapp-repeat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.whatsapp-repeat-form label{grid-column:1/-1;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.whatsapp-repeat-form input{min-width:0;width:100%}.whatsapp-repeat-form .btn,.whatsapp-repeat-reset .btn{min-height:38px;justify-content:center}.whatsapp-repeat-reset,.whatsapp-repeat-reset .btn{width:100%}
@media(max-width:560px){.whatsapp-repeat-form{grid-template-columns:1fr}.whatsapp-repeat-form label{grid-column:auto}.whatsapp-repeat-form .btn{width:100%}}
.crm-time-picker{position:relative;width:100%}.crm-time-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel2) 92%,var(--accent-soft));color:var(--text);font:500 13px var(--f-ui);cursor:pointer;outline:0;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.crm-time-trigger:hover,.crm-time-trigger[aria-expanded="true"]{border-color:var(--accent);background:var(--panel2);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.crm-time-trigger svg{width:18px;height:18px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.crm-time-menu{position:absolute;right:0;bottom:calc(100% + 7px);z-index:1300;display:grid;grid-template-columns:repeat(4,58px);gap:5px;width:max-content;max-height:244px;overflow-y:auto;padding:9px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:11px;background:var(--panel2);box-shadow:0 16px 38px rgba(3,18,28,.3);scrollbar-width:thin}.crm-time-menu.hidden{display:none}.crm-time-menu button{height:32px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font:500 12px var(--f-ui);cursor:pointer;transition:color .14s ease,background .14s ease,border-color .14s ease}.crm-time-menu button:hover{border-color:var(--line);background:var(--surface-2);color:var(--text)}.crm-time-menu button.is-selected{border-color:color-mix(in srgb,var(--accent) 48%,transparent);background:color-mix(in srgb,var(--accent) 18%,var(--panel2));color:var(--accent)}.crm-time-picker.is-disabled{opacity:.45}.crm-time-picker.is-disabled .crm-time-trigger{cursor:not-allowed}
.deal-composer.is-expanded:has(.crm-time-menu:not(.hidden)) .deal-composer-expanded{overflow:visible}
@media(max-width:560px){.deal-scheduler{position:fixed;z-index:1500;left:8px;right:8px;bottom:8px;top:auto;grid-template-columns:1fr;width:auto;max-height:calc(100vh - 16px);overflow-y:auto}.deal-scheduler-quick{display:grid;grid-template-columns:repeat(2,1fr);border-right:0;border-bottom:1px solid var(--line)}.deal-scheduler-time{border-left:0;border-top:1px solid var(--line)}.deal-scheduler-time>div{max-height:140px}}
@media(max-width:560px){#dealTaskScheduler.deal-scheduler-floating{left:50%;right:auto;top:50%;bottom:auto;width:calc(100vw - 20px);max-height:calc(100vh - 20px);translate:-50% -50%}}
@media(max-width:600px){.task-due-stack{left:8px;right:8px;bottom:10px;width:auto;max-height:calc(100vh - 20px)}.crm-time-menu{left:0;right:auto;grid-template-columns:repeat(4,minmax(52px,1fr));width:min(280px,calc(100vw - 44px))}.modal .crm-time-menu{position:fixed;left:50%;right:auto;top:50%;bottom:auto;width:min(280px,calc(100vw - 24px));max-height:min(244px,calc(100vh - 24px));transform:translate(-50%,-50%)}}
@media(max-width:600px){.topbar .search{flex:1 1 100%;width:100%;min-width:0}.topbar .search input{width:100%;min-width:0}.modal .row2{grid-template-columns:minmax(0,1fr)}.modal .field,.modal .field input,.modal .field select,.modal .field textarea{min-width:0;max-width:100%}}

/* F2.3.5: ручной ввод времени с сохранением быстрого выбора. */
.crm-time-input{width:100%;height:42px;padding:0 46px 0 13px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel2) 92%,var(--accent-soft));color:var(--text);font:500 13px var(--f-ui);font-variant-numeric:tabular-nums;letter-spacing:.015em;outline:0;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.crm-time-input:hover,.crm-time-input:focus{border-color:var(--accent);background:var(--panel2);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.crm-time-picker>.crm-time-trigger-icon{position:absolute;right:6px;top:50%;z-index:2;display:grid;width:32px;height:32px;padding:0;place-items:center;transform:translateY(-50%);border:0;border-radius:7px;background:transparent;box-shadow:none}
.crm-time-picker>.crm-time-trigger-icon:hover,.crm-time-picker>.crm-time-trigger-icon[aria-expanded="true"]{border:0;background:color-mix(in srgb,var(--accent) 13%,transparent);box-shadow:none}
.crm-time-picker>.crm-time-trigger-icon svg{width:18px;height:18px}
.crm-time-picker.is-disabled .crm-time-input{cursor:not-allowed}
.task-due-popover.is-visible:hover{border-color:#ffb18d;box-shadow:0 20px 48px rgba(3,18,28,.38),0 0 0 4px color-mix(in srgb,#ff8b61 14%,transparent);transform:translate3d(0,-2px,0)}

/* ============================================================
   F2.6.1 — телефонные звонки, записи и разбор.
   Цвета только переменными: карточка звонка одинаково читается
   в светлой и тёмной теме и в карточке сделки, и в карточке клиента.
   ============================================================ */
.deal-feed-item.is-call{margin:5px 0}
.deal-feed-dot.is-call{color:var(--accent-deep)}
.deal-feed-item.is-call .deal-feed-content{padding-bottom:2px}
.contact-event.is-call .contact-event-text{font-family:var(--f-ui)}

.call-card{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);
  border-left:3px solid var(--accent);border-radius:3px 8px 8px 3px;
  background:color-mix(in srgb,var(--accent) 7%,var(--panel2))}
.call-card-outgoing{border-left-color:var(--ok)}
.call-card-missed{border-left-color:var(--bad)}
.call-card-head{display:flex;align-items:center;gap:8px;min-width:0}
.call-card-icon{display:grid;place-items:center;width:17px;height:17px;flex:0 0 17px;color:var(--accent-deep)}
.call-card-outgoing .call-card-icon{color:var(--ok)}
.call-card-missed .call-card-icon{color:var(--bad)}
.call-card-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.45;
  stroke-linecap:round;stroke-linejoin:round}
.call-card-title{font-size:13px;font-weight:500;color:var(--ink);overflow-wrap:anywhere}
.call-card-meta{color:var(--muted);font-size:11px;line-height:1.35}
.call-card-state{color:var(--muted);font-size:11px}
.call-card-state.is-ready{color:var(--ok)}
.call-card-state.is-loading{color:var(--accent-deep)}
.call-card-state.is-failed,.call-card-state.is-deleted{color:var(--bad)}
.call-card-state a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;
  transition:border-color .16s ease}
.call-card-state a:hover{border-bottom-color:currentColor}

/* Плеер записи звонка: единый компонент CRM вместо системной панели браузера. */
.crm-audio-player{display:flex;align-items:center;gap:8px;width:100%;min-width:0;padding:7px 8px;
  border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--surface) 75%,transparent)}
.call-player.is-enhanced{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  clip-path:inset(50%);white-space:nowrap}
.crm-audio-action{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;
  border:1px solid color-mix(in srgb,var(--accent-deep) 55%,var(--line));border-radius:7px;
  background:var(--accent-deep);color:var(--surface);text-decoration:none;cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.crm-audio-action svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.crm-audio-play svg{fill:currentColor;stroke:currentColor}
.crm-audio-action:hover{border-color:var(--accent-hover);background:var(--accent-hover);color:var(--surface)}
.crm-audio-action:active{transform:translateY(1px);background:var(--accent);box-shadow:inset 0 1px 3px rgba(0,0,0,.18)}
.crm-audio-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.crm-audio-action:disabled{border-color:var(--line);background:var(--line);color:var(--muted);
  cursor:not-allowed;transform:none;opacity:.68}
.crm-audio-timeline{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:7px;min-width:80px;flex:1}
.crm-audio-clock{display:flex;gap:3px;color:var(--muted);font-size:11px;line-height:1;white-space:nowrap}
.crm-audio-current{color:var(--ink-soft)}
.crm-audio-volume{display:flex;align-items:center;gap:6px;min-width:0}
.crm-audio-volume .crm-audio-action{border-color:var(--line);background:var(--surface);color:var(--accent-deep)}
.crm-audio-volume .crm-audio-action:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}
.crm-audio-range{--range-progress:0%;height:18px;margin:0;padding:0;border:0;background:transparent;
  accent-color:var(--accent-deep);cursor:pointer;-webkit-appearance:none;appearance:none}
.crm-audio-range::-webkit-slider-runnable-track{height:4px;border-radius:999px;
  background:linear-gradient(to right,var(--accent-deep) var(--range-progress),var(--line) var(--range-progress))}
.crm-audio-range::-webkit-slider-thumb{width:14px;height:14px;margin-top:-5px;border:2px solid var(--surface);
  border-radius:50%;background:var(--accent-deep);box-shadow:0 0 0 1px var(--accent-deep);-webkit-appearance:none}
.crm-audio-range::-moz-range-track{height:4px;border-radius:999px;background:var(--line)}
.crm-audio-range::-moz-range-progress{height:4px;border-radius:999px;background:var(--accent-deep)}
.crm-audio-range::-moz-range-thumb{width:11px;height:11px;border:2px solid var(--surface);border-radius:50%;
  background:var(--accent-deep);box-shadow:0 0 0 1px var(--accent-deep)}
.crm-audio-range:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.crm-audio-range:disabled{cursor:not-allowed;opacity:.55}
.crm-audio-volume-range{flex:0 1 64px;width:64px}
.crm-audio-player[data-state="playing"]{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));
  background:var(--accent-soft)}
.crm-audio-player[data-state="loading"] .crm-audio-play{cursor:progress;opacity:.75}
.crm-audio-player[data-state="error"]{border-color:var(--bad)}
@media(max-width:520px){
  .crm-audio-player{gap:6px;padding:6px}
  .crm-audio-timeline{grid-template-columns:minmax(0,1fr);gap:3px}
  .crm-audio-clock{justify-content:space-between}
  .crm-audio-volume-range{width:48px;flex-basis:48px}
}

/* Признак канала «телефонный звонок» в списках. */
.channel-mark.is-call.is-on{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));
  background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent-deep)}

/* ---------- раздел «Звонки» ---------- */
.deal-call-filter{display:flex;align-items:center}
.call-storage-warning{display:grid;grid-template-columns:20px minmax(0,1fr);gap:11px;
  margin:12px 16px;padding:12px 14px;border:1px solid var(--bad);border-radius:var(--r);
  background:color-mix(in srgb,var(--bad) 10%,var(--panel))}
.call-storage-warning-icon{width:20px;height:20px;color:var(--bad)}
.call-storage-warning-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;
  stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.call-storage-warning strong{display:block;margin-bottom:3px;font-weight:600}
.call-storage-warning p{margin:0 0 3px;font-size:12px;line-height:1.45}
.call-storage-warning .muted{color:var(--muted)}

.call-manual{margin:12px 16px;padding:13px 15px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--panel);box-shadow:var(--shadow-card)}
.call-manual-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.call-manual-close{border:0;background:transparent;color:var(--muted);font-size:17px;
  line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px}
.call-manual-close:hover{background:var(--surface-2);color:var(--ink)}
.call-manual-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 12px}
.call-field{display:grid;gap:4px;min-width:0;position:relative}
.call-field>span{color:var(--muted);font-size:11px}
.call-field input,.call-field select{width:100%;padding:7px 9px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--surface-2);color:var(--ink);
  font:inherit;font-size:13px;transition:border-color .16s ease,background .16s ease}
.call-field input:focus,.call-field select:focus{outline:none;border-color:var(--accent);
  background:var(--panel)}
.call-field input[type=file]{padding:6px 8px;font-size:12px}
.call-field-wide{grid-column:1/-1}
.call-manual-actions{grid-column:1/-1;display:flex;align-items:center;gap:12px}
.call-manual-progress{color:var(--muted);font-size:12px}

.call-review{display:grid;gap:10px;padding:12px 16px 28px}
.call-review-empty{color:var(--muted);padding:20px 4px}
.call-review-row{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(0,320px);
  gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--panel);box-shadow:var(--shadow-card)}
.call-dir{width:24px;height:24px;color:var(--accent-deep)}
.call-dir-outgoing{color:var(--ok)}
.call-dir-missed{color:var(--bad)}
.call-dir svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.4;
  stroke-linecap:round;stroke-linejoin:round}
.call-review-main{min-width:0;display:grid;gap:4px;align-content:start}
.call-review-meta{color:var(--muted);font-size:11px}
.call-review-phone{font-size:14px;font-weight:500}
.call-review-reason{color:var(--muted);font-size:12px;line-height:1.4}
.call-record-state{color:var(--muted);font-size:12px}
.call-assign{display:grid;gap:8px;align-content:start}
.call-suggest{position:absolute;z-index:5;top:100%;left:0;right:0;max-height:230px;overflow:auto;
  margin-top:3px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);
  box-shadow:var(--shadow-drag)}
.call-suggest-item{display:block;width:100%;padding:7px 10px;border:0;background:transparent;
  color:var(--ink);text-align:left;cursor:pointer;font:inherit}
.call-suggest-item:hover,.call-suggest-item:focus-visible{background:var(--accent-soft)}
.call-suggest-item strong{display:block;font-size:13px;font-weight:500}
.call-suggest-item small{display:block;color:var(--muted);font-size:11px}
.call-suggest-empty{padding:9px 10px;color:var(--muted);font-size:12px}

@media(max-width:900px){
  .call-review-row{grid-template-columns:24px minmax(0,1fr)}
  .call-assign{grid-column:1/-1;border-top:1px solid var(--line-soft);padding-top:9px}
  .call-manual-form{grid-template-columns:1fr}
  .call-storage-warning,.call-manual,.call-review{margin-left:10px;margin-right:10px}
}
@media (prefers-reduced-motion:reduce){
  .call-field input,.call-field select,.call-card-state a,.crm-audio-action{transition:none}
}
/* F2.7.2 - черновики рассылок и предварительная проверка */
.campaign-page,.campaign-page>*{min-width:0}
.campaign-page{display:grid;gap:18px}.campaign-safety{margin:0}.campaign-filter-grid,.campaign-message-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.campaign-filter-form{display:grid;gap:14px}.campaign-range>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.campaign-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.campaign-metrics>div{padding:14px 16px;border-right:1px solid var(--line);display:grid;gap:4px}.campaign-metrics>div:last-child{border-right:0}.campaign-metrics b{font-size:22px}.campaign-metrics span{color:var(--muted);font-size:12px}.campaign-metrics .good b{color:var(--ok)}.campaign-selection-head{display:flex;gap:24px;flex-wrap:wrap}.campaign-selection-head label,.campaign-save-template{display:flex;align-items:center;gap:8px}.campaign-table-wrap{max-width:100%;overflow:auto;max-height:460px;overscroll-behavior:contain;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.campaign-table{min-width:1120px}.campaign-check{width:46px}.campaign-reason{display:inline-flex;padding:4px 8px;border-radius:8px;background:var(--surface-2);white-space:nowrap}.campaign-reason.is-ok{color:var(--ok)}.campaign-reason.is-skip{color:var(--warn)}.campaign-area-filter{display:grid;grid-template-columns:auto minmax(130px,180px);align-items:end;gap:12px}.campaign-area-filter>.field{margin:0}.campaign-toggle{display:flex;min-height:42px;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.campaign-area-filter small{grid-column:1/-1;color:var(--muted)}.campaign-generator-data{min-width:180px;line-height:1.5}.campaign-message-head{margin-top:14px}.campaign-body-field{grid-column:1/-1}.campaign-body-field textarea{resize:vertical;min-height:130px}.campaign-body-field small{display:block;margin-top:7px;color:var(--muted)}.campaign-email-subject[hidden]{display:none}.campaign-save-template{grid-column:1/-1}.campaign-template-name{display:none}.campaign-save-template:has(input:checked)+.campaign-template-name{display:block}.campaign-create-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.campaign-recipient-head{gap:12px}.campaign-recipient-head form{margin-left:auto}.campaign-recipient-list{max-height:560px}.campaign-message-cell{min-width:280px;max-width:520px;white-space:pre-wrap}.campaign-topbar .count{white-space:normal}
@media(max-width:900px){.campaign-filter-grid,.campaign-message-grid{grid-template-columns:1fr}.campaign-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-metrics>div:nth-child(2n){border-right:0}.campaign-body-field,.campaign-save-template{grid-column:auto}.campaign-create-actions .panel-note{flex-basis:100%}}
@media(max-width:760px){.filters{align-items:stretch}.contact-filters{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);width:100%}.contact-filters input[type="number"],.contact-filters input[type="date"],.contact-filters select{width:100%;min-width:0}.contact-filter-submit{grid-column:1/-1;margin-left:0}.filters>.count{white-space:normal}}
@media(max-width:520px){.campaign-page{gap:12px}.campaign-metrics>div{padding:11px}.campaign-metrics b{font-size:19px}.campaign-selection-head{display:grid;gap:10px}.campaign-filter-form,.campaign-message-grid{gap:10px}.campaign-area-filter{grid-template-columns:1fr}.campaign-area-filter small{grid-column:auto}.campaign-table-wrap{max-height:55vh}.campaign-recipient-head{align-items:flex-start}.campaign-recipient-head form{width:100%;margin:0}.campaign-recipient-head select{width:100%}}
.campaign-control-panel .panel-head>div{display:grid;gap:3px}.campaign-actions{display:flex;align-items:flex-start;gap:9px;flex-wrap:wrap;padding:14px 16px}.campaign-actions form{margin:0}.campaign-cancel{position:relative}.campaign-cancel>summary{list-style:none;cursor:pointer}.campaign-cancel>summary::-webkit-details-marker{display:none}.campaign-cancel[open]{z-index:1700}.campaign-cancel[open]>form{position:fixed;z-index:1700;left:50%;right:auto;top:50%;box-sizing:border-box;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto;transform:translate(-50%,-50%);padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 46px rgba(0,0,0,.42)}.campaign-cancel[open]>form label{display:flex;align-items:flex-start;gap:8px;margin:0 0 12px;line-height:1.35}.campaign-cancel[open]>form label input{flex:0 0 auto;margin-top:2px}.campaign-cancel p{margin:0 0 12px;color:var(--muted);line-height:1.4}.campaign-readonly{padding:14px 16px}.campaign-devices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;padding:14px 16px}.campaign-devices>.empty{padding:8px 0;text-align:left}.campaign-device{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.campaign-device span{font-size:12px;color:var(--muted)}.campaign-recipient-filters{display:flex;gap:8px;align-items:center;margin-left:auto}.campaign-recipient-filters select{min-width:150px;padding:8px 34px 8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--text)}.campaign-control-table{min-width:980px}.campaign-row-actions{display:flex;gap:7px;align-items:center;white-space:nowrap}.campaign-row-actions form{margin:0}.campaign-replace .panel-body{display:grid;gap:12px}.campaign-replace-search{display:flex;align-items:end;gap:9px}.campaign-replace-search .field{flex:1}.campaign-candidate{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px}.campaign-candidate span{display:grid;gap:3px}.campaign-candidate small{color:var(--muted)}
.campaign-history-actions{display:flex;align-items:flex-start;gap:9px;flex-wrap:wrap;padding:0 16px 14px}.campaign-history-actions form,.campaign-list-actions form{margin:0}.campaign-list-tabs,.campaign-list-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.campaign-list-actions{min-width:300px}.campaign-list-actions .btn{padding:7px 10px;font-size:12px}
@media(max-width:700px){.campaign-recipient-head{flex-wrap:wrap}.campaign-recipient-filters{flex:1 0 100%;margin:0;width:100%;display:grid;grid-template-columns:1fr 1fr}.campaign-recipient-filters .btn{grid-column:1/-1}.campaign-replace-search{align-items:stretch;flex-direction:column}.campaign-candidate{align-items:stretch;flex-direction:column}.campaign-candidate .btn{width:100%}}
@media(max-width:520px){.campaign-actions{display:grid;grid-template-columns:1fr}.campaign-actions>*{width:100%}.campaign-actions .btn{width:100%;justify-content:center}.campaign-cancel[open]>form{width:calc(100vw - 24px)}.campaign-control-panel .panel-head{align-items:flex-start}.campaign-recipient-filters{grid-template-columns:1fr}.campaign-recipient-filters select{width:100%;min-width:0}.campaign-recipient-filters .btn{grid-column:auto}}
@media(max-width:520px){.campaign-history-actions{display:grid;grid-template-columns:1fr}.campaign-history-actions>*{width:100%}.campaign-history-actions .btn{width:100%;justify-content:center}.campaign-list-tabs{width:100%}.campaign-list-tabs .btn{flex:1}.campaign-list-actions{min-width:220px;display:grid;grid-template-columns:1fr}.campaign-list-actions .btn{width:100%;justify-content:center}}
.campaign-inline-options,.campaign-generator-offers,.campaign-generator-flags{display:flex;gap:12px;flex-wrap:wrap}.campaign-inline-options label,.campaign-generator-offers label,.campaign-generator-flags label{display:flex;align-items:center;gap:7px}.campaign-generator-flags [data-repair-in-complex][hidden]{display:none!important}.campaign-generator{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.campaign-generator[hidden]{display:none}.campaign-generator-note,.campaign-generator-offers,.campaign-generator-flags{grid-column:1/-1}.campaign-generator-note{color:var(--muted)}.campaign-generator-offers{margin:0;padding:12px;border:1px solid var(--line);border-radius:10px}.campaign-generator-offers legend{padding:0 6px;color:var(--muted)}
.campaign-token-form{display:grid;gap:12px}.campaign-token-form .campaign-token-rotate{justify-self:start;min-height:38px}@media(max-width:520px){.campaign-token-form .campaign-token-rotate{width:100%;justify-content:center;white-space:normal}}
@media(max-width:700px){.campaign-generator{grid-template-columns:minmax(0,1fr)}.campaign-generator>*{grid-column:1}}
.campaign-preview-pages{padding:12px 16px;border-bottom:1px solid var(--line)}
.campaign-manual-badge{display:block;width:max-content;max-width:100%;margin-bottom:6px;padding:3px 7px;border-radius:var(--r-control);background:var(--accent-soft);color:var(--accent-deep);font-size:11px;font-weight:600;white-space:normal}
.campaign-message-edit{position:relative}.campaign-message-edit>summary{list-style:none}.campaign-message-edit>summary::-webkit-details-marker{display:none}.campaign-message-edit[open]{z-index:1700}.campaign-message-edit[open]>form{position:fixed;z-index:1700;left:50%;top:50%;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;transform:translate(-50%,-50%);display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-dialog);background:var(--surface);box-shadow:0 18px 46px rgba(0,0,0,.42);white-space:normal}.campaign-message-edit label{display:grid;gap:6px;color:var(--muted);font-size:11px}.campaign-message-edit input,.campaign-message-edit textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface-2);color:var(--ink);padding:9px 10px;font:inherit}.campaign-message-edit textarea{min-height:180px;resize:vertical}.campaign-message-edit .btn{justify-self:end}
.campaign-recipient-filters input[type=search]{min-width:220px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface-2);color:var(--text)}
@media(max-width:700px){.campaign-recipient-filters input[type=search]{grid-column:1/-1;width:100%;min-width:0}}
@media(max-width:520px){.campaign-message-edit[open]>form{width:calc(100vw - 20px)}.campaign-message-edit .btn{width:100%;justify-content:center}.campaign-preview-pages{padding:10px}.campaign-preview-pages .btn{min-width:38px}}

/* 1D - единый каталог эмодзи для активных полей сообщений. */
.crm-emoji-field{position:relative;display:block;width:100%;min-width:0}.crm-emoji-field>textarea{width:100%;padding-right:46px!important}.crm-emoji-trigger{position:absolute;z-index:3;right:7px;top:7px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid color-mix(in srgb,var(--accent) 62%,var(--line));border-radius:var(--r-control);background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--ink);box-shadow:0 2px 7px color-mix(in srgb,var(--accent) 12%,transparent);font-size:17px;line-height:1}.crm-emoji-trigger:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 28%,var(--surface))}.crm-emoji-trigger:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 38%,transparent);outline-offset:2px}.crm-emoji-trigger:disabled{cursor:not-allowed;opacity:.45}.crm-emoji-catalog{position:fixed;z-index:2100;width:min(284px,calc(100vw - 16px));max-height:min(220px,calc(100dvh - 16px));overflow:auto;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:8px;border:1px solid var(--line);border-radius:var(--r-dialog);background:var(--surface);box-shadow:var(--shadow-drag)}.crm-emoji-catalog[hidden]{display:none}.crm-emoji-choice{display:grid;place-items:center;min-width:0;min-height:36px;padding:4px;border:1px solid transparent;border-radius:var(--r-control);background:var(--surface-2);font-size:20px;line-height:1}.crm-emoji-choice:hover,.crm-emoji-choice:focus-visible{border-color:var(--accent);background:var(--accent-soft)}
@media(max-width:520px){.crm-emoji-catalog{position:fixed;left:50%;right:auto;top:50%;width:min(330px,calc(100vw - 20px));max-height:min(280px,calc(100dvh - 20px));transform:translate(-50%,-50%);grid-template-columns:repeat(6,1fr);padding:10px}.crm-emoji-choice{min-height:40px}}
/* F2.8 - настройки и диагностика служебных уведомлений. */
.notify-settings .panel-body{display:grid;gap:14px}
.notify-warning{display:block;padding:10px 12px;border:1px solid var(--warn);border-radius:var(--r);background:color-mix(in srgb,var(--warn) 14%,var(--panel));color:var(--ink);font-size:12px;line-height:1.5}
.notify-warning code{padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--ink) 8%,transparent);font-size:11px}
.notify-channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.notify-channel{display:grid;gap:8px;align-content:start;padding:12px 13px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.notify-channel .btn{justify-self:start}
.notify-subhead{margin:2px 0 0;font-size:13px;font-weight:600;color:var(--ink)}
.notify-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:4px 14px}
.notify-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 14px}
.notify-test-result{padding:9px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);font-size:12px;line-height:1.5}
.notify-test-result.is-ok{border-color:color-mix(in srgb,var(--ok) 60%,var(--line));background:color-mix(in srgb,var(--ok) 12%,var(--panel))}
.notify-test-result.is-bad{border-color:color-mix(in srgb,var(--bad) 60%,var(--line));background:color-mix(in srgb,var(--bad) 12%,var(--panel))}
@media(max-width:760px){.notify-channels,.notify-grid,.notify-events{grid-template-columns:1fr}}

/* F3.0.3 - адреса контактов, фильтры и безопасное удаление. */
.filters .filter-input,.properties-search input[name="q"]{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:var(--r);padding:7px 10px;font-family:inherit;font-size:12px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.filters .filter-input::placeholder,.properties-search input[name="q"]::placeholder{color:var(--muted);opacity:1}
.filters .filter-input:hover,.properties-search input[name="q"]:hover{border-color:color-mix(in srgb,var(--accent) 58%,var(--line))}
.filters .filter-input:focus,.properties-search input[name="q"]:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent);background:var(--surface)}
.contact-filters input[name="residence_address"],.contact-filters input[name="property_address"]{width:220px;max-width:100%}
.contact-filter-exclude,.residence-exclude{display:inline-flex!important;align-items:center;gap:7px;min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);color:var(--ink-soft)!important;font-size:11px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;cursor:pointer}
.contact-filter-exclude:hover,.residence-exclude:hover{border-color:color-mix(in srgb,var(--accent) 58%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--surface-2))}
.contact-filter-exclude:focus-within,.residence-exclude:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent)}
.contact-filter-exclude input,.residence-exclude input{flex:0 0 auto;width:15px!important;height:15px!important;margin:0;padding:0!important;accent-color:var(--accent);cursor:pointer}
.contact-address-cell,.campaign-location-cell{min-width:210px;max-width:360px;white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.category-delete{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.category-delete>summary{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 12px;border:1px solid color-mix(in srgb,var(--bad) 72%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--bad) 16%,var(--surface));color:var(--bad);font-weight:600;cursor:pointer;list-style:none}
.category-delete>summary::-webkit-details-marker{display:none}.category-delete>summary:hover,.category-delete>summary:focus-visible{background:color-mix(in srgb,var(--bad) 24%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 14%,transparent);outline:0}
.category-delete form{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid color-mix(in srgb,var(--bad) 48%,var(--line));border-radius:9px;background:var(--surface-2)}.category-delete form p{margin:0;line-height:1.4}
.property-category-intro{margin-bottom:16px}.property-category-card .category-summary-heading{width:100%}.property-category-card .property-category-open{min-height:34px;padding:6px 11px;color:var(--accent-contrast,#082033);font-size:11px}.property-category-card .category-summary-stats dd{font-variant-numeric:tabular-nums}.property-category-card footer{display:flex;justify-content:space-between;gap:10px}
@media(max-width:760px){.contact-filters input[name="residence_address"],.contact-filters input[name="property_address"]{width:100%;min-width:0}.contact-filter-exclude{grid-column:2/-1}.contact-address-cell,.campaign-location-cell{min-width:180px}}

/* F3.0.4-R2 - компактный многостолбцовый каталог объектов. */
.properties-page .property-category-catalog{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.property-category-catalog .property-category-card header{gap:9px;padding:10px 11px}
.property-category-catalog .property-category-card .category-summary-mark{width:9px;height:30px;box-shadow:0 0 0 3px color-mix(in srgb,var(--category-color) 14%,transparent)}
.property-category-catalog .property-category-card .category-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.property-category-catalog .property-category-card h2{min-width:0;font-size:14px;line-height:1.2;overflow-wrap:anywhere}
.property-category-catalog .property-category-card .property-category-open{flex:0 0 auto;min-height:30px;padding:5px 8px;font-size:10px}
.property-category-catalog .category-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.property-category-catalog .category-summary-stats>div{padding:8px 10px}
.property-category-catalog .category-summary-stats dt{font-size:10px;line-height:1.25}
.property-category-catalog .category-summary-stats dd{margin-top:2px;font-size:18px;line-height:1.15}
.property-category-catalog .property-category-card footer{padding:7px 10px;font-size:10px}
@media(max-width:1099px){.properties-page .property-category-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.properties-page .property-category-catalog{grid-template-columns:1fr}.property-category-catalog .property-category-card .category-summary-heading{align-items:flex-start;flex-direction:column}.property-category-catalog .property-category-card .property-category-open{width:100%}}

/* F3.0.8 - сотрудники, команды и матрица прав. */
.access-page{display:grid;gap:16px}.access-tabs{display:flex;gap:8px;overflow-x:auto;padding:3px 1px}.access-tab{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);font-weight:700;white-space:nowrap;text-decoration:none}.access-tab:hover,.access-tab:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));outline:0}.access-tab.is-active{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast,#082033);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 22%,transparent)}
.access-invite-grid{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(180px,1fr) auto;align-items:end;gap:12px}.access-invite-grid .btn{min-height:38px}.access-invitations-scroll{max-height:34vh}.access-invitations{min-width:900px}.access-invitations td:first-child .chip{display:inline-flex;margin-left:7px}.invitation-accept{display:grid;gap:14px}.invitation-accept-form{display:grid;gap:12px}.invitation-accept .auth-submit{display:flex;align-items:center;justify-content:center;text-decoration:none}
.access-table-scroll,.access-matrix-scroll{width:100%;overflow:auto;overscroll-behavior:contain}.access-table-scroll{max-height:56vh}.access-employees{min-width:1240px}.access-employees td:first-child small{display:block;margin-top:4px;color:var(--muted)}.access-select{min-width:145px}.access-actions{display:flex;gap:6px;flex-wrap:wrap}.access-actions .btn{min-height:34px;padding:6px 10px}.access-check{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.access-check input,.matrix-check input{accent-color:var(--accent)}.access-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.access-check-card{align-self:end;min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.access-inline-form{display:flex;align-items:end;gap:10px}.access-inline-form .field{flex:1}.access-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.access-role-grid{display:grid;grid-template-columns:1fr;gap:12px}.access-team-card{position:relative;margin:0}.access-team-card.is-off{opacity:.72}.access-team-meta{display:flex;align-items:center;gap:10px;margin-top:12px;color:var(--muted)}.access-team-toggle{position:absolute;right:14px;bottom:10px}.access-team-toggle .btn{min-height:35px}.access-role-note{margin:0;padding:13px 15px}.access-role-card{min-width:0;margin:0}.access-matrix-scroll{max-height:62vh}.access-matrix{min-width:820px}.access-matrix th,.access-matrix td{padding:8px;text-align:center}.access-matrix th:first-child,.access-matrix td:first-child{text-align:left}.access-matrix select{width:145px}.matrix-check{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;cursor:pointer}.matrix-check input{width:17px;height:17px}.matrix-check input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.matrix-check input:disabled{cursor:not-allowed;opacity:.7}
@media(max-width:1100px){.access-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-invite-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.access-page{padding-inline:8px}.access-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:-2px;overflow:visible}.access-tab{min-width:0}.access-tab:only-child{grid-column:1/-1}.access-team-grid,.access-form-grid,.access-invite-grid{grid-template-columns:1fr}.access-inline-form{align-items:stretch;flex-direction:column}.access-inline-form .btn,.access-add-user .modal-foot .btn,.access-invite-grid .btn{width:100%}.access-team-toggle{position:static;padding:0 12px 12px}.access-team-toggle .btn{width:100%}.access-team-card .modal-foot{padding-right:12px}.access-table-scroll{max-height:64vh}.access-invitations-scroll{max-height:45vh}.access-matrix-scroll{max-height:68vh}}

/* F3.0.9 - массовая передача открытой работы. */
.workload-counts{display:grid;grid-template-columns:repeat(3,max-content);gap:5px}.workload-counts span{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--muted);font-size:10px}.workload-counts b{color:var(--ink);font-size:12px}.work-transfer{width:100%}.work-transfer>summary{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--accent) 70%,var(--line));border-radius:7px;background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--ink);font-weight:700;cursor:pointer;list-style:none}.work-transfer>summary::-webkit-details-marker{display:none}.work-transfer>summary:hover,.work-transfer>summary:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 28%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent);outline:0}.work-transfer[open]>form{display:grid;gap:11px;width:410px;max-width:100%;margin-top:8px;padding:14px;border:1px solid var(--accent);border-radius:10px;background:var(--panel);box-shadow:0 10px 24px rgba(3,18,28,.24)}.work-transfer-options{display:grid;gap:7px}.work-transfer-options label{display:flex;align-items:center;gap:7px;min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);cursor:pointer}.work-transfer-options input{width:16px;height:16px;accent-color:var(--accent)}.work-transfer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.work-transfer-buttons .btn{width:100%;justify-content:center}.work-transfer p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}.access-actions .btn:disabled{border-color:var(--line);background:var(--surface-2);color:var(--muted);opacity:.62;cursor:not-allowed;box-shadow:none}
@media(max-width:700px){.workload-counts{grid-template-columns:1fr}.work-transfer-buttons{grid-template-columns:1fr}}

/* F3.0.12 - панель руководителя и заметный режим только для чтения. */
.team-preview-banner{position:sticky;z-index:40;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 18px;border-bottom:2px solid #f1bd55;background:#5a3f12;color:#fff5d6;box-shadow:0 6px 18px rgba(0,0,0,.24)}.team-preview-banner div{display:grid;gap:2px}.team-preview-banner strong{font-size:14px}.team-preview-banner span{font-size:11px}.team-preview-banner .btn{white-space:nowrap;border-color:#fff0b5;background:#f1bd55;color:#2b2008}
.team-page{display:grid;gap:16px;max-width:1600px;margin:0 auto}.team-period{display:flex;align-items:center;gap:8px}.team-period label{color:var(--muted);font-size:11px}.team-period select{min-width:120px}
.team-metrics{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--line)}.team-metrics>div{display:grid;gap:4px;padding:14px;background:var(--surface)}.team-metrics b{font-size:23px;font-variant-numeric:tabular-nums}.team-metrics span{color:var(--muted);font-size:11px}.team-metrics .is-bad b,.team-bad{color:var(--bad)!important}.team-metrics .is-good b,.team-good{color:var(--ok)!important}
.team-preview-panel .panel-body{display:grid;gap:12px}.team-preview-panel p{margin:0}.team-preview-form{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(280px,1.6fr) auto;align-items:end;gap:12px}.team-preview-form .btn,.team-preview-stop .btn{min-height:38px}.team-table-scroll{max-width:100%;max-height:54vh;overflow:auto;overscroll-behavior:contain}.team-table{min-width:1050px}.team-table td:not(:first-child){font-variant-numeric:tabular-nums}.team-table td:first-child small{display:block;margin-top:3px;color:var(--muted)}
.team-stage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;padding:14px}.team-stage-grid>div{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:46px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.team-stage-grid i{width:8px;height:28px;border-radius:999px;background:var(--stage-color)}.team-stage-grid span{overflow-wrap:anywhere;color:var(--muted);font-size:11px}.team-stage-grid b{font-size:18px}
.team-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-width:0}.team-list{max-height:390px;overflow:auto}.team-list>a,.team-list>div{display:grid;gap:4px;padding:11px 15px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.team-list>a:hover,.team-list>a:focus-visible{background:color-mix(in srgb,var(--accent) 10%,var(--surface));outline:0}.team-list strong{font-size:12px}.team-list span{color:var(--muted);font-size:11px}.team-list .empty,.team-stage-grid>.empty{padding:14px;color:var(--muted)}
@media(max-width:1100px){.team-metrics{grid-template-columns:repeat(3,1fr)}.team-preview-form{grid-template-columns:1fr 1fr}.team-preview-form .btn{grid-column:1/-1}.team-two-columns{grid-template-columns:1fr}}
@media(max-width:680px){.team-page{padding-inline:8px}.team-metrics{grid-template-columns:repeat(2,1fr)}.team-preview-form{grid-template-columns:1fr}.team-preview-form .btn{grid-column:auto;width:100%}.team-preview-banner{position:relative;align-items:stretch;flex-direction:column}.team-preview-banner .btn{width:100%}.team-period{width:100%;justify-content:space-between}.team-period select{flex:1}}

/* F3.0.13-R1 - ручной ввод даты с сохранением календаря. */
.campaign-range>small{display:block;margin-top:7px;color:var(--muted)}
.campaign-date-manual{position:relative;display:block;min-width:0}
.campaign-date-manual>input[type=text]{width:100%;padding-right:45px}
.campaign-date-picker{position:absolute;top:1px;right:1px;bottom:1px;width:40px;display:grid;place-items:center;border-left:1px solid var(--line);border-radius:0 7px 7px 0;background:var(--surface-2);color:var(--accent);cursor:pointer}
.campaign-date-picker:hover{background:var(--surface-3);color:var(--ink)}
.campaign-date-picker:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.campaign-date-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
/* Stage 3 Telegram recipients: bounded, theme-aware and phone safe. */
.task-telegram-recipients{margin:14px 0 0;padding:14px;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel2)}
.task-telegram-recipients legend{padding:0 8px;font-weight:800;color:var(--text)}
.task-telegram-recipients p{margin:0 0 10px;color:var(--muted);font-size:12px}
.task-telegram-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:160px;overflow:auto}
.task-telegram-grid .check{min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel)}
.deal-compose-task-form>.task-telegram-recipients{grid-column:1/-1}
@media(max-width:600px){.task-telegram-grid{grid-template-columns:1fr}.task-telegram-recipients{padding:12px}}
.telegram-link-copy{display:flex;gap:10px}.telegram-link-copy input{min-width:0;flex:1}.telegram-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}.telegram-team-card{padding:16px;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel2)}.telegram-team-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.telegram-team-card h3{margin:0 0 6px}.telegram-stage-list{display:grid;gap:7px;max-height:280px;overflow:auto;margin-bottom:12px}.telegram-stage-list .check{align-items:flex-start;padding:8px;border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel)}
@media(max-width:800px){.telegram-team-grid{grid-template-columns:1fr}.telegram-team-card header,.telegram-link-copy{flex-direction:column}.telegram-link-copy .btn{width:100%}}
@media(max-width:700px){.telegram-webhook-panel .panel-head{align-items:stretch;flex-direction:column}.telegram-webhook-panel .access-actions{display:grid;grid-template-columns:1fr;width:100%}.telegram-webhook-panel .access-actions form,.telegram-webhook-panel .access-actions .btn{width:100%}}
