/* KRONOS CRM — стили интерфейса (вынесены из index.html, аудит 07.10, пакет Д) */
:root{
  --primary:#E65B00;--primary-2:#ff7a2b;--secondary:#c94e00;
  --success:#27ae60;--danger:#e0503a;--warning:#e6a817;--dark:#1a1a1a;
  /* Семантические (светлая тема — Графит) */
  --app-bg:#eceef2;--panel:#ffffff;--panel-2:#f4f6f8;--card:#ffffff;
  --text:#2a2e35;--text-soft:#525863;--muted:#8a909c;--border:#e2e5ea;--line:#edeff2;
  --header-bg:#ffffff;--header-text:#2a2e35;
  --sidebar-bg:#2b3038;--sidebar-hover:#363c46;--sidebar-text:#c8ccd4;--sidebar-muted:#7f8894;--input-bg:#ffffff;
  --accent-soft:#fbeadf;
  --shadow:0 1px 3px rgba(0,0,0,.08);--shadow-lg:0 6px 20px rgba(0,0,0,.12);
  --kanban-col:#e4e7ec;--heading:#1a1a1a;
}
body.dark{
  --app-bg:#16191d;--panel:#24292f;--panel-2:#1b1f24;--card:#24292f;
  --text:#e4e8ed;--text-soft:#b8bec7;--muted:#7d858f;--border:#333a42;--line:#2e343b;
  --header-bg:#1d2126;--header-text:#e4e8ed;
  --sidebar-bg:#1a1d22;--sidebar-hover:#262b31;--sidebar-text:#a8afb8;--sidebar-muted:#6d757f;--input-bg:#24292f;
  --accent-soft:#3a2517;
  --shadow:0 2px 8px rgba(0,0,0,.4);--shadow-lg:0 12px 30px rgba(0,0,0,.6);
  --kanban-col:#1b1f24;--heading:#eef1f5;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
body{font-family:'Segoe UI',sans-serif;background:var(--app-bg);color:var(--text)}
/* на телефоне: контентные вью не создают горизонтальный скролл (пустое место листается) */
@media(max-width:900px){
  .view{overflow-x:hidden}
  .view > *{max-width:100%}
  .detail-section,.stats-grid,.chart-box{max-width:100%;overflow-x:hidden}
}
.login-screen{display:flex;justify-content:center;align-items:center;height:100vh;background:linear-gradient(135deg,var(--primary),var(--secondary))}
.login-box{background:var(--panel);padding:40px;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.3);width:100%;max-width:400px}
.login-box h1{text-align:center;margin-bottom:8px}
.login-box .sub{text-align:center;color:var(--muted);font-size:13px;margin-bottom:24px}
.login-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:6px}
.login-brand img{width:46px;height:46px;object-fit:contain;border-radius:10px}
.login-brand b{display:block;font-size:24px;letter-spacing:.5px;color:var(--text)}
.login-brand span{display:block;font-size:12px;color:var(--muted)}
.login-err{background:#fdecea;color:#b3261e;border-radius:6px;padding:9px 12px;font-size:13px;margin-bottom:12px}
.login-ok{background:#e7f6ec;color:#1e7b45;border-radius:6px;padding:9px 12px;font-size:13px;margin-bottom:12px}
body.dark .login-err{background:#3a2124;color:#ffb4ab}
.form-group{margin-bottom:15px}
.form-group label{display:block;margin-bottom:5px;font-weight:600;font-size:13px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px;border:1px solid var(--border);border-radius:5px;font-family:inherit;font-size:14px}
.login-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border:none;border-radius:5px;cursor:pointer;font-weight:bold;font-size:16px}
.app{display:none;height:100vh}
.app.show{display:flex}
/* ===== Правая колонка (шапка + контент) ===== */
.right-col{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.header{background:var(--header-bg);color:var(--header-text);padding:10px 22px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--border)}
.header h1{font-size:16px;white-space:nowrap;color:var(--text);display:flex;align-items:center;gap:9px}
.header-clock{font-size:12px;text-align:center;line-height:1.3;white-space:nowrap;color:var(--text-soft)}
.header-clock .hc-time{font-size:16px;font-weight:bold;color:var(--text)}
.header-right{display:flex;align-items:center;gap:12px}
.user-avatar{width:36px;height:36px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:bold;cursor:pointer;overflow:hidden;color:#fff}
.user-avatar img{width:100%;height:100%;object-fit:cover}
.logout-btn{background:var(--panel-2);color:var(--text-soft);border:1px solid var(--border);padding:7px 13px;border-radius:8px;cursor:pointer;font-weight:600;font-size:12px}
.logout-btn:hover{background:var(--danger);color:#fff;border-color:var(--danger)}
.search-wrap{position:relative;flex:1;max-width:380px}
.search-wrap input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--border);border-radius:9px;font-size:13px;background:var(--input-bg);color:var(--text)}
.search-wrap .fa-magnifying-glass{position:absolute;left:11px;top:11px;color:var(--muted);font-size:13px}
.search-results{display:none;position:absolute;top:105%;left:0;right:0;background:var(--panel);border-radius:8px;box-shadow:var(--shadow-lg);z-index:900;max-height:380px;overflow-y:auto;color:var(--text);border:1px solid var(--border)}
.search-results.active{display:block}
.search-item{padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px}
.search-item:hover{background:var(--panel-2)}
.search-item small{color:var(--muted)}
.bell-wrap{position:relative}
.last-notif{display:flex;align-items:center;gap:8px;max-width:260px;padding:7px 12px;background:var(--panel-2);
  border:1px solid var(--border);border-radius:9px;color:var(--text-soft);font-size:12px;cursor:pointer;transition:.2s;overflow:hidden}
.last-notif:hover{background:var(--accent-soft)}
.last-notif i{color:var(--primary);flex-shrink:0}
.last-notif span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.last-notif.pulse{animation:notifPulse 1s ease}
@keyframes notifPulse{0%{background:var(--accent-soft)}100%{background:var(--panel-2)}}
@media(max-width:1100px){.last-notif{display:none}}
.bell-btn{background:none;border:none;color:var(--text-soft);font-size:19px;cursor:pointer;position:relative;padding:4px 6px}
.bell-badge{position:absolute;top:-2px;right:-4px;background:var(--danger);color:#fff;border-radius:10px;font-size:11px;padding:1px 6px;display:none}
.bell-menu{display:none;position:absolute;top:130%;right:0;width:360px;background:var(--panel);color:var(--text);border-radius:8px;box-shadow:var(--shadow-lg);z-index:950;overflow:hidden;border:1px solid var(--border)}
.bell-menu.active{display:block}
.bell-head{padding:10px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:13px}
.bell-head button{background:none;border:none;color:var(--primary);cursor:pointer;font-size:12px}
.bell-section{padding:8px 14px 4px;font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:600}
.bell-item{padding:9px 14px;border-bottom:1px solid var(--line);font-size:13px}
.bell-item.unread{background:var(--accent-soft)}
.bell-item small{color:var(--muted);display:block;margin-top:2px}
.bell-body{max-height:420px;overflow-y:auto}
/* ===== Вертикальное боковое меню ===== */
.sidebar{width:230px;flex-shrink:0;background:var(--sidebar-bg);display:flex;flex-direction:column;transition:width .2s}
.sidebar-brand{padding:18px 18px 14px;display:flex;align-items:center;gap:11px;border-bottom:1px solid rgba(255,255,255,.07)}
.sidebar-brand .sb-logo{width:38px;height:38px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.sidebar-brand .sb-logo img{width:100%;height:100%;object-fit:contain}
.sidebar-brand .sb-txt{color:#fff;font-weight:700;font-size:16px;letter-spacing:.5px;white-space:nowrap;overflow:hidden}
.sidebar-brand .sb-txt small{display:block;color:var(--sidebar-muted);font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:500}
.sidebar-toggle{margin-left:auto;background:none;border:none;color:var(--sidebar-muted);cursor:pointer;font-size:15px;padding:6px;border-radius:6px;flex-shrink:0}
.sidebar-toggle:hover{background:rgba(255,255,255,.08);color:#fff}
.sidebar-nav{flex:1;padding:10px 10px;overflow-y:auto;overflow-x:hidden}
.sidebar-nav button{width:100%;display:flex;align-items:center;gap:12px;background:none;border:none;color:var(--sidebar-text);padding:11px 13px;cursor:pointer;font-weight:500;font-size:14px;border-radius:9px;margin-bottom:2px;position:relative;white-space:nowrap;text-align:left;transition:.15s}
.sidebar-nav button .nav-ico{width:20px;text-align:center;font-size:15px;flex-shrink:0}
.sidebar-nav button .nav-txt{overflow:hidden;text-overflow:ellipsis}
.sidebar-nav button.active{background:var(--primary);color:#fff;font-weight:600}
.sidebar-nav button:hover:not(.active){background:var(--sidebar-hover);color:#fff}
.nav-badge{margin-left:auto;background:var(--danger);color:#fff;border-radius:10px;font-size:11px;padding:1px 7px;display:none;flex-shrink:0}
.sidebar-profile{padding:12px 14px;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:10px;cursor:pointer}
.sidebar-profile:hover{background:var(--sidebar-hover)}
.sidebar-profile .sp-ava{width:34px;height:34px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0;overflow:hidden}
.sidebar-profile .sp-ava img{width:100%;height:100%;object-fit:cover}
.sidebar-profile .sp-info{overflow:hidden;white-space:nowrap}
.sidebar-profile .sp-name{color:#fff;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.sidebar-profile .sp-role{color:var(--sidebar-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis}
/* Свёрнутое меню — только иконки */
.app.collapsed .sidebar{width:64px}
.app.collapsed .sidebar-brand{padding:18px 0 14px;justify-content:center;flex-wrap:wrap;gap:8px}
.app.collapsed .sidebar-brand .sb-txt,
.app.collapsed .sidebar-nav .nav-txt,
.app.collapsed .nav-badge,
.app.collapsed .sidebar-profile .sp-info{display:none}
.app.collapsed .sidebar-toggle{margin-left:0}
.app.collapsed .sidebar-nav button{justify-content:center;padding:11px 0}
.app.collapsed .sidebar-profile{justify-content:center}
.main-content{flex:1;overflow:hidden;display:flex}
.view-container{flex:1;overflow-y:auto;padding:18px 22px}
/* правая панель быстрых чатов не должна закрывать край экрана — место под неё (на экране чатов она скрыта) */
@media(min-width:901px){body:not(.gen-full) .view-container{padding-right:84px}body.chat-view .view-container{padding-right:22px}body.chat-view .quickchat{display:none}}
/* планшетный иконочный авто-режим убран — на ≤820px работает гамбургер-меню */
.view{display:none}.view.active{display:block}
.toolbar{display:flex;gap:10px;margin-bottom:15px;align-items:center;flex-wrap:wrap}
.btn{padding:10px 18px;border:none;border-radius:9px;cursor:pointer;font-weight:600;font-size:13px;
  transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex;align-items:center;gap:8px}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(230,91,0,.25)}
.btn-primary:hover{box-shadow:0 5px 16px rgba(230,91,0,.4)}
.btn-success{background:var(--success);color:#fff;box-shadow:0 2px 8px rgba(39,174,96,.22)}
.btn-success:hover{box-shadow:0 5px 16px rgba(39,174,96,.38)}
.btn-warning{background:var(--warning);color:#fff;box-shadow:0 2px 8px rgba(230,168,23,.22)}
.btn-warning:hover{box-shadow:0 5px 16px rgba(230,168,23,.38)}
.btn-danger{background:var(--danger);color:#fff;box-shadow:0 2px 8px rgba(224,80,58,.22)}
.btn-danger:hover{box-shadow:0 5px 16px rgba(224,80,58,.38)}
.btn-muted{background:var(--panel-2);color:var(--text-soft);border:1px solid var(--border)}
.btn-muted:hover{background:var(--border)}
.btn-big{padding:12px 26px;font-size:15px;background:var(--success);color:#fff;box-shadow:0 3px 12px rgba(39,174,96,.35)}
.btn-big:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(39,174,96,.5)}
.dropdown{position:relative;display:inline-block}
.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:200px;box-shadow:var(--shadow-lg);z-index:500}
.dropdown-menu.active{display:block}
.dropdown-menu button{width:100%;padding:10px 15px;background:none;border:none;text-align:left;cursor:pointer;font-size:14px;color:var(--text)}
.dropdown-menu button:hover{background:var(--panel-2)}
.dropdown-menu button.current{background:var(--primary);color:#fff}
.filter-btn{padding:8px 14px;border:1px solid var(--border);background:var(--panel);color:var(--text-soft);border-radius:8px;cursor:pointer;font-weight:600;font-size:13px}
.filter-btn:hover{border-color:var(--primary);color:var(--primary)}
.filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.kanban-wrap{overflow-x:auto;padding-bottom:10px}
/* Стрелки автопрокрутки канбана */
.kanban-outer{position:relative}
.funnel-summary{display:flex;flex-direction:column;gap:6px;justify-content:center;flex:1.3;min-width:190px}
.funnel-summary .fs-chip{padding:5px 12px;font-size:12px}
.funnel-summary .fs-chip b{font-size:15px}
.today-focus{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.tf-card{flex:1;min-width:160px;background:var(--panel);border:1px solid var(--border);border-radius:12px;
  padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}
.tf-card .tf-ico{font-size:26px}
.tf-card .tf-num{font-size:24px;font-weight:700;line-height:1}
.tf-card .tf-lbl{font-size:12px;color:var(--muted)}
.tf-card.warn{border-left:3px solid var(--warning)}
.tf-card.danger{border-left:3px solid var(--danger)}
.tf-card.danger.has{background:rgba(231,76,60,.07)}
.cmp-arrow{font-size:12px;margin-left:6px;font-weight:600}
.cmp-up{color:var(--success)}.cmp-down{color:var(--danger)}
.conv-stage{position:relative;margin-bottom:10px}
.conv-bar{height:52px;border-radius:10px;display:flex;align-items:center;padding:0 18px;color:#fff;
  font-weight:600;transition:width .5s;box-shadow:var(--shadow)}
.conv-bar .cb-name{flex:1}
.conv-bar .cb-count{font-size:20px}
.conv-pct{display:inline-block;margin-left:10px;font-size:13px;color:var(--muted)}
.fs-chip{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);
  border-radius:10px;padding:8px 14px;font-size:13px;box-shadow:var(--shadow)}
.fs-chip b{font-size:18px}
.fs-chip.total{border-left:3px solid var(--primary)}
.fs-chip.notask{border-left:3px solid var(--warning)}
.fs-chip.hot{border-left:3px solid var(--danger)}
.fs-chip.hot.has{background:rgba(231,76,60,.08)}
.kb-arrow{position:absolute;top:0;bottom:10px;width:56px;z-index:80;display:flex;align-items:center;justify-content:center;
  cursor:pointer;opacity:0;transition:opacity .25s;pointer-events:none;border:none}
.kb-arrow.show{opacity:.35;pointer-events:auto}
.kb-arrow.show:hover{opacity:1}
.kb-arrow.left{left:0;background:linear-gradient(90deg,var(--app-bg),transparent)}
/* правая стрелка не должна прятаться за панелью быстрых чатов (64px справа) */
.kb-arrow.right{right:72px;background:linear-gradient(270deg,var(--app-bg),transparent)}
@media(max-width:900px){.kb-arrow.right{right:0}.kb-arrow{display:none}}
.kb-arrow i{width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;display:flex;
  align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 14px rgba(230,91,0,.45)}
.kanban{display:flex;gap:15px;min-height:420px}
.kanban-column{flex:0 0 300px;background:var(--kanban-col);border-radius:14px;padding:14px;max-height:calc(100vh - 285px);display:flex;flex-direction:column;box-shadow:var(--shadow)}
.column-header{margin-bottom:12px}
.column-title{padding:6px 10px;border-radius:4px;color:#fff;font-weight:600;font-size:13px;text-align:center}
.column-sum{font-size:11px;text-align:center;color:var(--text-soft);margin-top:4px;font-weight:600}
.deals-container{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:80px}
.deal-card{background:var(--card);padding:13px;border-radius:11px;box-shadow:var(--shadow);cursor:grab;position:relative;
  border-left:4px solid var(--primary);transition:transform .2s,box-shadow .2s,border-color .2s;
  animation:cardIn .35s ease both}
.deal-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--primary)}
@keyframes cardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.deal-card:active{cursor:grabbing}
.deal-card.overdue{border-left-color:var(--danger);background:#fdecea}
.deal-card.stale{border-left-color:#95a5a6;background:var(--panel-2)}
.deal-title{font-weight:600;font-size:14px;margin-bottom:6px;line-height:1.3}
.deal-title .deal-pr{font-size:11px}
.deal-amount{color:var(--success);font-weight:bold;font-size:16px;margin-bottom:6px}
.deal-meta{font-size:12px;color:var(--text);margin-bottom:6px;display:flex;flex-direction:column;gap:2px}
.deal-meta .dm-contact{color:var(--text)}
.deal-meta .dm-company{color:var(--muted)}
.deal-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}
.badge-age{background:#eef;color:#556}
.deal-card.fresh-lead{background:linear-gradient(135deg,#e8f8ee,#d4f3e0);border-color:#27ae60;border-left:4px solid #27ae60}
.deal-card.fresh-lead::before{content:'🌐 НОВАЯ ЗАЯВКА';position:absolute;top:-8px;left:10px;background:#27ae60;color:#fff;
  font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;letter-spacing:.5px}
body.dark .deal-card.fresh-lead{background:linear-gradient(135deg,#1a3527,#16402a)}
.badge{padding:1px 7px;border-radius:3px;font-size:11px;font-weight:600}
.badge-reminder{background:var(--warning);color:#fff}
.badge-overdue{background:var(--danger);color:#fff}
.badge-stale{background:#95a5a6;color:#fff}
.badge-sla{background:#ffe082;color:#795548}
.badge-hi{background:#fdecea;color:var(--danger)}
.badge-md{background:#fef5e7;color:var(--warning)}
.badge-lo{background:#eafaf1;color:var(--success)}
.badge-tag{background:#eee;color:var(--text-soft)}
.badge-src{background:#e8eaf6;color:#3f51b5}
.badge-owner{background:#e0f2f1;color:#00695c}
.final-strip{display:flex;gap:15px;margin-top:12px;align-items:stretch}
.final-folder{flex:1;border:2px dashed #bbb;border-radius:10px;padding:14px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:.15s;min-height:76px;position:relative}
.final-folder:hover{transform:translateY(-2px)}
.final-folder .ff-icon{font-size:30px}
.final-folder .ff-count{font-size:20px;font-weight:bold}
.final-folder .ff-sub{font-size:12px;color:#777}
.folder-success{background:#eafaf1;border-color:var(--success);color:#1e8449}
.folder-fail{background:#fdecea;border-color:var(--danger);color:#b03a2e}
.final-trash{flex:0 0 130px;border:2px dashed #999;border-radius:10px;background:#f2f3f4;color:#777;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;font-weight:600;gap:4px}
.final-folder.drag-over,.final-trash.drag-over{transform:scale(1.02);border-style:solid}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);justify-content:center;align-items:center;z-index:1000}
.modal.active{display:flex}
.modal-content{background:var(--panel);padding:25px;border-radius:10px;width:100%;max-width:760px;max-height:92vh;overflow-y:auto}
.modal-content h2{margin-bottom:18px;color:var(--heading);border-bottom:2px solid var(--primary);padding-bottom:8px;font-size:19px}
.modal-wide{max-width:1100px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.modal-buttons{display:flex;gap:10px;margin-top:18px;justify-content:flex-end}
.dup-warning{display:none;background:#fff8e1;border:1px solid var(--warning);color:#8d6e00;border-radius:5px;padding:8px 12px;font-size:12px;margin-top:6px}
.dd-layout{display:grid;grid-template-columns:1fr 340px;gap:18px}
.dd-left{min-width:0}
.dd-comments{display:flex;flex-direction:column;background:var(--panel-2);border-radius:8px;border:1px solid var(--border);height:calc(92vh - 140px);min-height:420px}
.dd-comments-head{padding:10px 14px;border-bottom:1px solid #e2e6f0;font-weight:600;font-size:14px;display:flex;justify-content:space-between;align-items:center}
.dd-comments-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}
.dd-comments-foot{padding:10px;border-top:1px solid var(--border);display:flex;gap:8px}
.dd-comments-foot input{flex:1;padding:9px;border:1px solid var(--border);border-radius:18px;font-size:13px}
.chat-bubble{max-width:88%;padding:8px 12px;border-radius:12px;font-size:13px;position:relative;word-wrap:break-word}
.chat-bubble.mine{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:3px}
.chat-bubble.theirs{align-self:flex-start;background:var(--panel);border:1px solid var(--border);border-bottom-left-radius:3px}
.chat-bubble.deleted{opacity:.55;font-style:italic}
.chat-bubble .cb-author{font-size:12px;font-weight:700;margin-bottom:3px;color:var(--primary)}
.chat-bubble .cb-time{font-size:11px;opacity:.65;margin-top:3px;text-align:right}
.chat-bubble .cb-del{position:absolute;top:2px;right:5px;background:none;border:none;cursor:pointer;font-size:11px;opacity:.5;color:inherit}
.detail-section{background:var(--panel-2);padding:14px;border-radius:6px;border-left:4px solid var(--primary);margin-bottom:14px}
/* режим редактора карточки */
.lay-hidden{display:none!important}
.dd-layout.lay-edit [data-blk]{position:relative;outline:1px dashed #bbb}
.dd-layout.lay-edit .lay-hidden{display:block!important;opacity:.42;background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(0,0,0,.05) 6px,rgba(0,0,0,.05) 12px)}
.lay-ctl{display:flex;align-items:center;gap:6px;margin:-6px -6px 8px;padding:5px 8px;background:#0D0D0D;border-radius:4px;flex-wrap:wrap}
.lay-ctl .lay-nm{color:#fff;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-right:auto}
.lay-ctl button{background:#2B2B2B;color:#fff;border:none;border-radius:3px;padding:3px 9px;font-size:11px;cursor:pointer}
.lay-ctl button:hover{background:#E85D00}
.lay-ctl button.off{background:#7a2d00;color:#ffd9c2}
.lay-eye{margin-left:8px;background:none;border:1px solid #ccc;border-radius:3px;padding:0 5px;font-size:11px;cursor:pointer;line-height:16px}
.lay-eye.off{border-color:#E85D00;background:#ffe9dd}
/* дашборд маржи */
.mg-t{width:100%;border-collapse:collapse;font-size:12.5px}
.mg-t th{text-align:left;padding:6px 8px;border-bottom:2px solid #E85D00;color:#666;font-weight:700;white-space:nowrap}
.mg-t td{padding:5px 8px;border-bottom:1px solid #eee;white-space:nowrap}
.mg-t td:nth-child(n+2),.mg-t th:nth-child(n+2){text-align:right}
/* конструктор условий оплаты */
.payplan{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
.pp-col{display:flex;flex-direction:column;gap:5px}
.pp-col select,.pp-col input{padding:7px 8px;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:12.5px;width:100%}
.pp-kind{font-weight:600}
.pp-post{display:flex;gap:5px}
.pp-post .pp-days{flex:0 0 62px}
.pp-post .pp-from{flex:1}
@media(max-width:560px){.payplan{grid-template-columns:1fr}}
/* закреплённые кнопки калькулятора — не нужно листать */
.calc-sticky{position:sticky;bottom:-25px;background:var(--panel);padding:12px 0 0;margin-top:10px;
  border-top:1px solid var(--border);box-shadow:0 -8px 16px -8px rgba(0,0,0,.18);z-index:5}
/* страница расчёта */
#bdModal{z-index:1050}
.bd-t{width:100%;border-collapse:collapse}
.bd-t td{padding:4px 8px;border-bottom:1px solid #eee;font-size:12px}
.bd-t td:last-child{text-align:right;white-space:nowrap}
/* калькулятор треугольника */
#triModal{z-index:1100}
/* редактор договора — выше карточки сделки */
#dogovorEditModal{z-index:1200}
.tri-row{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.tri-row label{flex:1;font-size:13px;color:#444}
.tri-row label small{display:block;font-size:11px;color:#999}
.tri-row input{width:130px;padding:7px 9px;border:1px solid #ddd;border-radius:5px;font-size:13px;text-align:right}
.tri-row input.tri-in{border-color:#0D0D0D;background:#fff;font-weight:700}
.tri-row input.tri-out{border-color:#E85D00;background:#fff6f0;color:#E85D00;font-weight:700}
.detail-section h3{font-size:14px;margin-bottom:8px;color:var(--heading)}
/* медиаархив: папки, плитки, просмотр */
.md-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.md-tab{border:1px solid #ddd;background:#fff;border-radius:16px;padding:5px 11px;font-size:12px;cursor:pointer;color:#333;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-tab i{font-style:normal;color:#888;margin-left:3px}.md-tab.on{background:#E65B00;border-color:#E65B00;color:#fff}.md-tab.on i{color:#ffe1cc}
.md-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.md-t{position:relative;background:#eee;border-radius:6px;overflow:hidden;cursor:pointer;aspect-ratio:1/1}
.md-t img{width:100%;height:100%;object-fit:cover;display:block}
.md-t .ph{display:flex;align-items:center;justify-content:center;height:100%;font-size:30px;color:#999;flex-direction:column;gap:4px}
.md-t .ph small{font-size:11px;color:#888;padding:0 6px;text-align:center}
.md-t .bdg{position:absolute;left:5px;bottom:5px;background:rgba(0,0,0,.65);color:#fff;font-size:11px;border-radius:4px;padding:1px 6px}
.md-t .fld{position:absolute;right:5px;top:5px;background:rgba(230,91,0,.9);color:#fff;font-size:11px;border-radius:4px;padding:1px 5px}
.md-t .st{position:absolute;left:5px;top:5px;background:rgba(255,255,255,.92);font-size:11px;border-radius:4px;padding:1px 5px;color:#333}
.md-empty{color:#888;font-size:13px;padding:10px 0}.md-note{font-size:12px;color:#8a5a00;background:#fff6e5;border-radius:5px;padding:6px 9px;margin-bottom:8px}
.md-up{font-size:12px;margin-bottom:8px}.md-up .r{display:flex;justify-content:space-between;gap:8px}.md-up .b{height:4px;background:#eee;border-radius:2px;margin:3px 0 6px}.md-up .b i{display:block;height:100%;background:#E65B00;border-radius:2px}
.md-view{position:fixed;inset:0;background:rgba(8,8,8,.97);z-index:3000;display:flex;flex-direction:column}
.md-vbar{display:flex;align-items:center;gap:8px;padding:10px 14px;color:#eee;font-size:13px;flex-wrap:wrap}
.md-vbar .nm{flex:1;min-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-vbar .btn{padding:5px 11px;font-size:12px}.md-vbar select{padding:5px;border-radius:5px;font-size:12px;max-width:220px}
.md-vbody{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 50px 14px}
.md-vbody img,.md-vbody video{max-width:100%;max-height:100%;object-fit:contain;background:#000}
.md-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);color:#fff;border:0;font-size:34px;width:44px;height:64px;border-radius:6px;cursor:pointer}
.md-nav.l{left:6px}.md-nav.r{right:6px}
.md-box{background:#fff;border-radius:10px;padding:18px;max-width:420px;margin:auto;text-align:center}
.md-box .qr svg{width:240px;height:240px}.md-box input{width:100%;padding:7px;font-size:12px;border:1px solid #ddd;border-radius:5px;margin:8px 0}
.md-box .cv{display:block;width:100%;text-align:left;margin:6px 0;padding:10px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:13px}
.md-box .cv:hover{border-color:#E65B00;background:#fff4ec}
.md-t .flg{position:absolute;right:5px;bottom:5px;background:rgba(255,255,255,.92);border-radius:4px;padding:0 4px;font-size:12px}
.md-tc{min-width:0}.md-cap{font-size:11px;color:#666;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-fl{border:1px solid #666;background:transparent;color:#ddd;border-radius:14px;padding:4px 10px;font-size:12px;cursor:pointer}
.md-fl.on{background:#E65B00;border-color:#E65B00;color:#fff}.md-fl:disabled{opacity:.4;cursor:not-allowed}
.ml-bar{flex-wrap:wrap;gap:8px}.ml-bar input,.ml-bar select{padding:8px;border:1px solid #ddd;border-radius:5px;font-size:13px}
.ml-bar #mlQ{min-width:220px;flex:1}.ml-seg{display:inline-flex;gap:0}.ml-seg .filter-btn{margin:0}
.ml-more{display:flex;flex-wrap:wrap;gap:14px;align-items:center;background:var(--panel-2,#f7f7f5);border-radius:6px;padding:10px 12px;margin-bottom:10px;font-size:13px}
.ml-more input{padding:6px;border:1px solid #ddd;border-radius:5px;width:90px}.ml-more input[type=date]{width:auto}.ml-more select{padding:6px;border:1px solid #ddd;border-radius:5px}
.ml-stat{font-size:13px;color:#666;margin:4px 0 12px}
.ml-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.ml-card{background:#fff;border-radius:10px;overflow:hidden;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.08);transition:transform .12s,box-shadow .12s}
.ml-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.ml-mos{display:grid;aspect-ratio:16/10;background:#eee;gap:2px}.ml-mos img{width:100%;height:100%;object-fit:cover;display:block;min-height:0}
.ml-mos.n0{display:flex;align-items:center;justify-content:center;font-size:40px;color:#bbb}.ml-mos.n2{grid-template-columns:1fr 1fr}
.ml-mos.n3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.ml-mos.n3 img:first-child{grid-row:1/3}
.ml-mos.n4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.ml-ct{padding:10px 12px}.ml-ct b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-cv{font-size:12px;color:#777;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ml-meta{font-size:12px;color:#555;margin-top:6px;display:flex;justify-content:space-between;gap:6px}.ml-meta span{color:#999;white-space:nowrap}
.ml-fhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.detail-item{display:flex;align-items:center;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px;gap:4px 10px}
.detail-item > b:first-child{flex:0 0 150px;font-weight:600;color:var(--text-soft)}
.detail-item > b:first-child + span{flex:1 1 160px;min-width:0;overflow-wrap:anywhere}
.detail-item > .btn{padding:2px 10px!important;font-size:11px!important;margin-left:0!important}
@media(max-width:600px){.detail-item > b:first-child{flex-basis:112px}}
.detail-item:last-child{border-bottom:none}
.detail-item input,.detail-item select{padding:5px 8px;border:1px solid #ccc;border-radius:4px;font-size:13px;flex:1;max-width:230px}
.stage-row{display:flex;gap:8px;align-items:center;background:var(--panel-2);padding:10px;border-radius:5px;margin-bottom:8px}
.stage-row .drag-handle{color:#aaa;cursor:grab;width:18px;text-align:center}
.stage-row .lock-icon{color:#b8860b;width:18px;text-align:center}
.stage-row input[type=text]{flex:1;padding:7px;border:1px solid var(--border);border-radius:4px}
.stage-row input[type=text]:disabled{background:#eee;color:var(--muted)}
.stage-row input[type=color]{width:40px;height:34px;border:none;cursor:pointer}
.stage-row input[type=number]{width:60px;padding:7px;border:1px solid var(--border);border-radius:4px}
table{width:100%;border-collapse:collapse;background:var(--panel);border-radius:8px;overflow:hidden;box-shadow:0 2px 5px rgba(0,0,0,.05)}
th{background:var(--dark);color:#fff;padding:11px;text-align:left;font-size:13px}
td{padding:11px;border-bottom:1px solid var(--line);color:var(--text);font-size:13px}
tr:hover td{background:var(--panel-2)}
tbody tr{cursor:pointer}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}
.stat-card{background:var(--panel);padding:18px 20px;border-radius:14px;box-shadow:var(--shadow);border-top:4px solid var(--primary);transition:transform .2s,box-shadow .2s}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.stat-label{color:var(--muted);font-size:12px;text-transform:uppercase}
.stat-value{font-size:22px;font-weight:bold;color:var(--heading);margin-top:6px}
.stat-sub{font-size:12px;margin-top:4px;color:var(--muted)}
.chart-box{background:var(--panel);padding:18px;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.05);margin-bottom:20px}
.chart-box h3{font-size:14px;color:var(--text-soft);margin-bottom:12px}
.plan-card{background:var(--panel);padding:15px;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,.05);border-top:4px solid var(--secondary)}
.plan-card{min-width:0}
.plan-edit{display:flex;gap:6px;margin-top:8px;min-width:0}
.plan-edit input{flex:1;min-width:0;width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:var(--input-bg);color:var(--text)}
.plan-edit .btn{padding:6px 10px;font-size:12px;flex:0 0 auto}
.plan-bar{height:10px;background:#eee;border-radius:5px;overflow:hidden;margin-top:8px}
.plan-bar div{height:100%;background:linear-gradient(90deg,var(--primary),var(--success));border-radius:5px}
.chatpage{display:grid;grid-template-columns:1fr 300px;height:calc(100vh - 145px);background:var(--panel);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.chat-list{border-left:1px solid var(--border);display:flex;flex-direction:column;order:2}
.chat-list-head{padding:12px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.chat-list-body{flex:1;overflow-y:auto}
.chat-sec{padding:7px 14px 3px;font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:700;background:#fafafa}
.chat-item{padding:10px 14px;border-bottom:1px solid var(--line);cursor:pointer;position:relative;display:flex;gap:10px;align-items:center}
.chat-item:hover{background:#f7f8ff}
.chat-item.current{background:#eef0ff}
.ci-ava{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:14px;position:relative;flex:0 0 34px;overflow:hidden}
.ci-ava img{width:100%;height:100%;object-fit:cover}
.online-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;border-radius:50%;border:2px solid #fff}
.online-dot.on{background:#2ecc71}
.online-dot.off{background:#b2bec3}
.chat-item .ci-name{font-weight:600;font-size:13px}
.chat-item .ci-last{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.chat-item .ci-unread{position:absolute;right:12px;top:14px;background:var(--danger);color:#fff;border-radius:10px;font-size:11px;padding:1px 7px}
.chat-room{display:flex;flex-direction:column;order:1}
.chat-room-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.chat-room-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--panel-2);position:relative}
.chat-room-body.drop-active{outline:3px dashed var(--primary);outline-offset:-6px;background:rgba(230,91,0,.05)}
.chat-room-foot{padding:12px;border-top:1px solid var(--border)}
.chat-reply-bar{display:none;background:#eef0ff;border-left:3px solid var(--primary);padding:6px 10px;font-size:12px;margin-bottom:8px;border-radius:4px;justify-content:space-between;align-items:center}
.chat-input-row{display:flex;gap:8px;align-items:center}
.chat-input-row input[type=text]{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:20px;font-size:14px}
.msg{max-width:70%;padding:9px 13px;border-radius:12px;font-size:14px;position:relative}
.msg.mine{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:3px}
.msg.theirs{align-self:flex-start;background:var(--panel);border:1px solid var(--border);border-bottom-left-radius:3px}
.msg .m-author{font-size:12px;font-weight:700;margin-bottom:3px;color:var(--primary)}
.msg .m-reply{background:rgba(0,0,0,.08);border-left:3px solid rgba(255,255,255,.6);border-radius:4px;padding:4px 8px;font-size:11px;margin-bottom:5px;opacity:.9}
.msg.theirs .m-reply{background:#f0f2f8;border-left-color:var(--primary)}
.msg .m-meta{font-size:11px;opacity:.65;margin-top:4px;display:flex;justify-content:flex-end;gap:5px;align-items:center}
.msg .m-actions{display:none;position:absolute;top:-24px;right:0;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 3px 8px rgba(0,0,0,.15);z-index:10}
.msg:hover .m-actions{display:flex}
.msg .m-actions button{background:none;border:none;cursor:pointer;padding:4px 8px;font-size:12px;color:var(--text-soft)}
.msg .m-actions button:hover{color:var(--primary)}
.msg .m-file a{color:inherit;text-decoration:underline}
.msg.deleted{opacity:.5;font-style:italic}
.chat-bubble .m-actions{display:none;position:absolute;top:-22px;right:4px;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 3px 8px rgba(0,0,0,.15);z-index:10}
.chat-bubble:hover .m-actions{display:flex}
.chat-bubble .m-actions button{background:none;border:none;cursor:pointer;padding:4px 8px;font-size:12px;color:var(--text-soft)}
.chat-bubble .m-actions button:hover{color:var(--primary)}
.chat-bubble.deleted{opacity:.5;font-style:italic}
.task-card{background:var(--panel);border-radius:6px;padding:12px 14px;box-shadow:0 2px 5px rgba(0,0,0,.06);margin-bottom:10px;display:flex;gap:12px;align-items:flex-start;border-left:4px solid var(--primary)}
.task-card.done{opacity:.55;border-left-color:#aaa}
.task-card.overdue{border-left-color:var(--danger);background:#fdecea}
.task-check{width:22px;height:22px;cursor:pointer;margin-top:2px}
.task-body{flex:1}
.task-title{font-weight:600;font-size:14px}
.task-desc{font-size:12px;color:#777;margin-top:2px}
.task-meta{font-size:11px;color:var(--muted);margin-top:5px;display:flex;gap:12px;flex-wrap:wrap}
.task-actions{display:flex;gap:6px}
.task-actions button{background:none;border:none;cursor:pointer;color:var(--muted);font-size:13px}
.task-actions button:hover{color:var(--primary)}
.files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.drop-active{outline:3px dashed var(--primary)!important;outline-offset:4px;background:rgba(230,91,0,.06)!important;border-radius:10px}
.drop-hint{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--primary);color:#fff;padding:16px 28px;border-radius:12px;font-size:16px;font-weight:600;z-index:9999;box-shadow:0 10px 40px rgba(0,0,0,.3);pointer-events:none;display:none}
.file-tile{background:var(--panel);border-radius:8px;padding:14px 10px;text-align:center;box-shadow:0 2px 5px rgba(0,0,0,.06);cursor:pointer;position:relative;font-size:12px;word-break:break-word}
.file-tile:hover{box-shadow:0 4px 12px rgba(0,0,0,.12)}
.file-tile .ft-icon{font-size:34px;margin-bottom:6px}
.file-tile .ft-del{position:absolute;top:5px;right:7px;background:none;border:none;cursor:pointer;color:#bbb;font-size:12px}
.file-tile .ft-del:hover{color:var(--danger)}
.file-tile .ft-size{color:var(--muted);font-size:11px;margin-top:3px}
.trash-tabs{display:flex;gap:8px;margin-bottom:12px}
.list-row{display:flex;justify-content:space-between;align-items:center;background:var(--panel-2);padding:9px 12px;border-radius:5px;margin-bottom:6px;font-size:13px;gap:10px}
.list-row .lr-main{flex:1;cursor:pointer}
#toast{position:fixed;bottom:20px;right:20px;background:var(--dark);color:#fff;padding:14px 20px;border-radius:8px;display:none;z-index:2000;box-shadow:0 5px 20px rgba(0,0,0,.3);max-width:340px;font-size:13px}
/* сообщения: стопка в правом нижнем углу, цвет по смыслу */
#toastStack{position:fixed;right:20px;bottom:20px;z-index:3000;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none;max-width:min(380px,calc(100vw - 32px))}
.tst{pointer-events:auto;cursor:pointer;background:#2b3038;color:#fff;padding:12px 16px;border-radius:9px;box-shadow:0 6px 22px rgba(0,0,0,.25);font-size:13.5px;line-height:1.4;border-left:5px solid #8a909c;animation:tstIn .18s ease-out;white-space:pre-line}
.tst-ok{border-left-color:#27ae60}.tst-err{border-left-color:#e0503a;background:#3a2124}.tst-warn{border-left-color:#e6a817}.tst-info{border-left-color:var(--primary)}
.tst.out{opacity:0;transform:translateY(6px);transition:.22s}
@keyframes tstIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:600px){#toastStack{left:12px;right:12px;bottom:12px;max-width:none;align-items:stretch}}
/* свои окна-вопросы */
.ui-dlg .modal-content{max-width:460px}
.ui-dlg-text{font-size:14px;color:var(--text-soft);margin-bottom:12px;line-height:1.5}
.ui-hint{font-size:12px;color:var(--muted);margin-top:4px}
.ui-err{background:#fdecea;color:#b3261e;border-radius:6px;padding:8px 10px;font-size:13px;margin-bottom:6px}
body.dark .ui-err{background:#3a2124;color:#ffb4ab}
.req{color:var(--danger)}
/* «×» в каждом окне */
.modal-content{position:relative}
.modal-x{position:absolute;top:8px;right:10px;width:34px;height:34px;border:none;background:transparent;color:var(--muted);font-size:26px;line-height:30px;border-radius:8px;cursor:pointer;z-index:2}
.modal-x:hover{background:var(--panel-2);color:var(--text)}
/* ---- карточка сделки: шапка, цепочка стадий, выпадающие меню (аудит, пакет В) ---- */
.dd-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding-right:40px;margin-bottom:12px}
.dd-head #ddTitle{font-size:20px;min-width:0;overflow-wrap:anywhere}
.dd-head-btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dd-head-btns .btn{font-size:12.5px;padding:8px 14px}
.dd-head-btns .dd-more{padding:8px 12px;min-width:38px}
.stage-chain{display:flex;gap:3px;overflow-x:auto;padding:0 0 8px;margin-bottom:8px;scrollbar-width:thin}
.stage-chain:empty{display:none}
.stage-chain .sc{flex:1 0 auto;min-width:84px;max-width:230px;border:none;background:var(--panel-2);color:var(--muted);font:inherit;font-size:12px;font-weight:600;
  padding:8px 16px 8px 20px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:filter .15s,background .15s;
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%)}
.stage-chain .sc:first-child{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);border-radius:8px 0 0 8px;padding-left:14px}
.stage-chain .sc:hover{filter:brightness(.94)}
body.dark .stage-chain .sc:hover{filter:brightness(1.25)}
.stage-chain .sc.past{background:var(--accent-soft);color:var(--primary)}
.stage-chain .sc.cur{background:var(--primary);color:#fff;cursor:default}
.stage-chain .sc.cur:hover{filter:none}
.stage-chain.closed .sc.cur{background:var(--muted)}
.stage-chain .sc-end{flex:none;align-self:center;font-size:12px;font-weight:700;padding:6px 12px;border-radius:8px;margin-left:6px;white-space:nowrap}
.stage-chain .sc-end.ok{background:#e7f6ec;color:#1e7b45}
.stage-chain .sc-end.fail{background:#fdecea;color:#b3261e}
body.dark .stage-chain .sc-end.ok{background:#143d2a;color:#7ee2a8}
body.dark .stage-chain .sc-end.fail{background:#3a2124;color:#ffb4ab}
.dd-menu{position:fixed;z-index:3000;min-width:230px;max-width:min(380px,calc(100vw - 16px));max-height:min(72vh,560px);overflow-y:auto;
  background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:11px;box-shadow:var(--shadow-lg);padding:6px;outline:none;
  animation:ddMenuIn .12s ease-out}
@keyframes ddMenuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.dd-menu button{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;border:none;background:transparent;color:var(--text);
  font:inherit;font-size:13px;line-height:1.3;padding:8px 10px;border-radius:7px;cursor:pointer}
.dd-menu button:hover,.dd-menu button:focus-visible{background:var(--panel-2);outline:none}
.dd-menu .mi-ic{width:20px;text-align:center;flex:none}
.dd-menu .mi-tx{min-width:0;overflow-wrap:anywhere}
.dd-menu small{display:block;color:var(--muted);font-size:11.5px;font-weight:400;margin-top:2px}
.dd-menu button.danger{color:var(--danger)}
.dd-menu button:disabled{opacity:.45;cursor:default;background:transparent}
.dd-menu .mi-sep{height:1px;background:var(--line);margin:5px 4px}
.dd-menu .mi-head{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;padding:7px 10px 3px}
@media(max-width:600px){
  .dd-menu{left:8px!important;right:8px;top:auto!important;bottom:8px;max-width:none;min-width:0;max-height:75vh;border-radius:14px;padding:8px;box-shadow:0 -6px 30px rgba(0,0,0,.25)}
  .dd-menu button{padding:12px;font-size:14.5px}
  .dd-head #ddTitle{font-size:17px;width:100%}
  .dd-head-btns{width:100%}
  .dd-head-btns #ddClientBtn{flex:1;white-space:nowrap}
  .dd-head-btns .bt-l{display:none}
  .detail-item > b:first-child + span{flex:1 1 0}
}
/* строки конвейеров в сделке */
.cv-row{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;background:var(--panel)}
.cv-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.cv-top .cv-name{font-weight:700;min-width:0;overflow-wrap:anywhere}
.cv-top .cv-num{color:var(--muted);font-weight:400;font-size:12px}
.cv-qty{background:var(--accent-soft);color:var(--primary);font-weight:600;font-size:11px;padding:1px 6px;border-radius:4px;margin-left:4px}
.cv-price{text-align:right;white-space:nowrap}
.cv-price b{color:var(--primary)}
.cv-price div{font-size:11px;color:var(--muted)}
.cv-sub{font-size:12px;color:var(--muted);margin:4px 0}
.cv-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}
.cv-acts .btn{padding:5px 11px;font-size:12px}
.cv-acts .btn .fa-caret-down{margin-left:3px;opacity:.7}
.cv-acts .cv-accent{border-color:var(--primary);color:var(--primary)}
.modal-content > h2{padding-right:38px}
/* кнопка, пока идёт сохранение */
button.is-busy{opacity:.65;cursor:progress;position:relative}
/* нет связи с сервером */
.offline-bar{position:fixed;top:0;left:0;right:0;z-index:3100;background:#b3261e;color:#fff;text-align:center;padding:8px 12px;font-size:14px;display:flex;gap:12px;justify-content:center;align-items:center}
.offline-bar .btn{padding:4px 12px;font-size:12px}
.sec-warn{background:#fff6e5;border:1px solid #f0c36d;border-radius:10px;padding:12px 16px;margin-bottom:15px;font-size:13px;line-height:1.5;display:flex;flex-direction:column;gap:6px}
.sec-warn code{background:rgba(0,0,0,.06);padding:1px 5px;border-radius:4px}
body.dark .sec-warn{background:#3a2f17;border-color:#6b5420;color:#f3e3bf}
.toast-big{position:fixed;top:24px;right:24px;background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff;padding:20px 26px;border-radius:14px;display:none;align-items:center;gap:12px;z-index:3000;
  box-shadow:0 12px 40px rgba(230,91,0,.5);max-width:420px;font-size:16px;font-weight:600;
  animation:toastBigIn .35s cubic-bezier(.2,1.3,.5,1)}
.toast-big.important{background:linear-gradient(135deg,var(--danger),#ff6a4a);box-shadow:0 12px 40px rgba(224,80,58,.55);
  animation:toastBigIn .35s cubic-bezier(.2,1.3,.5,1), bigPulse 1.2s ease infinite .4s}
@keyframes toastBigIn{from{transform:translateX(120%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes bigPulse{0%,100%{box-shadow:0 12px 40px rgba(224,80,58,.55)}50%{box-shadow:0 12px 50px rgba(224,80,58,.85)}}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#bbb;border-radius:4px}
@media (max-width:900px){.dd-layout{grid-template-columns:1fr}.dd-comments{height:340px}.chatpage{grid-template-columns:1fr}}
/* Чек-лист крупными кнопками */
.chk-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.chk-tile{background:var(--panel);border:2px solid #e6e6e6;border-radius:10px;padding:10px 8px;text-align:center;
  cursor:pointer;transition:.2s;font-size:12px;font-weight:600;color:#444;min-height:74px;display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:5px;position:relative;user-select:none}
.chk-tile:hover{border-color:var(--warning);transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.12)}
.chk-tile .chk-num{position:absolute;top:4px;left:7px;font-size:11px;color:#bbb;font-weight:700}
.chk-tile .chk-ico{font-size:20px;line-height:1}
.chk-tile.done{background:#eafaf1;border-color:var(--success);color:#1e8449}
.chk-tile.done .chk-ico{color:var(--success)}
.chk-tile .chk-who{font-size:11px;color:var(--muted);font-weight:500}
.chk-editor-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.chk-edit-tile{background:var(--panel-2);border:2px solid #e0e0e0;border-radius:10px;padding:9px 8px;position:relative;
  cursor:grab;transition:.15s;min-height:70px;display:flex;flex-direction:column;justify-content:center}
.chk-edit-tile:hover{border-color:var(--warning);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.chk-edit-tile.sortable-ghost{opacity:.4}
.chk-edit-tile .cet-num{position:absolute;top:4px;left:7px;font-size:11px;color:#bbb;font-weight:700}
.chk-edit-tile .cet-title{font-size:11px;font-weight:600;text-align:center;margin-top:6px;word-break:break-word}
.chk-edit-tile .cet-acts{position:absolute;top:3px;right:4px;display:flex;gap:2px}
.chk-edit-tile .cet-acts button{background:none;border:none;cursor:pointer;font-size:11px;padding:2px;color:#aaa}
.chk-edit-tile .cet-acts button:hover{color:var(--danger)}
@media(max-width:1100px){.chk-grid,.chk-editor-grid{grid-template-columns:repeat(3,1fr)}}
/* Панель быстрых чатов справа (как Битрикс24) */
.quickchat{position:fixed;top:110px;right:0;width:64px;display:flex;flex-direction:column;align-items:center;
  gap:10px;padding:12px 0;z-index:60;background:var(--panel);border-left:1px solid var(--border);
  border-top-left-radius:14px;border-bottom-left-radius:14px;box-shadow:-4px 0 16px rgba(0,0,0,.08);
  max-height:calc(100vh - 130px);overflow-y:auto}
.quickchat::-webkit-scrollbar{width:0}
.qc-ava{width:44px;height:44px;border-radius:50%;cursor:pointer;position:relative;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:16px;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));transition:.2s;overflow:hidden}
.qc-ava img{width:100%;height:100%;object-fit:cover}
.qc-ava:hover{transform:scale(1.12)}
.qc-ava .qc-dot{position:absolute;bottom:1px;right:1px;width:11px;height:11px;border-radius:50%;
  border:2px solid var(--panel)}
.qc-ava .qc-dot.on{background:#2ecc71}.qc-ava .qc-dot.off{background:#b2bec3}
.qc-ava .qc-unread{position:absolute;top:-3px;right:-3px;background:var(--danger);color:#fff;border-radius:10px;
  font-size:11px;font-weight:700;padding:1px 5px;min-width:16px;text-align:center;border:2px solid var(--panel)}
.qc-ava .qc-name{position:absolute;right:52px;top:50%;transform:translateY(-50%);background:var(--dark);color:#fff;
  padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;
  transition:.2s;z-index:70}
.qc-ava:hover .qc-name{opacity:1;right:56px}
.qc-sep{width:30px;height:1px;background:var(--border);flex-shrink:0}
.qc-more{width:44px;height:44px;border-radius:50%;background:var(--panel-2);border:1px solid var(--border);
  cursor:pointer;color:var(--muted);flex-shrink:0;transition:.2s}
.qc-more:hover{color:var(--primary);border-color:var(--primary)}
/* Jivo-виджет плавающего чата */
.jivo{position:fixed;bottom:20px;right:86px;width:340px;height:480px;background:var(--panel);
  border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.28);z-index:2500;
  display:none;flex-direction:column;overflow:hidden;animation:jivoUp .25s cubic-bezier(.2,.8,.3,1.1)}
.jivo.active{display:flex}
@keyframes jivoUp{from{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.jivo-head{background:var(--sidebar-bg);color:#fff;padding:12px 14px;display:flex;align-items:center;gap:10px}
.jivo-head .ja{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-2));
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;overflow:hidden;flex-shrink:0}
.jivo-head .ja img{width:100%;height:100%;object-fit:cover}
.jivo-head .jn{flex:1;min-width:0}
.jivo-head .jn b{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jivo-head .jn span{font-size:11px;opacity:.8}
.jivo-head .jbtns{display:flex;gap:4px}
.jivo-head .jbtns button{background:rgba(255,255,255,.15);border:none;color:#fff;width:32px;height:32px;
  border-radius:8px;cursor:pointer;font-size:14px;transition:.15s}
.jivo-head .jbtns button:hover{background:rgba(255,255,255,.3)}
.jivo-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--app-bg)}
.jivo-foot{padding:10px;display:flex;gap:8px;border-top:1px solid var(--border);background:var(--panel);align-items:center}
.jivo-file-btn{cursor:pointer;font-size:18px;padding:6px;border-radius:8px;flex-shrink:0}
.jivo-file-btn:hover{background:var(--panel-2)}
.jivo.drop-active{outline:3px dashed var(--primary);outline-offset:-3px}
.jivo.drop-active::after{content:'📎 Отпустите файл для отправки';position:absolute;inset:0;background:rgba(230,91,0,.1);
  display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--primary);z-index:5;pointer-events:none}
.jivo-foot input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:20px;font-size:13px;
  background:var(--input-bg);color:var(--text)}
.jivo-foot input:focus{outline:none;border-color:var(--primary)}
.jivo-foot button{width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--primary),var(--primary-2));
  color:#fff;cursor:pointer;flex-shrink:0;transition:.15s}
.jivo-foot button:hover{transform:scale(1.08)}
@media(max-width:600px){.jivo{right:10px;left:10px;width:auto;bottom:76px}}
@media(max-width:900px){.quickchat{display:none}}
/* чат: в меню — только на телефоне (на ПК — панель справа); на телефоне список и переписка по очереди */
.sidebar-nav .nav-chat{display:none}
.list-search{position:relative;flex:0 1 320px;min-width:200px}
.list-search i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:13px}
.list-search input{width:100%;padding:9px 12px 9px 32px;border:1px solid var(--border);border-radius:9px;font-size:13px;background:var(--input-bg);color:var(--text)}
.list-info{font-size:12.5px;color:var(--muted);margin:-6px 0 8px}
.list-info:empty{display:none}
.list-more{text-align:center;margin:12px 0}
.list-empty{text-align:center;color:var(--muted);padding:26px!important}
tr.dup-head td{background:var(--accent-soft);font-size:13px}
tr.dup-head .btn{padding:4px 12px;font-size:12px;margin-left:10px}
.merge-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto;margin-bottom:6px}
.merge-list label{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:13px}
.merge-list label:has(input:checked){border-color:var(--primary);background:var(--accent-soft)}
.merge-list small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
@media(max-width:600px){.list-search{flex:1 1 100%}}
.adm-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px;border-bottom:1px solid var(--border)}
.adm-tabs button{background:none;border:none;border-bottom:3px solid transparent;padding:9px 14px;font:inherit;font-size:13.5px;font-weight:600;color:var(--text-soft);cursor:pointer;margin-bottom:-1px}
.adm-tabs button:hover{color:var(--text)}
@media(max-width:700px){
  .adm-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .adm-tabs button{white-space:nowrap;padding:9px 10px}
  #adminView .detail-section,#tabloAdminView .detail-section{overflow-x:auto!important}
  .tst{padding:9px 12px;font-size:12.5px}
}
.adm-tabs button.on{color:var(--primary);border-bottom-color:var(--primary)}
#adminView [data-atab]{display:none}
#adminView[data-tab="users"] [data-atab="users"],#adminView[data-tab="access"] [data-atab="access"],
#adminView[data-tab="client"] [data-atab="client"],#adminView[data-tab="integr"] [data-atab="integr"]{display:block}
.chat-older{display:block;margin:4px auto 10px;background:var(--panel-2);border:1px solid var(--border);color:var(--text-soft);border-radius:14px;padding:5px 14px;font:inherit;font-size:12px;cursor:pointer}
.chat-back{display:none;background:none;border:none;color:var(--text);font-size:18px;padding:6px 10px 6px 0;cursor:pointer}
.burger{position:relative}
.burger-dot{display:none;position:absolute;top:2px;right:2px;width:9px;height:9px;border-radius:50%;background:var(--danger);border:2px solid var(--header-bg)}
@media(max-width:900px){
  .sidebar-nav .nav-chat{display:flex}
  #chatView .chatpage{display:block;height:calc(100dvh - 128px)}
  #chatView .chat-room{display:none;height:100%}
  #chatView .chat-list{height:100%;border-left:none}
  #chatView .chatpage.room-open .chat-room{display:flex}
  #chatView .chatpage.room-open .chat-list{display:none}
  .chat-back{display:inline-block}
}
/* Звонок между сотрудниками (WebRTC) */
.call-modal{display:none;position:fixed;inset:0;z-index:4000;background:rgba(10,10,10,.94);
  flex-direction:column;align-items:center;justify-content:center}
.call-modal.active{display:flex}
#remoteVideo{width:100%;height:100%;object-fit:contain;background:#000}
#localVideo{position:absolute;bottom:100px;right:24px;width:200px;height:150px;object-fit:cover;
  border-radius:12px;border:2px solid var(--primary);background:#111;z-index:2}
.call-info{position:absolute;top:30px;left:0;right:0;text-align:center;color:#fff;z-index:3}
.call-info .cava{width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-2));
  margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:700}
.call-info h2{font-size:24px;margin-bottom:6px}
.call-info p{opacity:.75;font-size:15px}
.call-controls{position:absolute;bottom:32px;left:0;right:0;display:flex;justify-content:center;gap:16px;z-index:3}
.call-btn{width:60px;height:60px;border-radius:50%;border:none;cursor:pointer;font-size:22px;color:#fff;
  transition:.2s;display:flex;align-items:center;justify-content:center}
.call-btn:hover{transform:scale(1.1)}
.call-btn.mute{background:#444}.call-btn.mute.off{background:#c0392b}
.call-btn.cam{background:#444}.call-btn.cam.off{background:#c0392b}
.call-btn.screen{background:#2980b9}.call-btn.screen.on{background:var(--primary)}
.call-btn.hangup{background:#e74c3c;width:68px;height:68px}
.call-incoming{display:none;position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:4100;
  background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.4);
  padding:18px 22px;align-items:center;gap:16px;min-width:320px}
.call-incoming.active{display:flex;animation:callRing 1s infinite}
.call-incoming .ci-ava{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-2));
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:20px}
.call-incoming .ci-txt{flex:1}
.call-incoming .ci-txt b{display:block;font-size:15px}
.call-incoming .ci-txt span{font-size:12px;color:var(--muted)}
.call-incoming button{width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;color:#fff;font-size:17px}
.call-incoming .acc{background:#27ae60}.call-incoming .dec{background:#e74c3c}
@keyframes callRing{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.03)}}
/* Полноэкранный чек-лист (планшет в цеху) */
.cl-full{display:none;position:fixed;inset:0;z-index:3000;background:var(--app-bg);flex-direction:column}
.cl-full.active{display:flex}
.cl-full-head{background:var(--sidebar-bg);color:#fff;padding:14px 22px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap}
.cl-full-title{display:flex;align-items:center;gap:16px;font-size:22px;font-weight:700}
.cl-full-pct{background:var(--primary);color:#fff;padding:4px 16px;border-radius:20px;font-size:20px}
.cl-full-actions{display:flex;align-items:center;gap:8px}
.cl-full-actions select{padding:10px 14px;border-radius:8px;border:none;font-size:15px;max-width:260px;
  background:#fff;color:#222}
.cl-full-actions .btn{padding:11px 18px;font-size:15px}
.cl-full-bar{height:8px;background:rgba(0,0,0,.1)}
.cl-full-bar>div{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));transition:width .4s}
.cl-full-body{flex:1;overflow-y:auto;padding:20px}
.cl-full-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.clf-tile{background:var(--panel);border:3px solid var(--border);border-radius:16px;padding:18px 12px;text-align:center;
  cursor:pointer;transition:.18s;font-size:16px;font-weight:600;color:var(--text);min-height:120px;display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative;user-select:none;
  -webkit-tap-highlight-color:transparent}
.clf-tile:active{transform:scale(.96)}
.clf-tile .clf-num{position:absolute;top:8px;left:12px;font-size:14px;color:#bbb;font-weight:700}
.clf-tile .clf-ico{font-size:38px;line-height:1}
.clf-tile.done{background:#eafaf1;border-color:var(--success);color:#1e8449}
body.dark .clf-tile.done{background:#143d2a;color:#4ade80}
.clf-tile .clf-who{font-size:11px;color:var(--muted);font-weight:500}
.cl-full-more{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;padding-top:20px;
  border-top:2px dashed var(--border)}
.cl-more-info,.cl-more-comments{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px}
.cl-more-info h3,.cl-more-comments h3{font-size:16px;margin-bottom:12px;color:var(--text)}
.cl-more-info .detail-item{font-size:15px;padding:8px 0}
.clf-comments-body{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.clf-comments-foot{display:flex;gap:8px}
.clf-comments-foot input{flex:1;padding:11px 14px;border:1px solid var(--border);border-radius:20px;font-size:14px;
  background:var(--input-bg);color:var(--text)}
@media(max-width:1100px){.cl-full-grid{grid-template-columns:repeat(4,1fr)}.cl-full-more{grid-template-columns:1fr}}
@media(max-width:820px){.cl-full-grid{grid-template-columns:repeat(3,1fr)}.clf-tile{min-height:100px;font-size:14px}
  .clf-tile .clf-ico{font-size:30px}}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.calc-grid .cf{display:flex;flex-direction:column;gap:4px}
.calc-grid .cf label{font-size:11.5px;color:var(--muted);font-weight:600}
.calc-grid .cf input,.calc-grid .cf select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--text);font-size:13.5px}
.calc-grid .cf input:focus,.calc-grid .cf select:focus{outline:none;border-color:#E85D00}
@media (max-width:700px){.calc-grid{grid-template-columns:1fr}}

/* ============ МОБИЛЬНАЯ АДАПТАЦИЯ ============ */
.burger{display:none;background:none;border:none;color:var(--header-text);font-size:20px;cursor:pointer;padding:4px 8px;margin-right:2px}
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1190}
@media (max-width:820px){
  .app{height:100dvh}
  .burger{display:block}
  /* сайдбар — выезжает слева поверх контента */
  .sidebar{position:fixed;top:0;left:0;bottom:0;width:250px!important;z-index:1200;
    padding-top:env(safe-area-inset-top,0px);
    transform:translateX(-100%);transition:transform .25s ease;box-shadow:4px 0 24px rgba(0,0,0,.3)}
  .app.menu-open .sidebar{transform:translateX(0)}
  .app.menu-open .mobile-overlay{display:block}
  /* на мобильном меню всегда полноразмерное, режим "свёрнуто" не применяется */
  .app.collapsed .sidebar{width:250px!important}
  .app.collapsed .sidebar .sb-txt,.app.collapsed .sidebar .nav-txt,
  .app.collapsed .sidebar .sp-info{display:revert!important}
  /* внутри выехавшего меню всё видно (не сжимаем в иконки) */
  .sidebar .sb-txt,.sidebar .sidebar-nav .nav-txt,.sidebar .sidebar-profile .sp-info{display:revert!important}
  /* счётчики — только когда есть что показать (раньше на телефоне висели пустые «0» и «•») */
  .app.collapsed .sidebar .nav-badge[style*="inline-block"]{display:inline-block!important}
  .sidebar-toggle{display:none}
  /* шапка на телефоне: два ряда, отступ под статус-бар iOS, ничего не наезжает */
  .header{
    flex-wrap:wrap;
    padding:calc(env(safe-area-inset-top,0px) + 8px) 12px 8px;
    gap:8px;
    position:sticky;top:0;z-index:60;
  }
  .header .burger{order:1;flex:0 0 auto}
  .header h1{order:2;flex:1 1 auto;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .header .bell-wrap{order:3;flex:0 0 auto}
  .header .header-right{order:4;flex:0 0 auto}
  .header .search-wrap{order:5;flex:1 1 100%;max-width:none}
  .header-clock{display:none}
  .last-notif{display:none}
  .view-container{padding:12px 12px 80px}
  /* канбан — вертикальный список колонок */
  .kanban{flex-direction:column;gap:14px;min-height:auto}
  .kanban-column{flex:1 1 auto;width:100%;max-height:none}
  /* карточка сделки — одна колонка */
  .dd-layout{grid-template-columns:1fr}
  .dd-comments{height:auto;max-height:380px}
  /* модалки — почти весь экран, кнопки на всю ширину */
  .modal-content{max-width:100%!important;padding:18px 16px;max-height:94vh;border-radius:12px}
  .modal-buttons{flex-direction:column-reverse;gap:8px}
  .modal-buttons .btn{width:100%}
  /* формы в одну колонку */
  .form-row,.form-row3{grid-template-columns:1fr}
  /* таблицы — горизонтальный скролл ВНУТРИ своего контейнера, не всей страницы */
  .view-container{overflow-x:hidden;max-width:100%}
  .view-container > div[style*="overflow-x"]{max-width:100%}
  .view-container table{min-width:520px}
  .mg-t{min-width:0}
  /* конструктор оплаты в столбик */
  .payplan{grid-template-columns:1fr}
  /* модалка расчёта/калькулятора */
  .modal-wide{max-width:100%!important}
}
@media (max-width:480px){
  .header h1 span,.header h1 i{font-size:15px}
  .stats-grid{grid-template-columns:1fr}
  .chk-grid,.chk-editor-grid{grid-template-columns:1fr 1fr!important}
  .detail-item{font-size:12.5px}
  /* iOS не зумит поля при фокусе, если шрифт ≥16px */
  input,select,textarea{font-size:16px!important}
  .login-box{padding:26px 20px;margin:14px}
}
/* планшет — цех: крупные плитки чек-листа */
@media (min-width:481px) and (max-width:1024px){
  .chk-tile{min-height:64px;font-size:14px}
}
/* 🧑‍🔧 Проектировщик (06.10): одна тонкая полоса CRM над генератором (или кнопки в шапке генератора — crmBar) */
#genView.active{display:flex;flex-direction:column;height:calc(100vh - 112px)}
#genFrame{flex:1;width:100%;min-height:420px;border:1px solid var(--border);border-radius:10px;background:#fff}
.gen-bar{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:5px 8px 5px 12px;margin-bottom:6px;min-height:44px}
.gen-bar .gb-t{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:80px;max-width:32%}
.gen-bar .gb-p{display:flex;flex-direction:column;line-height:1.15;padding:3px 10px;border-radius:8px;background:var(--bg,#f4f4f2);font-size:13px;white-space:nowrap}
.gen-bar .gb-p small{font-size:11px;color:#888}.gen-bar .gb-p.up b{color:#b45309}.gen-bar .gb-p.down b{color:#2e7d32}
.gen-bar .gb-p.busy{opacity:.55}.gen-bar .gb-p.err b{color:#b91c1c}
.gen-bar .gb-d{color:#b45309;font-size:12px;font-weight:700;white-space:nowrap}
.gen-bar .gb-l{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#c62828;white-space:nowrap}
.gen-bar .gb-l i{width:9px;height:9px;border-radius:50%;background:#bbb}.gen-bar .gb-l.on{color:#2e7d32}.gen-bar .gb-l.on i{background:#2ecc71;box-shadow:0 0 0 3px rgba(46,204,113,.25)}
.gen-bar .gb-sp{flex:1}
.gen-bar .btn{padding:6px 11px;font-size:12.5px;white-space:nowrap}
.gb-m{position:relative;display:inline-block}
.gb-ml{display:none;position:absolute;right:0;top:calc(100% + 4px);background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.14);z-index:40;min-width:270px;padding:4px}
.gb-m.open .gb-ml{display:block}
.gb-ml button{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;font-size:13px;cursor:pointer;border-radius:6px;color:inherit}
.gb-ml button:hover{background:var(--bg,#f4f4f2)}
body.gen-full .sidebar,body.gen-full .header,body.gen-full .quickchat{display:none!important}
body.gen-full #genView.active{position:fixed;inset:0;z-index:950;height:100vh;margin:0;padding:6px;background:var(--bg,#f4f4f2)}
@media(max-width:900px){#genView.active{margin-right:0;height:calc(100vh - 90px)}.gen-bar{flex-wrap:wrap}.gen-bar .gb-t{max-width:100%}}
.gd-tabs{display:flex;gap:6px;margin-bottom:10px}.gd-tabs button{flex:1;border:1.5px solid var(--border);background:var(--panel);border-radius:8px;padding:8px;font-weight:700;cursor:pointer;color:inherit}
.gd-tabs button.on{border-color:var(--primary);background:#FFF0E6;color:#a04400}
.gd-sum{background:#F4F4F2;border-left:3px solid #E85D00;padding:9px 12px;border-radius:4px;font-size:13px;margin-bottom:12px;color:#222}
.gd-list{max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:8px;margin-bottom:10px}
.gd-it{padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer;font-size:13px}.gd-it:last-child{border-bottom:0}
.gd-it span{display:block;color:#888;font-size:12px;margin-top:2px}.gd-it:hover{background:var(--bg,#f4f4f2)}.gd-it.on{background:#FFF0E6;box-shadow:inset 3px 0 0 #E85D00}
.gd-empty{padding:12px;color:#999;font-size:13px}

/* ===== тёмная тема: общие правки (аудит, пакет В) — светлые плашки, тёмный текст, поля ввода ===== */
body.dark{color-scheme:dark}
body.dark input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),body.dark select,body.dark textarea{background-color:var(--input-bg);color:var(--text);border-color:var(--border)}
body.dark input::placeholder,body.dark textarea::placeholder{color:var(--muted)}
body.dark a:not(.btn){color:#8ab4f8}
body.dark .badge-hi,body.dark .badge-md,body.dark .badge-lo,body.dark .badge-tag,body.dark .badge-src,body.dark .badge-owner,body.dark .badge-age,body.dark .badge-sla{color:var(--text)}
body.dark [style*="background:#F4F4F2"],body.dark [style*="background:#F7F7F5"],body.dark [style*="background:#eee"],body.dark [style*="background:#f0f2f8"],body.dark [style*="background:#f1f1f1"],body.dark [style*="background:#f2f2f2"],body.dark [style*="background:#f2f3f4"],body.dark [style*="background:#f7f8ff"],body.dark [style*="background:#f9f9f9"],body.dark [style*="background:#fafafa"],body.dark [style*="background:#fff"]{background:var(--panel-2)!important}
body.dark [style*="background:#FEF3C7"],body.dark [style*="background:#FFF0E6"],body.dark [style*="background:#FFF3E0"],body.dark [style*="background:#FFF7ED"],body.dark [style*="background:#fef5e7"],body.dark [style*="background:#ffe082"],body.dark [style*="background:#ffe9dd"],body.dark [style*="background:#fff3e0"],body.dark [style*="background:#fff4ec"],body.dark [style*="background:#fff6e5"],body.dark [style*="background:#fff6f0"],body.dark [style*="background:#fff8e1"]{background:var(--accent-soft)!important}
body.dark [style*="background:#FEE2E2"],body.dark [style*="background:#fdecea"]{background:#3a2124!important}
body.dark [style*="background:#fef9e7"]{background:var(--accent-soft)!important}
body.dark [style*="background:#e7f6ec"],body.dark [style*="background:#e7f7ee"],body.dark [style*="background:#eafaf1"]{background:#143d2a!important}
body.dark [style*="background:#e0f2f1"]{background:#16302e!important}
body.dark [style*="background:#e8eaf6"],body.dark [style*="background:#eef"],body.dark [style*="background:#eef0ff"]{background:#262d3d!important}
body.dark [style*=";color:#222"],body.dark [style^="color:#222"],body.dark [style*=" color:#222"],body.dark [style*=";color:#333"],body.dark [style^="color:#333"],body.dark [style*=" color:#333"],body.dark [style*=";color:#444"],body.dark [style^="color:#444"],body.dark [style*=" color:#444"],body.dark [style*=";color:#555"],body.dark [style^="color:#555"],body.dark [style*=" color:#555"],body.dark [style*=";color:#556"],body.dark [style^="color:#556"],body.dark [style*=" color:#556"],body.dark [style*=";color:#2c3e50"],body.dark [style^="color:#2c3e50"],body.dark [style*=" color:#2c3e50"],body.dark [style*=";color:#666"],body.dark [style^="color:#666"],body.dark [style*=" color:#666"]{color:var(--text-soft)!important}
body.dark [style*=";color:#c0392b"],body.dark [style^="color:#c0392b"],body.dark [style*=" color:#c0392b"],body.dark [style*=";color:#b91c1c"],body.dark [style^="color:#b91c1c"],body.dark [style*=" color:#b91c1c"],body.dark [style*=";color:#b3261e"],body.dark [style^="color:#b3261e"],body.dark [style*=" color:#b3261e"],body.dark [style*=";color:#c62828"],body.dark [style^="color:#c62828"],body.dark [style*=" color:#c62828"],body.dark [style*=";color:#b03a2e"],body.dark [style^="color:#b03a2e"],body.dark [style*=" color:#b03a2e"]{color:#ff9b8f!important}
body.dark [style*=";color:#2e7d32"],body.dark [style^="color:#2e7d32"],body.dark [style*=" color:#2e7d32"],body.dark [style*=";color:#1e8449"],body.dark [style^="color:#1e8449"],body.dark [style*=" color:#1e8449"],body.dark [style*=";color:#1e7b45"],body.dark [style^="color:#1e7b45"],body.dark [style*=" color:#1e7b45"],body.dark [style*=";color:#2e9e5b"],body.dark [style^="color:#2e9e5b"],body.dark [style*=" color:#2e9e5b"]{color:#7ee2a8!important}
body.dark [style*=";color:#b45309"],body.dark [style^="color:#b45309"],body.dark [style*=" color:#b45309"],body.dark [style*=";color:#9a3412"],body.dark [style^="color:#9a3412"],body.dark [style*=" color:#9a3412"],body.dark [style*=";color:#a04400"],body.dark [style^="color:#a04400"],body.dark [style*=" color:#a04400"],body.dark [style*=";color:#9a3d00"],body.dark [style^="color:#9a3d00"],body.dark [style*=" color:#9a3d00"],body.dark [style*=";color:#8a5a00"],body.dark [style^="color:#8a5a00"],body.dark [style*=" color:#8a5a00"],body.dark [style*=";color:#8d6e00"],body.dark [style^="color:#8d6e00"],body.dark [style*=" color:#8d6e00"],body.dark [style*=";color:#b8860b"],body.dark [style^="color:#b8860b"],body.dark [style*=" color:#b8860b"],body.dark [style*=";color:#795548"],body.dark [style^="color:#795548"],body.dark [style*=" color:#795548"]{color:#ffb37a!important}
body.dark [style*="solid #eee"],body.dark [style*="solid #ddd"],body.dark [style*="solid #ccc"],body.dark [style*="solid #e0e0e0"],body.dark [style*="solid #f0f0f0"],body.dark [style*="solid #e5e5e5"],body.dark [style*="solid #e8e8e8"],body.dark [style*="solid #f2f2f2"],body.dark [style*="solid #e2e5ea"],body.dark [style*="solid #eaeaea"]{border-color:var(--border)!important}
body.dark .deal-card.overdue{background:#3a2124}
body.dark .badge-age{background:#262d3d}
body.dark .badge-sla{background:var(--accent-soft)}
body.dark .badge-hi{background:#3a2124}
body.dark .badge-md{background:var(--accent-soft)}
body.dark .badge-lo{background:#143d2a}
body.dark .badge-tag{background:var(--panel-2)}
body.dark .badge-src{background:#262d3d}
body.dark .badge-owner{background:#16302e}
body.dark .folder-success{background:#143d2a}
body.dark .folder-fail{background:#3a2124}
body.dark .final-trash{background:var(--panel-2)}
body.dark .dup-warning{background:var(--accent-soft)}
body.dark .lay-eye.off{background:var(--accent-soft)}
body.dark .tri-row label{color:var(--text-soft)}
body.dark .tri-row input.tri-in{background:var(--panel-2)}
body.dark .tri-row input.tri-out{background:var(--accent-soft)}
body.dark .md-tab{background:var(--panel-2);color:var(--text)}
body.dark .md-t{background:var(--panel-2)}
body.dark .md-t .st{color:var(--text-soft)}
body.dark .md-note{background:var(--accent-soft)}
body.dark .md-up .b{background:var(--panel-2)}
body.dark .md-box{background:var(--panel-2)}
body.dark .md-box .cv{background:var(--panel-2)}
body.dark .md-box .cv:hover{background:var(--accent-soft)}
body.dark .ml-card{background:var(--panel-2)}
body.dark .ml-mos{background:var(--panel-2)}
body.dark .stage-row input[type=text]:disabled{background:var(--panel-2)}
body.dark .plan-bar{background:var(--panel-2)}
body.dark .chat-sec{background:var(--panel-2)}
body.dark .chat-item:hover{background:var(--panel-2)}
body.dark .chat-item.current{background:#262d3d}
body.dark .chat-reply-bar{background:#262d3d}
body.dark .msg.theirs .m-reply{background:var(--panel-2)}
body.dark .task-card.overdue{background:#3a2124}
body.dark .chk-tile{color:var(--text-soft)}
body.dark .chk-tile.done{background:#143d2a}
body.dark .cl-full-actions select{background:var(--panel-2);color:var(--text)}
body.dark .gen-bar .gb-p.err b{color:var(--text-soft)}
body.dark .gen-bar .gb-l{color:var(--text-soft)}
body.dark .gd-tabs button.on{background:var(--accent-soft)}
body.dark .gd-sum{background:var(--panel-2);color:var(--text)}
body.dark .gd-it.on{background:var(--accent-soft)}

/* ===== дисциплина продаж (установка 3: план конверсии, пакеты 0–2) ===== */
/* источник, ошибки полей, фильтры */
.src-note{margin-top:6px}
.field-err{border-color:var(--danger)!important;box-shadow:0 0 0 2px rgba(224,80,58,.18)!important}
.src-none{color:var(--danger);font-size:12.5px;font-weight:600}
.src-via{color:var(--muted);font-size:11.5px}
#filterMenu{max-height:min(70vh,560px);overflow-y:auto}
.fm-head{padding:8px 15px 4px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);margin-top:4px}
.badge-nosrc{background:#fdecea;color:#b3261e}
.badge-new{background:#27ae60;color:#fff}
.badge-dead{background:#7b1d12}
.badge-pulse{animation:bdgPulse 1.4s infinite}
@keyframes bdgPulse{0%,100%{opacity:1}50%{opacity:.55}}
.stat-click{cursor:pointer}
.plan-fact{text-decoration:none;color:inherit}
.plan-fact:hover b{text-decoration:underline}
/* окно провала */
.fail-info .fi-ok,.fail-info .fi-warn{border-radius:7px;padding:8px 10px;font-size:13px;line-height:1.45;margin:4px 0 8px}
.fail-info .fi-ok{background:#e7f6ec;color:#1e7b45}
.fail-info .fi-warn{background:#fff6e5;color:#8a5a00;border:1px solid #f0c36d}
.fail-info .fi-warn .btn{padding:6px 10px;font-size:12.5px;margin-top:6px}
.fail-info .fi-tip{font-size:12px;color:var(--muted);margin:2px 0 6px}
/* касания в карточке */
.tc-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.tc-kp{font-weight:400;font-size:12px;color:var(--muted)}
.tc-btns{display:flex;gap:6px;flex-wrap:wrap}
.tc-btns .btn{padding:5px 11px;font-size:12.5px}
.tc-next{font-size:13px;background:var(--panel-2);border-radius:8px;padding:8px 10px;margin:4px 0 8px;display:block}
.tc-next:empty{display:none}
.tc-next .btn{padding:3px 9px;font-size:12px;margin-left:6px}
.tc-over{color:var(--danger);font-weight:600}
.tc-kpdue{font-size:12px;color:#9a3d00;margin-top:5px}
.tc-row{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.4}
.tc-row:last-child{border-bottom:none}
.tc-row small{display:block;color:var(--muted);font-size:11.5px;margin-top:1px}
.tc-ic{width:22px;flex-shrink:0;text-align:center}
.tc-empty,.tc-more{color:var(--muted);font-size:12.5px;padding:4px 0}
.tc-kinds{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tc-kinds button,.tc-quick button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:18px;padding:6px 13px;cursor:pointer;font-size:13px;font-family:inherit}
.tc-kinds button.on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.tc-quick{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.tc-quick button{padding:4px 10px;font-size:12px;background:var(--panel-2)}
.tc-quick button:hover,.tc-kinds button:hover{border-color:var(--primary)}
.tc-res{display:flex;gap:18px;margin-bottom:12px;font-size:14px}
.tc-res label{display:flex;gap:6px;align-items:center;cursor:pointer;font-weight:600}
.tc-kpnote{font-size:12px;color:var(--muted);margin:-6px 0 8px}
/* панель «Что сделать сейчас» — свернуть можно, закрыть нельзя */
.tdp{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:900;display:flex;flex-direction:column-reverse;align-items:center;gap:8px;pointer-events:none}
.tdp>*{pointer-events:auto}
.tdp-pill{display:flex;align-items:center;gap:8px;border:none;cursor:pointer;background:#2b3038;color:#fff;padding:9px 16px;border-radius:22px;box-shadow:0 6px 20px rgba(0,0,0,.25);font-size:14px;font-weight:600;font-family:inherit}
.tdp-pill b{background:var(--primary);border-radius:12px;padding:1px 9px;font-size:13px;min-width:24px;text-align:center}
.tdp.empty .tdp-pill b{background:var(--success)}
.tdp.alarm .tdp-pill b{background:var(--danger)}
.tdp.alarm .tdp-pill{animation:tdpPulse 1.8s infinite}
@keyframes tdpPulse{0%,100%{box-shadow:0 6px 20px rgba(0,0,0,.25),0 0 0 0 rgba(224,80,58,.55)}55%{box-shadow:0 6px 20px rgba(0,0,0,.25),0 0 0 12px rgba(224,80,58,0)}}
.tdp.open .tdp-pill{display:none}
.tdp-box{display:none;width:min(640px,calc(100vw - 24px));max-height:min(62vh,580px);background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 14px 44px rgba(0,0,0,.3);overflow:hidden;flex-direction:column}
.tdp.open .tdp-box{display:flex}
.tdp-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.tdp-head>b{flex:1;font-size:15px}
.tdp-tabs{display:flex;gap:4px}
.tdp-tabs button{border:1px solid var(--border);background:var(--panel);color:var(--text-soft);border-radius:14px;padding:3px 11px;cursor:pointer;font-size:12.5px;font-family:inherit}
.tdp-tabs button.on{background:var(--primary);border-color:var(--primary);color:#fff}
.tdp-min{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:30px;height:28px;font-size:16px;font-weight:700;line-height:1;cursor:pointer;color:var(--text-soft)}
.tdp-min:hover{color:var(--primary);border-color:var(--primary)}
.tdp-list{overflow-y:auto;padding:4px 8px 10px;overscroll-behavior:contain}
.tdp-it{display:flex;gap:10px;align-items:flex-start;padding:9px 6px;border-bottom:1px solid var(--line);border-radius:6px}
.tdp-it:last-child{border-bottom:none}
.tdp-it.k-overdue{background:linear-gradient(90deg,rgba(224,80,58,.09),transparent 65%)}
.tdp-it.k-lead{background:linear-gradient(90deg,rgba(39,174,96,.10),transparent 65%)}
.tdp-ic{font-size:18px;width:26px;text-align:center;flex-shrink:0;padding-top:1px}
.tdp-tx{flex:1;min-width:0}
.tdp-t{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tdp-t span{color:var(--muted);font-weight:500;font-size:12.5px}
.tdp-w,.tdp-s{font-size:12px;color:var(--text-soft);margin-top:2px;overflow-wrap:anywhere}
.tdp-s .bad,.tdp-team .bad{color:var(--danger);font-weight:700}
.tdp-s .warn{color:#b45309;font-weight:700}
.tdp-a{display:flex;gap:4px;flex-shrink:0}
.tdp-a .btn{padding:5px 8px;font-size:13px;line-height:1.1}
.tdp-empty{padding:18px 10px;text-align:center;color:var(--muted);font-size:13px}
.tdp-team{width:100%;border-collapse:collapse;font-size:12.5px}
.tdp-team th,.tdp-team td{padding:6px;border-bottom:1px solid var(--line);text-align:center}
.tdp-team th{color:var(--muted);font-weight:600}
.tdp-team th:first-child,.tdp-team td:first-child{text-align:left}
.tdp-team small{display:block;color:var(--muted);font-size:11px}
body:has(.sortable-chosen) .tdp,body.bulk-mode .tdp{opacity:.12;pointer-events:none}
body:has(.sortable-chosen) .tdp>*,body.bulk-mode .tdp>*{pointer-events:none}
@media(max-width:600px){
  .tdp{left:8px;right:8px;bottom:8px;transform:none}
  .tdp-box{width:100%;max-height:72vh}
  .tdp-t{white-space:normal}
  .tdp-it{flex-wrap:wrap}
  .tdp-a{width:100%;justify-content:flex-end;padding-left:36px}
  .tdp-a .btn{padding:7px 11px}
}
/* обзвон «Разбор базы» */
.dial-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px;font-size:13px}
.dial-bar select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-family:inherit}
.dial-info{color:var(--muted)}
.dial-list{max-height:62vh;overflow-y:auto}
.dial-row{display:flex;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line);align-items:center}
.dial-main{flex:1;min-width:0;font-size:13.5px}
.dial-main a{color:var(--text);text-decoration:none}
.dial-main a:hover b{color:var(--primary)}
.dial-amt{margin-left:8px;font-weight:700;color:var(--primary);white-space:nowrap}
.dial-sub{font-size:12px;color:var(--text-soft);margin-top:3px}
.dial-sub .bad{color:var(--danger);font-weight:600}
.dial-sub .warn{color:#b45309;font-weight:600}
.dial-act{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.dial-act .btn{padding:6px 10px;font-size:12.5px}
@media(max-width:700px){.dial-row{flex-direction:column;align-items:stretch}.dial-act{justify-content:flex-start}}
/* выбор нескольких сделок */
.bulk-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:960;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;max-width:calc(100vw - 24px)}
.bulk-bar .btn{padding:7px 12px;font-size:13px}
.bulk-hint{color:var(--muted);font-size:12px}
body.bulk-mode #funnels .deal-card{cursor:pointer}
body.bulk-mode #funnels .deal-card:hover{outline:2px dashed var(--border)}
#funnels .deal-card.bulk-on{outline:3px solid var(--primary)!important;outline-offset:-1px;box-shadow:0 0 0 4px rgba(230,91,0,.15)}
#funnels .deal-card.bulk-on::after{content:'✓';position:absolute;top:6px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
#bulkBtn.btn-primary{color:#fff}
/* воронки в админке */
.adm-funnels{width:100%;border-collapse:collapse}
.adm-funnels td{padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:middle}
.adm-funnels small{display:block;color:var(--muted);font-size:11.5px}
.af-btns{text-align:right;white-space:nowrap}
.af-btns .btn{padding:4px 9px;margin-left:4px}
/* «Продано» — из каких сделок */
.sold-list{max-height:55vh;overflow-y:auto;margin:4px 0 6px;border-top:1px solid var(--line)}
.sold-row{display:flex;justify-content:space-between;gap:10px;padding:8px 6px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px}
.sold-row:hover{background:var(--panel-2)}
.sold-row small{display:block;color:var(--muted);font-size:11.5px;font-weight:400}
.sold-row>span:last-child{text-align:right;white-space:nowrap;font-weight:600}
/* тёмная тема */
body.dark .badge-nosrc{background:#3a2124;color:#ffb4ab}
body.dark .fail-info .fi-ok{background:#143d2a;color:#7ee2a8}
body.dark .fail-info .fi-warn{background:#3a2f17;color:#f3e3bf;border-color:#6b5420}
body.dark .tc-kpdue,body.dark .tdp-s .warn,body.dark .dial-sub .warn{color:#ffb37a}
body.dark .tdp-pill{background:#3a414b}
body.dark .tc-over,body.dark .src-none{color:#ff9b8f}
/* доп. позиции не учтены калькулятором */
.ex-warn{margin-top:6px;background:#fff6e5;color:#8a5a00;border:1px solid #f0c36d;border-radius:6px;padding:7px 10px;font-size:12.5px;line-height:1.4}
body.dark .ex-warn{background:#3a2f17;color:#f3e3bf;border-color:#6b5420}
