@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");
/* Fedorov SMM: светлая тема в цветах ВКонтакте */
:root{
  --s1:8px;--s2:16px;--s3:24px;--s4:56px;
  --bg:#EDEEF0;--bg2:#F5F6F8;--fg:#000;--fg2:#818C99;--card:#fff;
  --line:#DCE1E6;--line2:#E7E8EC;
  --accent:#0077FF;--accent-h:#0066DB;--link:#2688EB;--accent-bg:rgba(0,119,255,.08);
  --ok:#4BB34B;--bad:#E64646;--warn:#E07B00;--vk:#0077FF;--tg:#229ED9;--max:#7B5CFF;
  --font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ease:cubic-bezier(.16,1,.3,1);
  --o-desc:1;--o-label:1;--o-num:.35;--top:52px;--r:12px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--fg);font:400 14px/1.45 var(--font);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-weight:600;margin:0;text-wrap:balance}
h1{font-size:24px;line-height:1.2;letter-spacing:-.2px}
h2{font-size:17px;line-height:1.3}
h3{font-size:15px;line-height:1.3}
.label{font-size:13px;color:var(--fg2)}
.desc{color:var(--fg2)}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--fg2)}

/* каркас: шапка сверху, меню слева как на vk.com */
.top{position:sticky;top:0;z-index:35;height:var(--top);background:var(--card);border-bottom:1px solid var(--line)}
.top-in{max-width:1440px;margin:0 auto;height:100%;display:flex;align-items:center;gap:var(--s2);padding:0 var(--s2)}
.brand{display:flex;align-items:center;gap:10px;color:var(--fg);font-weight:600;font-size:16px;white-space:nowrap;width:204px;flex:none}
.brand:hover{text-decoration:none}
.brand-mark{width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:16px}
.proj{display:flex;align-items:center;gap:10px;min-width:0}
.proj-l{color:var(--fg2);font-size:13px}
.proj select{width:auto;min-width:220px;max-width:340px;background:var(--bg2);border-color:transparent;font-weight:500}
.burger{display:none;width:40px;height:40px;border:0;background:none;border-radius:10px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;flex:none}
.burger span{display:block;width:18px;height:2px;border-radius:2px;background:var(--fg2)}
.burger:hover{background:var(--bg2)}
.app{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s2);padding:0 var(--s2)}
.side{position:sticky;top:var(--top);height:calc(100vh - var(--top));overflow-y:auto;padding:12px 0;display:flex;flex-direction:column}
.nav{display:flex;flex-direction:column;gap:1px}
.nav a{display:flex;align-items:center;gap:12px;padding:7px 10px;border-radius:8px;color:var(--fg);font-size:14px;line-height:20px;transition:background .15s}
.nav a:hover{background:rgba(0,28,61,.05);text-decoration:none}
.nav a.on{background:rgba(0,28,61,.07);font-weight:500}
.nav .ico{width:22px;height:22px;flex:none;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-t{flex:1;min-width:0;white-space:nowrap}
.nav .badge{background:var(--accent);color:#fff;border-radius:10px;padding:0 7px;font-size:12px;line-height:18px;font-weight:600;min-width:20px;text-align:center}
.nav-sep{border:0;border-top:1px solid var(--line);margin:8px 10px}
.side .foot{margin-top:auto;padding:12px 10px 0}
.linkbtn{background:none;border:0;padding:0;cursor:pointer;color:var(--fg2);font-size:13px}
.linkbtn:hover{color:var(--link)}
.side-shade{display:none}
.main{padding:var(--s2) 0 var(--s4);min-width:0}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s2);flex-wrap:wrap}
.head-t{min-width:0}
.head .acts{display:flex;gap:var(--s1);flex-wrap:wrap}
.crumbs{font-size:13px;color:var(--fg2);margin-bottom:4px}
@media(max-width:900px){
  .app{grid-template-columns:minmax(0,1fr);padding:0 12px}
  .burger{display:flex}
  .brand{width:auto}
  .side{position:fixed;top:0;left:0;bottom:0;height:auto;width:272px;z-index:45;background:var(--card);padding:16px 10px;transform:translateX(-100%);transition:transform .3s var(--ease);box-shadow:0 0 24px rgba(0,0,0,.12)}
  .side.open{transform:none}
  .side-shade{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:44;opacity:0;pointer-events:none;transition:opacity .25s}
  .side-shade.show{opacity:1;pointer-events:auto}
  .top-in{padding:0 8px 0 4px;gap:8px}
  .proj{flex:1;justify-content:flex-end}
  .proj select{min-width:0;width:100%;max-width:260px}
  .main{padding-top:12px}
  h1{font-size:20px}
}
@media(max-width:640px){.proj-l{display:none}}
@media(max-width:420px){.brand-t{display:none}}

