.camp-page-header{margin-bottom:20px}.camp-tabs-bar{display:flex;gap:4px;border-bottom:var(--border-thin);margin-bottom:16px;overflow-x:auto;padding-bottom:0;scrollbar-width:none}.camp-tabs-bar::-webkit-scrollbar{display:none}.camp-tab{display:flex;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:500;color:var(--color-text-secondary);border-bottom:2px solid transparent;background:0 0;border-radius:0;cursor:pointer;white-space:nowrap;transition:color .14s ease,border-color .14s ease;margin-bottom:-1px}.camp-tab:hover{color:var(--color-text-primary)}.camp-tab.active{color:var(--color-blue-dark);border-bottom-color:var(--color-blue-dark)}.camp-tab-badge{font-size:10px;font-weight:600;padding:1px 6px;background:var(--color-beige);border-radius:8px;color:var(--color-text-secondary)}.camp-tab.active .camp-tab-badge{background:var(--color-blue-bg);color:var(--color-blue-dark)}.camp-search-row{margin-bottom:16px}.camp-search-wrap{display:flex;align-items:center;gap:8px;max-width:380px;background:var(--color-surface);border:var(--border-thin);border-radius:var(--radius-md);padding:0 12px;color:var(--color-text-muted)}.camp-search-input{border:none;padding:9px 0;font-size:13px;flex:1;background:0 0;width:100%}.camp-search-input:focus{outline:0}.camp-card{background:var(--color-surface);border:var(--border-thin);border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:10px;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease}.camp-card:hover{border-color:var(--color-blue-light);box-shadow:0 2px 12px rgba(11,56,40,.06)}.camp-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.camp-card-name{font-size:15px;font-weight:600;color:var(--color-text-primary);margin-bottom:6px}.camp-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--color-text-secondary)}.camp-meta-sep{width:3px;height:3px;background:var(--color-text-muted);border-radius:50%;opacity:.5}.camp-sender{font-weight:500;color:var(--color-blue-dark)}.camp-time{color:var(--color-text-muted)}.camp-loop-badge{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:11px;font-weight:500;color:var(--color-accent-dark);background:var(--color-accent-bg);padding:3px 8px;border-radius:var(--radius-pill)}.camp-scheduled-note{display:flex;align-items:center;gap:5px;margin-top:6px;font-size:12px;color:var(--color-orange)}.camp-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.camp-progress{display:flex;align-items:center;gap:10px;margin-bottom:12px}.camp-progress-bar{flex:1;height:5px;background:var(--color-beige);border-radius:3px;overflow:hidden}.camp-progress-fill{height:100%;background:var(--color-green);border-radius:3px}.camp-progress-label{font-size:11px;color:var(--color-text-muted);white-space:nowrap}.camp-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:0;padding-top:10px;border-top:var(--border-thin)}.camp-metric{padding:8px 0;text-align:center;border-right:var(--border-thin)}.camp-metric:last-child{border-right:none}.camp-metric-val{font-size:16px;font-weight:600;color:var(--color-text-primary);margin-bottom:2px}.camp-metric-val.green{color:var(--color-green)}.camp-metric-val.orange{color:var(--color-orange)}.camp-metric-val.blue{color:var(--color-blue)}.camp-metric-lbl{font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px}.camp-empty{display:flex;flex-direction:column;align-items:center;padding:60px 24px;text-align:center}.camp-empty-title{font-size:16px;font-weight:500;margin:16px 0 6px}.camp-empty-sub{font-size:13px;color:var(--color-text-secondary)}.tag-hookloop{background:var(--color-accent-bg);color:var(--color-accent-dark)}.campnew-wrapper{max-width:780px}.campnew-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.campnew-title-wrap{flex:1}.campnew-title-wrap .page-title{margin:0}.campnew-stepper{display:flex;align-items:center;margin-bottom:28px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.campnew-stepper::-webkit-scrollbar{display:none}.step-item{display:flex;align-items:center;flex-shrink:0}.step-num{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;border:2px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface);flex-shrink:0;transition:all .18s ease}.step-label{font-size:12px;font-weight:500;color:var(--color-text-muted);margin-left:8px;white-space:nowrap}.step-line{flex:1;min-width:24px;max-width:60px;height:1px;background:var(--color-border);margin:0 10px}.step-item.active .step-num{background:var(--color-blue-dark);border-color:var(--color-blue-dark);color:#fff}.step-item.active .step-label{color:var(--color-blue-dark);font-weight:600}.step-item.done .step-num{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-blue-dark)}.step-item.done .step-line{background:var(--color-accent)}.campnew-step-body{background:var(--color-surface);border:var(--border-thin);border-radius:var(--radius-lg);padding:24px;margin-bottom:16px}.campnew-field{margin-bottom:18px}.campnew-field:last-child{margin-bottom:0}.campnew-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field-hint{font-size:12px;color:var(--color-text-muted);margin-top:6px}.field-opt{font-size:11px;font-weight:400;color:var(--color-text-muted)}.field-warn{font-size:12px;color:var(--color-orange);margin-top:6px}.link-text{color:var(--color-blue);cursor:pointer;text-decoration:underline}.tpl-pick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.tpl-pick-card{border:var(--border-thin);border-radius:var(--radius-md);padding:12px;cursor:pointer;transition:border-color .14s ease,background .14s ease}.tpl-pick-card:hover{border-color:var(--color-blue-light);background:var(--color-bg)}.tpl-pick-card.selected{border-color:var(--color-blue-dark);background:var(--color-blue-bg)}.tpl-pick-header{display:flex;justify-content:space-between;margin-bottom:6px}.tpl-pick-name{font-size:12px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.tpl-pick-content{font-size:11px;color:var(--color-text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.msg-editor-wrap{border:var(--border-thin);border-radius:var(--radius-md);overflow:hidden}.msg-editor-wrap textarea{border:none;border-radius:0;resize:vertical;min-height:100px}.msg-editor-footer{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--color-beige);border-top:var(--border-thin)}.msg-vars{display:flex;gap:6px;flex-wrap:wrap}.msg-var-btn{font-size:11px;font-weight:500;color:var(--color-blue-dark);background:var(--color-blue-bg);padding:3px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease}.msg-var-btn:hover{background:var(--color-blue-light)}.msg-counters{font-size:11px;color:var(--color-text-muted);white-space:nowrap}.msg-preview-phone{background:var(--color-beige);border-radius:var(--radius-lg);padding:16px;max-width:300px}.msg-preview-sender{font-size:11px;font-weight:700;color:var(--color-text-primary);margin-bottom:8px}.msg-preview-bubble{background:var(--color-surface);border-radius:0 10px 10px 10px;padding:10px 12px;font-size:12px;color:var(--color-text-primary);line-height:1.5;box-shadow:0 1px 4px rgba(0,0,0,.06);white-space:pre-wrap;word-break:break-word}.seg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.seg-card{border:var(--border-thin);border-radius:var(--radius-md);padding:14px 16px;cursor:pointer;transition:border-color .14s ease,background .14s ease}.seg-card:hover{border-color:var(--color-blue-light);background:var(--color-bg)}.seg-card.selected{border-color:var(--color-blue-dark);background:var(--color-blue-bg)}.seg-card-name{font-size:13px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.seg-card-count{font-size:12px;color:var(--color-text-muted)}.seg-cost-wrap{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--color-blue-bg);border-radius:var(--radius-md);font-size:13px;color:var(--color-blue-dark)}.plan-options{display:flex;flex-direction:column;gap:10px}.plan-option{display:flex;align-items:center;gap:14px;padding:16px;border:var(--border-thin);border-radius:var(--radius-md);cursor:pointer;transition:border-color .14s ease,background .14s ease}.plan-option:hover{border-color:var(--color-blue-light);background:var(--color-bg)}.plan-option.selected{border-color:var(--color-blue-dark);background:var(--color-blue-bg)}.plan-option-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-beige);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-secondary)}.plan-option.selected .plan-option-icon{background:var(--color-surface);color:var(--color-blue-dark)}.plan-option-icon.hookloop{background:var(--color-accent-bg);color:var(--color-accent-dark)}.plan-option-body{flex:1}.plan-option-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:2px}.plan-option-desc{font-size:12px;color:var(--color-text-secondary)}.plan-option-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;flex-shrink:0}.plan-option.selected .plan-option-radio{border-color:var(--color-blue-dark)}.plan-radio-dot{width:9px;height:9px;border-radius:50%;background:var(--color-blue-dark)}.plan-extra{margin-top:16px}.hookloop-config{background:var(--color-bg);border-radius:var(--radius-md);padding:16px}.hookloop-freq-tabs{display:flex;gap:6px}.hookloop-freq-btn{padding:7px 14px;font-size:13px;font-weight:500;border-radius:var(--radius-md);border:var(--border-thin);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all .12s ease}.hookloop-freq-btn:hover{background:var(--color-beige);color:var(--color-text-primary)}.hookloop-freq-btn.active{background:var(--color-blue-dark);color:#fff;border-color:var(--color-blue-dark)}.day-checks{display:flex;gap:6px;flex-wrap:wrap}.day-check{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:var(--border-thin);background:var(--color-surface);font-size:12px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .12s ease;user-select:none}.day-check:hover{background:var(--color-beige)}.day-check.checked{background:var(--color-blue-dark);color:#fff;border-color:var(--color-blue-dark)}.sansfin-check{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:400;color:var(--color-text-secondary);margin-top:8px;cursor:pointer}.campnew-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 0 8px}.campnew-step-count{font-size:12px;color:var(--color-text-muted)}.recap-card{border:var(--border-thin);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:14px}.recap-title{font-size:13px;font-weight:600;padding:12px 16px;background:var(--color-beige);color:var(--color-text-primary)}.recap-rows{padding:4px 0}.recap-row{display:flex;justify-content:space-between;padding:10px 16px;font-size:13px;border-bottom:var(--border-thin)}.recap-row:last-child{border-bottom:none}.recap-row-label{color:var(--color-text-secondary)}.recap-row-val{font-weight:500;color:var(--color-text-primary);text-align:right}.recap-msg{border-top:var(--border-thin);padding:12px 16px;background:var(--color-bg)}.recap-msg-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:8px}.recap-msg-text{font-size:13px;color:var(--color-text-primary);line-height:1.5;white-space:pre-wrap}.recap-cost{background:var(--color-surface);border:var(--border-thin);border-radius:var(--radius-lg);padding:16px}.recap-cost-warn{border-color:var(--color-red);background:var(--color-red-bg)}.recap-cost-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:10px}.recap-cost-row:last-of-type{margin-bottom:0}.recap-cost-row span{color:var(--color-text-secondary)}.recap-cost-total{padding-top:10px;border-top:var(--border-thin);font-size:15px;font-weight:600}.recap-cost-total span,.recap-cost-total strong{color:var(--color-text-primary)}.recap-no-credits{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:10px;border-top:.5px solid rgba(163,45,45,.2);font-size:12px;color:var(--color-red)}@media (max-width:767px){.camp-metrics{grid-template-columns:repeat(3,1fr)}.camp-metric:nth-child(3){border-right:none}.camp-metric:nth-child(4){border-top:var(--border-thin)}.camp-metric:nth-child(5){border-top:var(--border-thin)}.camp-metric:nth-child(6){border-top:var(--border-thin);border-right:none}.tpl-pick-grid{grid-template-columns:1fr}.seg-grid{grid-template-columns:1fr}.campnew-field-row{grid-template-columns:1fr}.hookloop-freq-tabs{flex-direction:column}.campnew-stepper{gap:0}.step-label{display:none}.step-line{min-width:16px}}@media (max-width:767px){.btn-new-campagne{display:none}}

/* ─── Campaign Detail Page ─────────────────────────────────── */
.cd-shell { padding: 0 0 48px; max-width: 1200px; margin: 0 auto; }

.cd-topbar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0;
  margin-bottom: 16px;
}
.cd-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--color-text-muted);
  text-decoration: none;
  margin-bottom: 2px;
}
.cd-back:hover { color: var(--color-text-primary); }
.cd-back svg { opacity: 0.6; }

