.campaign-contact-list { width: 100%; min-width: 0; overflow: hidden; border: 1px solid #cbbcff; border-radius: 8px; background: #fff; color: #14213d; }
.campaign-contact-list .campaign-contact-list__header { display: flex; gap: 22px; align-items: center; padding: 26px 30px; background: #f7f8ff; border-bottom: 1px solid #edf1fb; }
.campaign-contact-list .campaign-contact-list__header h2 { margin: 0; color: #0b1d3d; font-size: 22px; font-weight: 600; line-height: 1.2; }
.campaign-contact-list .campaign-contact-list__header p { margin: 6px 0 0; color: #607087; font-size: 14px; font-weight: 600; }
.campaign-contact-list__icon { display: grid; place-items: center; width: 56px; height: 56px; flex: 0 0 auto; border-radius: 8px; color: #635bff; background: #f0edff; }
.campaign-contact-list__body { display: grid; gap: 30px; padding: 26px 30px 30px; }
.campaign-contact-list__step { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 22px; align-items: start; }
.campaign-contact-list__step::after { content: ''; position: absolute; top: 40px; bottom: -30px; left: 20px; width: 2px; background: #c8d7ff; }
.campaign-contact-list__number { position: relative; z-index: 1; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: white; background: linear-gradient(135deg, #635bff, #1479ff); box-shadow: 0 8px 20px #2f80ff47; font-size: 18px; font-weight: 700; }
.campaign-contact-list__step > div { min-width: 0; }
.campaign-contact-list .form-label { display: block; margin: 0 0 10px; font-size: 14px; font-weight: 600; }
.campaign-contact-list__required::after { content: ' *'; color: #e93650; }
.campaign-contact-list .form-control { width: 100%; min-width: 0; min-height: 54px; padding: 12px 16px; border: 1px solid #cedcfa; border-radius: 8px; font-size: 14px; font-weight: 600; }
.campaign-contact-list .form-text { margin: 10px 0 0; color: #607087; font-size: 13px; font-weight: 600; line-height: 1.55; }
.campaign-contact-list__select { position: relative; }
.campaign-contact-list__select > svg { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #53688b; pointer-events: none; }
.campaign-contact-list__select select.form-control { padding-left: 52px; }
.campaign-contact-list .campaign-contact-list__select select.form-control,
.campaign-contact-list .campaign-contact-list__select option { font-weight: 800; }
.campaign-contact-list__file { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.campaign-contact-list__dropzone { display: flex; align-items: center; gap: 18px; padding: 22px; min-height: 104px; border: 1px dashed #b9d0ff; border-radius: 8px; background: #fbfdff; }
.campaign-contact-list .campaign-contact-list__upload { display: flex; align-items: center; gap: 22px; flex: 1; min-width: 0; margin: 0; cursor: pointer; }
.campaign-contact-list__upload > span:last-child { min-width: 0; overflow-wrap: anywhere; }
.campaign-contact-list__upload strong { color: #0b1d3d; font-size: 16px; font-weight: 600; }
.campaign-contact-list .campaign-contact-list__upload small { display: block; margin: 4px 0 0; color: #68758d; font-size: 14px; font-weight: 500; }
.campaign-contact-list__dropzone button { flex: 0 0 auto; min-height: 44px; padding: 10px 20px; border: 1px solid #1769ff; border-radius: 8px; color: #1769ff; background: #fff; font-size: 14px; font-weight: 700; }
.campaign-contact-list__dropzone:hover { border-color: #1769ff; background: #f7fbff; }
.campaign-contact-list .is-invalid { border-color: #dc3545; }
.campaign-contact-list .invalid-feedback { color: #dc3545; font-size: 13px; font-weight: 600; }
.campaign-contact-list .google-campaign-picker { margin-top: 0; }
.campaign-contact-list .campaign-contact-range { margin-top: 16px; }
.campaign-contact-list .alert-warning { font-size: 13px; line-height: 1.65; font-weight: 600; }
.campaign-contact-list :focus-visible { outline: 2px solid #1769ff; outline-offset: 3px; }
@media (max-width: 700px) {
  .campaign-contact-list .campaign-contact-list__header { padding: 20px 16px; gap: 14px; }
  .campaign-contact-list__body { padding: 22px 12px; }
  .campaign-contact-list__step { grid-template-columns: 32px minmax(0, 1fr); gap: 12px; }
  .campaign-contact-list__number { width: 32px; height: 32px; font-size: 16px; }
  .campaign-contact-list__step::after { left: 15px; top: 30px; }
  .campaign-contact-list__dropzone { flex-wrap: wrap; padding: 16px; }
  .campaign-contact-list .campaign-contact-list__upload { gap: 12px; flex-basis: 100%; }
  .campaign-contact-list__icon { width: 40px; height: 40px; }
  .campaign-contact-list__dropzone button { width: 100%; }
}
