:root{--bg:#f8fafc;--surface:#fff;--surface-input:#fff;--surface-subtle:#f1f5f9;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--text-faint:#94a3b8;--blue:#2563eb;--blue-hover:#1d4ed8;--blue-tint:#eff6ff;--red:#dc2626;--red-hover:#b91c1c;--red-tint:#fef2f2;--green:#16a34a;--green-text:#15803d;--amber:#d97706;--amber-text:#b45309;--amber-fill:#f59e0b;--purple:#7c3aed;--purple-text:#6d28d9;--purple-tint:#f5f3ff;--chart-cash:#059669;--chart-invest:#3b82f6;--chart-realestate:#8b5cf6;--chart-incentive:#f59e0b;--chart-typebar:#0ea5e9;--chart-shortage:#e11d48;--chart-shortage-2:#f43f5e;--chart-loan:#0d9488;--loan-tint:#f0fdfa;--asset-tint:#f0f7ff;--shortage-tint:#fef2f2;--surplus-tint:#f0fdf4;--goal-line:#0f172a;--shortage-track:#fee2e2;--warn-bg:#fffbeb;--warn-border:#fcd34d;--warn-text:#92400e;--shadow-sm:0 1px 2px #0f172a0a;--radius-card:12px;--radius-input:8px}*,:before,:after{box-sizing:border-box}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #2563eb1f}
