.planning-focus-step {
  background: #f6f8f5 !important;
  border: 1px solid #dfe6df !important;
  border-radius: 14px !important;
  padding: 24px !important;
}
.planning-focus-step > [class*="heading"] { margin-bottom: 22px; }
.planning-focus-step > [class*="heading"] h3 { color: #284637; font-size: 24px; letter-spacing: -.4px; }
.planning-focus-step .saving-retirement-step-groups { gap: 12px; }
.planning-focus-step .planning-focus-group {
  display: block !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
.planning-focus-step .planning-focus-stack {
  display: flex !important;
  flex-direction: column;
  gap: 12px;
}
.planning-focus-section {
  min-width: 0;
  width: 100%;
  border: 1px solid #dce5dc;
  border-radius: 11px;
  background: #fff;
}
.planning-focus-section > summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 19px 22px;
  cursor: pointer;
  list-style: none;
  color: #293e32;
}
.planning-focus-section > summary::-webkit-details-marker { display: none; }
.planning-focus-section > summary::after { content: '+'; margin-left: 4px; color: #417454; font-size: 21px; }
.planning-focus-section[open] > summary::after { content: '−'; }
.planning-focus-number { font-size: 12px; color: #537a60; font-variant-numeric: tabular-nums; }
.planning-focus-title { font-size: 16px; font-weight: 650; }
.planning-focus-preview { margin-left: auto; color: #637268; font-size: 12px; max-width: 50%; text-align: right; overflow-wrap: anywhere; }
.planning-focus-section[open] > summary .planning-focus-preview { visibility: hidden; }
.planning-focus-body { padding: 0 22px 22px; min-width: 0; }
.planning-focus-body > [class*="control-grid"] { gap: 18px; }
.planning-focus-body[class*="control-grid"] { gap: 18px; }
.planning-focus-step .planning-focus-body label:not(.saving-retirement-timing-choice) {
  box-shadow: none;
}
.planning-focus-step .planning-focus-body > [class*="control-grid"] > label,
.planning-focus-step .planning-focus-body[class*="control-grid"] > label {
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
}
.planning-focus-body input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.planning-focus-body select { border-radius: 7px; background-color: #fff; }
.planning-focus-body .saving-retirement-timing-field { background: #f9fcf9; }
.planning-focus-step [hidden] { display: none !important; }
@media (max-width: 760px) {
  .planning-focus-step { padding: 16px !important; }
  .planning-focus-section > summary { padding: 16px; flex-wrap: wrap; gap: 8px; }
  .planning-focus-preview { flex-basis: 100%; order: 4; max-width: none; text-align: left; margin-left: 24px; }
  .planning-focus-section[open] > summary .planning-focus-preview { display: none; }
  .planning-focus-section > summary::after { margin-left: auto; }
  .planning-focus-body { padding: 0 16px 18px; }
}
.planning-focus-step .planning-retirement-scenario {
  max-width: 640px;
  margin-bottom: 22px;
}
.planning-focus-step .planning-retirement-scenario > label {
  display: grid;
  gap: 7px;
  background: transparent;
  border: 0;
  padding: 0;
  color: #4f555c;
  font-size: .78rem;
}
.planning-focus-step .planning-retirement-scenario input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 10px 12px;
  border: 1px solid #d8dce1;
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.planning-focus-step .planning-retirement-scenario small { color: #5d6570; font-size: .72rem; line-height: 1.4; }
.planning-focus-step .planning-retirement-current-ages {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 14px;
  padding: 0 0 12px;
  margin: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: .78rem;
  color: #5d6570;
}
.planning-focus-step .planning-retirement-current-ages strong { font-size: .86rem; font-weight: 400; }
.planning-focus-step .planning-retirement-current-ages small { font-size: .72rem; }
.planning-focus-step .planning-retirement-income-start {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(160px, 280px) 1fr;
  align-items: end;
  gap: 8px 20px;
  padding: 14px 0 0;
  margin-top: 4px;
  border: 0;
  border-top: 1px solid #dfe6df;
  background: transparent;
  box-shadow: none;
}
.planning-focus-step .planning-retirement-income-start > span { grid-column: 1 / -1; }
.planning-focus-step .planning-retirement-income-start .retirement-income-combo-inputs { display: grid; gap: 10px; }
.planning-focus-step .planning-retirement-income-start > small { padding-bottom: 8px; }
.planning-focus-step .saving-retirement-step-group.goal .planning-retirement-goal-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.planning-focus-step .saving-retirement-step-group.goal .planning-retirement-goal-fields > * {
  grid-column: auto !important;
  grid-row: auto !important;
}
.planning-focus-step .saving-retirement-step-group.goal .planning-retirement-goal-fields > .retirement-timing-card,
.planning-focus-step .saving-retirement-step-group.goal .planning-retirement-goal-fields > .planning-retirement-income-start {
  grid-column: 1 / -1 !important;
}
.planning-focus-step .retirement-timing-derived output { font-weight: 400; }
@media (max-width: 760px) {
  .planning-focus-step .saving-retirement-step-group.goal .planning-retirement-goal-fields,
  .planning-focus-step .planning-retirement-income-start { grid-template-columns: minmax(0, 1fr); }
}