.cd-layout {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 20px;
  padding: 0;
}
@media (max-width: 900px) {
  .cd-layout { grid-template-columns: 1fr; }
  .cd-kpi-row { grid-template-columns: 1fr 1fr; }
  .cd-perf-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1024px) { .cd-layout { grid-template-columns: 1fr; } }

.cd-loading {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 60px 32px;
  color: var(--color-text-muted);
  font-size: 14px;
}
.cd-spinner {
  width: 20px; height: 20px;
  border: 2px solid var(--color-border);
  border-top-color: var(--color-primary);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.cd-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 99px;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 16px;
  width: 100%;
  box-sizing: border-box;
}
.cd-status-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.cd-status-date {
  margin-left: auto;
  font-size: 11px;
  opacity: 0.7;
  font-weight: 400;
}

.cd-card {
  background: var(--color-surface);
  border: var(--border-thin);
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 16px;
}
.cd-card-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-muted);
  margin-bottom: 14px;
}

.cd-message-bubble {
  background: var(--color-bg);
  border: var(--border-thin);
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--color-text-primary);
  white-space: pre-wrap;
  word-break: break-word;
  margin-bottom: 10px;
  min-height: 60px;
}
.cd-msg-footer {
  display: flex;
  gap: 6px;
  font-size: 11px;
  color: var(--color-text-muted);
}
.cd-dot { color: var(--color-border); }

