.spending-tool {
  margin: 32px 0;
  padding: 26px;
  border: 1px solid #d4c6f6;
  border-radius: 16px;
  background: var(--color-primary-soft);
}
.spending-tool > h2:first-child { margin-top: 0; }
.spending-tool .tool-eyebrow + h2 { margin-top: 0; }
.spending-tool .tool-eyebrow { margin: 0 0 6px; color: #584297; font-size: .85rem; font-weight: 700; }
.spending-tool .tool-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 22px 0 16px; }
.spending-tool .tool-field { min-width: 0; }
.spending-tool label { display: block; margin-bottom: 7px; font-weight: 700; line-height: 1.5; }
.spending-tool input, .spending-tool select {
  width: 100%; min-width: 0; min-height: 48px; padding: 11px 12px; border: 1px solid #a79cbd;
  border-radius: 8px; background: #fff; color: var(--color-text); font: inherit; font-size: 1rem;
}
.spending-tool input[aria-invalid="true"], .spending-tool select[aria-invalid="true"] { border: 2px solid #ac2847; }
.spending-tool .tool-hint, .spending-tool .tool-note { font-size: .88rem; line-height: 1.7; color: #514961; }
.spending-tool .tool-hint { display: block; margin-top: 6px; }
.spending-tool .tool-error { display: block; margin-top: 6px; font-size: .88rem; color: #98223e; line-height: 1.6; }
.spending-tool .tool-error:empty { display: none; }
.spending-tool .tool-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.spending-tool button {
  min-height: 46px; padding: 11px 18px; border: 1px solid #6546ba; border-radius: 9px;
  font: inherit; font-weight: 700; cursor: pointer; color: white; background: #6546ba;
}
.spending-tool button[data-example] { color: #553c91; background: white; }
.spending-tool button:hover { background: #52369f; color: white; }
.spending-tool .tool-status { font-size: .88rem; color: #514961; }
.spending-tool .tool-status:empty { margin: 0; }
.spending-tool .tool-results { margin-top: 22px; padding: 20px; border-radius: 12px; background: white; border: 1px solid #d8cfec; }
.spending-tool .tool-results h3 { margin: 0 0 16px; }
.spending-tool .tool-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 16px; }
.spending-tool .tool-result-card { padding: 14px; border-radius: 8px; background: #f7f4fd; }
.spending-tool .tool-result-card dt { font-size: .9rem; font-weight: 700; }
.spending-tool .tool-result-card dd { margin: 7px 0 0; font-weight: 700; font-size: 1.35rem; }
.spending-tool .tool-result-detail { display: block; font-weight: 400; font-size: .85rem; line-height: 1.7; margin-top: 6px; }
.spending-tool .tool-summary { color: #503389; font-weight: 700; }
.spending-tool .tool-results > :last-child { margin-bottom: 0; }
.spending-tool .tool-privacy { padding-top: 12px; border-top: 1px solid #d4c6f6; font-size: .85rem; line-height: 1.7; }
.spending-tool .tool-product { min-width: 0; margin: 0; padding: 16px; border: 1px solid #c9bce7; border-radius: 10px; }
.spending-tool .tool-product legend { padding: 0 6px; font-weight: 700; }
.spending-tool .tool-product .tool-field + .tool-field { margin-top: 16px; }
@media (max-width: 600px) {
  .spending-tool { padding: 20px 14px; }
  .spending-tool .tool-fields, .spending-tool .tool-result-grid { grid-template-columns: 1fr; }
  .spending-tool .tool-results { padding: 16px 12px; }
  .spending-tool .tool-actions button { flex: 1 1 140px; }
}
