/* ── Shared calendar/timeline wrapper & header ── */
.cal-wrapper,.tl-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--surface);margin-bottom:1.5rem;cursor:grab}
.cal-wrapper{overflow-y:auto;max-height:85dvh}
.cal-wrapper.dragging,.tl-wrapper.dragging{cursor:grabbing;user-select:none}
.cal-header,.tl-header{position:sticky;top:0;z-index:var(--z-header);display:flex;background:var(--surface);box-shadow:0 4px 16px rgba(0,0,0,0.5)}

/* ── Shared gridlines & now-line ── */
.cal-gridline,.tl-gridline{position:absolute;background:var(--color-grid);pointer-events:none}
.cal-now-line,.tl-now-line{position:absolute;background:var(--color-error-alpha);z-index:0;pointer-events:none}
.cal-now-line::before,.tl-now-line::before{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:var(--color-error-alpha)}

/* ── Calendar View ── */
.cal-grid{position:relative;min-width:600px}
.cal-header{align-items:stretch}
.cal-header-corner{width:50px;min-width:50px;background:var(--surface)}
.cal-stage-hdr{display:flex;align-items:center;justify-content:center;font-size:0.72rem;font-weight:600;text-align:center;padding:10px 2px 6px;line-height:1.2;cursor:pointer;user-select:none;position:relative;color:var(--hdr-color);border-bottom:2px solid var(--hdr-color);transition:opacity 0.15s}
.cal-stage-hdr:hover{opacity:0.7}
.cal-stage-hdr span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.cal-stage-hidden{opacity:0.35;border-bottom-style:dashed}
.cal-stage-hidden:hover{opacity:0.55}
.cal-hdr-hint{display:none;font-size:0.5rem;font-weight:400;opacity:0.5;letter-spacing:0}
.cal-body{position:relative}
.cal-time-label{position:sticky;left:0;z-index:var(--z-sticky-col);width:50px;font-size:0.7rem;color:var(--text3);text-align:right;padding-right:6px;background:var(--surface)}
.cal-gridline{height:1px}
.cal-now-line{height:1px}
.cal-now-line::before{left:-8px;top:-3px}
.cal-stageline{position:absolute;width:1px;background:var(--color-grid);pointer-events:none}
.cal-ev{position:absolute;overflow:hidden;padding:3px 5px;border-radius:4px;cursor:pointer;font-size:0.63rem;line-height:1.2;z-index:var(--z-event);transition:filter 0.15s;word-break:break-word}
.cal-ev:hover{filter:brightness(1.45);z-index:5;outline:1px solid rgba(255,255,255,0.3)}
.cal-ev b{display:block;overflow:hidden}
.cal-ev .ev-spk{opacity:0.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
