.budget-page-header {
  position: relative;
  overflow: hidden;
}

.budget-page-header::after {
  content: "";
  position: absolute;
  inset: auto -10% -45% auto;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(16, 185, 129, 0.25), transparent 60%);
  pointer-events: none;
}

.budget-section {
  background:
    radial-gradient(circle at top right, rgba(16, 185, 129, 0.08), transparent 22%),
    linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.budget-top-grid,
.budget-layout {
  display: grid;
  gap: 30px;
}

.budget-top-grid {
  grid-template-columns: 1fr 1.4fr;
  margin-bottom: 40px;
}

.budget-layout {
  grid-template-columns: minmax(0, 1.5fr) minmax(320px, 0.9fr);
  align-items: start;
}

.budget-intro-card,
.budget-meta-card,
.budget-panel,
.budget-summary-panel {
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  border: 1px solid rgba(30, 41, 59, 0.08);
}

.budget-intro-card,
.budget-meta-card,
.budget-panel,
.budget-summary-panel {
  padding: 28px;
}

.budget-intro-card h2,
.budget-meta-card h2,
.budget-panel h2,
.budget-summary-panel h2 {
  margin-bottom: 12px;
}

.budget-intro-card p,
.budget-meta-card p,
.budget-panel-head p,
.summary-narrative,
.breakdown-card p {
  color: var(--gray-dark);
}

.budget-bullets {
  margin-top: 18px;
  padding-left: 18px;
  color: var(--blue-dark);
}

.budget-bullets li + li {
  margin-top: 8px;
}

.budget-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 18px 0 22px;
}

.budget-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.budget-field span,
.budget-row-label small,
.breakdown-row small,
.summary-card-label,
.panel-kicker {
  font-size: 0.85rem;
  color: var(--gray-dark);
}

.panel-kicker {
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 8px;
}

.budget-field input,
.budget-row-amount input,
.budget-row-frequency select {
  border: 1px solid var(--gray-medium);
  border-radius: 12px;
  padding: 12px 14px;
  font: inherit;
  color: var(--blue-dark);
  background: #fff;
}

.budget-field input:focus,
.budget-row-amount input:focus,
.budget-row-frequency select:focus {
  outline: none;
  border-color: var(--orange);
  box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.12);
}

.budget-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.budget-main,
.budget-sidebar {
  display: grid;
  gap: 24px;
}

.budget-sidebar {
  position: sticky;
  top: 92px;
}

.budget-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  margin-bottom: 20px;
}

.budget-panel-head h2 {
  margin-bottom: 0;
}

.budget-rows,
.budget-group-body,
.group-breakdown,
.top-expenses,
.summary-cards {
  display: grid;
  gap: 14px;
}

.budget-group + .budget-group {
  margin-top: 24px;
}

.budget-group-title {
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid rgba(16, 185, 129, 0.12);
  font-family: Georgia, "Times New Roman", serif;
}

.budget-row {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) 140px 170px;
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(30, 41, 59, 0.08);
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #f9fafb 100%);
}

.budget-row-label {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.budget-row-label strong {
  font-size: 1rem;
}

.budget-row-amount input,
.budget-row-frequency select {
  width: 100%;
}

.summary-cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.summary-card {
  padding: 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, #f8fafc 0%, #eef6f2 100%);
  border: 1px solid rgba(16, 185, 129, 0.1);
}

.summary-card-label {
  display: block;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.summary-card strong {
  display: block;
  font-size: 1.7rem;
  line-height: 1.1;
}

.summary-card.positive strong {
  color: #059669;
}

.summary-card.negative strong {
  color: #dc2626;
}

.summary-card.neutral strong {
  color: var(--blue-dark);
}

.summary-narrative {
  margin-top: 20px;
  padding: 18px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px dashed rgba(30, 41, 59, 0.14);
}

.breakdown-card,
.expense-rank-card {
  padding: 18px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid rgba(30, 41, 59, 0.08);
}

.breakdown-card h3,
.expense-rank-card h3 {
  margin-bottom: 12px;
  font-size: 1rem;
}

.breakdown-rows,
.expense-rank-rows {
  display: grid;
  gap: 10px;
}

.breakdown-row,
.expense-rank-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
}

.breakdown-row strong,
.expense-rank-row strong {
  font-size: 0.96rem;
}

.breakdown-total {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(30, 41, 59, 0.08);
  display: flex;
  justify-content: space-between;
  font-weight: 700;
}

.budget-empty {
  padding: 18px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px dashed rgba(30, 41, 59, 0.14);
  color: var(--gray-dark);
}

.positive-text {
  color: #059669;
}

.negative-text {
  color: #dc2626;
}

.neutral-text {
  color: var(--blue-dark);
}

@media (max-width: 1100px) {
  .budget-top-grid,
  .budget-layout {
    grid-template-columns: 1fr;
  }

  .budget-sidebar {
    position: static;
  }

  .budget-meta-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .budget-panel,
  .budget-summary-panel,
  .budget-intro-card,
  .budget-meta-card {
    padding: 22px;
  }

  .budget-panel-head,
  .budget-row,
  .breakdown-row,
  .expense-rank-row,
  .breakdown-total {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: stretch;
  }

  .budget-row {
    grid-template-columns: 1fr;
  }

  .summary-cards {
    grid-template-columns: 1fr;
  }

  .budget-action-row .btn {
    width: 100%;
  }
}
