.promo-explanation{padding:22px 26px;background:#e9eefc;border-left:3px solid #244ce0;margin:12px 0 26px;max-width:1100px}.promo-explanation p{margin:8px 0 0;line-height:1.6}.promo-campaign{border-top:2px solid #222;padding:26px 0;margin-top:24px}.promo-campaign h2{margin:8px 0}.promo-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;padding:22px 0;border-top:1px solid #d9d7d0}.promo-counts strong{display:block;font-size:32px;font-weight:500}.promo-counts small{display:block;margin-top:6px;color:#65645e}.promo-campaign details{border-bottom:1px solid #d9d7d0;padding:17px 0}.promo-campaign summary{cursor:pointer;font-size:14px}.promo-campaign .table-wrap{margin-top:12px}.promo-workers{display:flex;flex-wrap:wrap;gap:12px 24px;padding:18px 0;font-size:13px;border-bottom:1px solid #d9d7d0}.promo-form{padding:26px;border:1px solid #244ce0;margin:24px 0;background:#faf9f6}.promo-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;margin-bottom:20px}.promo-form label{display:flex;flex-direction:column;gap:8px;font-size:13px}.promo-form input,.promo-form select,.promo-form textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px;border:1px solid #c9c8c0;background:white;color:#222}.promo-form textarea{resize:vertical}.promo-error{color:#932a20;padding:16px;background:#fae9e4}.promo-status{color:#244ce0}@media(max-width:800px){.promo-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.promo-fields{grid-template-columns:1fr}.promo-form{padding:18px}.promotion .page-top{flex-wrap:wrap;gap:16px}}
.promo-checks{border:1px solid #c9c8c0;padding:12px;display:flex;flex-wrap:wrap;gap:12px}.promo-form .promo-checks label{display:inline-flex;flex-direction:row;align-items:center}.promo-form .promo-checks input{width:auto}
.promo-ident{overflow-wrap:anywhere;word-break:break-word}
.promo-form .promo-toggle{flex-direction:row;align-items:center}.promo-form .promo-toggle input{width:auto}
.promo-consent{display:grid;gap:12px;grid-column:1/-1}.promo-form .promo-consent label{display:flex;flex-direction:column;align-items:stretch;gap:8px}.promo-form .promo-consent label.promo-toggle{flex-direction:row;align-items:center}.promo-form .promo-consent input:not([type]){width:100%}
/* ═════ Страница карточки: подготовка кампании и панель работы ═════ */
.pft-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}
.pft-aside{position:sticky;top:12px;display:grid;gap:12px}
.pft-stack{display:grid;gap:12px}
.pft-sub{font-size:13px;color:var(--muted2);line-height:1.45;margin:0}
.pft-h{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.pft-h h3{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}
.pft-h small{font-size:12.5px;color:var(--muted2);font-weight:400}
.pft-step{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:8px;background:var(--pill);color:var(--pill-fg);font-size:12.5px;font-weight:600;margin-right:8px;vertical-align:1px}
.pft-tag{font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--info-soft);color:var(--info);white-space:nowrap;display:inline-block}
.pft-tag.hl{background:var(--hl);color:var(--hl-fg)}
.pft-tag.mut{background:var(--inset);color:var(--muted2)}
.pft-tag.ok{background:var(--ok-soft);color:var(--ok)}
.pft-tag.warn{background:var(--warn-soft);color:var(--warn)}
.pft-tag.bad{background:var(--bad-soft);color:var(--bad)}
.ov-chip.warn i{background:var(--warn)}
.ov-chip.warnbox{background:var(--warn-soft);color:var(--warn)}
.pft-meter{height:10px;border-radius:999px;background:var(--line);overflow:hidden}
.pft-meter>i{display:block;height:100%;width:var(--w,0%);border-radius:999px;background:var(--pill);transition:width .3s}
.pft-meter.hl>i{background:var(--hl)}
.pft-meter.ok>i{background:var(--ok)}
.pft-meter.warn>i{background:var(--warn)}
.pft-meter.bad>i{background:var(--bad)}
.pft-row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted2);flex-wrap:wrap}
.pft-pill-sm{padding:7px 12px;font-size:13px}
.pw-pill:disabled{opacity:.45;cursor:not-allowed}
.pft-hidden{display:none!important}

