/* ── Timeline View ── */
.tl-grid{position:relative}
.tl-header{border-bottom:1px solid var(--border-mid)}
.tl-header-corner{height:34px;background:var(--surface);border-right:1px solid var(--border-mid);position:sticky;left:0;z-index:var(--z-header);display:flex;align-items:center;justify-content:flex-end;padding-right:4px}
.tl-collapse-btn{background:rgba(255,255,255,0.06);border:1px solid var(--border-mid);color:var(--text2);cursor:pointer;font-size:0.75rem;width:22px;height:22px;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:4px;opacity:0.7;transition:opacity 0.15s,background 0.15s}
.tl-collapse-btn:hover{opacity:1;background:rgba(255,255,255,0.12)}
.tl-label-collapsed{width:0!important;min-width:0!important;padding:0!important;overflow:hidden;border:none!important}
.tl-time-hdr{height:34px;display:flex;align-items:center;justify-content:flex-start;font-size:0.68rem;color:var(--accent2);font-weight:700;border-left:1px solid var(--border-light);padding-left:6px}
.tl-body{position:relative}
.tl-row{display:flex;position:relative;border-bottom:1px solid var(--color-grid-row)}
.tl-row:last-child{border-bottom:none}
.tl-row-hidden .tl-row-label{opacity:0.35}
.tl-row-hidden .tl-row-label:hover{opacity:0.5}
.tl-row-label{position:sticky;left:0;z-index:var(--z-sticky-col);font-size:0.62rem;font-weight:600;padding:0 6px;background:var(--surface);display:flex;align-items:center;gap:5px;cursor:pointer;transition:opacity 0.15s;user-select:none;overflow:hidden;flex-shrink:0}
.tl-row-label:hover{opacity:0.7}
.tl-label-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.tl-label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2)}
.tl-ev{position:absolute;border-radius:4px;padding:3px 6px;cursor:pointer;font-size:0.68rem;color:#fff;overflow:hidden;display:flex;align-items:flex-start;transition:filter 0.15s;line-height:1.25;word-break:break-all}
.tl-ev-text{flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;min-width:0}
.tl-ev:hover{filter:brightness(1.45);z-index:5;outline:1px solid rgba(255,255,255,0.3)}
.tl-legend{display:flex;flex-wrap:wrap;gap:8px 16px;padding:8px 12px;font-size:0.7rem;color:#aaa}
.tl-legend-item{cursor:pointer;transition:opacity 0.15s;user-select:none}
.tl-legend-item:hover{opacity:0.7}
.tl-legend-hidden{opacity:0.35;text-decoration:line-through}
.tl-gridline{width:1px}
.tl-now-line{width:1px}
.tl-now-line::before{top:-3px;left:-3px}
