/* ══════════════════════════════════════════════════════════════════════
   CRM заявок — в духе Битрикс24: светлый фон, белые карточки с тенью,
   цветная шапка у каждой колонки, тёмный чёткий текст. Главное —
   читаемость: основной текст почти чёрный, подписи — тёмно-серые,
   никакого «серого на сером».
   Шрифт — Open Sans (им же набран Битрикс24), кириллица полная.
   Тёмная тема осталась — переключатель внизу меню.
   ══════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap');

:root{
  --ui:'Open Sans',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  --bg:#EEF2F4;
  --sidebar:#1F2B37;
  --side-txt:#E6EBF0;
  --side-dim:rgba(230,235,240,.62);
  --surface:#FFFFFF;
  --surface-2:#FFFFFF;
  --surface-3:#F5F7F8;
  --cover:#1F2B37;
  --label-1:#333333;
  --label-2:#525C69;
  --label-3:#6A737F;
  --label-4:#A8ADB4;
  --separator:#DFE3E7;
  --fill-1:#F3F5F7;
  --fill-2:#E8ECEF;
  --link:#2067B0;
  --ink:#3BC8F5;           /* главная кнопка, как «Сохранить» в Битриксе */
  --on-ink:#333333;
  --ember:#F5A623;
  --orange:#F5A623;
  --red:#E25C5C;
  --green:#3FA85B;
  --radius-sm:4px;
  --radius:6px;
  --radius-lg:10px;
  --sidebar-w:220px;
  --shadow-sm:0 1px 2px rgba(34,52,70,.10),0 0 0 1px rgba(34,52,70,.04);
  --shadow-md:0 8px 24px rgba(34,52,70,.18);
}
body.theme-dark{
  --bg:#151A20;
  --sidebar:#0F1318;
  --surface:#20262E;
  --surface-2:#252C35;
  --surface-3:#2A323C;
  --label-1:#EEF1F4;
  --label-2:#C3CAD2;
  --label-3:#9AA3AD;
  --label-4:#6B7480;
  --separator:#343C47;
  --fill-1:#262D36;
  --fill-2:#2E3640;
  --link:#6CB4FF;
  --on-ink:#10151B;
  --shadow-sm:0 1px 2px rgba(0,0,0,.35);
  --shadow-md:0 10px 28px rgba(0,0,0,.5);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--label-1);font-family:var(--ui);
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:3px}
.muted,.quiet{color:var(--label-3)}
.small{font-size:13px}
.warn{color:#C9820A}
h2{font-size:13px;font-weight:700;margin:0 0 10px;color:var(--label-2);text-transform:uppercase;letter-spacing:.03em}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* ── каркас: тёмное меню слева, как в Битриксе ─────────────────────── */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);position:fixed;top:0;left:0;bottom:0;z-index:300;background:var(--sidebar);
  color:var(--side-txt);display:flex;flex-direction:column;padding:18px 12px 18px;transition:transform .25s ease}
.brand{font-size:19px;font-weight:700;color:#fff;padding:2px 10px 18px}
.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:2px}
.nav-link{display:flex;align-items:center;padding:9px 12px;border-radius:var(--radius);color:var(--side-dim);
  font-size:14.5px;font-weight:600}
.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-link.active{background:rgba(255,255,255,.14);color:#fff}
.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--red);
  color:#fff;font-size:11.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.sidebar-footer{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 12px 0;
  border-top:1px solid rgba(255,255,255,.1)}