/* ——— ключи ——— */
.pft-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pft-src{display:flex;gap:6px;flex-wrap:wrap}
.pft-src button{padding:6px 12px;border-radius:999px;background:var(--inset);font-size:12.5px;color:var(--muted2)}
.pft-src button[aria-pressed=true]{background:var(--pill);color:var(--pill-fg)}
.pft-add{display:flex;gap:6px;margin-left:auto}
.pft-add input{border:0;background:var(--inset);border-radius:999px;padding:8px 14px;font-size:13px;min-width:200px}
.pft-keys{display:grid}
.pft-khead,.pft-key{display:grid;grid-template-columns:26px minmax(0,1.7fr) 78px 62px minmax(0,1fr) 128px;gap:10px;align-items:center}
.pft-khead{font-size:12px;color:var(--muted2);padding:0 0 6px}
.pft-khead span:nth-child(n+3){text-align:center}
.pft-key{padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}
.pft-key.off{opacity:.55}
.pft-key .q{min-width:0;overflow-wrap:anywhere;font-weight:500}
.pft-key .c{text-align:center;font-variant-numeric:tabular-nums}
.pft-key .c.muted{color:var(--muted2)}
.pft-step2{display:inline-grid;grid-template-columns:30px 52px 30px;align-items:center;background:var(--inset);border-radius:999px;justify-self:center}
.pft-step2 button{height:32px;border-radius:999px;font-size:16px;color:var(--fg)}
.pft-step2 button:hover{background:var(--line)}
.pft-step2 input{width:100%;border:0;background:transparent;text-align:center;font-variant-numeric:tabular-nums;font-weight:600;padding:0;-moz-appearance:textfield}
.pft-step2 input::-webkit-outer-spin-button,.pft-step2 input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pft-step2.over{background:var(--bad-soft)}
.pft-kfoot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px;font-size:12.5px;color:var(--muted2)}

/* ——— желательное число переходов ——— */
.pft-gap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.pft-gapcell{background:var(--inset);border-radius:var(--r-in);padding:14px 16px;display:grid;gap:4px}
.pft-gapcell p{margin:0;font-size:12.5px;color:var(--muted2)}
.pft-gapcell strong{font-size:28px;font-weight:300;letter-spacing:-.03em;line-height:1.1}
.pft-gapcell small{font-size:12.5px;color:var(--muted2)}
.pft-gapcell.hl{background:var(--hl);color:var(--hl-fg)}
.pft-gapcell.hl p,.pft-gapcell.hl small{color:var(--hl-fg);opacity:.75}
.pft-rec{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--pill);color:var(--pill-fg);border-radius:var(--r-in);padding:16px 18px}
.pft-rec b{font-size:17px;font-weight:500;line-height:1.35;display:block}
.pft-rec span{font-size:13px;opacity:.75;display:block;margin-top:4px}
.pft-rec strong{font-size:40px;font-weight:300;letter-spacing:-.03em;line-height:1;text-align:right;display:block}
.pft-rec em{font-style:normal;font-size:12.5px;opacity:.75;display:block;text-align:right}
.pft-how{font-size:12.5px;color:var(--muted2);line-height:1.5}
.pft-how summary{cursor:pointer;color:var(--fg);font-weight:500;list-style:none}
.pft-how summary::-webkit-details-marker{display:none}
.pft-how p{margin:8px 0 0}

