:root{
  /* фирменные токены adbydad.com */
  --acid:#c9f534; --acid-dark:#b6e21f;
  --ink:#0e0e0e; --ink-soft:#5c5c5c; --ink-faint:#9a9a9a;
  --bg:#f4f4f3; --card:#ffffff; --line:#e6e6e3;
  --dark:#0e0e0e; --dark-soft:#1a1a1a; --dark-line:#2a2a2a;
  --green:#3fae5a; --red:#e05252;
}
*{box-sizing:border-box; margin:0; padding:0}
body{font:14px/1.45 'Manrope', -apple-system, "Segoe UI", sans-serif; background:var(--bg); color:var(--ink)}
h1,h2,h3{font-family:'Geologica','Manrope',sans-serif}
.logo{display:flex; align-items:center; gap:12px; white-space:nowrap; text-decoration:none}
.logo img{height:22px; display:block}
.logo span{color:#9a9a9a; font-family:'Geologica',sans-serif; font-weight:500; font-size:12px; letter-spacing:.22em; border-left:1px solid var(--dark-line); padding-left:12px; line-height:22px}
.btn{border:1px solid var(--line); background:var(--card); border-radius:8px; padding:7px 14px; font-size:13px; font-weight:600; cursor:pointer; color:var(--ink); display:inline-flex; align-items:center; gap:7px; text-decoration:none}
.btn.primary{background:var(--ink); color:#fff; border-color:var(--ink)}
.btn.acid{background:var(--acid); border-color:var(--acid); color:var(--ink)}
.btn.sm{padding:4px 10px; font-size:12px}

/* login */
.login-body{display:flex; align-items:center; justify-content:center; min-height:100vh}
.login-logo{margin-bottom:18px}
.login-logo span{border-left-color:var(--line); color:var(--ink-soft)}
.login-logo img{height:26px}
.login-card{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:28px; width:320px; display:flex; flex-direction:column; gap:12px; box-shadow:0 8px 30px rgba(0,0,0,.06)}
.login-card label{font-size:12px; font-weight:600; color:var(--ink-soft); display:flex; flex-direction:column; gap:5px}
.login-card input{border:1px solid var(--line); border-radius:8px; padding:9px 12px; font-size:14px}
.login-card .btn{justify-content:center; margin-top:6px}
.login-error{background:#fdecec; border:1px solid #f5c6c6; color:#a33; border-radius:8px; padding:8px 12px; font-size:13px}

/* topbar — тёмный, как adbydad.com */
.topbar{display:flex; align-items:center; gap:18px; background:var(--dark); border-bottom:1px solid var(--dark-line); padding:0 20px; height:56px; position:sticky; top:0; z-index:50}
.ws-switch{display:flex; background:var(--dark-soft); border:1px solid var(--dark-line); border-radius:8px; padding:2px}
.ws-switch a{padding:5px 14px; border-radius:6px; font-weight:700; font-size:13px; color:#8a8a8a; text-decoration:none}
.ws-switch a.on{background:var(--acid); color:var(--ink)}
.nav{display:flex; gap:4px; margin-left:auto}
.nav a{padding:7px 12px; border-radius:8px; font-size:13px; font-weight:600; color:#9a9a9a; text-decoration:none}
.nav a:hover{color:#fff}
.nav a.on{background:var(--dark-soft); color:#fff; box-shadow:inset 0 0 0 1px var(--dark-line)}
.me-box{display:flex; align-items:center; gap:8px}
.me-name{font-size:13px; font-weight:600; color:#e6e6e3}
.me-box .btn{background:transparent; color:#9a9a9a; border-color:var(--dark-line)}
.me-box .btn:hover{color:#fff}
.wrap{padding:18px 20px; max-width:1500px; margin:0 auto}
h1{font-size:18px; letter-spacing:-.01em}
.stub{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:32px; text-align:center; color:var(--ink-soft); margin-top:24px}
.stub h1{color:var(--ink); margin-bottom:8px}

/* panels & tables */
.page-head{display:flex; align-items:center; gap:14px; margin-bottom:14px}
.panel{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:16px}
table.items{width:100%; border-collapse:collapse; font-size:13px}
table.items th{font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint); text-align:left; padding:4px 8px; border-bottom:1px solid var(--line)}
table.items td{padding:7px 8px; border-bottom:1px solid var(--line)}
table.items tr:last-child td{border-bottom:0}
.user-form{display:flex; gap:8px; flex-wrap:wrap}
.user-form input, .user-form select{border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:13px}

/* clients */
.muted{color:var(--ink-faint); font-size:13px}
.search-inline{margin-left:auto}
.search-inline input{border:1px solid var(--line); border-radius:8px; padding:7px 12px; font-size:13px; width:260px; background:var(--card)}
.panel-h{font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); margin-bottom:12px; font-weight:700}
.two-col{display:grid; grid-template-columns:minmax(420px,1.1fr) minmax(340px,1fr); gap:16px; align-items:start}
@media(max-width:980px){.two-col{grid-template-columns:1fr}}
.inn-line{display:flex; gap:8px; margin-bottom:12px}
.inn-line input{flex:1; border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:13px}
.dadata-hint{background:#f3fadd; border:1px solid #dcedb0; border-radius:8px; padding:8px 12px; font-size:12px; color:#4a5e14; margin-bottom:12px}
.kv-form{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.kv-form label{font-size:12px; font-weight:600; color:var(--ink-soft); display:flex; flex-direction:column; gap:4px}
.kv-form label.wide, .kv-form .wide{grid-column:1 / -1}
.kv-form input, .kv-form textarea{border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:13px; font-family:inherit}
.person-row{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:13px}
.person-row:last-of-type{border-bottom:0}
.mini-deal{display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--line); font-size:13px}
.mini-deal:last-child{border-bottom:0}
.mini-deal .money{margin-left:auto; font-weight:700; white-space:nowrap}
.chip{font-size:11px; font-weight:700; padding:2px 8px; border-radius:20px; white-space:nowrap}
.chip-process{background:#eaf4fb; color:#2b6a99}
.chip-success{background:#e8f4ec; color:#2c7a44}
.chip-failure{background:#fdecec; color:#a33}
.chip-apology{background:#fdf3dc; color:#8a6413}

/* services */
.dir-chips{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px}
.dir-chips .chip-on{background:var(--ink); color:#fff; border-color:var(--ink)}
.num-in{border:1px solid var(--line); border-radius:7px; padding:5px 8px; font-size:13px; width:80px; text-align:right}
.row-off td{opacity:.5}

/* deal */
.req-text{width:100%; border:1px solid var(--line); border-radius:8px; padding:10px 12px; font:13px/1.5 inherit; font-family:inherit; resize:vertical}
.ov-grid{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; padding-top:10px; border-top:1px dashed var(--line)}
.ov-econ{margin-top:10px; border-top:1px dashed var(--line); padding-top:8px}
.ov-econ .num-in{width:90px}
.ov-chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; padding-top:10px; border-top:1px dashed var(--line)}
.ov-chip{background:var(--bg); color:var(--ink); border:1px solid var(--line); cursor:pointer; font-family:inherit}
.ov-chip:hover{background:var(--acid); border-color:var(--acid-dark)}
.item-add{display:flex; gap:6px; margin:10px 0; flex-wrap:wrap}
.item-add input, .item-add select{border:1px solid var(--line); border-radius:7px; padding:6px 9px; font-size:13px; min-width:60px}
.it-name{border:1px solid var(--line); border-radius:7px; padding:5px 8px; font-size:13px; min-width:180px; width:60%}
.it-bill{border:1px solid var(--line); border-radius:7px; padding:5px 6px; font-size:12px; margin-left:6px; color:var(--ink-faint)}
.it-act{white-space:nowrap}
.it-act form{display:inline}
.btn.saved-ok{background:#2e7d32; border-color:#2e7d32; color:#fff; transition:background .15s}
.btn.saved-err{background:#c0392b; border-color:#c0392b; color:#fff}
.tl .txt a{color:var(--acid); text-decoration:underline; word-break:break-word}
.money-strip{display:flex; gap:10px; margin-top:12px}
.money-box{flex:1; background:var(--bg); border-radius:10px; padding:10px 12px}
.money-box .lbl{font-size:11px; color:var(--ink-faint); font-weight:600}
.money-box .val{font-size:16px; font-weight:800; margin-top:2px; white-space:nowrap}
.doc-row{display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:13px}
.doc-row .nm{font-weight:600}
.doc-row .dt{font-size:11px; color:var(--ink-faint)}
.doc-row .act{margin-left:auto; display:flex; gap:6px}
.doc-ico{width:28px; height:28px; border-radius:7px; background:var(--bg); display:flex; align-items:center; justify-content:center; flex:none; font-size:13px; color:var(--ink-soft)}
.file-add{display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin-top:10px}
.file-in{font-size:12px; max-width:210px}
.tl-input{display:flex; gap:8px; margin-bottom:12px}
.tl-input input{flex:1; border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:13px}
.tl{list-style:none}
.tl li{display:flex; gap:10px; padding:8px 0; border-bottom:1px solid var(--line)}
.tl li:last-child{border-bottom:0}
.tl .body{flex:1}
.tl .who{font-weight:700; font-size:12.5px}
.tl .when{font-size:11px; color:var(--ink-faint); margin-left:6px; font-weight:400}
.tl .txt{font-size:13px; margin-top:2px}
.tl-act{display:inline-flex; gap:2px; margin-left:6px; vertical-align:middle; opacity:0; transition:opacity .12s}
.tl li:hover .tl-act, .tl li:focus-within .tl-act{opacity:1}
@media (hover:none){.tl-act{opacity:1}}
.tl-act form{display:inline}
.tl-act button{border:0; background:none; cursor:pointer; font-size:12px; color:var(--ink-faint); padding:0 3px; line-height:1}
.tl-act button:hover{color:var(--ink)}
.tl-edit{display:flex; gap:6px; margin-top:4px}
.tl-edit[hidden]{display:none}
.tl-edit input{flex:1; border:1px solid var(--acid-dark); border-radius:8px; padding:5px 10px; font-size:13px; outline:none}
.tl-hint{font-size:11px; color:var(--ink-faint); margin-top:3px}
.tl li.system{opacity:.7}
.tl li.system .txt{font-size:12.5px; color:var(--ink-soft)}
.sys-dot{width:8px; height:8px; border-radius:50%; background:var(--line); margin:6px 9px 0; flex:none}
.kv{display:grid; grid-template-columns:130px 1fr; row-gap:8px; column-gap:12px; font-size:13px}
.kv dt{color:var(--ink-faint)}
.kv dd{font-weight:600}
.close-menu{position:relative}
.close-menu summary{list-style:none; cursor:pointer}
.close-pop{position:absolute; right:0; top:40px; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:12px; width:230px; box-shadow:0 10px 30px rgba(0,0,0,.12); z-index:20}
.kv-form select{border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:13px; background:var(--card)}

/* board */
.board{display:flex; gap:10px; overflow-x:auto; padding:4px 0 20px; align-items:flex-start}
.col{flex:0 0 240px; background:#ecece9; border-radius:10px; padding:8px; min-height:120px}
.col.drop{outline:2px dashed var(--acid-dark)}
.col-h{display:flex; align-items:baseline; gap:6px; padding:2px 6px 6px}
.col-h .nm{font-size:12px; font-weight:700}
.col-h .cnt{font-size:11px; color:var(--ink-faint); font-weight:600}
.col-h .sum{margin-left:auto; font-size:11px; color:var(--ink-soft); font-weight:600; white-space:nowrap}
.col-bar{height:3px; border-radius:2px; margin:0 6px 8px}
.card{display:block; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:9px 10px; margin-bottom:7px; cursor:grab; text-decoration:none; color:var(--ink); box-shadow:0 1px 2px rgba(0,0,0,.04)}
.card:hover{border-color:var(--ink-faint)}
.card .num{font-family:'Geologica',sans-serif; font-size:16px; color:var(--ink); font-weight:800; letter-spacing:-.01em}
.card .ttl{font-weight:600; font-size:13px; margin:2px 0 2px}
.card .sub{font-size:12px; color:var(--ink-soft)}
.card .foot{display:flex; align-items:center; gap:6px; margin-top:7px}
.card .money{font-weight:700; font-size:13px; white-space:nowrap}
.card .days{margin-left:auto; font-size:11px; color:var(--ink-faint); white-space:nowrap}

/* invoice form */
.inv-details{margin-bottom:10px}
.inv-details summary{list-style:none; cursor:pointer; display:inline-flex}
.inv-form{border:1px solid var(--line); border-radius:10px; padding:12px; margin-top:8px; background:var(--bg)}

/* overee periods */
.period-box{border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:8px}
.period-box.cur{border-color:var(--acid-dark); background:#fbfff0}
.period-h{display:flex; align-items:center; gap:8px; font-weight:700; font-size:13px}
.pack{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; align-items:center}
.per-dates{display:inline-flex; align-items:center; gap:4px; font-weight:400}
.per-dates input[type=date]{flex-shrink:0}
.pack-clean{background:#f1f1ee; color:#777; font-weight:400; margin-left:-4px}
.pack-chip{background:var(--bg); border:1px solid var(--line); color:var(--ink-soft); font-weight:600; padding:4px 10px; border-radius:7px; font-size:12px; text-decoration:none}
.pack-chip:hover{border-color:var(--ink-faint)}

/* топбар: поиск */
.top-search input{background:var(--dark-soft); border:1px solid var(--dark-line); border-radius:8px; padding:7px 12px; font-size:13px; color:#e6e6e3; width:210px}
.top-search input::placeholder{color:#777}
.top-search input:focus{outline:none; border-color:var(--acid)}

/* канбан: внутренний скролл колонок */
.board{height:calc(100vh - 158px); align-items:stretch; padding-bottom:8px}
.col{display:flex; flex-direction:column; min-height:0}
.col-cards{overflow-y:auto; flex:1; min-height:0; padding-bottom:2px}
.col-cards::-webkit-scrollbar{width:8px}
.col-cards::-webkit-scrollbar-thumb{background:#d5d5d1; border-radius:4px}
/* канбан: постоянный горизонтальный скролл доски (иначе на macOS overlay-скролл виден только при прокрутке тачпадом) */
.board::-webkit-scrollbar{height:10px}
.board::-webkit-scrollbar-track{background:transparent}
.board::-webkit-scrollbar-thumb{background:#d5d5d1; border-radius:5px}
.board::-webkit-scrollbar-thumb:hover{background:#bdbdb8}
.chip-on{background:var(--ink); color:#fff; border-color:var(--ink)}

/* новая сделка: блок нового клиента */
.new-client-box{border:1px dashed var(--line); border-radius:10px; padding:10px 12px; background:var(--bg)}
.new-client-box input{border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:13px}

/* новая сделка: поиск клиента */
.client-picker{position:relative; display:block}
.client-picker input[type="text"]{width:100%}
.client-picker input.picked{border-color:var(--ink); font-weight:600}
.client-suggest{position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:20; background:var(--card);
  border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.10); overflow:hidden}
.client-suggest[hidden]{display:none}
.client-suggest-item{padding:9px 12px; font-size:13px; font-weight:400; cursor:pointer}
.client-suggest-item:hover{background:var(--bg)}
.client-suggest-item + .client-suggest-item{border-top:1px solid var(--line)}

/* календарь напоминаний */
.cal-pill{display:flex; border:1px solid var(--line); border-radius:9px; overflow:hidden}
.cal-pill button{border:0; background:var(--card); padding:6px 14px; font-size:12px; font-weight:600; cursor:pointer; color:var(--ink-soft)}
.cal-pill button.on{background:var(--ink); color:#fff}
.cal-legend{display:flex; gap:14px; margin-left:auto; font-size:12px; color:var(--ink-soft); align-items:center; flex-wrap:wrap}
.avm{display:inline-flex; width:18px; height:18px; border-radius:50%; color:#fff; font-size:10px; font-weight:700; align-items:center; justify-content:center; margin-right:6px; vertical-align:-4px; flex:none}
.cal-hy{display:grid; grid-template-columns:300px 1fr; gap:18px; align-items:start}
@media(max-width:760px){.cal-hy{grid-template-columns:1fr}}
.cal-mh{display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-family:'Geologica'; font-weight:600; font-size:13px}
.cal-mini table{width:100%; border-collapse:collapse; font-size:12px}
.cal-mini th{color:var(--ink-faint); font-size:10px; font-weight:700; padding:3px 0; text-transform:uppercase}
.cal-mini td{text-align:center; padding:2px 0}
.cal-mini td span{display:inline-flex; flex-direction:column; align-items:center; width:30px; height:32px; border-radius:8px; cursor:pointer; padding-top:4px; line-height:1.2; user-select:none}
.cal-mini td span:hover{background:var(--bg)}
.cal-mini td span.sel{background:var(--ink); color:#fff}
.cal-mini td span.today:not(.sel){background:var(--acid)}
.cal-mini .dots{display:flex; gap:2px; height:5px; margin-top:1px}
.cal-mini .dots i{width:4px; height:4px; border-radius:50%; display:block}
.cal-add input[name="text"]{width:100%; border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:13px}
.cal-add input[type="time"]{border:1px solid var(--line); border-radius:8px; padding:7px 10px; font-size:13px; font-family:inherit}
.panel-h.red{color:var(--red)}
.ag-row{display:flex; align-items:center; gap:10px; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:9px 12px; margin-bottom:6px; font-size:13px}
.ag-row.late{background:#fdecec; border-color:#f5c6c6}
.ag-row .t{font-weight:700; font-size:12px; color:var(--ink-soft); min-width:44px; flex-shrink:0}
.ag-row .txt{flex:1; min-width:0}
.ag-row .deal{color:var(--ink-soft); font-size:12px; text-decoration:underline; white-space:nowrap}
.ag-row .who{font-size:11px; color:var(--ink-faint); white-space:nowrap}
.ag-row .ops{display:flex; gap:5px; flex-shrink:0}
.badge-priv{font-size:10px; font-weight:700; letter-spacing:.05em; color:var(--ink-faint); border:1px dashed var(--line); border-radius:5px; padding:1px 6px; white-space:nowrap}
/* подпись автора у напоминаний в сделке */
.rem-row .avm{margin-right:0}

/* редактирование контактного лица */
.person-edit{display:none; gap:6px; flex-wrap:wrap; padding:8px 0 10px; border-bottom:1px solid var(--line)}
.person-edit.open{display:flex}
.person-edit input{border:1px solid var(--line); border-radius:8px; padding:7px 10px; font-size:13px; min-width:110px; flex:1}

/* прогресс-бар стадий в сделке */
.stage-line{display:flex; gap:3px; margin:2px 0 6px}
.stage-line i{flex:1; height:7px; border-radius:3px; background:#e2e2de; cursor:pointer; transition:transform .08s}
.stage-line i:hover{transform:scaleY(1.5)}
.stage-line i.done{background:var(--acid-dark)}
.stage-line i.cur{background:var(--ink); cursor:default}
.stage-line i.fail{background:var(--red)}
.stage-cap{font-size:12.5px; color:var(--ink-soft); margin-bottom:14px}

/* лента сделки: скролл внутри, страницу не растягивает */
.tl{max-height:56vh; overflow-y:auto; padding-right:6px}
.tl::-webkit-scrollbar{width:8px}
.tl::-webkit-scrollbar-thumb{background:#d5d5d1; border-radius:4px}

.btn.danger{color:var(--red); border-color:#f0c9c9}
.btn.danger:hover{background:#fdecec}

/* конструктор договора */
.stage-row{border:1px solid var(--line); border-radius:10px; padding:10px; margin-bottom:8px; background:var(--card)}
.stage-row-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px}
.stage-fields{display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end}
.stage-fields .sf{display:flex; flex-direction:column; gap:3px; font-size:11px; color:var(--ink-faint); flex:1; min-width:120px}
.stage-fields .sf input{border:1px solid var(--line); border-radius:7px; padding:6px 9px; font-size:13px; color:var(--ink)}

/* напоминание в карточке сделки (панель над лентой) */
.rem-row{display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--line)}
.rem-row .txt{font-weight:600}
.rem-row .when{font-size:12px; color:var(--ink-faint); font-weight:600}
.rem-row.late .when{color:var(--red)}
.rem-row .sp{margin-left:auto; display:flex; gap:6px}
.rem-row .sp form{margin:0}
.rem-add{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap}
.rem-add input[type=text]{flex:1; min-width:160px; border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:13px}
.rem-add input[type=datetime-local]{border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-size:13px; color:var(--ink)}

/* Маркетинг: бейдж новых лидов в шапке */
.lead-badge{display:inline-block; min-width:16px; padding:0 5px; border-radius:9px; font-size:11px; line-height:16px; text-align:center; background:var(--acid); color:var(--ink)}

/* SEO: стрелки динамики */
.seo-up{color:var(--green); font-weight:700}
.seo-down{color:var(--red); font-weight:700}

/* SEO: таблицы скроллятся внутри панели, шапка прилипает */
.tbl-scroll{max-height:var(--tbl-max, 60vh); overflow:auto}
.tbl-scroll table{margin:0}
.tbl-scroll th{position:sticky; top:0; background:var(--card); z-index:1; box-shadow:0 1px 0 var(--line)}

/* Рассылки: двухпанельный редактор кампании + статусы */
.mail-editor{display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start}
@media (max-width:1000px){.mail-editor{grid-template-columns:1fr}}
.mail-editor iframe{width:100%; height:75vh; border:1px solid var(--line); border-radius:8px; background:#fff}
.mail-block{border:1px solid var(--line); border-radius:8px; padding:10px; margin-bottom:8px}
.mail-block form{display:inline}
.mail-block-form{display:flex; flex-direction:column; gap:6px; margin-top:8px}
.mail-block-form input,.mail-block-form textarea{width:100%}
.mail-block-form button{align-self:flex-start}
.mail-manual{max-height:220px; overflow:auto; border:1px solid var(--line); border-radius:8px; padding:8px}
.mail-st{font-size:12px; padding:2px 8px; border-radius:10px; background:var(--line)}
.mail-st-running{background:#c9f534; color:#111}
.mail-st-paused{background:#ffd66b; color:#111}
.mail-st-done{background:#b7e4c7; color:#111}
.mail-st-cancelled{background:#f1b0b0; color:#111}
.mail-funnel{display:flex; gap:18px; flex-wrap:wrap; margin-top:10px}
.mail-funnel > div{display:flex; flex-direction:column; min-width:90px}
.mail-funnel b{font-size:22px}

/* пагинатор списков */
.pager{display:flex; gap:6px; flex-wrap:wrap; margin-top:12px}
.pager .pg{min-width:32px; padding:5px 9px; border:1px solid var(--line); border-radius:8px; font-size:13px; font-weight:600; text-align:center; text-decoration:none; color:var(--ink); background:var(--card)}
.pager a.pg:hover{border-color:var(--ink)}
.pager .pg.cur{background:var(--ink); color:#fff; border-color:var(--ink)}

/* просчёт ABD-сделки */
.abd-table input.abd-name{width:150px; font-size:12px; padding:3px 6px; border:1px solid var(--line); border-radius:6px}
.abd-c-del{border:none; background:none; cursor:pointer; color:var(--red); font-size:12px; padding:2px 4px}

/* отчёт по продажам */
.rep-filters{display:flex; gap:8px; margin-left:auto}
.rep-filters select{border:1px solid var(--line); border-radius:8px; padding:6px 10px; font-size:13px; background:var(--card); color:var(--ink)}
.rep-kpi{flex-wrap:wrap; margin-bottom:16px}
.rep-chart-wrap{position:relative}
.rep-chart{width:100%; height:auto; display:block}
.rep-grid{stroke:var(--line); stroke-width:1}
.rep-grid-lbl{font-size:9px; fill:#999}
.rep-x-lbl{font-size:9px; fill:#999; text-anchor:middle}
.rep-bar-fill{fill:var(--ink)}
.rep-bar:hover .rep-bar-fill{fill:var(--acid)}
.rep-bar-zero{fill:var(--line)}
.rep-tip{position:fixed; z-index:10; background:var(--ink); color:#fff; font-size:12px; padding:5px 9px; border-radius:7px; pointer-events:none; white-space:nowrap}
.rep-minibar{background:var(--bg); border-radius:4px; height:10px; overflow:hidden; min-width:60px}
.rep-minibar i{display:block; height:100%; background:var(--acid); border-radius:4px}
.rep-delta{font-size:11px; font-weight:700; color:#999; margin-top:2px}
.rep-delta.up{color:var(--green)}
.rep-delta.down{color:var(--red)}
.rep-dates{display:flex; align-items:center; gap:5px; font-size:12px; color:#777}
.rep-dates input{border:1px solid var(--line); border-radius:8px; padding:5px 8px; font-size:12px; background:var(--card); color:var(--ink)}