.me{font-size:14px;font-weight:700;color:#fff}
.sidebar-footer form{display:contents}
.linkbtn{background:none;border:none;padding:0;font:inherit;font-size:13px;font-weight:600;color:var(--link);cursor:pointer;text-transform:none;letter-spacing:0}
.linkbtn:hover{text-decoration:underline;background:none;opacity:1}
.sidebar .linkbtn{color:var(--side-dim)}
.sidebar .linkbtn:hover{color:#fff}
.sidebar-backdrop{display:none}
.mobile-topbar{display:none}
.main{flex:1;margin-left:var(--sidebar-w);padding:22px 26px 64px;max-width:calc(100vw - var(--sidebar-w));min-height:100vh}
.page-header{display:flex;align-items:center;gap:16px;margin-bottom:16px;min-height:40px}
.page-title{font-size:26px;font-weight:600;margin:0;line-height:1.2;color:var(--label-1)}
.page-actions{margin-left:auto;display:flex;gap:10px;align-items:center}
.page-actions:empty{display:none}

/* ── кнопки и поля ────────────────────────────────────────────────── */
button,.btn{font:inherit;font-size:13px;font-weight:700;cursor:pointer;border-radius:var(--radius-sm);
  border:1px solid transparent;background:var(--ink);color:var(--on-ink);padding:9px 18px;text-transform:uppercase;
  letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.2}
button:hover,.btn:hover{filter:brightness(1.06)}
button.ghost,.btn.ghost{background:var(--surface);color:var(--label-2);border-color:#C6CDD3;text-transform:none;letter-spacing:0;font-weight:600}
button.ghost:hover,.btn.ghost:hover{border-color:var(--label-3);color:var(--label-1);filter:none}
button.sm,.btn.sm{padding:5px 10px;font-size:12px}
button.big,.btn-full{width:100%;padding:12px;font-size:14px}
.btn-lg{padding:12px;font-size:14px}
.btn.flat{background:none;border:none;color:var(--label-3);cursor:default;padding:0;text-transform:none}
input,select,textarea{font:inherit;color:var(--label-1)}
input::placeholder,textarea::placeholder{color:var(--label-4)}
.inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.inline input,.inline select,.form-input{height:38px;padding:0 11px;border:1px solid #C6CDD3;
  border-radius:var(--radius-sm);font-size:14px;background:var(--surface);color:var(--label-1)}
.inline input,.inline select{flex:1 1 150px;min-width:0}
.inline input:focus,.inline select:focus,.form-input:focus,.comment textarea:focus{outline:none;border-color:var(--link);box-shadow:0 0 0 2px rgba(32,103,176,.15)}
.comment{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.comment textarea{width:100%;padding:10px 11px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);
  font-size:14px;resize:vertical;background:var(--surface);color:var(--label-1)}
.warnline,.note{font-size:13.5px;margin:0 0 14px;color:var(--label-2)}
.warnline{color:#B26F00;background:#FFF4DC;padding:9px 12px;border-radius:var(--radius)}
.note a{color:var(--link)}
.okline,.ok{color:var(--green);font-size:13.5px;margin:0 0 12px}
.alert{font-size:13.5px;margin-bottom:14px;padding:9px 12px;border-radius:var(--radius)}
.alert-error{color:#B63B3B;background:#FDE8E8}
.alert-success{color:#2F7D45;background:#E3F5E8}
.form-group{margin-bottom:16px}
.form-group.two{display:flex;gap:16px}
.form-group.two > div{flex:1}
.form-label{display:block;font-size:13px;color:var(--label-2);margin-bottom:6px;font-weight:600}
.form-input{width:100%;height:42px}
.card{background:var(--surface);border-radius:var(--radius);padding:18px;margin-bottom:12px;box-shadow:var(--shadow-sm)}
.card.warn{color:#B26F00}
.back{display:inline-block;color:var(--link);font-size:13.5px;font-weight:600;padding:0 0 12px}
.back:hover{text-decoration:underline}
.empty{color:var(--label-3);text-align:center;padding:40px 0}
.hint{margin:0 0 14px;color:var(--label-3);font-size:13px}

/* ── поиск и фильтры ──────────────────────────────────────────────── */
.search{position:relative;width:320px;max-width:40vw}
.search input{width:100%;height:38px;padding:0 30px 0 34px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);
  background:var(--surface);font-size:14px;color:var(--label-1)}
.search input:focus{outline:none;border-color:var(--link)}
.search-ic{position:absolute;left:11px;top:11px;width:16px;height:16px;color:var(--label-3);pointer-events:none}
.search .clear{position:absolute;right:10px;top:6px;color:var(--label-3);font-size:18px}
.add-lead{height:38px;white-space:nowrap;background:#BBED21;color:#333}
.page-actions:has(.add-lead){flex:1;margin-left:8px}
.page-actions .add-lead{margin-right:auto}
.search-go{height:38px;padding:0 16px}

.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.filters a{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:16px;
  background:var(--surface);box-shadow:var(--shadow-sm);font-size:13.5px;font-weight:600;color:var(--label-2)}
.filters a:hover{color:var(--label-1)}
.filters a.on{background:var(--link);color:#fff}
.filters i{font-style:normal;font-weight:700;color:var(--label-1);background:var(--fill-2);border-radius:10px;
  padding:0 7px;font-size:12px;line-height:20px}
.filters a.on i{background:rgba(255,255,255,.25);color:#fff}
.filters .who{margin-left:auto;display:flex;gap:6px}
.filters .who a{box-shadow:none;background:transparent}
.filters .who a.on{background:var(--label-2);color:#fff}

.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:14px;-webkit-overflow-scrolling:touch}
.tab{flex:0 0 auto;padding:6px 14px;border-radius:16px;font-size:13.5px;font-weight:600;white-space:nowrap;color:var(--label-2);background:var(--surface);box-shadow:var(--shadow-sm)}
.tab:hover{color:var(--label-1)}
.tab.on{background:var(--link);color:#fff}
.tab b{margin-left:5px;font-size:12px;font-weight:700;color:var(--red)}
.tab.on b{color:#fff}
.tabs.sub{gap:6px}

/* ── доска: цветная шапка у каждой колонки ─────────────────────────── */
.kb{display:flex;gap:12px;align-items:stretch;overflow-x:auto;padding-bottom:12px;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin}
.col{flex:0 0 260px;width:260px;min-width:0;max-width:260px;display:flex;flex-direction:column;min-height:calc(100vh - 160px);border-radius:var(--radius);
  --h:#DDEBFB;--hb:#3F8BD9}
.col[data-stage="new"]{--h:#FDE3E3;--hb:#E55B5B}
.col[data-stage="in_work"]{--h:#DCEBFB;--hb:#3F8BD9}
.col[data-stage="scheduled"]{--h:#FFF1CC;--hb:#E0A21A}
.col[data-stage="objection"]{--h:#ECE3FB;--hb:#8E63D8}
.col[data-stage="waiting"]{--h:#DAF2F5;--hb:#2BA7B8}
.col[data-stage="won"]{--h:#DDF4E2;--hb:#3FA85B}
.col[data-stage="lost"]{--h:#E9ECEF;--hb:#8A94A3}
body.theme-dark .col{--h:#28303A}
.col header{display:flex;align-items:center;gap:8px;padding:9px 12px;margin-bottom:10px;border-radius:var(--radius);
  background:var(--h);border-bottom:3px solid var(--hb);flex-wrap:wrap}
.col-ttl{font-size:14px;font-weight:700;color:var(--label-1)}
.col .cnt{font-size:12.5px;font-weight:700;color:var(--label-2);background:rgba(255,255,255,.65);border-radius:10px;padding:0 7px;line-height:20px}
body.theme-dark .col .cnt{background:rgba(0,0,0,.25)}
.colsum{flex-basis:100%;font-size:13px;font-weight:600;color:var(--label-2)}
.col.over{background:rgba(32,103,176,.07);box-shadow:inset 0 0 0 2px var(--hb)}
.col .drop{display:flex;flex-direction:column;gap:8px;flex:1}
.colmore{display:block;padding:8px 4px;font-size:13px;font-weight:600;color:var(--link)}
.colmore:hover{text-decoration:underline}

.kcard{min-width:0;max-width:100%;overflow:hidden;background:var(--surface);border-radius:var(--radius);padding:11px 12px 12px;box-shadow:var(--shadow-sm);
  touch-action:pan-y;cursor:grab;user-select:none;transition:box-shadow .12s ease}
.kcard:hover{box-shadow:0 3px 10px rgba(34,52,70,.16),0 0 0 1px rgba(34,52,70,.05)}
.kcard .open{display:flex;align-items:flex-start;gap:8px}
.kcard .nm{font-size:15px;font-weight:600;line-height:1.35;color:var(--link);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kcard .open:hover .nm{text-decoration:underline}
.krow{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:6px}
.meta{display:flex;gap:6px;min-width:0;font-size:13px;color:var(--label-3)}
.meta .mgr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--label-2)}
.meta .mgr:empty{display:none}
.meta .mgr:not(:empty) + .age::before{content:'·';margin-right:6px;color:var(--label-4)}
.age{white-space:nowrap;color:var(--label-3)}
.age.hot{color:var(--red);font-weight:600}
.ksum{font-size:14px;font-weight:700;color:var(--label-1);cursor:text;border-radius:3px;padding:0 4px;margin-right:-4px;white-space:nowrap}
.ksum:hover{background:var(--fill-2)}
.ksum.zero{color:var(--label-4);font-weight:600}
.sum-edit{width:100px;padding:2px 6px;border:1px solid var(--link);border-radius:3px;font-size:13px;font-weight:700;
  background:var(--surface);color:var(--label-1)}
.kwhen{display:block;margin-top:8px;padding-top:8px;border-top:1px solid var(--separator);font-size:13px;color:var(--label-2);cursor:pointer;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kwhen::before{content:'◷ ';color:var(--label-3)}
.kwhen:hover{color:var(--link)}
.kwhen.late{color:var(--red);font-weight:600}
.kwhen.late::before{color:var(--red)}
.kwhen:empty{display:none}
.kcard.closed{opacity:.75}
.kcard.closed:hover{opacity:1}
.kcard.dragging{opacity:.35}
.kcard.ghost{position:fixed;z-index:999;pointer-events:none;box-shadow:var(--shadow-md);transform:rotate(-1.5deg)}
.kcard.saved{animation:pop .8s ease}
@keyframes pop{0%{box-shadow:0 0 0 3px rgba(63,168,91,.55)}100%{box-shadow:var(--shadow-sm)}}

/* купившие за 99 ₽ — заметно с первого взгляда */
.kcard.paid99{background:#FFF7E0;box-shadow:inset 4px 0 0 var(--ember),var(--shadow-sm)}
body.theme-dark .kcard.paid99{background:#3A3220}
.tag99{margin-left:auto;flex-shrink:0;font-size:11.5px;font-weight:700;color:#fff;background:var(--ember);
  border-radius:3px;padding:1px 6px;line-height:1.6}

/* зоны быстрого закрытия */
.dropzones{position:fixed;left:var(--sidebar-w);right:0;bottom:0;z-index:900;display:flex;gap:12px;
  padding:12px 26px 18px;pointer-events:none;opacity:0;transform:translateY(12px);transition:opacity .14s ease,transform .14s ease}
body.dragging-now .dropzones{opacity:1;transform:none}
body.dragging-now{user-select:none;-webkit-user-select:none}
.dz{flex:1 1 0;pointer-events:auto;height:74px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:700;color:#fff;box-shadow:var(--shadow-md)}
.dz-won{background:#3FA85B}
.dz-lost{background:#8A94A3}
.dz.over{filter:brightness(1.1);outline:3px solid #fff;outline-offset:-6px}

/* окна поверх доски */
.reasonbox{position:fixed;inset:0;z-index:1000;background:rgba(31,43,55,.45);
  display:flex;align-items:center;justify-content:center;padding:20px}
.rb-inner{position:relative;background:var(--surface);border-radius:var(--radius-lg);padding:24px;max-width:400px;width:100%;box-shadow:var(--shadow-md)}
.rb-inner b{display:block;font-size:17px;font-weight:700;margin-bottom:6px}
.rb-note{margin:0 0 14px;font-size:13.5px;color:var(--label-2);line-height:1.45}
.rb-text,.rb-task{width:100%;padding:10px 11px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);
  font-size:14px;resize:vertical;background:var(--surface);color:var(--label-1)}
.rb-task{margin-top:10px}
.rb-text:focus,.rb-task:focus{outline:none;border-color:var(--link)}
.rb-text.bad{border-color:var(--red)}
.rb-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.rb-exact{display:flex;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--separator)}
.rb-exact input{flex:1;height:38px;padding:0 10px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);
  font-size:14px;background:var(--surface);color:var(--label-1)}
.rb-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}
.rb-cancel,.rb-skip{background:none;color:var(--label-2);border:none;text-transform:none}
.rb-cancel:hover,.rb-skip:hover{background:var(--fill-1);color:var(--label-1)}
.rb-x{position:absolute;top:14px;right:14px;width:28px;height:28px;padding:0;border:none;background:none;color:var(--label-3);
  border-radius:50%;font-size:15px;line-height:1;text-transform:none}
.rb-x:hover{background:var(--fill-1);color:var(--label-1)}

/* ── карточка сделки ──────────────────────────────────────────────── */
.lead-page{max-width:1080px}
.lead-head{margin-bottom:16px}
.lead-head h1{font-size:26px;font-weight:600;margin:0;line-height:1.25}
.lead-meta{margin:4px 0 0;font-size:13.5px;color:var(--label-3)}
.banner99{margin:0 0 16px;display:inline-block;padding:8px 14px;border-radius:var(--radius);
  background:#FFF1CC;color:#8A5A00;font-size:14px;font-weight:700;border-left:4px solid var(--ember)}
.lead-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start;
  grid-template-rows:auto auto 1fr;grid-template-areas:"contact rail" "anketa rail" "history rail"}
.p-contact{grid-area:contact}
.p-anketa{grid-area:anketa}
.p-history{grid-area:history}
.rail{grid-area:rail;position:sticky;top:20px;display:flex;flex-direction:column;gap:16px}
.blk{background:var(--surface);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}

.chan{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:6px 0}
.chan-val{font-size:19px;font-weight:600;color:var(--label-1)}
.chan-val.quiet{font-size:14px;color:var(--label-3);font-weight:400}
.chan-acts{display:flex;gap:16px;font-size:13.5px}
.chan-acts a,.chan-acts .linkbtn{color:var(--link);font-weight:600;font-size:13.5px}
.chan-acts a:hover{text-decoration:underline}
.chan-acts a.tg-write{background:#2AABEE;color:#fff;padding:3px 10px;border-radius:4px}
.chan-acts a.tg-write:hover{background:#229ED9;text-decoration:none}
.copy.done{color:var(--green)}
.edit-contacts{margin-top:8px}
.edit-contacts summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--link);list-style:none;display:inline-block}
.edit-contacts summary::-webkit-details-marker{display:none}
.edit-contacts summary:hover{text-decoration:underline}

.owner{margin:0;font-size:14px;font-weight:600;color:var(--label-1);display:flex;gap:10px;align-items:baseline;
  background:var(--surface);padding:12px 18px;border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.owner-grab{display:inline}
.step-now{margin:0 0 10px;font-size:14px;color:var(--label-2)}
.step-now b{color:var(--label-1);font-weight:700;margin-right:4px}
.ok-txt{color:var(--green);font-weight:600}
.bad-txt{color:var(--red);font-weight:600}
.nextform{display:grid;gap:8px}
.nextform input{height:38px;padding:0 11px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);
  font-size:14px;background:var(--surface);color:var(--label-1)}
.nextform input:focus{outline:none;border-color:var(--link)}
.nextform button{justify-self:start}
.nextform label{display:grid;gap:6px;font-size:13px;color:var(--label-2)}
.step-acts{display:flex;gap:16px;margin-top:10px}
.step-acts form{display:inline}
.stages{display:flex;flex-direction:column;align-items:stretch;gap:4px}
.stage{background:var(--fill-1);border:1px solid transparent;padding:7px 10px;font-size:14px;font-weight:600;color:var(--label-2);
  gap:9px;border-radius:var(--radius-sm);justify-content:flex-start;text-transform:none;letter-spacing:0}
.stage::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--c);flex-shrink:0}
.stage:hover{background:var(--fill-2);color:var(--label-1);filter:none}
.stage.on{background:var(--link);color:#fff}
.stage.on::before{background:#fff}
.blk .comment{margin-top:10px}
.held{margin-top:12px}
.tick{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--label-1);cursor:pointer}
.tick input{accent-color:var(--link);width:16px;height:16px;margin:0}
.money-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.money-row label{width:70px;font-size:13.5px;font-weight:600;color:var(--label-2)}
.money-row input{flex:1;height:38px;padding:0 10px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);
  font-size:15px;font-weight:700;background:var(--surface);color:var(--label-1);text-align:right}
.money-row input:focus{outline:none;border-color:var(--link)}
.money-left{margin:6px 0 0;font-size:14px;font-weight:700;color:#C9820A;text-align:right}
.plain-select{height:38px;padding:0 10px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);
  background:var(--surface);color:var(--label-1);font-size:14px;width:100%}

.anketa{margin:0;display:grid;grid-template-columns:110px 1fr;gap:10px 16px}
.anketa dt{font-size:13.5px;font-weight:600;color:var(--label-3)}
.anketa dd{margin:0;white-space:pre-wrap;font-size:14.5px;line-height:1.5;color:var(--label-1)}
.fld{margin-bottom:14px}
.fld b{display:block;font-size:13px;color:var(--label-3);font-weight:600}
.fld p{margin:4px 0 0;white-space:pre-wrap;color:var(--label-1)}

.events{list-style:none;margin:16px 0 0;padding:0}
.ev{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:8px 0;font-size:14px;border-top:1px solid var(--separator)}
.ev .when{font-size:12.5px;color:var(--label-3);padding-top:1px;white-space:nowrap}
.ev .what{white-space:pre-wrap;color:var(--label-1);line-height:1.5}
.ev .what i{font-style:normal;color:var(--label-3);margin-left:4px;font-size:13px}
.ev-comment .what{background:#FFF8D9;padding:6px 10px;border-radius:var(--radius-sm)}
body.theme-dark .ev-comment .what{background:#3A3420}

/* ── таблицы и отчёт ──────────────────────────────────────────────── */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:12.5px;color:var(--label-3);font-weight:700;padding:10px 10px;background:var(--surface-3);text-transform:uppercase;letter-spacing:.02em}
td{padding:10px 10px;border-top:1px solid var(--separator);vertical-align:middle;color:var(--label-1)}
td.bad{color:var(--red);font-weight:600}
tr.off{opacity:.5}
table.team td{white-space:nowrap}
table.team .who{font-weight:700}
table.team .who a{color:var(--link)}
td .good{color:var(--green);font-weight:700}
td .bad{color:var(--red);font-weight:700}
.funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:14px}
.fn{background:var(--surface);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm)}
.fn b{display:block;font-size:24px;font-weight:700;color:var(--label-1)}
.fn span{font-size:13px;color:var(--label-3);font-weight:600}
.funnel.money{margin:4px 0 14px}
.stage-mark{color:var(--label-1);font-weight:600}
.stage-mark::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:7px;vertical-align:1px}
.grid{display:grid;gap:12px;max-width:520px}
.grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--label-2);font-weight:600}
.grid input,.grid select{height:38px;padding:0 11px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);background:var(--surface);color:var(--label-1)}
.leads{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.lead a{display:block;padding:14px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.lead .nm{display:block;font-size:15px;font-weight:600;color:var(--link)}
.lead .ct,.lead .line,.lead .goal{display:block;font-size:13px;color:var(--label-2);margin-top:3px}
.lead .sep{color:var(--label-4);margin:0 6px}
.lead .free{color:var(--red)}

/* ── задачи ───────────────────────────────────────────────────────── */
h2.late{color:var(--red)}
.tasks{list-style:none;margin:0 0 22px;padding:0;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.task{display:grid;grid-template-columns:92px 1fr auto;gap:16px;align-items:center;padding:12px 16px;border-top:1px solid var(--separator)}
.task:first-child{border-top:none}
.task-when{font-size:14px;font-weight:700}
.task.late .task-when{color:var(--red)}
.task-what{display:block;font-size:15px;font-weight:600;color:var(--link)}
.task-what:hover{text-decoration:underline}
.task-who{display:block;font-size:13px;color:var(--label-3);margin-top:2px}
.task-acts{display:flex;gap:6px;align-items:center}
.task-acts .btn,.task-acts button{padding:6px 12px;font-size:12px}

/* ── люди ─────────────────────────────────────────────────────────── */
.person{padding:16px 18px;margin-bottom:10px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.person.off{opacity:.55}
.person-head{display:flex;align-items:baseline;gap:10px}
.person-name{font-size:16px;font-weight:700}
.person-role,.person-sub{font-size:13.5px;color:var(--label-3)}
.person-sub{margin-top:3px}
.person-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.person-acts form{display:flex;gap:6px}
.person-acts input{width:170px;height:34px;padding:0 10px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);font-size:13.5px;background:var(--surface);color:var(--label-1)}
.person-acts input:focus{outline:none;border-color:var(--link)}
.person-acts button{height:34px;padding:0 12px;font-size:12px}
.addform{display:grid;gap:14px;max-width:480px;margin-top:4px;background:var(--surface);padding:18px;border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.addform label{display:grid;gap:6px;font-size:13px;color:var(--label-2);font-weight:600}
.addform input,.addform select{height:40px;padding:0 11px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);font-size:14px;background:var(--surface);color:var(--label-1)}
.addform input:focus,.addform select:focus{outline:none;border-color:var(--link)}
.addform button{justify-self:start;margin-top:4px}
.chk{display:flex!important;flex-direction:row;align-items:center;gap:8px;font-size:13.5px;color:var(--label-1)}
.chk input{width:auto;height:auto;accent-color:var(--link)}

/* ── WhatsApp ─────────────────────────────────────────────────────── */
.wa-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}
.wa-grid > div{background:var(--surface);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}
.qr{display:block;width:240px;height:240px;background:#fff;padding:10px;border-radius:var(--radius);margin:14px 0 8px;border:1px solid var(--separator)}
.tpl{border-top:1px solid var(--separator);padding:16px 0}
.tpl-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.tpl-head b{font-size:15px;font-weight:700}
.tpl-on{font-size:13.5px;color:var(--label-2);display:flex;align-items:center;gap:7px}
.tpl textarea{width:100%;padding:10px 11px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);font-size:14px;background:var(--surface);color:var(--label-1);resize:vertical}
.tpl textarea:focus{outline:none;border-color:var(--link)}
.tpl-foot{display:flex;gap:12px;align-items:end;margin-top:10px;flex-wrap:wrap}
.tpl-foot label{display:grid;gap:5px;font-size:12.5px;color:var(--label-2);font-weight:600}
.tpl-foot input[type=number],.tpl-foot input[type=time]{width:120px;height:34px;padding:0 9px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);background:var(--surface);color:var(--label-1);font-size:14px}
.calcard{margin-bottom:24px}
.calcard b{display:block;font-size:15px;font-weight:700;margin-bottom:6px}
.copyfield{flex:1 1 260px;height:38px;padding:0 11px;border:1px solid #C6CDD3;border-radius:var(--radius-sm);font-size:13px;background:var(--surface-3);color:var(--label-2)}

/* ── «Что нового» ─────────────────────────────────────────────────── */
.whatsnew{border-radius:var(--radius);padding:14px 18px;margin:0 0 16px;background:#E5F4FD;border-left:4px solid var(--ink)}
body.theme-dark .whatsnew{background:#1E3140}
.wn-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.wn-badge{font-size:13px;font-weight:700;color:var(--link)}
.wn-date{font-size:12.5px;color:var(--label-3)}
.wn-item{margin-bottom:10px}
.wn-item b{display:block;font-size:14.5px;font-weight:700;margin-bottom:3px}
.wn-item p{margin:0 0 3px;font-size:13.5px;color:var(--label-1);line-height:1.55}
.wn-ok{padding:7px 16px;font-size:12px}

/* ── вход ─────────────────────────────────────────────────────────── */
.auth-body{background:var(--bg)}
.auth-split{display:flex;min-height:100vh}
.auth-cover{flex:1;background:var(--sidebar);color:#fff;padding:44px;display:flex;flex-direction:column;justify-content:center;position:relative}
.auth-cover .auth-lead p{color:rgba(255,255,255,.7)}
.auth-brand{position:absolute;top:36px;left:44px}
.auth-mark{width:40px;height:40px;border-radius:8px;background:var(--ink);color:#333;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700}
.auth-hero-title{font-size:44px;font-weight:700;margin:0;line-height:1.08}
.auth-lead p{margin:14px 0 0;color:var(--label-3);font-size:15px;max-width:420px}
.auth-side{flex:1;display:flex;align-items:center;justify-content:center;padding:32px 24px}
.auth-form{width:100%;max-width:380px;background:var(--surface);padding:28px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.auth-form-head{margin-bottom:20px}
.auth-form-head.center{text-align:center}
.auth-title{font-size:23px;font-weight:700}
.auth-sub{font-size:14px;color:var(--label-3);margin-top:6px}
.auth-footer{margin-top:16px;font-size:13.5px;color:var(--label-3);text-align:center}
.auth-footer a{color:var(--link);font-weight:600}
.code-inputs{display:flex;gap:8px;justify-content:center;margin:4px 0 24px}
.code-inputs input{width:44px;height:54px;text-align:center;font-size:22px;font-weight:700;border:1px solid #C6CDD3;border-radius:var(--radius-sm);background:var(--surface);color:var(--label-1)}
.code-inputs input:focus{outline:none;border-color:var(--link)}
.linklike{background:none;border:none;color:var(--link);padding:0;font-size:13.5px;font-weight:600;text-transform:none}
.linklike:hover{background:none;text-decoration:underline}
.confirm-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
.confirm-card{max-width:420px;width:100%;text-align:center;background:var(--surface);padding:32px 26px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.confirm-card .auth-mark{margin:0 auto 22px}
.confirm-card h1{font-size:24px;font-weight:700;line-height:1.25;margin:0}
.confirm-card p{color:var(--label-2);font-size:15px;margin:12px 0 0;line-height:1.5}
.confirm-card .when{font-size:19px;font-weight:700;color:var(--label-1);margin-top:14px}
.confirm-acts{display:grid;gap:10px;margin-top:24px}

/* ── телефон и планшет ────────────────────────────────────────────── */
@media (max-width:900px){
  .sidebar{transform:translateX(-100%);width:250px;box-shadow:var(--shadow-md)}
  body.sidebar-open .sidebar{transform:none}
  body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:290}
  body.sidebar-open{overflow:hidden}
  .main{margin-left:0;padding:66px 12px 40px;max-width:100vw}
  .mobile-topbar{display:flex;align-items:center;gap:10px;position:fixed;top:0;left:0;right:0;height:52px;padding:0 12px;
    background:var(--sidebar);color:#fff;z-index:250}
  .mobile-menu-btn{width:36px;height:36px;padding:0;border:none;background:none;color:#fff;text-transform:none}
  .mobile-title{font-size:16px;font-weight:700}
  .page-header{flex-wrap:wrap;min-height:0}
  .page-title{display:none}
  .page-actions{width:100%;margin-left:0}
  .search{flex:1;width:auto;max-width:none}
  .filters .who{margin-left:0}
  .dropzones{left:0;padding:12px 12px 18px}
  .lead-grid{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:"contact" "rail" "anketa" "history"}
  .rail{position:static}
  .wa-grid{grid-template-columns:1fr}
  .auth-split{flex-direction:column}
  .auth-cover{padding:74px 24px 30px;flex:0 0 auto}
  .auth-brand{top:24px;left:24px}
  .auth-hero-title{font-size:32px}
  .task{grid-template-columns:1fr;gap:4px}
}
@media (max-width:620px){
  .col{flex:0 0 82vw;width:82vw;max-width:82vw}
  .anketa{grid-template-columns:1fr;gap:2px}
  .anketa dd{margin-bottom:10px}
}
@media (max-width:420px){ .code-inputs input{width:40px;height:50px;font-size:18px} .code-inputs{gap:6px} }

/* клиент ответил в WhatsApp — видно на карточке */
.replied{color:var(--green);font-weight:700;white-space:nowrap}
.meta .mgr:not(:empty) + .replied::before,.age + .replied::before{content:'·';margin-right:6px;color:var(--label-4);font-weight:400}

/* созвон без времени: напоминания клиенту без него не уходят */
.kwhen.notime{font-weight:700}
.kwhen.notime::before{content:'⚠ ';color:var(--red)}
.filters a.alarm{color:var(--red)}
.filters a.alarm i{background:#FDE3E3;color:var(--red)}
.filters a.alarm.on{background:var(--red);color:#fff}
.filters a.alarm.on i{background:rgba(255,255,255,.25);color:#fff}

/* Qualification markers for new leads; paid badge remains independent. */
.kcard.income-low{background:#FFF1F2;box-shadow:inset 4px 0 0 #BE4557,var(--shadow-sm)}
.kcard.income-unknown{background:#FFF8E8;box-shadow:inset 4px 0 0 #A97810,var(--shadow-sm)}
.income-badge{display:inline-flex;align-items:center;gap:6px;margin:8px 0 2px;padding:3px 7px;border-radius:5px;font-size:12px;font-weight:600;line-height:1.4}
.income-badge.low{background:#FBE0E5;color:#943247}
.income-badge.unknown{background:#F9EBC5;color:#79560D}
body.theme-dark .kcard.income-low{background:#39262D}
body.theme-dark .kcard.income-unknown{background:#352F21}
body.theme-dark .income-badge.low{background:#52313C;color:#FFB9C8}
body.theme-dark .income-badge.unknown{background:#4B4026;color:#F5D58B}

/* Compact messenger logos; details remain available on hover and to screen readers. */
.messengers{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:0;font-size:11px;line-height:1.4}
.messenger{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;border:0;border-radius:50%;position:relative;color:#fff}
.messenger svg{width:14px;height:14px;flex-shrink:0}
.messenger.wa{background:#25D366}
.messenger.tg{background:#229ED9}
.messenger.tg svg{width:22px;height:22px;color:#229ED9}
.messenger.mail{background:linear-gradient(135deg,#FF8A3D 0%,#F2433D 100%)}
.messenger.mail svg{width:13px;height:13px}
.messenger.ig{background:radial-gradient(circle at 30% 107%,#FDD56E 0%,#FD5E3D 40%,#D62A7F 62%,#7E3AC8 100%)}
.messenger.ig svg{width:13px;height:13px}
.messenger.unavailable{background:#A6ADB5;opacity:.6}
.messenger.tg.unavailable svg{color:#A6ADB5}
.messenger.muted{background:#A6ADB5}
.messenger.tg.muted{background:transparent}
.messenger.tg.muted svg{color:#A6ADB5}
.messenger:focus-visible{outline:2px solid var(--label-1);outline-offset:2px}
.channel-notice{font-size:11px;color:var(--label-3)}
.p-contact .messengers{margin:0 0 16px}
.card-facts{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0 3px}
.card-income{font-size:12px;line-height:1.45;min-width:0;overflow-wrap:anywhere;color:var(--label-1)}
.card-income>span{color:var(--label-3)}
.card-income strong{font-weight:600}
.card-income.missing strong{color:var(--label-3);font-weight:400}
.card-facts .messengers{flex-shrink:0;max-width:70px}

/* Closing requires an explicit call result; no option is selected automatically. */
.closing-choice{border:0;padding:0;margin:16px 0}
.closing-choice legend{font-size:13px;margin-bottom:8px;color:var(--label-2)}
.closing-choice label{display:flex;align-items:center;gap:9px;padding:10px 12px;margin:7px 0;border:1px solid var(--separator);border-radius:var(--radius-sm);font-size:14px;cursor:pointer}
.closing-choice label:has(input:checked){border-color:var(--link);background:var(--fill-1)}
.closing-choice input{margin:0;accent-color:var(--link)}
.closing-dialog .rb-save:disabled{opacity:.45;cursor:not-allowed}
.closing-fallback{padding:14px;border:1px solid var(--separator);border-radius:var(--radius-sm);margin:12px 0}
.closing-fallback label{display:block;margin:8px 0;font-size:13px}
.closing-fallback select,.held select{display:block;width:100%;margin:6px 0 10px}
.kcall-outcome{font-size:12px;color:var(--label-3);margin-top:7px}

/* Tuition payments reconciled with the school platform. */
.school-summary { margin-top:16px; padding-top:12px; border-top:1px solid var(--separator); }
.school-summary p { margin:6px 0; }
.school-card { font-size:12px; color:var(--label-3); margin-top:6px; }
.school-card.warn { color:var(--orange); }
.school-sync-meta { display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-bottom:18px; }
.school-reconcile { margin:18px 0; padding:18px; background:var(--surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); scroll-margin-top:20px; }
.school-reconcile h2 { margin:0 0 8px; }
.school-reconcile form { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:12px; }
.school-reconcile select { max-width:100%; min-width:240px; flex:1; }
.school-reconcile .tw { margin-top:12px; }

/* оценка заявки A/B/C (видит только владелец) */
.grade{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;border-radius:5px;
  font-size:12px;font-weight:800;line-height:1;color:#fff;margin-top:1px}
.grade.gA{background:#2E9E5B}
.grade.gB{background:#D99A1E}
.grade.gC{background:#9AA3AD}
.grade-box{display:flex;gap:12px;align-items:flex-start}
.grade-box .grade{width:32px;height:32px;flex-basis:32px;font-size:17px;border-radius:7px}
.grade-box p{margin:4px 0 0}
.grade-top{margin:0 0 14px}
.grade-txt{flex:1;min-width:0}
.grade-set{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.grade-btn{min-width:34px;height:30px;padding:0 10px;border:1px solid #C6CDD3;border-radius:6px;background:var(--surface);
  color:var(--label-2);font-weight:700;cursor:pointer}
.grade-btn:hover{border-color:var(--label-3);color:var(--label-1)}
.grade-btn.on{background:var(--label-1);border-color:var(--label-1);color:#fff}
.past-calls{margin-top:18px}
.past-calls summary{cursor:pointer;font-weight:600;color:var(--label-2);padding:6px 0}

/* Заявки предпринимателей с анкеты «Разбор бизнеса» — фиолетовые (24.10.2026) */
.kcard.biz{background:#F3EDFF;box-shadow:inset 4px 0 0 #7C4DFF,var(--shadow-sm)}
body.theme-dark .kcard.biz{background:#2C2440}
.tagbiz{margin-left:auto;flex-shrink:0;font-size:11.5px;font-weight:700;color:#fff;background:#7C4DFF;border-radius:999px;padding:2px 8px}
.tagbiz+.tag99{margin-left:6px}
.bannerbiz{margin:0 0 14px;padding:12px 14px;border-radius:12px;background:#F3EDFF;color:#4B2BB3;font-weight:600;border-left:4px solid #7C4DFF}
body.theme-dark .bannerbiz{background:#2C2440;color:#D9CCFF}
