.timeline-page{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:0 1rem 1rem}.timeline-toolbar{display:flex;align-items:center;gap:1rem;padding:.75rem 0;flex-wrap:wrap;border-bottom:1px solid var(--lysis-border,#e0e0e0);margin-bottom:.5rem}.timeline-title{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:1.1rem}.timeline-title h2{margin:0;font-size:1.1rem}.timeline-title .material-symbols-outlined{color:var(--lysis-accent,#4f46e5);font-size:1.4rem}.timeline-nav{display:flex;align-items:center;gap:.25rem}.timeline-nav-btn{display:flex;align-items:center;padding:.3rem .5rem;border:1px solid var(--lysis-border,#e0e0e0);border-radius:6px;background:var(--lysis-surface,#fff);cursor:pointer;transition:background .15s}.timeline-nav-btn:hover  {background:var(--lysis-surface-hover,#f5f5f5)}.timeline-today-btn{padding:.3rem .75rem;border:1px solid var(--lysis-border,#e0e0e0);border-radius:6px;background:var(--lysis-surface,#fff);cursor:pointer;font-size:.85rem;transition:background .15s}.timeline-today-btn:hover {background:var(--lysis-surface-hover,#f5f5f5)}.timeline-legend{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto}.timeline-legend-item{padding:.2rem .6rem;border-radius:4px;font-size:.72rem;font-weight:500;color:#fff}.timeline-wrap{display:flex;flex-direction:column;flex:1;background:var(--lysis-surface,#fff);border:1px solid var(--lysis-border,#e0e0e0);border-radius:8px;overflow:hidden;min-height:0}.timeline-header-row{display:flex;position:sticky;top:0;z-index:10;background:var(--lysis-surface,#fff);border-bottom:2px solid var(--lysis-border,#e0e0e0);flex-shrink:0}.timeline-header-label{font-weight:600;font-size:.75rem;text-transform:uppercase;color:var(--lysis-text-muted,#888)}.timeline-header-dates{font-size:.72rem;font-weight:600}.timeline-rows-wrap{flex:1;overflow-y:auto}.timeline-row-label{flex:0 0 100px;padding:.5rem .75rem;border-right:1px solid var(--lysis-border,#e0e0e0);font-size:.8rem;font-weight:600;display:flex;align-items:center;background:var(--lysis-surface-alt,#fafafa);cursor:pointer;text-decoration:none;color:inherit}.timeline-row-label:hover {background:var(--lysis-surface-hover,#f0f0f0)}.timeline-row{display:flex;border-bottom:1px solid var(--lysis-border,#e0e0e0);min-height:44px}.timeline-row:last-child {border-bottom:none}.timeline-row-bars{flex:1;display:flex;position:relative;overflow:hidden}.timeline-bg-cell,.timeline-day-cell{flex-shrink:0;border-right:1px solid var(--lysis-border-light,#f0f0f0);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--lysis-text-muted,#888)}.timeline-bg-cell.today,.timeline-day-cell.today{background:rgba(79,70,229,.06);border-right-color:var(--lysis-accent,#4f46e5)}.timeline-bg-cell.weekend,.timeline-day-cell.weekend{background:rgba(0,0,0,0.025)}.timeline-bar{position:absolute;top:4px;height:calc(100% - 8px);border-radius:4px;display:flex;align-items:center;overflow:hidden;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,0.2);transition:opacity .15s;z-index:2}.timeline-bar:hover {opacity:.85}.timeline-bar-label{padding:0 6px;font-size:.7rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem;color:var(--lysis-text-muted,#888)}.timeline-loading .material-symbols-outlined{font-size:3rem}