.budget-lab{border:1px solid var(--line);border-radius:12px;padding:26px;margin:28px 0;font:16px/1.55 var(--ui);background:#fff}
.budget-lab h2{margin:4px 0 14px;font:600 29px/1.2 var(--heading)}
.budget-lab p{margin:12px 0}.budget-heading>p:last-child{color:var(--muted)}
.budget-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;margin:24px 0}
.budget-controls{display:grid;gap:16px}
.budget-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;font-size:14px}
.budget-control output{font-weight:650;font-variant-numeric:tabular-nums;color:var(--accent)}
.budget-control input{grid-column:1/-1;width:100%;padding:0;accent-color:var(--accent);min-height:30px;cursor:pointer}
.budget-dashboard{align-self:start;padding:20px;background:var(--surface);border-radius:10px;min-width:0}
.budget-balance{font-size:36px;line-height:1.2;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
.budget-deficit .budget-balance{color:#934223}.budget-lab #budget-status{font-size:14px}
.budget-bar{display:flex;width:100%;height:24px;overflow:hidden;border-radius:6px;background:var(--line);margin:18px 0}
.budget-segment{height:100%;transition:width .15s linear;min-width:0}.budget-housing{background:#45678f}.budget-basics{background:#b48a40}.budget-debt{background:#9572ab}.budget-saving{background:#39754e}.budget-free{background:#a5cbae}
.budget-lab dl{margin:14px 0}.budget-lab dl>div{display:flex;gap:10px;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.budget-lab dt{min-width:0}.budget-lab dd{margin:0;flex-shrink:0;font-weight:600;font-variant-numeric:tabular-nums}
.budget-dot{display:inline-block;height:9px;width:9px;border-radius:50%;margin-right:7px}
.budget-equation{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.budget-effect{background:var(--pale);border-left:3px solid var(--accent);padding:14px;font-size:14px}
.budget-challenge{border:1px solid var(--line);padding:18px;border-radius:8px;margin:20px 0}
.budget-challenge p{font-size:14px}.budget-challenge button{font-size:14px}
.story-exercise h3{font:600 21px/1.3 var(--heading);margin:0 0 12px}.story-exercise>p{max-width:760px}
@media(max-width:1000px){.budget-layout{grid-template-columns:minmax(0,1fr)}.budget-lab{padding:20px}.budget-control{font-size:14px}}
@media(max-width:700px){.budget-lab{padding:16px;margin:24px -4px}.budget-lab h2{font-size:26px}.budget-dashboard{padding:16px}.budget-balance{font-size:32px}.story-exercise h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.budget-segment{transition:none}}