/* элементы */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:var(--accent-bg);color:var(--accent);border-radius:8px;padding:8px 16px;cursor:pointer;font-weight:500;line-height:20px;text-decoration:none;white-space:nowrap;transition:background .15s,transform .1s}
.btn:hover{background:rgba(0,119,255,.14);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-h)}
.btn.danger{color:var(--bad);background:rgba(230,70,70,.08)}
.btn.small{padding:5px 12px;font-size:13px;line-height:18px}
.btn.ghost{background:transparent}
.btn.ghost:hover{background:var(--accent-bg)}
.btn[disabled]{opacity:.45;pointer-events:none}
input[type=text],input[type=password],input[type=number],input[type=datetime-local],input[type=date],input[type=time],input[type=search],select,textarea{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:8px 12px;outline:none;line-height:20px;transition:border-color .15s,background .15s}
input:focus,select:focus,textarea:focus{border-color:var(--accent);background:#fff}
textarea{min-height:140px;resize:vertical;line-height:1.5}
label.f,div.f{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--s2)}
label.f>span,div.f>span{font-size:13px;color:var(--fg2)}
.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;margin:0 16px 8px 0}
.check input{width:18px;height:18px;accent-color:var(--accent)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s2)}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--s2)}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:1100px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.grid2,.grid3{grid-template-columns:minmax(0,1fr)}}
.box{background:var(--card);border-radius:var(--r);padding:var(--s2) 20px;box-shadow:0 0 0 1px rgba(0,28,61,.06),0 1px 3px rgba(0,28,61,.06)}
.box+.box{margin-top:12px}
.grid2>.box,.grid3>.box,.grid4>.box{margin-top:0}
.grid2,.grid3{margin-top:12px}
.box h2{margin-bottom:12px}
.sep{border:0;border-top:1px solid var(--line);margin:var(--s2) 0}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:1px 8px;font-size:12px;line-height:18px;font-weight:500;background:var(--bg2);color:var(--fg2);white-space:nowrap}
.pill.ok{color:#2A8A2A;background:rgba(75,179,75,.12)}
.pill.bad{color:var(--bad);background:rgba(230,70,70,.1)}
.pill.warn{color:var(--warn);background:rgba(255,160,0,.12)}
.pill.on{background:var(--accent);color:#fff}
a.pill:hover{text-decoration:none}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.k-vk{background:var(--vk)}.k-tg{background:var(--tg)}.k-max{background:var(--max)}
.tag{display:inline-flex;align-items:center;gap:4px;background:var(--bg2);border-radius:6px;padding:1px 8px;font-size:12px;margin:0 4px 4px 0;white-space:nowrap}
.tag button{border:0;background:none;cursor:pointer;padding:0;color:var(--fg2)}
/* выбор проекта вместо тупика */
.pick h2{margin-bottom:4px}
.pick-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/* вкладки */
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin:0 0 var(--s2);scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{padding:10px 14px;color:var(--fg2);font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}
.tab:hover{color:var(--fg);text-decoration:none}
.tab.on{color:var(--fg);border-bottom-color:var(--accent)}
/* таблицы */
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:13px;font-weight:600;opacity:var(--o-label);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:12px;border-bottom:1px solid var(--line2);vertical-align:top}
.tbl tr.click{cursor:pointer}
.tbl tr.click:hover td{background:rgba(0,28,61,.03)}
.tbl td.r,.tbl th.r{text-align:right}
.tbl .cut{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scroll{overflow-x:auto}
.ava{width:32px;height:32px;border-radius:50%;object-fit:cover;background:rgba(0,28,61,.08);flex:none}
.who{display:flex;gap:10px;align-items:center}

/* обзор */
.stat .big{font-size:40px;line-height:1;letter-spacing:-.4px;margin:6px 0}
.proj-row{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(90px,1fr)) minmax(160px,1.6fr);gap:var(--s2);align-items:center;padding:var(--s2) 0;border-bottom:1px solid var(--line)}
.proj-row .big{font-size:32px;line-height:1;letter-spacing:-.3px}
.spark{width:100%;height:44px}
@media(max-width:1100px){.proj-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bar{height:6px;border-radius:6px;background:rgba(0,28,61,.08);overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent);border-radius:6px;transition:width .6s var(--ease)}

/* фильтры */
.filters{display:flex;gap:var(--s1);flex-wrap:wrap;margin-bottom:var(--s2)}
.filters>*{width:auto;min-width:150px;flex:0 1 200px}
.filters input[type=search]{flex:1 1 240px}
.pager{display:flex;gap:var(--s1);align-items:center;justify-content:flex-end;margin-top:var(--s2)}

/* редактор рассылки */
.editor{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.9fr);gap:var(--s2);align-items:start}
@media(max-width:1100px){.editor{grid-template-columns:minmax(0,1fr)}}
.sticky{position:sticky;top:20px}
.phone{background:#EBEDF0;border-radius:22px;padding:var(--s2);min-height:240px}
.bubble{background:var(--card);border-radius:16px 16px 16px 4px;padding:12px 14px;max-width:100%;white-space:pre-wrap;font-weight:500;box-shadow:0 1px 0 rgba(0,28,61,.08)}
.bubble img{display:block;max-width:100%;border-radius:10px;margin-bottom:10px}
.kb{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.kb .r{display:flex;gap:6px}
.kb span{flex:1;text-align:center;background:var(--card);border-radius:10px;padding:8px;font-size:13px;color:var(--link)}
.btn-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.btn-row input,.btn-row select{flex:1 1 140px;width:auto}
.vars{display:flex;gap:6px;flex-wrap:wrap;margin:-8px 0 var(--s2)}
.count{font-size:40px;line-height:1;letter-spacing:-.4px}
.step{border:1px solid var(--line);border-radius:14px;padding:var(--s2);margin-bottom:var(--s2);background:var(--card)}
.step-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s1);margin-bottom:var(--s2);flex-wrap:wrap}
.delay{display:flex;gap:8px;align-items:center}
.delay input{width:90px}.delay select{width:auto}

