.budget-page{padding-block:32px 72px}.budget-intro h1{color:var(--brand-navy);font-family:var(--font-display);font-size:clamp(28px,3vw,40px);font-weight:700;letter-spacing:-.025em;line-height:1.25;text-wrap:balance}.budget-intro p{max-width:72ch;margin-top:12px;color:var(--text-secondary);font-size:15px;line-height:1.8}.budget-workspace{display:grid;gap:16px;margin-top:24px;min-width:0}.budget-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-width:0;margin:0;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.budget-settings label{display:grid;gap:6px;min-width:0;color:var(--brand-navy);font-size:13px;font-weight:500}.budget-settings-help{grid-column:1/-1;color:var(--text-secondary);font-size:12px;line-height:1.6}.budget-select{width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--input-border);border-radius:8px;background:var(--card);color:var(--foreground);font-size:14px;font-weight:400}.budget-select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.budget-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;align-items:start;min-width:0}.budget-layout>*{min-width:0}.budget-side{position:sticky;top:16px;overflow-y:auto;overscroll-behavior:contain;border-radius:14px}.budget-chat,.budget-side{max-height:calc(100dvh - 32px)}.budget-chat{display:flex;flex-direction:column;min-width:0;min-height:560px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.budget-chat-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}.budget-chat-log{display:grid;flex:1;align-content:start;gap:14px;min-height:0;margin:0;padding:16px;overflow-y:auto;list-style:none}.budget-message{display:flex;min-width:0}.budget-message--user{justify-content:flex-end}.budget-bubble{max-width:min(100%,72ch);min-width:0;padding:10px 14px;border-radius:12px;background:var(--surface-muted);color:var(--foreground);font-size:14px;line-height:1.75;overflow-wrap:anywhere}.budget-message--user .budget-bubble{background:var(--surface-blue);color:var(--brand-navy)}.budget-prose>*+*{margin-top:8px}.budget-prose ul{padding-left:1.2em;list-style:disc}.budget-tool{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:12px}.budget-option{min-width:0;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--background)}.budget-mini-calendar{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:3px;height:52px;margin-top:8px}.budget-mini-calendar span{border-radius:3px 3px 0 0;background:var(--brand-blue);opacity:.75}.budget-mini-calendar span[data-over]{background:var(--accent-warning)}.budget-chip{min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--brand-navy);font-size:13px;line-height:1.5;text-align:left}.budget-chip:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.budget-chip:disabled{opacity:.55}.budget-composer{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.budget-composer textarea{flex:1;min-width:0;min-height:48px;max-height:160px;padding:10px 12px;border:1px solid var(--input-border);border-radius:10px;background:var(--card);font-size:14px;line-height:1.6;resize:vertical}.budget-composer textarea:disabled{background:var(--surface-muted)}.budget-privacy{padding:0 16px 12px;color:var(--text-secondary);font-size:11px;line-height:1.6}.budget-guest{display:grid;align-content:start;gap:12px;padding:20px 16px;color:var(--text-secondary);font-size:14px;line-height:1.75}.budget-guest>p,.budget-guest>ul{max-width:72ch}.budget-guest>button{justify-self:start}.budget-panel{min-width:0;padding:16px;border:1px solid var(--border);border-radius:14px;background:var(--card)}.budget-panel[aria-busy=true] .budget-stats{opacity:.6}.budget-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.budget-stat{min-width:0;padding:12px;border-radius:10px;background:var(--surface-muted)}.budget-stat dt{color:var(--text-secondary);font-size:12px}.budget-stat dd{margin-top:4px;color:var(--brand-navy);font-family:var(--font-display);font-size:clamp(16px,1.6vw,22px);font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.budget-meter{height:6px;overflow:hidden;border-radius:999px;background:var(--surface-muted)}.budget-meter span{display:block;height:100%;border-radius:inherit;background:var(--brand-teal)}.budget-meter[data-over] span{background:var(--accent-warning)}.budget-item{min-width:0;padding:12px;border:1px solid var(--border);border-radius:12px;list-style:none}.budget-item[data-status=custom_missing_rate],.budget-item[data-status=missing_quote],.budget-item[data-status=missing_rate],.budget-item[data-status=unknown_basis]{background:var(--surface-warning)}.budget-tag{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;background:var(--surface-teal);color:var(--text-teal);font-size:11px;font-weight:500;white-space:nowrap}.budget-tag--warning{background:var(--surface-warning);color:var(--text-warning)}.budget-source{margin-top:8px;color:var(--text-secondary);font-size:12px}.budget-source summary{display:inline-flex;min-height:32px;align-items:center;cursor:pointer;color:var(--primary)}.budget-source dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin-top:4px}.budget-source dt{color:var(--text-secondary)}.budget-source dd{min-width:0;color:var(--brand-navy);overflow-wrap:anywhere}.budget-flag{padding:8px 12px;border-radius:10px;background:var(--surface-muted);color:var(--text-secondary);line-height:1.7}.budget-flag--warning{background:var(--surface-warning);color:var(--text-warning)}.budget-empty{padding:20px 4px;color:var(--text-secondary);font-size:14px;line-height:1.7}.budget-compare{width:100%;min-width:420px;border-collapse:collapse;font-size:13px}.budget-compare td,.budget-compare th{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.budget-compare thead th{color:var(--brand-navy);font-weight:600}.budget-compare thead small{display:block;color:var(--text-secondary);font-weight:400}.budget-compare tbody th{color:var(--text-secondary);font-weight:400;white-space:nowrap}.budget-compare td{color:var(--brand-navy);font-variant-numeric:tabular-nums}.budget-months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}.budget-months button{min-height:36px;padding:0 2px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text-secondary);font-size:11px}.budget-months button[aria-pressed=true]{border-color:var(--primary);background:var(--surface-blue);color:var(--primary);font-weight:600}.budget-bar{fill:var(--brand-blue);opacity:.8}.budget-bar--over{fill:var(--accent-warning)}.budget-line{stroke-width:2;stroke-dasharray:6 4}.budget-line--average{stroke:var(--brand-teal)}.budget-line--budget{stroke:var(--text-error)}.budget-axis{fill:var(--text-secondary);font-size:12px}.budget-key{display:inline-block;width:12px;height:3px;margin-right:6px;vertical-align:middle}.budget-key--bar{height:10px;background:var(--brand-blue)}.budget-key--over{height:10px;background:var(--accent-warning)}.budget-key--average{background:var(--brand-teal)}.budget-key--budget{background:var(--text-error)}.budget-mobile-plan{display:none}.budget-loading{padding:48px 0;color:var(--text-secondary);font-size:14px}.budget-method{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;margin-top:48px;padding-top:32px;border-top:1px solid var(--border)}.budget-method h2{margin-bottom:12px;color:var(--brand-navy);font-size:20px;font-weight:650}.budget-method p{max-width:72ch;color:var(--text-secondary);font-size:14px;line-height:1.85}.budget-method p+p{margin-top:10px}.budget-faq details{border-bottom:1px solid var(--border)}.budget-faq summary{display:flex;min-height:48px;align-items:center;cursor:pointer;color:var(--brand-navy);font-size:15px;font-weight:500;line-height:1.6}.budget-faq details p{padding-bottom:14px}@media (max-width:1023px){.budget-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-layout{grid-template-columns:minmax(0,1fr)}.budget-side{position:static;max-height:none;overflow:visible}.budget-workspace[data-mode=chat] .budget-side{display:none}.budget-chat{min-height:480px;max-height:none}.budget-workspace[data-mode=chat] .budget-chat{min-height:calc(100dvh - 180px)}.budget-mobile-plan{position:sticky;bottom:12px;z-index:20;display:flex;min-height:48px;align-items:center;justify-content:center;padding:0 16px;border-radius:999px;background:var(--brand-navy);box-shadow:0 10px 24px rgb(15 45 91/20%);color:#fff;font-size:14px;font-weight:600}.budget-method{grid-template-columns:minmax(0,1fr)}}@media (max-width:479px){.budget-page{padding-block:24px 48px}.budget-settings{padding:12px}.budget-settings,.budget-stats{grid-template-columns:minmax(0,1fr)}.budget-panel{padding:12px}}