:root{
  --tl-colw: 70px;
  --tl-leftw: 280px; /* Increased for vehicle/driver text */
  --tl-cols: auto;
}
.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 12px}
.filters label{font-weight:600}
.add-btn{padding:6px 10px;background:#22c55e;color:#fff;border:none;border-radius:8px;cursor:pointer}
.btn-ghost{padding:6px 10px;border:1px solid #dcdfe3;border-radius:8px;background:#f7f7f9;cursor:pointer}
.muted{opacity:.75;font-size:.9rem}
.timeline{overflow:auto;position:relative;border:1px solid #e5e7eb;border-radius:10px;background:#fff;}
.tl-months,.tl-days,.tl-row-grid,.tl-bars{display:grid;grid-template-columns:var(--tl-cols);}
/* Main Header has z-index 5 */
.tl-header{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid #e5e7eb;}
.tl-months-wrap{display:grid;grid-template-columns:var(--tl-leftw) 1fr;border-bottom:1px solid #f1f5f9;}

/* Vehicle Label Header - Increased Z-index to 7 to ensure it sticks over the scrollable area */
.tl-left-head{position:sticky;left:0;z-index:7;width:var(--tl-leftw);background:#fff;padding:10px;font-weight:700;border-right:1px solid #f1f5f9;}
.tl-month{padding:4px 6px;font-weight:700;font-size:13px;text-transform:capitalize;background:#fafafa;}
.tl-days-wrap{display:grid;grid-template-columns:var(--tl-leftw) 1fr;}

/* Fixed Date Header Left Placeholder - Increased Z-index to 7 */
.tl-days-left{position:sticky;left:0;z-index:7;width:var(--tl-leftw);background:#fff;border-right:1px solid #f1f5f9;}
.tl-days{background-image:repeating-linear-gradient(to right,#e5e7eb 0,#e5e7eb 1px,transparent 1px,transparent var(--tl-colw));}
.tl-day{padding:6px 2px;text-align:center;font-weight:700;font-size:12px;white-space:nowrap;border:none;}
.tl-day.weekend{background:#fcfcfe;color:#6b7280;}
.tl-day.today{background:#e6f4ff;}
.tl-body{position:relative;}
.tl-row{display:grid;grid-template-columns:var(--tl-leftw) 1fr;min-height:72px;border-bottom:1px dashed #eef2f6;}

/* Fixed Row Label - Z-index 4 is kept as it only needs to be above the booking bars (z-index 1) */
.tl-label{position:sticky;left:0;z-index:4;width:var(--tl-leftw);background:#fff;border-right:1px solid #f1f5f9;padding:8px;font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tl-row-grid{position:relative;min-height:72px;background-image:repeating-linear-gradient(to right,#e5e7eb 0,#e5e7eb 1px,transparent 1px,transparent var(--tl-colw));}
.tl-bars{position:relative;z-index:1;}
.bar{position:relative;margin:4px 6px;padding:6px 8px;border-radius:9px;font-size:.8rem;line-height:1.25;border:1px solid transparent;box-shadow:0 1px 2px rgba(0,0,0,.06);cursor:pointer;}
.lane-0{margin-top:6px;} .lane-1{margin-top:32px;} .lane-2{margin-top:58px;}
.bar.confirmed{background:#e0f2fe;border-color:#bae6fd;}
.bar.arranged{background:#fff7ed;border-color:#ffedd5;}
.bar.completed{background:#dcfce7;border-color:#bbf7d0;}
.bar.cancelled{background:#ffe4e6;border-color:#fecdd3;opacity:.9;}
.bar .meta{display:block;opacity:.75;font-size:.72rem;}
.timeline::-webkit-scrollbar{height:10px;} .timeline::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:999px;border:2px solid #fff;} .timeline::-webkit-scrollbar-track{background:#fff;}