(function (app) { const { state } = app; state.timelineOffset = 0; state.timelineEvents = []; var TIMELINE_LIMIT = 100; var typeIcons = { document: '', condition: '', prescription: '', bill: '' }; var typeColors = { document: '#6366f1', condition: '#ef4444', prescription: '#22c55e', bill: '#f59e0b' }; app.loadTimeline = async function () { if (!state.selectedPersonId) return; state.timelineOffset = 0; state.timelineEvents = []; var res = await fetch(app.API + '/timeline?personId=' + state.selectedPersonId + '&offset=0&limit=' + TIMELINE_LIMIT); if (!res.ok) return; var events = await res.json(); state.timelineEvents = events; state.timelineOffset = events.length; app.renderTimeline(events); var btn = document.getElementById('timelineLoadMore'); if (btn) btn.style.display = events.length >= TIMELINE_LIMIT ? '' : 'none'; }; app.loadMoreTimeline = async function () { if (!state.selectedPersonId) return; var res = await fetch(app.API + '/timeline?personId=' + state.selectedPersonId + '&offset=' + state.timelineOffset + '&limit=' + TIMELINE_LIMIT); if (!res.ok) return; var events = await res.json(); state.timelineEvents = state.timelineEvents.concat(events); state.timelineOffset += events.length; app.renderTimeline(state.timelineEvents); var btn = document.getElementById('timelineLoadMore'); if (btn) btn.style.display = events.length >= TIMELINE_LIMIT ? '' : 'none'; }; app.renderTimeline = function (events) { var container = document.getElementById('timelineList'); if (!container) return; if (events.length === 0) { container.innerHTML = '