  /* ---------- Marketing module ---------- */
  .mkt-tabs{display:flex; gap:6px; overflow-x:auto; padding:14px 12px; scrollbar-width:thin;}
  .mkt-tab{white-space:nowrap; padding:8px 14px; border-radius:10px; font-size:12.6px; font-weight:600; color:var(--ink-700); background:transparent; border:1px solid transparent; transition:background .15s ease, color .15s ease, border-color .15s ease; display:flex; align-items:center; gap:6px; flex-shrink:0;}

  /* ---------- Wizard step indicator (Campaign Builder + Social AI setup) ----------
     Scoped as ".wizard-step .wizard-step-dot" so it never collides with the
     unrelated ".wizard-step-dot" text-tab style used by the Add Service modal
     (services.css) — that one is a bare <span>, never nested inside .wizard-step. */
  .wizard-step{display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; text-align:center; position:relative;}
  .wizard-step .wizard-step-dot{width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:var(--ink-500); background:var(--ink-100); border:1.5px solid var(--border); transition:background .15s ease, color .15s ease, border-color .15s ease;}
  .wizard-step.active .wizard-step-dot{background:var(--purple-600); border-color:var(--purple-600); color:#fff;}
  .wizard-step.done .wizard-step-dot{background:var(--purple-50); border-color:var(--purple-500); color:var(--purple-600);}
  .wizard-step-label{font-size:11px; font-weight:600; color:var(--ink-500); line-height:1.3; max-width:96px;}
  .wizard-step.active .wizard-step-label{color:var(--ink-900);}
  .wizard-step.done .wizard-step-label{color:var(--ink-700);}
  .wizard-connector{flex:1; height:2px; background:var(--border); margin:0 4px 20px; min-width:16px; transition:background .15s ease;}
  .wizard-connector.done{background:var(--purple-500);}
  @media (max-width:560px){
    .wizard-step-label{display:none;}
    .wizard-connector{margin-bottom:0;}
  }

  /* ---------- Social Media AI — First Time Setup ---------- */
  .smai-hero-badge{display:inline-flex; align-items:center; gap:6px; background:var(--purple-50); color:var(--purple-600); font-size:11.5px; font-weight:700; padding:5px 12px; border-radius:20px; margin-top:10px;}
  .smai-conn-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px;}
  .smai-conn-card { border:1.5px solid var(--border); padding:16px; background:var(--card-bg); transition:border-color .15s ease, box-shadow .15s ease; }
  .smai-conn-card.connected{border-color:var(--green-600);}
  .smai-conn-top{display:flex; align-items:center; gap:12px;}
  .smai-conn-ic{width:40px;height:40px;border-radius:11px; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#fff;}
  .smai-conn-name{font-size:13.6px; font-weight:700; display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
  .smai-conn-benefit{font-size:11.6px; color:var(--ink-500); margin:9px 0 12px; line-height:1.45;}
  .smai-conn-card .btn-primary, .smai-conn-card .btn-secondary{width:100%; justify-content:center; display:flex; align-items:center; gap:6px; padding:9px 12px; font-size:12.6px;}
  .smai-optional-tag{font-size:9.5px; font-weight:700; color:var(--ink-500); background:var(--ink-100); padding:2px 7px; border-radius:20px; text-transform:uppercase; letter-spacing:.03em;}
  .smai-goal-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px;}
  .smai-goal-chip{border:1.5px solid var(--border); border-radius:14px; padding:14px; cursor:pointer; text-align:left; background:var(--card-bg); font-family:inherit; display:flex; align-items:center; gap:10px; transition:border-color .15s ease, background .15s ease;}
  .smai-goal-chip:hover{border-color:var(--purple-200);}
  .smai-goal-chip.selected{border-color:var(--purple-500); background:var(--purple-50);}
  .smai-goal-check{width:18px;height:18px;border-radius:6px; border:1.5px solid var(--ink-300); flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; transition:background .15s ease, border-color .15s ease;}
  .smai-goal-chip.selected .smai-goal-check{background:var(--purple-600); border-color:var(--purple-600);}
  .smai-goal-chip b{font-size:12.8px;}
  .smai-comp-row{display:flex; gap:8px; flex-wrap:wrap;}
  .smai-comp-row .form-input{flex:1; min-width:160px;}
  .smai-comp-card { border:1px solid var(--border); padding:11px 13px; display:flex; align-items:center; gap:10px; margin-top:8px; }
  .smai-comp-card b{font-size:12.6px; flex:1;}
  .smai-comp-card span{font-size:11px; color:var(--ink-500);}
  .smai-comp-remove{background:none; border:none; color:var(--ink-500); font-size:16px; line-height:1; padding:2px 4px; border-radius:6px;}
  .smai-comp-remove:hover{background:var(--red-50); color:var(--red-600);}
  .smai-loading-task{display:flex; align-items:center; gap:10px; padding:9px 0; font-size:13px; color:var(--ink-500); border-bottom:1px solid var(--border);}
  .smai-loading-task:last-child{border-bottom:none;}
  .smai-loading-task.done{color:var(--ink-900); font-weight:600;}
  .smai-loading-task .smai-task-mark{width:20px;height:20px;border-radius:50%; border:1.5px solid var(--ink-300); flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff;}
  .smai-loading-task.done .smai-task-mark{background:var(--green-600); border-color:var(--green-600);}
  .smai-loading-task.active{color:var(--purple-600); font-weight:600;}
  .smai-loading-task.active .smai-task-mark{border-color:var(--purple-500); color:var(--purple-600);}
  .smai-loading-task.error{color:var(--red-600);}
  .smai-loading-task.error .smai-task-mark{background:var(--red-600); border-color:var(--red-600); font-weight:700;}
  .smai-color-row{display:flex; align-items:center; gap:10px;}
  .smai-color-row input[type="color"]{width:44px;height:38px;border:1.5px solid var(--border); border-radius:9px; padding:2px; background:var(--card-bg); cursor:pointer;}
  @media (max-width:560px){
    .smai-conn-grid{grid-template-columns:1fr;}
    .smai-goal-grid{grid-template-columns:1fr;}
  }

  /* ---------- Content Studio calendar wrapper ---------- */
  .cs-cal-grid{background:var(--card-bg); border:1px solid var(--border); border-radius:14px; padding:14px; margin-bottom:16px;}

  /* ---------- GMB connect modal — connection method cards ---------- */
  .conn-method-card{transition:border-color .15s ease, box-shadow .15s ease;}
  .conn-method-card:hover{border-color:var(--purple-300,var(--purple-200));}
  .conn-method-card:focus-visible{outline:2px solid var(--purple-500); outline-offset:2px;}
  .conn-method-card.selected{border-color:var(--purple-500); box-shadow:0 0 0 3px var(--purple-50);}

  /* ---------- Local SEO ---------- */
  .seo-opt-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-top:1px solid var(--border); font-size:12.8px;}
  .seo-opt-row:first-child{border-top:none;}
  .seo-mini-btn { margin:0; flex-shrink:0; }
  .seo-check-row{display:flex; align-items:center; gap:10px; padding:9px 0; border-top:1px solid var(--border);}
  .seo-check-row:first-child{border-top:none;}
  .seo-check-ic{width:20px; height:20px; border-radius:50%; border:1.5px solid var(--ink-300); flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff;}
  .seo-check-ic.done{background:var(--green-600,#059669); border-color:var(--green-600,#059669);}
  .seo-check-ic svg{width:12px; height:12px;}
  .seo-check-label{flex:1; font-size:12.8px;}
  .seo-kw-row{display:flex; flex-wrap:wrap; gap:8px;}
  .seo-kw-chip { background:var(--purple-50); color:var(--purple-600); cursor:pointer; }
  .seo-kw-chip.tracked{background:var(--green-50,#ecfdf5); color:var(--green-600,#059669); cursor:default;}
  @media (max-width:700px){
    .seo-top-row{grid-template-columns:1fr !important;}
    .seo-opt-row, .seo-check-row{flex-wrap:nowrap;}
  }

