.budget-panel { margin:18px 0; padding:22px; background:#20291e; border:1px solid #3b4b32; border-radius:22px; }
.budget-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.budget-heading h2 { margin:0; font:600 23px/1.2 system-ui,sans-serif; letter-spacing:-.6px; }
.budget-heading .micro-label { color:#9caf8f; font-size:8px; margin-bottom:7px; }
.budget-heading > button { background:#a8e5bf; color:#173d25; border-radius:10px; font-size:11px; padding:10px 13px; min-height:40px; flex-shrink:0; }
.budget-amount { margin-top:23px; display:flex; align-items:baseline; flex-wrap:wrap; gap:10px; }
.budget-amount > strong { font-size:33px; font-weight:600; letter-spacing:-1.2px; color:#f0f6e8; }
.budget-amount > span { font-size:11px; color:#9eaf90; }
.budget-track { height:5px; overflow:hidden; border-radius:5px; background:#3a4632; margin-top:13px; }
.budget-track > span { display:block; height:100%; background:#a8e5bf; }
.budget-comparison { margin:9px 0 0; font-size:11px; line-height:1.5; color:#c1d7ae; }
.budget-over { color:#ffb19b !important; }
.budget-missing { border-radius:10px; padding:10px 12px; color:#e8ca99; background:#403822; font-size:11px; line-height:1.6; margin:13px 0 0; }
.budget-split { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:19px; }
.budget-split > div { border-radius:13px; padding:14px; background:#172015; border:1px solid #35412c; min-width:0; }
.budget-split span,.budget-split small { display:block; }
.budget-split span { color:#a3b494; font-size:10px; }
.budget-split strong { display:block; font-weight:550; font-size:23px; color:#d5ebc2; margin:7px 0 5px; overflow-wrap:anywhere; }
.budget-split small { color:#8c9f7d; font-size:8px; line-height:1.5; }
.snap-projection { color:#a5bc94; font-size:10px; line-height:1.7; margin:13px 1px; }
.budget-details { border-top:1px solid #3b4731; margin-top:18px; padding-top:14px; }
.budget-details summary { font-size:11px; color:#c5d8b4; min-height:24px; cursor:pointer; }
.budget-details > div { display:flex; justify-content:space-between; gap:15px; font-size:11px; margin:13px 0; color:#b2c29f; }
.budget-details > div strong { color:#e4f0d8; font-weight:500; }
.budget-details p { font-size:10px; color:#94a781; line-height:1.7; }
.budget-note { font-size:9px; color:#a0b18d; line-height:1.8; margin-bottom:0; }
.snap-guide { color:#b5d69b; font-size:10px; display:inline-block; margin-top:10px; padding:6px 0; text-underline-offset:3px; }
.budget-panel > p { color:#a7b999; font-size:12px; line-height:1.7; }
.grocery-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:10px 14px; align-items:center; }
.grocery-row .grow { min-width:0; }
.grocery-row > input[type=checkbox] { width:22px; height:22px; }
.grocery-row > strong { white-space:nowrap; font-size:12px; }
.item-estimate { grid-column:2 / -1; display:flex; align-items:center; gap:10px; flex-wrap:wrap; min-width:0; }
.item-estimate button { font-size:10px; border:1px solid #46523a; border-radius:8px; color:#c9dfb5; padding:8px 11px; min-height:34px; }
.snap-label { font-size:9px; line-height:1.5; color:#929d86; }
.snap-label.snap-yes { color:#b2dca2; }.snap-label.snap-no { color:#e0b49e; }
.budget-toggle { display:flex; align-items:center; gap:10px; }
dialog .budget-toggle input { width:22px; height:22px; min-height:22px; margin:0; accent-color:#a8e5bf; }
.snap-form-note { color:#a3b18e; font-size:11px; line-height:1.8; }
.snap-form-note a { color:#c7dda9; text-underline-offset:3px; }
.price-form-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.price-stale { color:#ecc693; background:#3b331e; padding:12px; font-size:12px; border-radius:10px; }
#budget-error,#price-error { color:#efada0; font-size:12px; line-height:1.7; }
.budget-shortcut { display:flex; justify-content:space-between; align-items:center; gap:10px; background:#252b24; border:1px solid #3a4631; color:#d5e4c5; border-radius:14px; padding:14px; margin:0 0 13px; text-align:left; width:100%; }
.budget-shortcut strong,.budget-shortcut small { display:block; }
.budget-shortcut strong { font-size:11px; font-weight:550; }
.budget-shortcut small { font-size:9px; color:#98ac86; font-weight:400; margin-top:5px; line-height:1.5; }
@media(max-width:700px) {
  .budget-panel { padding:18px; border-radius:19px; }
  .budget-heading h2 { font-size:21px; }
  .budget-amount > strong { font-size:31px; }
  .budget-split { gap:9px; }
  .budget-split > div { padding:12px; }
  .budget-split strong { font-size:21px; }
  .grocery-row { gap:8px; }
  .grocery-row > strong { font-size:11px; }
  .grocery-row .item-estimate button { min-height:40px; }
  .snap-label { flex-basis:100%; }
  .grocery-row > button[data-hide] { min-width:38px; padding:6px; }
}
