.budget-page { padding-top:3rem; padding-bottom:3rem; }
.budget-page header,.budget-notes { max-width:54rem; }
.budget-page header { margin-bottom:1.5rem; }
.budget-page h1 { margin-bottom:1rem; font-size:clamp(2rem,4vw,3rem); line-height:1.2; }
.budget-page .eyebrow { color:var(--accent-dark); }
.budget-intro { margin-bottom:0; font-size:1.1rem; }
.budget-page .currency-controls { margin:1.5rem 0 0; width:100%; }
.budget-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:2rem; align-items:start; }
#budget-form { scroll-margin-top:9rem; }
#budget-form label { display:block; min-width:0; line-height:1.5; }
#budget-form input,#budget-form select { font:inherit; color:inherit; background-color:var(--white); padding:.75rem; border:1px solid var(--line); border-radius:.5rem; min-width:0; width:100%; }
#budget-form select { padding-right:2.5rem; }
.budget-section { display:grid; gap:1rem; min-width:0; margin:0 0 1.5rem; padding:1.1rem; border:1px solid var(--line); }
.budget-section legend { padding:0 .4rem; font-size:1.1rem; font-weight:650; }
.budget-field { display:grid; gap:.4rem; min-width:0; }
.budget-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.budget-inputs .budget-field { grid-template-rows:1fr auto; }
.budget-stepper { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-self:end; border:1px solid var(--line); border-radius:.5rem; overflow:hidden; }
#budget-form .budget-stepper input { padding:.65rem .15rem; border:0; border-radius:0; text-align:center; }
#budget-form input { appearance:textfield; -moz-appearance:textfield; min-height:48px; }
#budget-form input::-webkit-inner-spin-button,#budget-form input::-webkit-outer-spin-button { appearance:none; margin:0; }
.budget-stepper button { min-width:44px; min-height:48px; padding:0; border:0; color:var(--accent-dark); background:var(--paper); font-size:1.5rem; line-height:1; }
.budget-stepper button:disabled { color:var(--muted); opacity:.5; }
.budget-stepper :focus-visible { outline-offset:-3px; }
.budget-own-costs { color:var(--muted); font-size:.875rem; }
#budget-input-status { color:var(--accent-dark); font-size:.875rem; }
.budget-summary.is-incomplete dl { opacity:.5; }
.budget-summary { border:1px solid var(--line); border-radius:1rem; padding:1.5rem; }
.budget-summary h2 { margin:0 0 1rem; font-size:1.4rem; line-height:1.3; }
.budget-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem; padding:.8rem 0; }
.budget-row dd { margin:0; text-align:right; }
.budget-row .currency-estimates { display:block; font-size:.85rem; }
.budget-total { border-top:1px solid var(--line); font-weight:700; }
.budget-notes { margin-top:2rem; }
@media (max-width:820px) { .budget-layout { grid-template-columns:1fr; } }
@media (max-width:600px) {
 .budget-page { padding-top:1.5rem; }
 .budget-layout { gap:1.5rem; }
 .budget-section { padding:.85rem; }
 .budget-inputs { grid-template-columns:1fr; gap:1rem; }
 .budget-inputs .budget-field { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .75rem; }
 .budget-inputs label,.budget-inputs .budget-stepper { flex:1 1 9rem; }
 .budget-stepper { align-self:center; }
 .budget-summary { padding:1rem; }
 #budget-form input,#budget-form select { font-size:1rem; }
}
@media print { .budget-stepper button,.budget-page .currency-controls { display:none; } .budget-stepper { display:block; } .budget-layout { display:block; } .budget-summary { margin-top:1rem; break-inside:avoid; } }
