.tool-form .form-grid {
  grid-template-columns: 1fr;
}

.tool-form .form-grid > *,
.tool-form input,
.tool-form textarea,
.tool-form select {
  min-width: 0;
  width: 100%;
}

.tool-form-intro h2 { margin: 8px 0; }
.tool-form-intro p { margin: 0; color: var(--muted); }
.tool-form-section { display: grid; gap: 20px; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.tool-form-submit { justify-self: start; }
.alt-image-preview:empty { display: none; }
.alt-image-preview img { max-width: 220px; max-height: 220px; border-radius: 14px; border: 1px solid var(--line); display: block; }
.alt-image-preview p { margin: 0; color: #b91c1c; font-size: .85rem; }

.budget-tool { display: grid; gap: 22px; }
.budget-form-intro h2 { margin: 8px 0; }
.budget-form-intro p { margin: 0; color: var(--muted); }
.budget-form-section { display: grid; gap: 20px; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.tool-form .budget-input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-help { display: block; min-height: 2.7em; margin: 4px 0 8px; color: var(--muted); font-size: .82rem; font-weight: 400; line-height: 1.35; }
.input-suffix { position: relative; }
.input-suffix input { padding-right: 44px; }
.input-suffix > span { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--muted); font-weight: 700; pointer-events: none; }
.budget-submit { justify-self: start; }
.budget-summary-grid,.budget-allocation-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 20px 0 28px; }
.budget-warning,.budget-caution,.budget-good { padding: 16px 18px; border-left: 5px solid; border-radius: 12px; background: #fff; }
.budget-warning { border-color: #ef4444; }
.budget-caution { border-color: #f59e0b; }
.budget-good { border-color: #22c55e; }

.roi-tool { display: grid; gap: 22px; }
.roi-form-intro h2 { margin: 8px 0; }
.roi-form-intro p { margin: 0; color: var(--muted); }
.roi-form-section { display: grid; gap: 20px; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.tool-form .roi-input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.roi-submit { justify-self: start; }
.roi-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 20px 0 28px; }

.audit-findings {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.audit-finding {
  border: 1px solid var(--line);
  border-left-width: 5px;
  border-radius: 16px;
  padding: 20px;
  background: #fff;
}

.audit-finding--pass { border-left-color: #22c55e; }
.audit-finding--fail { border-left-color: #ef4444; }
.audit-finding--review { border-left-color: #c084fc; }
.audit-finding h4 { margin: 6px 0 8px; font-size: 1.05rem; }
.audit-finding p { margin: 0; color: var(--muted); }
.audit-status { font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.audit-finding--pass .audit-status { color: #15803d; }
.audit-finding--fail .audit-status { color: #b91c1c; }
.audit-finding--review .audit-status { color: #7e22ce; }

.tool-form .local-context-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.local-seo-tool fieldset { border: 0; margin: 0; padding: 0; }
.local-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.local-check { align-items: flex-start; min-height: 132px; padding: 18px; }
.local-check input { flex: 0 0 20px; margin-top: 3px; }
.local-check span { display: grid; gap: 7px; }
.local-check strong { line-height: 1.35; }
.local-check small { color: var(--muted); font-weight: 400; line-height: 1.45; }
.local-summary-grid { margin: 22px 0 30px; }
.local-category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.local-priority-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.local-priority { padding: 20px; border: 1px solid var(--line); border-left: 5px solid #c084fc; border-radius: 16px; background: #fff; }
.local-priority h4 { margin: 6px 0 8px; font-size: 1.08rem; }
.local-priority p { margin: 0 0 14px; color: var(--muted); }
.local-priority > strong { display: block; color: #4b5563; line-height: 1.45; }
.local-resource-links { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.local-resource-links .text-link { margin-top: 0; }

.campaign-form-intro { padding-bottom: 8px; }
.campaign-form-intro .eyebrow { margin-bottom: 10px; }
.campaign-form-intro h2 { margin-bottom: 10px; }
.campaign-form-intro p { margin: 0; color: var(--muted); }
.campaign-form-section { display: grid; gap: 20px; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.campaign-step { display: flex; align-items: flex-start; gap: 14px; }
.campaign-step > span { flex: 0 0 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: #faf5ff; color: #7e22ce; font-size: .78rem; font-weight: 700; }
.campaign-step h3 { margin: 1px 0 4px; }
.campaign-step p { margin: 0; color: var(--muted); }
.tool-form .campaign-input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.campaign-tool fieldset { border: 0; margin: 0; padding: 0; }
.campaign-tool legend { margin-bottom: 12px; font-weight: 700; }
.campaign-channel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.campaign-channel-grid .check-row { min-height: 58px; }
.campaign-submit { justify-self: start; }
.campaign-summary-grid { margin: 22px 0 30px; }
.campaign-message-grid,.campaign-channel-plan { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.campaign-message-grid article,.campaign-channel-plan article { padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.campaign-message-grid h4,.campaign-channel-plan h4 { margin: 0 0 8px; }
.campaign-message-grid p,.campaign-channel-plan p { margin: 0; color: var(--muted); }
.campaign-copy { margin-top: 24px; }

.tool-form .review-reply-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.review-reply-results .eyebrow { margin-bottom: 10px; }
.review-reply-text { font-size: 1.12rem; white-space: pre-wrap; }
.review-reply-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.review-reply-error { color: #b91c1c; }

/* Several elements below set their own `display` via a class rule (grid/flex/block) so they can
   be laid out when shown; since an author rule always beats the browser's default
   [hidden]{display:none}, any of them the JS hides via the hidden property needs this explicit
   override or it stays visible regardless. */
.review-reply-tone-field [hidden],
.business-voice-block [hidden] { display: none !important; }

.review-reply-tone-field { display: flex; flex-direction: column; }
.voice-tone-indicator { display: grid; gap: 6px; }
.voice-tone-indicator .field-label-text { font-weight: 600; }
.voice-tone-value { margin: 0; padding: 14px 0 0; font-weight: 700; color: #7e22ce; }
.voice-tone-override { display: inline-block; width: fit-content; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; font: inherit; font-size: .85rem; font-weight: 700; color: #7e22ce; text-decoration: underline; }

.business-voice-block { margin: 0; }
.business-voice-open-toggle { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; font: inherit; color: var(--ink); }
.business-voice-open-cta { color: #7e22ce; font-weight: 700; text-decoration: underline; }
.business-voice-panel { margin-top: 16px; padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: #fff; display: grid; gap: 14px; }
.business-voice-panel h3 { margin: 0; }
.business-voice-panel > p { margin: 0; color: var(--muted); }
.business-voice-note { margin: 0; color: #7e22ce; }
.business-voice-samples { display: grid; gap: 12px; }
.business-voice-privacy { margin: 0; font-size: .82rem; color: var(--muted); }
.business-voice-status:empty { display: none; }
.business-voice-status p { margin: 8px 0 0; }
.business-voice-summary { margin-bottom: 16px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: #faf9ff; }
.business-voice-summary-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.business-voice-summary-head strong { font-size: 1rem; }
.badge-soft { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #f3e8ff; color: #7e22ce; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.business-voice-descriptors { margin: 0 0 8px; color: var(--muted); white-space: pre-line; line-height: 1.5; }
.business-voice-note-small { margin: 0 0 12px; font-size: .85rem; color: var(--muted); }
.business-voice-summary-actions { display: flex; flex-wrap: wrap; gap: 18px; }
.business-voice-summary-actions .text-link { margin-top: 0; }

@media (max-width: 620px) {
  .tool-form-section { padding: 20px 16px; }
  .audit-summary-grid { grid-template-columns: 1fr; }
  .tool-form .local-context-grid,.local-check-grid,.local-priority-list,.local-category-grid { grid-template-columns: 1fr; }
  .local-check { min-height: auto; }
  .tool-form .campaign-input-grid,.campaign-channel-grid,.campaign-message-grid,.campaign-channel-plan { grid-template-columns: 1fr; }
  .campaign-form-section { padding: 20px 16px; }
  .tool-form .budget-input-grid,.budget-summary-grid,.budget-allocation-grid { grid-template-columns: 1fr; }
  .budget-form-section { padding: 20px 16px; }
  .tool-form .roi-input-grid,.roi-summary-grid { grid-template-columns: 1fr; }
  .roi-form-section { padding: 20px 16px; }
  .field-help { min-height: 0; }
  .tool-form .review-reply-grid { grid-template-columns: 1fr; }
  .business-voice-panel { padding: 20px 16px; }
}