.cd-sender-card {}
.cd-sender-row {
  display: flex;
  align-items: center;
  gap: 14px;
}
.cd-sender-badge {
  width: 46px; height: 46px;
  background: var(--color-primary);
  color: #BDDE48;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 800;
  flex-shrink: 0;
}
.cd-sender-name { font-size: 16px; font-weight: 700; color: var(--color-text-primary); }
.cd-sender-sub { font-size: 12px; color: var(--color-text-muted); margin-top: 2px; }

.cd-btn-danger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border-radius: 10px;
  border: 1px solid rgba(217,54,54,0.3);
  background: rgba(217,54,54,0.05);
  color: #D93636;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.12s;
  width: 100%;
  justify-content: center;
}
.cd-btn-danger:hover { background: rgba(217,54,54,0.12); border-color: #D93636; }

/* KPIs */
.cd-kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.cd-kpi {
  background: var(--color-surface);
  border: var(--border-thin);
  border-radius: 14px;
  padding: 16px 14px;
  text-align: center;
}
.cd-kpi-icon { font-size: 20px; margin-bottom: 6px; }
.cd-kpi-val { font-size: 22px; font-weight: 800; line-height: 1; margin-bottom: 4px; }
.cd-kpi-label { font-size: 10px; color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.05em; }

/* Delivery chart */
.cd-donut-wrap {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 16px;
}
.cd-donut-bar {
  flex: 1;
  height: 14px;
  background: rgba(11,56,40,0.06);
  border-radius: 99px;
  overflow: hidden;
  display: flex;
}
.cd-donut-seg {
  height: 100%;
  transition: width 0.8s cubic-bezier(.4,0,.2,1);
}
.cd-seg-green { background: #1D9E75; }
.cd-seg-red   { background: #D93636; }
.cd-seg-grey  { background: #AEADA9; }
.cd-donut-nums { text-align: center; flex-shrink: 0; }
.cd-donut-big { font-size: 28px; font-weight: 800; line-height: 1; }
.cd-donut-label { font-size: 11px; color: var(--color-text-muted); margin-top: 2px; }

.cd-empty-chart {
  text-align: center;
  padding: 28px 16px;
  color: var(--color-text-muted);
  font-size: 13px;
  line-height: 1.6;
  background: var(--color-bg);
  border-radius: 10px;
  margin-bottom: 16px;
}

.cd-legend {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
.cd-legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--color-text-secondary);
}
.cd-legend-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.cd-legend-item strong { color: var(--color-text-primary); font-weight: 700; }

/* Performance grid */
.cd-perf-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
}
.cd-perf-item {
  background: var(--color-bg);
  border-radius: 10px;
  padding: 14px;
  text-align: center;
}
.cd-perf-num { font-size: 16px; font-weight: 700; color: var(--color-text-primary); }
.cd-perf-label { font-size: 11px; color: var(--color-text-muted); margin-top: 3px; }
.breadcrumb-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--color-text-muted);
  text-decoration: none;
  margin-bottom: 6px;
  transition: color 0.12s;
}
.breadcrumb-back:hover { color: var(--color-text-primary); }
