.campaign-console { min-width:0; }
.campaign-console .dash-table { min-width:1080px; }
.campaign-console .campaign-history-table { min-width:300px; }
.campaign-console th small { display:block; font-weight:400; max-width:230px; }
.campaign-console [data-campaign-not-started] { display:block; margin-top:4px; }
.campaign-console td { font-variant-numeric:tabular-nums; }
.campaign-console > form { display:flex; align-items:end; gap:12px; margin-bottom:20px; }
.campaign-console label { display:grid; gap:6px; }
.campaign-status { display:inline-block; border:1px solid var(--line,#444); border-radius:5px; padding:5px 9px; white-space:nowrap; }
.campaign-status-red { color:#ff9d9d; background:#5c151f; border-color:#d6606a; }
.campaign-chart { overflow-x:auto; padding-top:12px; }
.campaign-bars { display:grid; grid-template-columns:repeat(14,minmax(36px,1fr)); min-width:620px; gap:8px; }
.campaign-day small { display:block; text-align:center; font-size:11px; margin-top:8px; }
.campaign-pair { height:170px; display:flex; align-items:end; justify-content:center; gap:3px; border-bottom:1px solid var(--line,#555); }
.campaign-bar { display:block; width:14px; min-height:0; border-radius:3px 3px 0 0; }
.campaign-bar-sent { background:#ee707a; }
.campaign-bar-replied { background:#70c3b0; }
.campaign-bar-missing { border-bottom:2px dashed #888; }
.campaign-legend-sent { color:#ee707a; }
.campaign-legend-replied { color:#70c3b0; }
.campaign-imprint { font-size:12px; opacity:.85; }
.campaign-step-timeline { list-style:none; margin:0; padding:0; display:grid; gap:0; border-left:2px solid var(--line,#555); margin-left:8px; }
.campaign-step-timeline > li { position:relative; padding:0 0 22px 22px; }
.campaign-step-timeline > li:last-child { padding-bottom:0; }
.campaign-step-timeline > li::before { content:""; position:absolute; left:-6px; top:8px; width:10px; height:10px; border-radius:50%; background:#70c3b0; border:2px solid var(--bg,#111); }
.campaign-step-timeline h3 { margin:0 0 10px; font-size:16px; font-weight:650; line-height:1.35; }
.campaign-step-metrics { margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.campaign-step-metrics > div { min-width:0; }
.campaign-step-metrics dt { font-size:12px; opacity:.8; margin:0 0 2px; }
.campaign-step-metrics dd { margin:0; font-size:20px; font-variant-numeric:tabular-nums; font-weight:650; }
.campaign-replies { list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.campaign-replies li { border-top:1px solid var(--line,#444); padding-top:12px; display:grid; gap:4px; }
.campaign-replies li:first-child { border-top:0; padding-top:0; }
.campaign-replies strong { font-size:14px; }
.campaign-replies span { opacity:.85; }
.campaign-replies p { margin:0; }
.campaign-replies time { font-size:12px; opacity:.75; }
[data-reply-rate] { font-weight:600; margin-right:6px; }
@media(max-width:859px) {
  .campaign-console .dash-heading { gap:12px; flex-wrap:wrap; }
  .campaign-step-metrics { grid-template-columns:1fr; }
}
