Resource conflict detection

When the same resource is allocated to two tasks that overlap in time, Turtini flags it as a conflict.

Where conflicts appear:
• **Resources tab** — the affected resource card turns amber and lists the overlapping task pairs with the date range.
• **Overview tab** — the "Conflicts" stat tile and a yellow warning banner.

What counts as a conflict (v2 definition):
A single resource has more than one allocation across overlapping time. Doesn't yet account for partial allocations — every allocation is treated as a 100% commitment. v3 will add real resource leveling: split a person across tasks at percentage allocations and only flag genuine over-commitment.

Today's resolution options:
• Move the conflicting tasks so they don't overlap (drag in Timeline)
• Re-allocate one task to a different resource
• Accept and ignore — useful for materials/equipment that can sometimes be over-booked safely

The flag is informational, not blocking. Turtini won't refuse to save an over-allocated allocation.