/* ——— лимиты ——— */
.pft-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
.pft-fields label{display:grid;gap:6px;font-size:12.5px;color:var(--muted2)}
.pft-fields input,.pft-fields select{border:0;background:var(--inset);border-radius:12px;padding:10px 12px;font-size:14px;color:var(--fg);width:100%}
/* Только прямые потомки: класс full у столбиков графика растягивал каждый столбик на всю ширину (полосы вместо графика). */
.pft-fields>.full{grid-column:1/-1}
.pft-fields label small{font-size:12px;line-height:1.35;color:var(--muted2)}
.pft-tl-h{margin-bottom:8px}
.pft-tl-h b{font-weight:600;color:var(--fg);font-size:13px}
.pft-lg{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--hl);margin:0 4px 0 12px;vertical-align:-1px}
.pft-lg.ramp{background:var(--muted2);opacity:.45}
.pft-ramp{display:grid;gap:6px}
.pft-ramp input[type=range]{accent-color:var(--pill);width:100%;padding:0;background:none}
.pft-limits{display:flex;gap:8px;flex-wrap:wrap}
.pft-limits span{background:var(--inset);border-radius:999px;padding:6px 12px;font-size:12.5px;color:var(--muted2)}
.pft-limits b{color:var(--fg);font-weight:600}
.pft-timeline{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;height:70px;align-items:end}
.pft-timeline i{display:block;height:var(--h,0%);background:var(--muted2);opacity:.45;border-radius:4px 4px 2px 2px}
.pft-timeline i.is-full{background:var(--hl);opacity:1}
.pft-timeline i.full{background:var(--hl)}

/* ——— сценарий и согласие ——— */
.pft-opt{display:grid;gap:10px}
.pft-radio{display:flex;gap:8px;flex-wrap:wrap}
.pft-radio button{padding:8px 14px;border-radius:999px;background:var(--inset);font-size:13px}
.pft-radio button[aria-pressed=true]{background:var(--pill);color:var(--pill-fg)}
.pft-chk{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.45}
.pft-consent{display:grid;gap:10px;background:var(--inset);border-radius:var(--r-in);padding:14px 16px}
.pft-consent input[type=text]{border:0;background:var(--panel);border-radius:12px;padding:10px 12px;font-size:14px;width:100%}
.pft-consent.bad{box-shadow:inset 0 0 0 2px var(--bad)}
.pft-risk{font-size:12.5px;color:var(--muted2);line-height:1.5;margin:0}

/* ——— итог (правая колонка) ——— */
.pft-sum{display:grid;gap:12px}
.pft-big{display:grid;gap:2px}
.pft-big strong{font-size:46px;font-weight:300;letter-spacing:-.04em;line-height:1}
.pft-big span{font-size:13px;color:var(--muted2)}
.pft-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pft-two div{background:var(--inset);border-radius:14px;padding:10px 12px;display:grid;gap:2px}
.pft-two small{font-size:12px;color:var(--muted2)}
.pft-two b{font-size:20px;font-weight:400;letter-spacing:-.02em}
.pft-checks{display:grid;gap:2px}
.pft-check{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;font-size:13px;padding:6px 0;border-top:1px solid var(--line);line-height:1.4}
.pft-check:first-child{border-top:0}
.pft-ic{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;margin-top:1px}
.pft-check.ok .pft-ic{background:var(--ok-soft);color:var(--ok)}
.pft-check.warn .pft-ic{background:var(--warn-soft);color:var(--warn)}
.pft-check.bad .pft-ic{background:var(--bad-soft);color:var(--bad)}
.pft-check small{display:block;color:var(--muted2);font-size:12px}
.pft-go{width:100%;padding:14px 18px;font-size:15px;border-radius:999px;background:var(--hl);color:var(--hl-fg);font-weight:600}
.pft-go:disabled{background:var(--inset);color:var(--muted2);font-weight:500}