/* выезжающая карточка и окна */
.drawer-bg,.modal-bg{position:fixed;inset:0;background:rgba(0,28,61,.32);z-index:50;opacity:0;transition:opacity .25s}
.drawer-bg.show,.modal-bg.show{opacity:1}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--bg);z-index:51;overflow-y:auto;padding:var(--s3) var(--s3) var(--s4);transform:translateX(100%);transition:transform .35s var(--ease)}
.drawer.show{transform:none}
.modal{position:fixed;left:50%;top:50%;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow-y:auto;background:var(--bg);z-index:51;border-radius:18px;padding:var(--s3);transform:translate(-50%,-46%);opacity:0;transition:transform .3s var(--ease),opacity .3s}
.modal.show{transform:translate(-50%,-50%);opacity:1}
.modal h2{margin-bottom:var(--s2)}
.modal .acts{display:flex;gap:var(--s1);justify-content:flex-end;margin-top:var(--s2);flex-wrap:wrap}
@media(max-width:640px){.drawer,.modal{padding:24px 16px 40px}}
.x{position:absolute;top:14px;right:14px}
.msgs{display:flex;flex-direction:column;gap:8px;margin:var(--s2) 0}
.msg{max-width:85%;padding:8px 12px;border-radius:14px;white-space:pre-wrap;font-weight:500;font-size:14px}
.msg.in{background:var(--card);border:1px solid var(--line);align-self:flex-start}
.msg.out{background:var(--accent);color:var(--bg);align-self:flex-end}
.msg small{display:block;opacity:.55;font-size:11px;margin-top:4px}
.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);background:var(--accent);color:var(--bg);padding:12px 18px;border-radius:12px;z-index:60;opacity:0;transition:all .3s var(--ease);max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.err{background:var(--bad)}
.empty{padding:var(--s4) 0;text-align:center;opacity:var(--o-label)}
.copy{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.copy code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,28,61,.06);padding:6px 10px;border-radius:8px;font-size:13px}
.hint{font-size:13px;opacity:var(--o-desc);background:rgba(0,119,255,.07);border-radius:10px;padding:10px 12px;margin-bottom:var(--s2)}