/* ——— работающая кампания ——— */
.pft-run{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.pft-run .pft-meter{flex:1;min-width:160px}
.pft-run b{white-space:nowrap}
.pft-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pft-two2{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px;align-items:start}
.pft-pos{display:grid}
.pft-phead,.pft-prow{display:grid;grid-template-columns:minmax(0,1.5fr) 52px 56px 48px 56px 84px minmax(96px,1fr);gap:8px;align-items:center}
.pft-phead{font-size:12px;color:var(--muted2);padding-bottom:6px}
.pft-phead span:nth-child(n+2){text-align:center}
.pft-prow{padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}
.pft-prow .q{min-width:0;overflow-wrap:anywhere;font-weight:500}
.pft-prow .c{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
.pft-d{font-size:12.5px;font-weight:600}
.pft-d.up{color:var(--ok)}.pft-d.down{color:var(--bad)}.pft-d.flat{color:var(--muted2)}
.pft-ok{display:flex;align-items:center;gap:8px}
.pft-ok b{font-weight:600;min-width:46px;flex:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.pft-ok .pft-meter{flex:1;height:6px}
.pft-comp{display:grid}
.pft-crow{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.pft-crow:first-child{border-top:0}
.pft-crow.me{font-weight:600}
.pft-chart{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:5px;height:170px}
.pft-col{display:grid;grid-template-rows:1fr auto;gap:4px;min-width:0}
.pft-bars{position:relative;display:flex;align-items:flex-end}
.pft-bars .p{display:block;width:100%;height:var(--hp,0%);background:var(--line);border-radius:6px 6px 3px 3px}
.pft-bars .f{position:absolute;left:24%;right:24%;bottom:0;height:var(--hf,0%);background:var(--hl);border-radius:4px}
.pft-col.fut .p{background:repeating-linear-gradient(45deg,var(--line) 0 4px,transparent 4px 8px)}
.pft-col span{font-size:10.5px;color:var(--muted2);text-align:center;white-space:nowrap;overflow:hidden}
.pft-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted2)}
.pft-leg i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.pft-srow,.pft-shead{display:grid;grid-template-columns:minmax(0,1.5fr) 66px 84px 62px minmax(100px,1fr);gap:10px;align-items:center}
.pft-shead{font-size:12px;color:var(--muted2);padding-bottom:6px}
.pft-shead span:nth-child(n+2){text-align:center}
.pft-srow{padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}
.pft-srow .c{text-align:center;font-variant-numeric:tabular-nums}
.pft-srow .c.m{color:var(--muted2)}
.pft-jrow{display:grid;grid-template-columns:92px minmax(0,1.4fr) minmax(0,1fr) 64px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:13px}
.pft-jrow:first-child{border-top:0}
.pft-jrow time{color:var(--muted2);font-size:12.5px}
.pft-jrow .c{text-align:right;color:var(--muted2);font-size:12.5px}
.pft-tech details{border-top:1px solid var(--line);padding:12px 0}
.pft-tech details:first-of-type{border-top:0}
.pft-tech summary{cursor:pointer;font-size:14px;font-weight:500}
.pft-tech p{margin:8px 0 0;font-size:13px;color:var(--muted2);line-height:1.5}
.pft-foot{display:flex;gap:10px;align-items:flex-start;background:var(--inset);border-radius:var(--r-in);padding:14px 16px}
.pft-foot p{margin:0;font-size:12.5px;color:var(--muted2);line-height:1.5}

.pft-of{color:var(--muted2);font-size:12px}
.pft-leg .plan{background:var(--line)}.pft-leg .fact{background:var(--hl)}.pft-leg .future{background:repeating-linear-gradient(45deg,var(--line) 0 3px,transparent 3px 6px)}
.pft-two2:has(#chart){grid-template-columns:minmax(0,1fr) minmax(0,1.7fr)}
@media(max-width:1100px){.pft-grid{grid-template-columns:minmax(0,1fr)}.pft-aside{position:static}.pft-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pft-two2,.pft-two2:has(#chart){grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){
 .pft-khead,.pft-key{grid-template-columns:24px minmax(0,1fr) 120px}
 .pft-khead span:nth-child(3),.pft-khead span:nth-child(4),.pft-khead span:nth-child(5),.pft-key .c,.pft-key .tg{display:none}
 .pft-gap,.pft-fields{grid-template-columns:minmax(0,1fr)}
 .pft-rec{grid-template-columns:minmax(0,1fr)}.pft-rec strong,.pft-rec em{text-align:left}
 .pft-phead,.pft-prow{grid-template-columns:minmax(0,1fr) 50px 50px 60px}
 .pft-phead span:nth-child(5),.pft-phead span:nth-child(6),.pft-phead span:nth-child(7),.pft-prow>:nth-child(5),.pft-prow>:nth-child(6),.pft-prow>:nth-child(7){display:none}
 .pft-srow,.pft-shead{grid-template-columns:minmax(0,1fr) 56px 72px}
 .pft-srow>:nth-child(4),.pft-srow>:nth-child(5),.pft-shead span:nth-child(4),.pft-shead span:nth-child(5){display:none}
 .pft-jrow{grid-template-columns:70px minmax(0,1fr)}.pft-jrow>:nth-child(3),.pft-jrow>:nth-child(4){display:none}
 .pft-add{margin-left:0;width:100%}.pft-add input{flex:1;min-width:0}
}

#content .pft-chk input[type=checkbox],#content .pft-key input[type=checkbox]{accent-color:var(--pill);width:18px;height:18px;margin:0;flex:none}
.pft-more{padding:10px 0;border-top:1px solid var(--line)}
.pft-empty{background:var(--inset);border-radius:var(--r-in);padding:18px 20px;display:grid;gap:6px}.pft-empty p{margin:0;color:var(--muted2);font-size:13px;line-height:1.5}
.pft-alert{margin:12px 0 0;padding:12px 16px;border-radius:var(--r-in);background:var(--warn-soft);color:var(--warn);font-size:13.5px;line-height:1.45}
.pft-head .sm-acts{justify-content:flex-end}
.pft-tools .link{white-space:nowrap}
.pft-add input{border:0;background:var(--inset);border-radius:999px;padding:8px 14px;font-size:13px;min-width:260px;color:var(--fg)}
.pft-comp .pft-crow b{font-weight:600;font-variant-numeric:tabular-nums}
.pft-seen{font-style:normal;font-weight:700;font-size:12px;margin-left:5px}.pft-seen.ok{color:var(--ok)}.pft-seen.bad{color:var(--bad)}
.pft-chk-btn{width:100%;justify-content:center}
/* Тема задаёт .page{margin:0!important}: отступы между блоками страницы задаём сами, только после шапки карточки. */
#content>.pft-head~*{margin-top:12px!important}
.pft-yrow,.pft-yhead{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,minmax(70px,110px));gap:10px;align-items:center}
.pft-yhead{font-size:12px;color:var(--muted2);padding:14px 0 6px}
.pft-yhead span:nth-child(n+2){text-align:center}
.pft-yrow{padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.pft-yrow .c{text-align:center;font-variant-numeric:tabular-nums}
.pft-ver{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0;font-size:13.5px}
@media(max-width:700px){.pft-yrow,.pft-yhead{grid-template-columns:minmax(0,1fr) 56px 64px 60px}.pft-yrow>:nth-child(5),.pft-yhead span:nth-child(5){display:none}}


.worker-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#f4f3ef;border:1px solid #e0ded6;font-size:13px}
.worker-chip b{font-weight:600}
.worker-online{background:#e8f6ee;border-color:#b7e0c4;color:#1d6b3a}
.worker-busy{background:#e9eefc;border-color:#c5d0f5;color:#244ce0}
.worker-offline{background:#fae9e4;border-color:#f0c8c0;color:#932a20}
.promo-note-warn{color:#8a5a12;padding:12px 16px;background:#fbf3e4;border-radius:6px;margin:8px 0}