/* вход */
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.login form{width:min(380px,100%)}
.login h1{margin-bottom:var(--s3)}
.fade{animation:fade .4s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* посты */
.post-day{margin-bottom:var(--s3)}
.post-day h3{margin-bottom:var(--s1);opacity:var(--o-desc)}
.post-day h3::first-letter{text-transform:uppercase}
.post-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:var(--s2);align-items:start;cursor:pointer;transition:border-color .2s}
.post-row:hover{border-color:rgba(0,28,61,.35)}
.post-day .box+.box{margin-top:var(--s1)}
.post-time{font-size:24px;line-height:1;letter-spacing:-.24px}
.post-text{font-weight:500;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-targets{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.post-targets.col{flex-direction:column;align-items:flex-start;margin-top:0}
.post-targets a.pill{text-decoration:none}
.err-text{color:var(--bad);opacity:1;margin:4px 0 6px}
@media(max-width:640px){.post-row{grid-template-columns:minmax(0,1fr)}}
.thumbs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:10px}
.thumbs img{width:56px;height:56px;object-fit:cover;border-radius:8px}
.thumbs.edit{margin-top:0;gap:10px}
.thumbs .th{width:120px;display:flex;flex-direction:column;gap:6px}
.thumbs .th img{width:120px;height:120px}
.th-acts{display:flex;gap:4px}
.thumbs .th.add{height:120px;border:1px dashed rgba(0,28,61,.35);border-radius:10px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;cursor:pointer;padding:10px}
.thumbs .th.add:hover{border-color:var(--accent)}
.pgroup{padding:10px 0;border-top:1px solid var(--line2)}
.pg-head{display:flex;font-size:13px;opacity:var(--o-desc);margin-bottom:6px}
.post-acts{display:flex;flex-direction:column;gap:8px;margin-top:var(--s2)}
.post-acts .btn{width:100%}
.vkpost{background:#fff;border-radius:14px;padding:14px;border:1px solid var(--line2)}
.vkpost .who{margin-bottom:10px;font-size:14px}
.vktext{white-space:pre-wrap;font-weight:500;font-size:14px;margin-bottom:10px}
.vkgrid{display:grid;gap:3px;border-radius:10px;overflow:hidden}
.vkgrid img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:1}
.vkgrid.n1 img{aspect-ratio:auto;max-height:420px}
.vkgrid.n2{grid-template-columns:1fr 1fr}
.vkgrid.n3{grid-template-columns:2fr 1fr}.vkgrid.n3 img:first-child{grid-row:span 2}
.vkgrid.n4{grid-template-columns:1fr 1fr}
.vkcar{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory}
.vkcar img{width:78%;flex:none;aspect-ratio:1;object-fit:cover;border-radius:10px;scroll-snap-align:start}
.check input{flex:none}
details.dd{position:relative}
details.dd>summary{list-style:none;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 36px 9px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}
details.dd>summary::-webkit-details-marker{display:none}
details.dd>summary::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg);opacity:.6}
details.dd[open]>summary{border-color:var(--accent)}
details.dd>summary.muted{opacity:.6}
.dd-menu{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,28,61,.14);padding:10px 12px;max-height:300px;overflow:auto}
.dd-menu .check{display:flex;margin:0;padding:6px 0}
.att-thumb{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.vkvideo{display:block;width:100%;max-height:420px;background:#000;border-radius:10px;margin-top:8px}
.att-video{width:120px;height:160px;object-fit:cover;border-radius:10px;background:#000}
.vkpoll{margin-top:10px;border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px}
.vkpoll-a{border:1px solid var(--line2);border-radius:8px;padding:7px 10px}
.post-kind{margin-top:6px}
.post-targets .pill{white-space:normal;max-width:100%}
.post-body{min-width:0}
/* статистика */
.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s2)}
.stat-cards>.box{margin-top:0}
.stat-card{cursor:pointer;display:flex;flex-direction:column;gap:10px;transition:border-color .2s}
.stat-card:hover{border-color:var(--accent)}
.stat-card h3{margin:0;font-size:18px;line-height:1.25}
.stat-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stat-kpis .big{font-size:28px;line-height:1.1;letter-spacing:-.3px}
.daybars{width:100%;height:120px;display:block}
.stat-card .daybars{height:40px}
.concl{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.sharebars{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.sharebar{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:8px;align-items:center;font-size:14px}
.sharebar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sharebar i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--accent) var(--w),rgba(0,28,61,.1) var(--w))}
.sharebar b{font-weight:500;min-width:52px;text-align:right}
.sp{border-top:1px solid var(--line2)}
.sp:first-of-type{border-top:0}
.sp-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px 0;cursor:pointer}
.sp-thumb{width:72px;height:72px;object-fit:cover;border-radius:10px;background:rgba(0,28,61,.06)}
.sp-thumb.empty{display:flex;align-items:center;justify-content:center;font-size:12px;opacity:.7;text-align:center}
.sp-snip{margin:4px 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.sp-metrics{display:flex;flex-wrap:wrap;gap:6px 18px}
.sp-metrics>div{display:flex;flex-direction:column}
.sp-more{padding:0 0 16px 86px;display:flex;flex-direction:column;gap:12px}
.sp-text{white-space:pre-wrap;font-size:14px;opacity:.85;max-height:240px;overflow:auto;border-left:2px solid var(--line);padding-left:12px}
.sort-sel{width:auto}
@media(max-width:640px){.sp-row{grid-template-columns:56px minmax(0,1fr)}.sp-row>.pill{grid-column:2;justify-self:start}.sp-thumb{width:56px;height:56px}.sp-more{padding-left:0}}
.dd-menu .pgroup{padding:8px 0;border-top:1px solid var(--line2)}
.dd-menu .pgroup .check{display:flex}
.dd-menu .btn-row{margin-bottom:6px}
details.dd .dd-menu{max-height:380px}
.sp-more[hidden]{display:none}
/* боты */
.trig-row{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:10px}
.bnode{scroll-margin-top:20px}
.bnode-title{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.bnode-title input{font-weight:600}
.bbtns{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.bbtn{display:grid;grid-template-columns:minmax(0,1fr) 160px minmax(0,1.2fr) auto auto;gap:8px;align-items:center}
.simchat{display:flex;flex-direction:column;gap:8px;min-height:260px;max-height:62vh;overflow:auto;background:#EBEDF0;border-radius:16px;padding:12px;margin:12px 0}
.simchat .msg{max-width:88%}
.simbtns{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.simbtns .btn{justify-content:flex-start;white-space:normal;text-align:left}
.simnote{font-size:12px;opacity:.6;font-style:italic;align-self:center;text-align:center;max-width:90%}
.simimg{display:block;max-width:100%;border-radius:10px;margin-top:6px}
.lead-f{font-size:14px}
@media(max-width:900px){.trig-row{grid-template-columns:minmax(0,1fr)}.bbtn{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bbtn>.btn{justify-self:start}}
.bots-tbl{min-width:720px}
@media(max-width:640px){.dlg-tbl,.dlg-tbl tbody{display:block}.dlg-tbl tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1px solid var(--line2)}.dlg-tbl td{display:block;border:0;padding:8px 4px}.dlg-tbl td.cut{grid-column:1/-1;order:3;max-width:none;white-space:normal;padding-top:0;opacity:.8}}
/* обзор: сейчас */
.now-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2)}
.now-grid>.box{margin-top:0}
.now-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;transition:border-color .2s}
.now-card:hover{border-color:var(--accent)}
.now-card .big{font-size:36px;line-height:1.05;letter-spacing:-.3px}
.now-card.warn{border-color:rgba(255,160,0,.6);background:rgba(255,160,0,.08)}
.now-line{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.now-line>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.now-line>span:last-child{flex:none}
@media(max-width:1100px){.now-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.now-grid{grid-template-columns:minmax(0,1fr)}}
/* быстрые ответы */
.quick{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.modal-bg{z-index:60}.modal{z-index:61}
/* поправки темы ВК поверх старых правил */
.tbl th{color:var(--fg2);opacity:1;font-weight:500}
.tbl tr.click:hover td{background:var(--bg2)}
.msg.in{background:#fff;border:1px solid var(--line2)}
.msg.out{background:#CCE4FF;color:#000}
.toast{background:#2C2D2E;color:#fff}
.toast.err{background:var(--bad)}
.hint{color:var(--fg);background:rgba(0,119,255,.07);border-radius:10px}
.hint a{font-weight:500}
.empty{color:var(--fg2);opacity:1}
.phone,.simchat{background:#EBEDF0}
.kb span{background:#fff;color:var(--link)}
.bubble{background:#fff;box-shadow:none}
.drawer,.modal{background:var(--card)}
.drawer-bg,.modal-bg{background:rgba(0,0,0,.4)}
.step{border-color:var(--line2);background:var(--bg2)}
.stat .big,.count{font-size:32px;font-weight:600;letter-spacing:-.3px}
.stat-card{color:var(--fg)}
.stat-card:hover{text-decoration:none;box-shadow:0 0 0 1px var(--accent)}
.stat-kpis .big{font-weight:600}
.now-card:hover{text-decoration:none;box-shadow:0 0 0 1px var(--accent)}
.now-card{color:var(--fg);border:0}
.now-card .big{font-weight:600}
.now-card.warn{box-shadow:0 0 0 1px rgba(255,160,0,.6);background:#FFF8EC}
.proj-row .big{font-weight:600}
.proj-row h3 a{color:var(--fg)}
.post-row{border:0}
.post-row:hover,.stat-card:hover{box-shadow:0 0 0 1px var(--accent)}
.post-day h3{color:var(--fg2);opacity:1}
.post-time{font-size:20px;font-weight:600}
.vkpost{border-color:var(--line2)}
details.dd>summary{background:var(--bg2);border-color:var(--line)}
.dd-menu{box-shadow:0 8px 24px rgba(0,0,0,.12);border-color:var(--line2)}
.copy code{background:var(--bg2)}
.err-text{color:var(--bad)}
.filters .btn:not(.primary){background:var(--card);color:var(--fg);box-shadow:0 0 0 1px var(--line)}
.filters .btn:not(.primary):hover{background:var(--bg2)}
.head .acts .btn:not(.primary){background:var(--card);box-shadow:0 0 0 1px var(--line)}
.head .acts .btn:not(.primary):hover{background:var(--bg2)}
.box .btn.small:not(.primary):not(.ghost):not(.danger){background:var(--accent-bg)}
.login{background:var(--bg)}
.login form{background:var(--card);padding:32px;border-radius:16px;box-shadow:0 0 0 1px rgba(0,28,61,.06),0 4px 24px rgba(0,28,61,.08)}
.login h1{margin-bottom:var(--s3)}
.login .btn{width:100%}
.x{top:12px;right:12px}
@media(max-width:640px){.box{padding:14px}.main{padding-bottom:40px}}
.filters>.btn{min-width:0;flex:none;width:auto}
@media(max-width:640px){
  .scroll>.tbl,.box.scroll>.tbl{min-width:560px}
  .dlg-tbl{min-width:0!important}
  .filters>*{flex:1 1 calc(50% - 8px);min-width:0;width:auto}
  .filters input[type=search]{flex-basis:100%}
  .filters>.btn{flex:1 1 auto}
}
@media(max-width:640px){.scroll>.tbl td:first-child,.box.scroll>.tbl td:first-child{min-width:170px}}

/* Запланированные рассылки: компактный список. */
.mailing-plan{padding:0;overflow:hidden}
.mailing-plan-toolbar{display:flex;align-items:center;gap:16px;padding:16px;border-bottom:1px solid var(--line)}
.mailing-plan-toolbar input{max-width:440px;min-width:0}
.mailing-plan-toolbar [role=status]{margin-left:auto;white-space:nowrap}
.mailing-plan-head,.mailing-plan-row{display:grid;grid-template-columns:112px minmax(0,2fr) minmax(0,1fr) 136px 16px;gap:20px;align-items:center;padding:16px 20px}
.mailing-plan-head{color:var(--fg2);font-size:12px;background:var(--bg2);padding-top:10px;padding-bottom:10px}
.mailing-plan-items{list-style:none;padding:0;margin:0}
.mailing-plan-items li+li{border-top:1px solid var(--line2)}
.mailing-plan-row{color:var(--fg);min-height:100px;transition:background .15s}
.mailing-plan-row:hover{background:var(--bg2);text-decoration:none}
.mailing-plan-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.mailing-plan-row>div{min-width:0}
.mailing-plan-date{display:flex;flex-wrap:wrap;gap:0 6px;font-size:13px}
.mailing-plan-date>span{width:100%;white-space:nowrap}
.mailing-plan-date strong{font-size:18px;font-weight:600;line-height:1.6}
.mailing-plan-date small{align-self:center;color:var(--fg2);font-size:11px}
.mailing-plan-content{display:flex;flex-direction:column;gap:4px}
.mailing-plan-title{font-weight:600;color:var(--link);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mailing-plan-preview,.mailing-plan-project{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--fg2);font-size:13px}
.mailing-plan-project{color:var(--fg);font-size:12px}
.mailing-plan-audience{font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;hyphens:manual;overflow-wrap:normal;word-break:normal}
.mailing-plan-status{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.mailing-plan-arrow{color:var(--fg2);font-size:24px}
.mailing-plan-mobile-label{display:none}
@media(max-width:1100px){
 .mailing-plan-head,.mailing-plan-row{grid-template-columns:104px minmax(0,1fr) 136px 12px;gap:16px}
 .mailing-plan-head>span:nth-child(3){display:none}
 .mailing-plan-audience{grid-column:2;grid-row:2}
 .mailing-plan-content{grid-column:2;grid-row:1}
 .mailing-plan-date{grid-row:1 / 3}
 .mailing-plan-status{grid-column:3;grid-row:1 / 3}
 .mailing-plan-arrow{grid-column:4;grid-row:1 / 3}
 .mailing-plan-row{row-gap:8px}
 .mailing-plan-mobile-label{display:inline;color:var(--fg2)}
}
@media(max-width:640px){
 .mailing-plan-toolbar{align-items:stretch;flex-direction:column;gap:8px;padding:14px}
 .mailing-plan-toolbar input{max-width:none}
 .mailing-plan-toolbar [role=status]{margin-left:0}
 .mailing-plan-head{display:none}
 .mailing-plan-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px 14px}
 .mailing-plan-date{grid-column:1;grid-row:1;gap:0 6px;font-size:12px}
 .mailing-plan-date>span{width:auto;align-self:center}
 .mailing-plan-date strong{font-size:14px}
 .mailing-plan-date small{font-size:10px}
 .mailing-plan-status{grid-column:2;grid-row:1;align-items:flex-end}
 .mailing-plan-status .pill{font-size:11px;padding:1px 5px}
 .mailing-plan-content{grid-column:1 / -1;grid-row:2}
 .mailing-plan-audience{grid-column:1 / -1;grid-row:3}
 .mailing-plan-arrow{display:none}
}

/* Явное отображение действующих исключений городов без изменения сегмента. */
.segment-excluded-cities{padding:16px;margin:16px 0;background:var(--bg2);border:1px solid var(--line);border-radius:8px}
.segment-excluded-cities h3{font-size:15px;white-space:nowrap}
.segment-excluded-cities ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:12px 0;padding:0}
.segment-excluded-cities li{padding:4px 8px;background:var(--card);border:1px solid var(--line);border-radius:6px;font-size:13px;white-space:nowrap}
.segment-excluded-cities p{margin:0}
@media(max-width:640px){.segment-excluded-cities{padding:12px}}
/* Нативный выбор файла должен помещаться в колонку редактора на телефоне. */
.editor input[type=file]{width:100%;min-width:0;max-width:100%}

/* история ВК: превью кадра 9:16 */
.vkstory{position:relative;width:100%;max-width:240px;aspect-ratio:9/16;margin:0 auto;border-radius:14px;overflow:hidden;background:#101820;color:#fff}
.vkstory>img,.vkstory>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vkstory-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;font-size:14px;opacity:.7}
.vkstory-who{position:absolute;left:10px;top:10px;right:10px;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.vkstory-who .ava{width:28px;height:28px;flex:none}
.vkstory-poll{position:absolute;left:8%;right:8%;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:6px 8px;border-radius:12px;background:#fff;color:#101820;font-size:11px;line-height:1.25;overflow:hidden}
.vkstory-poll b{font-size:12px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none}
.vkstory-poll span{border:1px solid #d5d9de;border-radius:7px;padding:2px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none}
.vkstory-btn{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);max-width:calc(100% - 24px);padding:8px 16px;border-radius:999px;background:#fff;color:#101820;font-size:13px;font-weight:600;white-space:nowrap}
img.att-video{background:none}

/* серия историй: лента кадров в редакторе */
.frames{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.frame{display:flex;flex-direction:column;gap:6px;width:72px}
.frame-pic{position:relative;width:72px;height:128px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:rgba(0,28,61,.08);cursor:pointer;display:flex;align-items:center;justify-content:center}
.frame.on .frame-pic{border-color:var(--accent)}
.frame-pic img,.frame-pic video{width:100%;height:100%;object-fit:cover;display:block}
.frame-pic b{position:absolute;left:4px;top:4px;min-width:20px;height:20px;border-radius:10px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;line-height:20px;text-align:center}
.frame .th-acts{justify-content:flex-end}
.frame .th-acts .btn{min-width:32px;padding-left:6px;padding-right:6px}
.story-stats{margin-top:4px;display:flex;flex-direction:column;gap:2px}
/* календарь плана и отчёт историй */
.cal-nav{align-items:center}
.cal-title{min-width:150px;text-align:center}
.cal-head,.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-head{margin:12px 0 6px;text-align:center}
.cal-cell{min-height:104px;padding:8px;border:1px solid transparent;border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;font:inherit;color:inherit;cursor:pointer;min-width:0}
.cal-cell.out{background:none;cursor:default}
.cal-cell.empty .cal-d{opacity:.45}
.cal-cell.today .cal-d{color:var(--accent);font-weight:600}
.cal-cell.on{border-color:var(--accent)}
.cal-chip{max-width:100%;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-n{display:none;font-size:12px;font-weight:600;background:rgba(0,119,255,.12);border-radius:10px;padding:1px 7px}
.story-thumb{width:36px;height:64px;object-fit:cover;border-radius:6px;display:block}
.nowrap{white-space:nowrap}
@media(max-width:900px){.cal-cell{min-height:56px;padding:6px;align-items:center}.cal-chip{display:none}.cal-n{display:block}.cal-head,.cal{gap:4px}}
